3#include <vk_mem_alloc.h>
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
138 vk::AccelerationStructureBuildRangeInfoKHR
Definition Resource.hpp:332
Definition Resource.hpp:57
Thread-safe type-erased handle dereference facility for RHI Objects.
Definition Details.hpp:148
Scoped move-only RAII handle wrapper for RHI Objects.
Definition Details.hpp:86
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:329
VulkanBuffer * mBuffer
Definition Resource.hpp:120
vk::DeviceAddress mASAddress
Definition Resource.hpp:121
void DebugSetObjectName(const char *name) override
Definition Resource.cpp:333
Definition Resource.hpp:26
size_t GetAllocationSize() const override
Definition Resource.cpp:143
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:137
VmaAllocation mAllocation
Definition Resource.hpp:29
RHIBufferScopedHandle< RHIBuffer > CreateAliasedBuffer(RHIBufferDesc const &desc, size_t offset) override
Definition Resource.cpp:262
void DebugSetObjectName(const char *name) override
Definition Resource.cpp:276
~VulkanBuffer() override
Definition Resource.cpp:107
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:123
RHIObjectPool< VulkanBuffer > mAliases
Definition Resource.hpp:34
RHIBuffer * GetAliasedBuffer(Handle handle) const override
Definition Resource.cpp:273
vk::DeviceAddress GetBufferAddress() const
Definition Resource.cpp:151
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:129
const bool mShared
Definition Resource.hpp:38
void DestroyAliasedBuffer(Handle handle) override
Definition Resource.cpp:274
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:306
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:203
RHITextureView * GetImageView(Handle handle) const override
Definition Resource.cpp:254
RHIObjectPool< VulkanTextureView > mViews
Definition Resource.hpp:71
RHITextureScopedHandle< RHITextureView > CreateTextureView(RHITextureViewDesc const &desc) override
Definition Resource.cpp:212
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:296
void DebugSetObjectName(const char *name) override
Definition Resource.cpp:298
RHITexture * GetAliasedTexture(Handle handle) const override
Definition Resource.cpp:295
RHITextureScopedHandle< RHITexture > CreateAliasedTexture(RHITextureDesc const &desc, size_t offset) override
Definition Resource.cpp:284
~VulkanTexture() override
Definition Resource.cpp:190
void DestroyImageView(Handle handle) override
Definition Resource.cpp:255
VulkanDevice const & mDevice
Definition Resource.hpp:65
const bool mShared
Definition Resource.hpp:75
auto const & GetDevice() const
Definition Resource.hpp:95
T * Construct(Allocator *resource, Args &&...args)
Convenience placement new with object of type T using a Foundation::Core::Allocator.
Definition Allocator.hpp:153
Low-level Rendering Hardware Interface (RHI) abstractions.
Definition Application.hpp:4
vk::AccelerationStructureBuildRangeInfoKHR vkAccelerationBuildRangeInfoFromRHI(RHIAccelerationStructureBuildRangeInfo const &desc)
Definition Resource.cpp:438
vk::AccelerationStructureBuildGeometryInfoKHR vkAccelerationBuildGeoInfoFromRHI(RHIAccelerationStructureBuildDesc const &desc, Vector< vk::AccelerationStructureGeometryKHR > &geometries, Vector< uint32_t > &primitiveCounts)
Definition Resource.cpp:372
VmaAllocationCreateFlags vmaAllocationFlagsFromRHIResourceHostAccess(RHIResourceHostAccess access)
Definition Resource.hpp:9
vk::AccelerationStructureGeometryTrianglesDataKHR vkAccelerationTriangleDataFromRHI(RHIAccelerationStructureGeometryTriangleData const &desc)
Definition Resource.cpp:341
uintptr_t Handle
Definition Details.hpp:8
vk::AccelerationStructureGeometryAabbsDataKHR vkAccelerationAABBDataFromRHI(RHIAccelerationStructureGeometryAABBData const &desc)
Definition Resource.cpp:357
RHIResourceHostAccess
Definition Common.hpp:233
Definition Resource.hpp:256
Definition Resource.hpp:28
Definition Resource.hpp:142
Definition Resource.hpp:210