Nebula
Loading...
Searching...
No Matches
vkresourcetable.h File Reference
#include "ids/idallocator.h"
#include "coregraphics/resourcetable.h"
#include "threading/spinlock.h"
#include <array>

Go to the source code of this file.

Classes

struct  Vulkan::WriteInfo
 

Namespaces

namespace  Vulkan
 Vulkan implementation of GPU acceleration structure.
 

Typedefs

typedef Ids::IdAllocator< VkDevice, VkDescriptorSet, IndexT, Threading::Spinlock, CoreGraphics::ResourceTableLayoutId, Util::Array< WriteInfo >, Util::Array< VkCopyDescriptorSet > > Vulkan::VkResourceTableAllocator
 
typedef Ids::IdAllocator< VkDevice, VkDescriptorSetLayout, Util::Array< VkDescriptorPoolSize >, Util::Array< Util::Pair< CoreGraphics::SamplerId, uint32_t > >, Util::HashTable< uint32_t, bool >, Util::Array< VkDescriptorPool >, Util::Array< uint > > Vulkan::VkResourceTableLayoutAllocator
 
typedef Ids::IdAllocator< VkDevice, VkPipelineLayout > Vulkan::VkResourcePipelineAllocator
 Resource pipeline.
 

Enumerations

enum class  Vulkan::WriteType { Vulkan::Image , Vulkan::Buffer , Vulkan::TexelBuffer , Vulkan::Tlas }
 Resource table. More...
 
enum  {
  Vulkan::ResourceTable_Device , Vulkan::ResourceTable_DescriptorSet , Vulkan::ResourceTable_DescriptorPoolIndex , Vulkan::ResourceTable_Lock ,
  Vulkan::ResourceTable_Layout , Vulkan::ResourceTable_WriteInfos , Vulkan::ResourceTable_Copies
}
 
enum  {
  Vulkan::ResourceTableLayout_Device , Vulkan::ResourceTableLayout_SetLayout , Vulkan::ResourceTableLayout_PoolSizes , Vulkan::ResourceTableLayout_Samplers ,
  Vulkan::ResourceTableLayout_ImmutableSamplerFlags , Vulkan::ResourceTableLayout_DescriptorPools , Vulkan::ResourceTableLayout_DescriptorPoolFreeItems
}
 Resource table layout. More...
 

Functions

const VkDescriptorSet & Vulkan::ResourceTableGetVkDescriptorSet (CoreGraphics::ResourceTableId id)
 Get descriptor set.
 
const IndexT Vulkan::ResourceTableGetVkPoolIndex (CoreGraphics::ResourceTableId id)
 Get descriptor pool index.
 
const VkDevice & Vulkan::ResourceTableGetVkDevice (CoreGraphics::ResourceTableId id)
 Get device used to create resource table.
 
void Vulkan::SetupEmptyDescriptorSetLayout ()
 run this before using any resource tables
 
const VkDescriptorSetLayout & Vulkan::ResourceTableLayoutGetVk (const CoreGraphics::ResourceTableLayoutId &id)
 get table layout
 
void Vulkan::ResourceTableLayoutAllocTable (const CoreGraphics::ResourceTableLayoutId &id, const VkDevice dev, uint overallocationSize, IndexT &outIndex, VkDescriptorSet &outSet)
 allocate new descriptor set from pool
 
void Vulkan::ResourceTableLayoutDeallocTable (const CoreGraphics::ResourceTableLayoutId &id, const VkDevice dev, const VkDescriptorSet &set, const IndexT index)
 deallocate descriptor set from pool
 
const VkDescriptorPool & Vulkan::ResourceTableLayoutGetVkDescriptorPool (const CoreGraphics::ResourceTableLayoutId &id, const IndexT index)
 Get descriptor pool.
 
uintVulkan::ResourceTableLayoutGetFreeItemsCounter (const CoreGraphics::ResourceTableLayoutId &id, const IndexT index)
 Get descriptor pool free items counter.
 
const VkPipelineLayout & Vulkan::ResourcePipelineGetVk (const CoreGraphics::ResourcePipelineId &id)
 get pipeline layout