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, 128, 128 > &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