3#include <vk_mem_alloc.h>
40 void Flush(
size_t offset,
size_t size)
override;
41 void Unmap()
override;
50 class VulkanTextureView;
85 vk::raii::ImageView
mView{
nullptr };
102 vk::raii::AccelerationStructureKHR
mAS{
nullptr};
Definition Resource.hpp:232
Definition Resource.hpp:48
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:188
Definition Resource.hpp:169
Definition Resource.hpp:99
VulkanDevice const & mDevice
Definition Resource.hpp:101
vk::raii::AccelerationStructureKHR mAS
Definition Resource.hpp:102
auto const & GetVkAS() const
Definition Resource.hpp:106
void DebugSetObjectName(const char *name) override
Definition Resource.cpp:287
Definition Resource.hpp:19
vk::raii::Buffer mBuffer
Definition Resource.hpp:24
void Unmap() override
Releases or unmaps a previously mapped resource. Implementations MUST guarantee that Unmap() is calle...
Definition Resource.cpp:126
VmaAllocation mAllocation
Definition Resource.hpp:22
RHIBufferScopedHandle< RHIBuffer > CreateAliasedBuffer(RHIBufferDesc const &desc, size_t offset) override
Definition Resource.cpp:220
void DebugSetObjectName(const char *name) override
Definition Resource.cpp:238
~VulkanBuffer() override
Definition Resource.cpp:101
VulkanDevice const & mDevice
Definition Resource.hpp:21
void * Map() override
Maps the entire buffer to the host memory. Alignment is implementation-defined. Implementations MUST ...
Definition Resource.cpp:114
RHIObjectPool< VulkanBuffer > mAliases
Definition Resource.hpp:27
RHIBuffer * GetAliasedBuffer(Handle handle) const override
Definition Resource.cpp:231
void * mMapped
Definition Resource.hpp:25
auto & GetVkBuffer()
Definition Resource.hpp:37
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:119
const bool mShared
Definition Resource.hpp:30
void DestroyAliasedBuffer(Handle handle) override
Definition Resource.cpp:234
Definition Resource.hpp:83
vk::raii::ImageView mView
Definition Resource.hpp:85
void DebugSetObjectName(const char *name) override
Definition Resource.cpp:274
RHITexture * GetTexture() const override
Definition Resource.hpp:90
auto const & GetImage() const
Definition Resource.hpp:93
VulkanTexture & mImage
Definition Resource.hpp:86
auto const & GetVkImageView() const
Definition Resource.hpp:92
Definition Resource.hpp:51
RHITextureView * GetImageView(Handle handle) const override
Definition Resource.cpp:209
RHIObjectPool< VulkanTextureView > mViews
Definition Resource.hpp:59
RHITextureScopedHandle< RHITextureView > CreateTextureView(RHITextureViewDesc const &desc) override
Definition Resource.cpp:178
RHIObjectPool< VulkanTexture > mAliases
Definition Resource.hpp:58
VmaAllocation mAllocation
Definition Resource.hpp:54
auto & GetVkImage() const
Definition Resource.hpp:68
vk::raii::Image mImage
Definition Resource.hpp:56
void DestroyAliasedTexture(Handle handle) override
Definition Resource.cpp:261
void DebugSetObjectName(const char *name) override
Definition Resource.cpp:265
RHITexture * GetAliasedTexture(Handle handle) const override
Definition Resource.cpp:258
RHITextureScopedHandle< RHITexture > CreateAliasedTexture(RHITextureDesc const &desc, size_t offset) override
Definition Resource.cpp:247
~VulkanTexture() override
Definition Resource.cpp:167
void DestroyImageView(Handle handle) override
Definition Resource.cpp:212
VulkanDevice const & mDevice
Definition Resource.hpp:53
const bool mShared
Definition Resource.hpp:62
auto const & GetDevice() const
Definition Resource.hpp:80
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
VmaAllocationCreateFlags vmaAllocationFlagsFromRHIResourceHostAccess(RHIResourceHostAccess access)
Definition Resource.hpp:7
uintptr_t Handle
Definition Details.hpp:8
RHIResourceHostAccess
Definition Common.hpp:167
Definition Resource.hpp:201
Definition Resource.hpp:24
Definition Resource.hpp:103
Definition Resource.hpp:164