3#include <vk_mem_alloc.h>
15 return VMA_ALLOCATION_CREATE_HOST_ACCESS_RANDOM_BIT;
17 return VMA_ALLOCATION_CREATE_HOST_ACCESS_SEQUENTIAL_WRITE_BIT;
49 void Flush(
size_t offset,
size_t size)
override;
50 void Unmap()
override;
61 class VulkanTextureView;
119 vk::raii::AccelerationStructureKHR
mAS{
nullptr};
130 vk::AccelerationStructureGeometryTrianglesDataKHR
132 vk::AccelerationStructureGeometryAabbsDataKHR
134 vk::AccelerationStructureBuildGeometryInfoKHR
136 Vector<vk::AccelerationStructureGeometryKHR>& geometries,
137 Vector<uint32_t>& primitiveCounts);
138 vk::AccelerationStructureBuildRangeInfoKHR
Definition Resource.hpp:332
Definition Resource.hpp:57
Thread-safe type-erased handle dereference facility for RHI Objects.
Definition Details.hpp:147
Scoped move-only RAII handle wrapper for RHI Objects.
Definition Details.hpp:85
Definition Resource.hpp:238
Definition Resource.hpp:216
Definition Resource.hpp:116
VulkanDevice const & mDevice
Definition Resource.hpp:118
vk::raii::AccelerationStructureKHR mAS
Definition Resource.hpp:119
auto & GetVkAccelerationStructure()
Definition Resource.hpp:126
auto & GetVkBuffer() const
Definition Resource.hpp:125
vk::DeviceAddress GetVkAccelerationStructureAddress() const
Definition Resource.cpp:364
VulkanBuffer * mBuffer
Definition Resource.hpp:120
vk::DeviceAddress mASAddress
Definition Resource.hpp:121
void DebugSetObjectName(const char *name) override
Definition Resource.cpp:368
Definition Resource.hpp:26
size_t GetAllocationSize() const override
Definition Resource.cpp:177
vk::raii::Buffer mBuffer
Definition Resource.hpp:31
void Unmap() override
Releases or unmaps a previously mapped resource. Implementations MUST guarantee that Unmap() is calle...
Definition Resource.cpp:171
VmaAllocation mAllocation
Definition Resource.hpp:29
RHIBufferScopedHandle< RHIBuffer > CreateAliasedBuffer(RHIBufferDesc const &desc, size_t offset) override
Definition Resource.cpp:297
void DebugSetObjectName(const char *name) override
Definition Resource.cpp:311
~VulkanBuffer() override
Definition Resource.cpp:141
VulkanDevice const & mDevice
Definition Resource.hpp:28
void * Map() override
Maps the entire buffer to the host memory. Alignment is implementation-defined. Implementations MUST ...
Definition Resource.cpp:157
RHIObjectPool< VulkanBuffer > mAliases
Definition Resource.hpp:34
RHIBuffer * GetAliasedBuffer(Handle handle) const override
Definition Resource.cpp:308
vk::DeviceAddress GetBufferAddress() const
Definition Resource.cpp:185
void * mMapped
Definition Resource.hpp:32
auto & GetVkBuffer()
Definition Resource.hpp:46
void Flush(size_t offset, size_t size) override
Flushes the mapped region to the device. Depending on the implementation, this may be a no-op.
Definition Resource.cpp:163
const bool mShared
Definition Resource.hpp:38
void DestroyAliasedBuffer(Handle handle) override
Definition Resource.cpp:309
Definition Device.hpp:122
Definition Resource.hpp:99
vk::raii::ImageView mView
Definition Resource.hpp:101
void DebugSetObjectName(const char *name) override
Definition Resource.cpp:341
RHITexture * GetTexture() const override
Definition Resource.hpp:107
auto const & GetImage() const
Definition Resource.hpp:110
VulkanTexture & mImage
Definition Resource.hpp:102
auto const & GetVkImageView() const
Definition Resource.hpp:109
Definition Resource.hpp:63
size_t GetAllocationSize() const override
Definition Resource.cpp:238
RHITextureView * GetImageView(Handle handle) const override
Definition Resource.cpp:289
RHIObjectPool< VulkanTextureView > mViews
Definition Resource.hpp:71
RHITextureScopedHandle< RHITextureView > CreateTextureView(RHITextureViewDesc const &desc) override
Definition Resource.cpp:247
RHIObjectPool< VulkanTexture > mAliases
Definition Resource.hpp:70
VmaAllocation mAllocation
Definition Resource.hpp:66
auto & GetVkImage() const
Definition Resource.hpp:82
vk::raii::Image mImage
Definition Resource.hpp:68
void DestroyAliasedTexture(Handle handle) override
Definition Resource.cpp:331
void DebugSetObjectName(const char *name) override
Definition Resource.cpp:333
RHITexture * GetAliasedTexture(Handle handle) const override
Definition Resource.cpp:330
RHITextureScopedHandle< RHITexture > CreateAliasedTexture(RHITextureDesc const &desc, size_t offset) override
Definition Resource.cpp:319
~VulkanTexture() override
Definition Resource.cpp:225
void DestroyImageView(Handle handle) override
Definition Resource.cpp:290
VulkanDevice const & mDevice
Definition Resource.hpp:65
const bool mShared
Definition Resource.hpp:75
auto const & GetDevice() const
Definition Resource.hpp:95
Low-level Rendering Hardware Interface (RHI) abstractions.
Definition Application.hpp:3
vk::AccelerationStructureBuildRangeInfoKHR vkAccelerationBuildRangeInfoFromRHI(RHIAccelerationStructureBuildRangeInfo const &desc)
Definition Resource.cpp:473
vk::AccelerationStructureBuildGeometryInfoKHR vkAccelerationBuildGeoInfoFromRHI(RHIAccelerationStructureBuildDesc const &desc, Vector< vk::AccelerationStructureGeometryKHR > &geometries, Vector< uint32_t > &primitiveCounts)
Definition Resource.cpp:407
VmaAllocationCreateFlags vmaAllocationFlagsFromRHIResourceHostAccess(RHIResourceHostAccess access)
Definition Resource.hpp:9
vk::AccelerationStructureGeometryTrianglesDataKHR vkAccelerationTriangleDataFromRHI(RHIAccelerationStructureGeometryTriangleData const &desc)
Definition Resource.cpp:376
uintptr_t Handle
Definition Details.hpp:9
vk::AccelerationStructureGeometryAabbsDataKHR vkAccelerationAABBDataFromRHI(RHIAccelerationStructureGeometryAABBData const &desc)
Definition Resource.cpp:392
RHIResourceHostAccess
Definition Common.hpp:249
Definition Resource.hpp:256
Definition Resource.hpp:28
Definition Resource.hpp:142
Definition Resource.hpp:210