71 [[nodiscard]]
bool IsValid() const noexcept {
return mOwner !=
nullptr; }
80 char*
Upload(RHITexture* dst,
size_t dataSize, RHITextureSubresourceLayer dstLayer,
RHIOffset3D dstOffset,
82 bool Align(uint32_t alignment);
83 void End(RHIDeviceFence* completionFence =
nullptr);
84 void End(ImmediateSubmitDesc
const& desc);
97 [[nodiscard]]
bool WaitTimeline(
size_t value,
size_t timeout)
const;
139 staging(device->CreateBuffer({.resource =
141 .heap = RHIDeviceHeapType::Readback,
142 .hostAccess = RHIResourceHostAccess::ReadWrite,
147 .usage = RHIBufferUsageBits::TransferDestination,
166 char*
Readback(RHIBuffer* src,
size_t dataSize,
size_t srcOffset = 0);
173 char*
Readback(RHITexture* src,
size_t dataSize,
174 RHITextureSubresourceLayer srcLayer = {.aspect = RHITextureAspectFlagBits::Color},
177 char*
Readback(RHITexture* src,
size_t dataSize, RHITextureSubresourceLayer srcLayer,
RHIOffset3D srcOffset,
180 bool Align(uint32_t alignment);
185 void End(RHIDeviceFence* completionFence =
nullptr);
186 void End(ImmediateSubmitDesc
const& desc);
196 void const* data,
size_t bytes);
205 void const* data,
size_t bytes,
Definition Resource.hpp:57
Definition Command.hpp:42
Definition Device.hpp:246
Scoped move-only RAII handle wrapper for RHI Objects.
Definition Details.hpp:85
Definition Resource.hpp:216
Single persistent command list for immediate submissions.
Definition ImmediateContext.hpp:25
RHICommandList * operator->()
Definition ImmediateContext.hpp:36
RHIDeviceQueue * mQueue
Definition ImmediateContext.hpp:27
void WaitIdle()
Definition ImmediateContext.cpp:76
ImmediateContext(RHIDevice *device)
Definition ImmediateContext.hpp:33
RHIDeviceScopedHandle< RHICommandPool > mCommandPool
Definition ImmediateContext.hpp:29
RHICommandPoolScopedHandle< RHICommandList > mCommandList
Definition ImmediateContext.hpp:30
void Submit(RHIDeviceFence *completionFence=nullptr)
Definition ImmediateContext.cpp:63
RHICommandList * Get() const
Definition ImmediateContext.hpp:35
RHIDevice *const mDevice
Definition ImmediateContext.hpp:26
std::vector< T, StlAllocator< T > > Vector
std::vector with explicit Foundation::Core::StlAllocator constructor
Definition Container.hpp:149
std::span< T > Span
Alias for std::span
Definition Container.hpp:62
glm::vec< 2, int32_t > RHIOffset2D
Definition Common.hpp:13
glm::vec< 3, int32_t > RHIOffset3D
Definition Common.hpp:14
RHITextureLayout
Definition Common.hpp:218
glm::vec< 3, uint32_t > RHIExtent3D
Definition Common.hpp:11
RHIDeviceQueueType
Definition Common.hpp:179
Graphics
Definition Common.hpp:195
glm::vec< 2, uint32_t > RHIExtent2D
Definition Common.hpp:10
Core functionalities for rendering, including the Frame Graph implementation.
Definition Bindless.cpp:2
RHIDeviceScopedHandle< RHIBuffer > ImmediateCreateBuffer(RHIDevice *device, RHIBufferDesc const &desc, void const *data, size_t bytes)
Creates a buffer and uploads data into it in a single shot.
Definition ImmediateContext.cpp:5
RHIDeviceScopedHandle< RHITexture > ImmediateCreateTexture(RHIDevice *device, RHITextureDesc const &desc, void const *data, size_t bytes, RHITextureLayout finalLayout)
Creates a texture and uploads data (base mip) into it in a single shot.
Definition ImmediateContext.cpp:18
Definition Resource.hpp:160
RHITextureAspectFlag aspect
Definition Resource.hpp:161