Foundation
Loading...
Searching...
No Matches
Classes | Typedefs | Functions | Variables
Foundation::RenderCore Namespace Reference

Core functionalities for rendering, including the Frame Graph implementation. More...

Classes

class  BindlessPool
 
struct  ExecuteResources
 Helper class containing runtime resources either imported, or created by the Renderer. More...
 
struct  FRecordDefault
 Default "no-op" functor for Record() More...
 
struct  FSetupDefault
 Default "no-op" functor for Setup() More...
 
class  ImmediateContext
 Single persistent command list for immediate submissions. More...
 
struct  ImmediateReadback
 Single persistent staging buffer + immediate context for quick, batchable readbacks. More...
 
struct  ImmediateSubmitDesc
 
struct  ImmediateUpload
 Persistent staging lanes + immediate contexts for batchable uploads. More...
 
struct  LambdaPass
 Functional wrapper for a render pass. More...
 
class  Presenter
 
class  Renderer
 Renderer implementing a Frame Graph system with automatic resource tracking and synchronization. More...
 
struct  RendererDesc
 Parameters for Renderer creation. More...
 
class  RenderPass
 Interface for a render pass. More...
 
class  Shader
 Runtime reflection data for a shader module. More...
 
struct  TrackedPass
 Internal tracking information for a render pass in the frame graph. More...
 
struct  TrackedResource
 Internal tracking information for a resource in the frame graph. More...
 

Typedefs

using PassHandle = Handle
 
using ResourceHandle = Handle
 
using ResourceDefinition = Variant< RHIBufferDesc, RHITextureDesc, RHIBuffer *, RHITexture *, RHIAccelerationStructure * >
 

Functions

RHIDeviceScopedHandle< RHIBufferImmediateCreateBuffer (RHIDevice *device, RHIBufferDesc const &desc, void const *data, size_t bytes)
 Creates a buffer and uploads data into it in a single shot.
 
RHIDeviceScopedHandle< RHITextureImmediateCreateTexture (RHIDevice *device, RHITextureDesc const &desc, void const *data, size_t bytes, RHITextureLayout finalLayout=RHITextureLayout::TransferDst)
 Creates a texture and uploads data (base mip) into it in a single shot.
 
 ENUM_NAME (Undefined)
 
 ENUM_NAME (Setup)
 
 ENUM_NAME (PostSetup)
 
 ENUM_NAME (Execute)
 
 ENUM_NAME_CONV_END ()
 

Variables

constexpr size_t kMaxRenderPasses = 1024
 
constexpr size_t kMaxCommandListsPerThread = kMaxRenderPasses
 
constexpr size_t kExecuteArenaSize = 16 * (1 << 20)
 
const RHIPipelineStage kComputeStagesMask
 
const RHIResourceAccessBits kAllShaderWrites
 
const RHIResourceAccessBits kAllShaderReads
 
const size_t kTextureAspectCount = 3
 

Detailed Description

Core functionalities for rendering, including the Frame Graph implementation.

Typedef Documentation

◆ PassHandle

◆ ResourceDefinition

◆ ResourceHandle

Function Documentation

◆ ENUM_NAME() [1/4]

Foundation::RenderCore::ENUM_NAME ( Execute  )

◆ ENUM_NAME() [2/4]

Foundation::RenderCore::ENUM_NAME ( PostSetup  )

◆ ENUM_NAME() [3/4]

Foundation::RenderCore::ENUM_NAME ( Setup  )

◆ ENUM_NAME() [4/4]

Foundation::RenderCore::ENUM_NAME ( Undefined  )

◆ ENUM_NAME_CONV_END()

Foundation::RenderCore::ENUM_NAME_CONV_END ( )

◆ ImmediateCreateBuffer()

RHIDeviceScopedHandle< RHIBuffer > Foundation::RenderCore::ImmediateCreateBuffer ( RHIDevice device,
RHIBufferDesc const &  desc,
void const *  data,
size_t  bytes 
)

Creates a buffer and uploads data into it in a single shot.

Returns
The created buffer. No layout transition is performed (none is meaningful for buffers).

◆ ImmediateCreateTexture()

RHIDeviceScopedHandle< RHITexture > Foundation::RenderCore::ImmediateCreateTexture ( RHIDevice device,
RHITextureDesc const &  desc,
void const *  data,
size_t  bytes,
RHITextureLayout  finalLayout = RHITextureLayout::TransferDst 
)

Creates a texture and uploads data (base mip) into it in a single shot.

Parameters
finalLayoutLayout to leave the texture in after the upload. Defaults to TransferDst (matching ImmediateUpload::Upload); pass ShaderReadOnly for a texture you intend to sample.
Returns
The created texture.

Variable Documentation

◆ kAllShaderReads

const RHIResourceAccessBits Foundation::RenderCore::kAllShaderReads
Initial value:
= RHIResourceAccessBits::ShaderRead |
RHIResourceAccessBits::RenderTargetRead | RHIResourceAccessBits::DepthStencilRead |
RHIResourceAccessBits::UniformRead | RHIResourceAccessBits::TransferRead | RHIResourceAccessBits::HostRead

◆ kAllShaderWrites

const RHIResourceAccessBits Foundation::RenderCore::kAllShaderWrites
Initial value:
= RHIResourceAccessBits::ShaderWrite |
RHIResourceAccessBits::RenderTargetWrite | RHIResourceAccessBits::DepthStencilWrite |
RHIResourceAccessBits::TransferWrite | RHIResourceAccessBits::HostWrite

◆ kComputeStagesMask

const RHIPipelineStage Foundation::RenderCore::kComputeStagesMask
Initial value:
= RHIPipelineStageBits::FragmentShader |
RHIPipelineStageBits::VertexShader | RHIPipelineStageBits::MeshShader | RHIPipelineStageBits::RayTracingShader |
RHIPipelineStageBits::AllGraphics

◆ kExecuteArenaSize

constexpr size_t Foundation::RenderCore::kExecuteArenaSize = 16 * (1 << 20)
constexpr

◆ kMaxCommandListsPerThread

constexpr size_t Foundation::RenderCore::kMaxCommandListsPerThread = kMaxRenderPasses
constexpr

◆ kMaxRenderPasses

constexpr size_t Foundation::RenderCore::kMaxRenderPasses = 1024
constexpr

◆ kTextureAspectCount

const size_t Foundation::RenderCore::kTextureAspectCount = 3