Nebula
Loading...
Searching...
No Matches
vkresourcetable.cc File Reference
#include "vkresourcetable.h"
#include "coregraphics/resourcetable.h"
#include "vkgraphicsdevice.h"
#include "vktypes.h"
#include "vksampler.h"
#include "vktexture.h"
#include "vktextureview.h"
#include "vkbuffer.h"
#include "vkaccelerationstructure.h"

Namespaces

namespace  Vulkan
 Vulkan implementation of GPU acceleration structure.
 
namespace  CoreGraphics
 Acceleration structures are used to enable ray tracing on the GPU by dividing the scene into a BVH.
 

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
 
ResourceTableId CoreGraphics::CreateResourceTable (const ResourceTableCreateInfo &info)
 create resource table
 
void CoreGraphics::DestroyResourceTable (const ResourceTableId id)
 destroy resource table
 
const ResourceTableLayoutIdCoreGraphics::ResourceTableGetLayout (CoreGraphics::ResourceTableId id)
 Get resource table layout.
 
void CoreGraphics::ResourceTableCopy (const ResourceTableId from, const IndexT fromSlot, const IndexT fromIndex, const ResourceTableId to, const IndexT toSlot, const IndexT toIndex, const SizeT numResources)
 copy resources from a slot, index and array size between resource tables
 
void CoreGraphics::ResourceTableSetTexture (const ResourceTableId id, const ResourceTableTexture &tex)
 set resource table texture
 
void CoreGraphics::ResourceTableSetTexture (const ResourceTableId id, const ResourceTableTextureView &tex)
 set resource table texture
 
void CoreGraphics::ResourceTableSetInputAttachment (const ResourceTableId id, const ResourceTableInputAttachment &tex)
 set resource table input attachment
 
void CoreGraphics::ResourceTableSetRWTexture (const ResourceTableId id, const ResourceTableTexture &tex)
 set resource table texture as read-write
 
void CoreGraphics::ResourceTableSetRWTexture (const ResourceTableId id, const ResourceTableTextureView &tex)
 set resource table texture as read-write
 
void CoreGraphics::ResourceTableSetConstantBuffer (const ResourceTableId id, const ResourceTableBuffer &buf)
 set resource table constant buffer
 
void CoreGraphics::ResourceTableSetRWBuffer (const ResourceTableId id, const ResourceTableBuffer &buf)
 set resource table shader rw buffer
 
void CoreGraphics::ResourceTableSetSampler (const ResourceTableId id, const ResourceTableSampler &samp)
 set resource table sampler
 
void CoreGraphics::ResourceTableSetAccelerationStructure (const ResourceTableId id, const ResourceTableTlas &tlas)
 Set resource table acceleration structure.
 
void CoreGraphics::ResourceTableBlock (bool b)
 disallow the resource table system to make modifications
 
void CoreGraphics::ResourceTableCommitChanges (const ResourceTableId id)
 apply updates of previous sets
 
void CoreGraphics::AddBinding (Util::HashTable< uint32_t, VkDescriptorSetLayoutBinding > &bindings, const VkDescriptorSetLayoutBinding &binding)
 
void CoreGraphics::CountDescriptors (Util::HashTable< uint32_t, uint32_t > &counters, const VkDescriptorSetLayoutBinding &binding)
 
void CoreGraphics::SetupDescriptorSize (VkDescriptorPoolSize &size, Util::HashTable< uint32_t, uint32_t > &counter, Util::Array< VkDescriptorPoolSize > &outSizes)
 
ResourceTableLayoutId CoreGraphics::CreateResourceTableLayout (const ResourceTableLayoutCreateInfo &info)
 create resource table layout
 
void CoreGraphics::DestroyResourceTableLayout (const ResourceTableLayoutId &id)
 destroy resource table layout
 
ResourcePipelineId CoreGraphics::CreateResourcePipeline (const ResourcePipelineCreateInfo &info)
 create resource pipeline
 
void CoreGraphics::DestroyResourcePipeline (const ResourcePipelineId &id)
 destroy resource pipeline
 

Variables

VkResourceTableAllocator Vulkan::resourceTableAllocator
 
VkResourceTableLayoutAllocator Vulkan::resourceTableLayoutAllocator
 
VkResourcePipelineAllocator Vulkan::resourcePipelineAllocator
 
VkDescriptorSetLayout Vulkan::EmptySetLayout