#include "../../../Primitives/interface/Object.h"#include "../../../Primitives/interface/FlagEnum.h"#include "GraphicsTypes.h"#include "Constants.h"#include "Buffer.h"#include "InputLayout.h"#include "Shader.h"#include "Texture.h"#include "Sampler.h"#include "ResourceMapping.h"#include "TextureView.h"#include "BufferView.h"#include "DepthStencilState.h"#include "BlendState.h"#include "PipelineState.h"#include "Fence.h"#include "Query.h"#include "RenderPass.h"#include "Framebuffer.h"#include "CommandList.h"#include "SwapChain.h"#include "BottomLevelAS.h"#include "TopLevelAS.h"#include "ShaderBindingTable.h"#include "DeviceMemory.h"#include "CommandQueue.h"#include "../../../Primitives/interface/DefineInterfaceHelperMacros.h"#include "../../../Primitives/interface/UndefInterfaceHelperMacros.h"Classes | |
| struct | Diligent::DeviceContextDesc |
| Device context description. More... | |
| struct | Diligent::DrawAttribs |
| Defines the draw command attributes. More... | |
| struct | Diligent::DrawIndexedAttribs |
| Defines the indexed draw command attributes. More... | |
| struct | Diligent::DrawIndirectAttribs |
| Defines the indirect draw command attributes. More... | |
| struct | Diligent::DrawIndexedIndirectAttribs |
| Defines the indexed indirect draw command attributes. More... | |
| struct | Diligent::DrawMeshAttribs |
| Defines the mesh draw command attributes. More... | |
| struct | Diligent::DrawMeshIndirectAttribs |
| Defines the mesh indirect draw command attributes. More... | |
| struct | Diligent::MultiDrawItem |
| Multi-draw command item. More... | |
| struct | Diligent::MultiDrawAttribs |
| MultiDraw command attributes. More... | |
| struct | Diligent::MultiDrawIndexedItem |
| Multi-draw indexed command item. More... | |
| struct | Diligent::MultiDrawIndexedAttribs |
| MultiDraw command attributes. More... | |
| struct | Diligent::DispatchComputeAttribs |
| Describes dispatch command arguments. More... | |
| struct | Diligent::DispatchComputeIndirectAttribs |
| Describes dispatch command arguments. More... | |
| struct | Diligent::DispatchTileAttribs |
| Describes tile dispatch command arguments. More... | |
| struct | Diligent::ResolveTextureSubresourceAttribs |
| Describes multi-sampled texture resolve command arguments. More... | |
| struct | Diligent::Viewport |
| Describes the viewport. More... | |
| struct | Diligent::Rect |
| Describes the rectangle. More... | |
| struct | Diligent::CopyTextureAttribs |
| Defines copy texture command attributes. More... | |
| struct | Diligent::SetRenderTargetsAttribs |
| SetRenderTargetsExt command attributes. More... | |
| struct | Diligent::BeginRenderPassAttribs |
| BeginRenderPass command attributes. More... | |
| struct | Diligent::BLASBuildTriangleData |
| Triangle geometry data description. More... | |
| struct | Diligent::BLASBuildBoundingBoxData |
| AABB geometry data description. More... | |
| struct | Diligent::BuildBLASAttribs |
| This structure is used by IDeviceContext::BuildBLAS(). More... | |
| struct | Diligent::InstanceMatrix |
| Row-major 4x3 matrix. More... | |
| struct | Diligent::TLASBuildInstanceData |
| This structure is used by BuildTLASAttribs. More... | |
| struct | Diligent::BuildTLASAttribs |
| This structure is used by IDeviceContext::BuildTLAS(). More... | |
| struct | Diligent::CopyBLASAttribs |
| This structure is used by IDeviceContext::CopyBLAS(). More... | |
| struct | Diligent::CopyTLASAttribs |
| This structure is used by IDeviceContext::CopyTLAS(). More... | |
| struct | Diligent::WriteBLASCompactedSizeAttribs |
| This structure is used by IDeviceContext::WriteBLASCompactedSize(). More... | |
| struct | Diligent::WriteTLASCompactedSizeAttribs |
| This structure is used by IDeviceContext::WriteTLASCompactedSize(). More... | |
| struct | Diligent::TraceRaysAttribs |
| This structure is used by IDeviceContext::TraceRays(). More... | |
| struct | Diligent::TraceRaysIndirectAttribs |
| This structure is used by IDeviceContext::TraceRaysIndirect(). More... | |
| struct | Diligent::UpdateIndirectRTBufferAttribs |
| This structure is used by IDeviceContext::UpdateSBT(). More... | |
| struct | Diligent::SparseBufferMemoryBindRange |
| Defines the sparse buffer memory binding range. More... | |
| struct | Diligent::SparseBufferMemoryBindInfo |
| Defines the sparse buffer memory binding information. More... | |
| struct | Diligent::SparseTextureMemoryBindRange |
| Defines the sparse texture memory binding range. More... | |
| struct | Diligent::SparseTextureMemoryBindInfo |
| Sparse texture memory binding information. More... | |
| struct | Diligent::BindSparseResourceMemoryAttribs |
| Attributes of the IDeviceContext::BindSparseResourceMemory() command. More... | |
| struct | Diligent::StateTransitionDesc |
| Resource state transition barrier description. More... | |
| struct | Diligent::DeviceContextCommandCounters |
| Device context command counters. More... | |
| struct | Diligent::DeviceContextStats |
| Device context statistics. More... | |
| struct | Diligent.IDeviceContext |
| Device context interface. More... | |
Namespaces | |
| namespace | Diligent |
| Graphics engine namespace. | |
Macros | |
| #define | DILIGENT_TLAS_INSTANCE_OFFSET_AUTO 0xFFFFFFFFU |
| #define | DILIGENT_TLAS_INSTANCE_DATA_SIZE 64 |
| #define | DILIGENT_REMAINING_MIP_LEVELS 0xFFFFFFFFU |
| Special constant for all remaining mipmap levels. | |
| #define | DILIGENT_REMAINING_ARRAY_SLICES 0xFFFFFFFFU |
| Special constant for all remaining array slices. | |
Definition of the Diligent::IDeviceContext interface and related data structures
| #define DILIGENT_TLAS_INSTANCE_DATA_SIZE 64 |
Top-level AS instance size in bytes in GPU side. Used to calculate size of BuildTLASAttribs::pInstanceBuffer.
| #define DILIGENT_TLAS_INSTANCE_OFFSET_AUTO 0xFFFFFFFFU |
Can be used to calculate the TLASBuildInstanceData::ContributionToHitGroupIndex depending on instance count, geometry count in each instance (in TLASBuildInstanceData::pBLAS) and shader binding mode in BuildTLASAttribs::BindingMode.
Example: InstanceOffset = BaseContributionToHitGroupIndex; For each instance in TLAS if (Instance.ContributionToHitGroupIndex == TLAS_INSTANCE_OFFSET_AUTO) Instance.ContributionToHitGroupIndex = InstanceOffset; if (BindingMode == HIT_GROUP_BINDING_MODE_PER_GEOMETRY) InstanceOffset += Instance.pBLAS->GeometryCount() * HitGroupStride; if (BindingMode == HIT_GROUP_BINDING_MODE_PER_INSTANCE) InstanceOffset += HitGroupStride;