Class VmaPoolCreateInfo

  • All Implemented Interfaces:
    java.lang.AutoCloseable, NativeResource, Pointer

    public class VmaPoolCreateInfo
    extends Struct
    implements NativeResource
    Describes parameter of created VmaPool.

    Member documentation

    • memoryTypeIndex – Vulkan memory type index to allocate this pool from
    • flags – Use combination of VmaPoolCreateFlagBits. One or more of:
      POOL_CREATE_IGNORE_BUFFER_IMAGE_GRANULARITY_BITPOOL_CREATE_LINEAR_ALGORITHM_BIT
      POOL_CREATE_BUDDY_ALGORITHM_BITPOOL_CREATE_ALGORITHM_MASK
    • blockSize – size of a single VkDeviceMemory block to be allocated as part of this pool, in bytes. Optional.

      Specify nonzero to set explicit, constant size of memory blocks used by this pool. Leave 0 to use default and let the library manage block sizes automatically. Sizes of particular blocks may vary.

    • minBlockCount – minimum number of blocks to be always allocated in this pool, even if they stay empty.

      Set to 0 to have no preallocated blocks and allow the pool be completely empty.

    • maxBlockCount – maximum number of blocks that can be allocated in this pool. Optional.

      Set to 0 to use default, which is SIZE_MAX, which means no limit. Set to same value as VmaPoolCreateInfo::minBlockCount to have fixed amount of memory allocated throughout whole lifetime of this pool.

    • frameInUseCount – maximum number of additional frames that are in use at the same time as current frame.

      This value is used only when you make allocations with ALLOCATION_CREATE_CAN_BECOME_LOST_BIT flag. Such allocation cannot become lost if allocation.lastUseFrameIndex >= allocator.currentFrameIndex - frameInUseCount.

      For example, if you double-buffer your command buffers, so resources used for rendering in previous frame may still be in use by the GPU at the moment you allocate resources needed for the current frame, set this value to 1.

      If you want to allow any allocations other than used in the current frame to become lost, set this value to 0.

    Layout

    
     struct VmaPoolCreateInfo {
         uint32_t memoryTypeIndex;
         VmaPoolCreateFlags flags;
         VkDeviceSize blockSize;
         size_t minBlockCount;
         size_t maxBlockCount;
         uint32_t frameInUseCount;
     }
    • Field Detail

      • SIZEOF

        The struct size in bytes.
      • ALIGNOF

        The struct alignment in bytes.
      • MEMORYTYPEINDEX, FLAGS, BLOCKSIZE, MINBLOCKCOUNT, MAXBLOCKCOUNT, FRAMEINUSECOUNT

        The struct member offsets.
    • Constructor Detail

      • VmaPoolCreateInfo

        public VmaPoolCreateInfo​(java.nio.ByteBuffer container)
        Creates a VmaPoolCreateInfo instance at the current position of the specified ByteBuffer container. Changes to the buffer's content will be visible to the struct instance and vice versa.

        The created instance holds a strong reference to the container object.

    • Method Detail

      • sizeof

        public int sizeof()
        Description copied from class: Struct
        Returns sizeof(struct).
        Specified by:
        sizeof in class Struct
      • memoryTypeIndex

        public int memoryTypeIndex()
        Returns the value of the memoryTypeIndex field.
      • flags

        public int flags()
        Returns the value of the flags field.
      • blockSize

        public long blockSize()
        Returns the value of the blockSize field.
      • minBlockCount

        public long minBlockCount()
        Returns the value of the minBlockCount field.
      • maxBlockCount

        public long maxBlockCount()
        Returns the value of the maxBlockCount field.
      • frameInUseCount

        public int frameInUseCount()
        Returns the value of the frameInUseCount field.
      • memoryTypeIndex

        public VmaPoolCreateInfo memoryTypeIndex​(int value)
        Sets the specified value to the memoryTypeIndex field.
      • flags

        public VmaPoolCreateInfo flags​(int value)
        Sets the specified value to the flags field.
      • blockSize

        public VmaPoolCreateInfo blockSize​(long value)
        Sets the specified value to the blockSize field.
      • minBlockCount

        public VmaPoolCreateInfo minBlockCount​(long value)
        Sets the specified value to the minBlockCount field.
      • maxBlockCount

        public VmaPoolCreateInfo maxBlockCount​(long value)
        Sets the specified value to the maxBlockCount field.
      • frameInUseCount

        public VmaPoolCreateInfo frameInUseCount​(int value)
        Sets the specified value to the frameInUseCount field.
      • set

        public VmaPoolCreateInfo set​(int memoryTypeIndex,
                                     int flags,
                                     long blockSize,
                                     long minBlockCount,
                                     long maxBlockCount,
                                     int frameInUseCount)
        Initializes this struct with the specified values.
      • malloc

        public static VmaPoolCreateInfo malloc()
        Returns a new VmaPoolCreateInfo instance allocated with memAlloc. The instance must be explicitly freed.
      • calloc

        public static VmaPoolCreateInfo calloc()
        Returns a new VmaPoolCreateInfo instance allocated with memCalloc. The instance must be explicitly freed.
      • create

        public static VmaPoolCreateInfo create​(long address)
        Returns a new VmaPoolCreateInfo instance for the specified memory address.
      • createSafe

        @Nullable
        public static VmaPoolCreateInfo createSafe​(long address)
        Like create, but returns null if address is NULL.
      • createSafe

        @Nullable
        public static VmaPoolCreateInfo.Buffer createSafe​(long address,
                                                          int capacity)
        Like create, but returns null if address is NULL.
      • mallocStack

        public static VmaPoolCreateInfo mallocStack()
        Returns a new VmaPoolCreateInfo instance allocated on the thread-local MemoryStack.
      • callocStack

        public static VmaPoolCreateInfo callocStack()
        Returns a new VmaPoolCreateInfo instance allocated on the thread-local MemoryStack and initializes all its bits to zero.
      • mallocStack

        public static VmaPoolCreateInfo mallocStack​(MemoryStack stack)
        Returns a new VmaPoolCreateInfo instance allocated on the specified MemoryStack.
        Parameters:
        stack - the stack from which to allocate
      • callocStack

        public static VmaPoolCreateInfo callocStack​(MemoryStack stack)
        Returns a new VmaPoolCreateInfo instance allocated on the specified MemoryStack and initializes all its bits to zero.
        Parameters:
        stack - the stack from which to allocate
      • nmemoryTypeIndex

        public static int nmemoryTypeIndex​(long struct)
        Unsafe version of memoryTypeIndex().
      • nflags

        public static int nflags​(long struct)
        Unsafe version of flags().
      • nblockSize

        public static long nblockSize​(long struct)
        Unsafe version of blockSize().
      • nminBlockCount

        public static long nminBlockCount​(long struct)
        Unsafe version of minBlockCount().
      • nmaxBlockCount

        public static long nmaxBlockCount​(long struct)
        Unsafe version of maxBlockCount().
      • nframeInUseCount

        public static int nframeInUseCount​(long struct)
        Unsafe version of frameInUseCount().
      • nmemoryTypeIndex

        public static void nmemoryTypeIndex​(long struct,
                                            int value)
        Unsafe version of memoryTypeIndex.
      • nflags

        public static void nflags​(long struct,
                                  int value)
        Unsafe version of flags.
      • nblockSize

        public static void nblockSize​(long struct,
                                      long value)
        Unsafe version of blockSize.
      • nminBlockCount

        public static void nminBlockCount​(long struct,
                                          long value)
        Unsafe version of minBlockCount.
      • nmaxBlockCount

        public static void nmaxBlockCount​(long struct,
                                          long value)
        Unsafe version of maxBlockCount.
      • nframeInUseCount

        public static void nframeInUseCount​(long struct,
                                            int value)
        Unsafe version of frameInUseCount.