3#include <vk_mem_alloc.h>
49 void Flush(
size_t offset,
size_t size)
override;
50 void Unmap()
override;
60 class VulkanTextureView;
99 vk::raii::ImageView
mView{
nullptr};
117 vk::raii::AccelerationStructureKHR
mAS{
nullptr};
127 vk::AccelerationStructureGeometryTrianglesDataKHR
129 vk::AccelerationStructureBuildGeometryInfoKHR
133 vk::AccelerationStructureBuildRangeInfoKHR
Definition Resource.hpp:291
Definition Resource.hpp:57
Thread-safe type-erased handle dereference facility for RHI Objects.
Definition Details.hpp:149
Scoped move-only RAII handle wrapper for RHI Objects.
Definition Details.hpp:86
Definition Resource.hpp:211
Definition Resource.hpp:190
Definition Resource.hpp:114
VulkanDevice const & mDevice
Definition Resource.hpp:116
vk::raii::AccelerationStructureKHR mAS
Definition Resource.hpp:117
auto & GetVkAccelerationStructure()
Definition Resource.hpp:123
auto & GetVkBuffer() const
Definition Resource.hpp:122
vk::DeviceAddress GetVkAccelerationStructureAddress() const
Definition Resource.cpp:305
VulkanBuffer * mBuffer
Definition Resource.hpp:118
void DebugSetObjectName(const char *name) override
Definition Resource.cpp:309
Definition Resource.hpp:26
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:135
VmaAllocation mAllocation
Definition Resource.hpp:29
RHIBufferScopedHandle< RHIBuffer > CreateAliasedBuffer(RHIBufferDesc const &desc, size_t offset) override
Definition Resource.cpp:243
void DebugSetObjectName(const char *name) override
Definition Resource.cpp:255
~VulkanBuffer() override
Definition Resource.cpp:105
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:121
RHIObjectPool< VulkanBuffer > mAliases
Definition Resource.hpp:34
RHIBuffer * GetAliasedBuffer(Handle handle) const override
Definition Resource.cpp:252
vk::DeviceAddress GetBufferAddress() const
Definition Resource.cpp:140
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:127
const bool mShared
Definition Resource.hpp:38
void DestroyAliasedBuffer(Handle handle) override
Definition Resource.cpp:253
Definition Device.hpp:104
Definition Resource.hpp:97
vk::raii::ImageView mView
Definition Resource.hpp:99
void DebugSetObjectName(const char *name) override
Definition Resource.cpp:283
RHITexture * GetTexture() const override
Definition Resource.hpp:105
auto const & GetImage() const
Definition Resource.hpp:108
VulkanTexture & mImage
Definition Resource.hpp:100
auto const & GetVkImageView() const
Definition Resource.hpp:107
Definition Resource.hpp:62
RHITextureView * GetImageView(Handle handle) const override
Definition Resource.cpp:235
RHIObjectPool< VulkanTextureView > mViews
Definition Resource.hpp:70
RHITextureScopedHandle< RHITextureView > CreateTextureView(RHITextureViewDesc const &desc) override
Definition Resource.cpp:193
RHIObjectPool< VulkanTexture > mAliases
Definition Resource.hpp:69
VmaAllocation mAllocation
Definition Resource.hpp:65
auto & GetVkImage() const
Definition Resource.hpp:81
vk::raii::Image mImage
Definition Resource.hpp:67
void DestroyAliasedTexture(Handle handle) override
Definition Resource.cpp:273
void DebugSetObjectName(const char *name) override
Definition Resource.cpp:275
RHITexture * GetAliasedTexture(Handle handle) const override
Definition Resource.cpp:272
RHITextureScopedHandle< RHITexture > CreateAliasedTexture(RHITextureDesc const &desc, size_t offset) override
Definition Resource.cpp:263
~VulkanTexture() override
Definition Resource.cpp:179
void DestroyImageView(Handle handle) override
Definition Resource.cpp:236
VulkanDevice const & mDevice
Definition Resource.hpp:64
const bool mShared
Definition Resource.hpp:74
auto const & GetDevice() const
Definition Resource.hpp:93
T * Construct(Allocator *resource, Args &&...args)
Convenience placement new with object of type T using a Foundation::Core::Allocator.
Definition Allocator.hpp:149
Low-level Rendering Hardware Interface (RHI) abstractions.
Definition Application.hpp:4
vk::AccelerationStructureBuildRangeInfoKHR vkAccelerationBuildRangeInfoFromRHI(RHIAccelerationStructureBuildRangeInfo const &desc)
Definition Resource.cpp:386
vk::AccelerationStructureBuildGeometryInfoKHR vkAccelerationBuildGeoInfoFromRHI(RHIAccelerationStructureBuildDesc const &desc, Vector< vk::AccelerationStructureGeometryKHR > &geometries, Vector< uint32_t > &primitiveCounts)
Definition Resource.cpp:328
VmaAllocationCreateFlags vmaAllocationFlagsFromRHIResourceHostAccess(RHIResourceHostAccess access)
Definition Resource.hpp:9
vk::AccelerationStructureGeometryTrianglesDataKHR vkAccelerationTriangleDataFromRHI(RHIAccelerationStructureGeometryTriangleData const &desc)
Definition Resource.cpp:312
uintptr_t Handle
Definition Details.hpp:8
RHIResourceHostAccess
Definition Common.hpp:177
Definition Resource.hpp:229
Definition Resource.hpp:28
Definition Resource.hpp:116
Definition Resource.hpp:184