Go to the documentation of this file.
35 #include "../../../Primitives/interface/Object.h"
36 #include "../../../Primitives/interface/FlagEnum.h"
65 {0xdc92711b, 0xa1be, 0x4319, {0xb2, 0xbd, 0xc6, 0x62, 0xd1, 0xcc, 0x19, 0xe4}};
190 #if DILIGENT_CPP_INTERFACE
208 Uint32 _StartVertexLocation = 0,
209 Uint32 _FirstInstanceLocation = 0)noexcept :
210 NumVertices {_NumVertices },
212 NumInstances {_NumInstances },
213 StartVertexLocation {_StartVertexLocation },
214 FirstInstanceLocation{_FirstInstanceLocation}
252 #if DILIGENT_CPP_INTERFACE
272 Uint32 _FirstIndexLocation = 0,
274 Uint32 _FirstInstanceLocation = 0)noexcept :
275 NumIndices {_NumIndices },
276 IndexType {_IndexType },
278 NumInstances {_NumInstances },
279 FirstIndexLocation {_FirstIndexLocation },
280 BaseVertex {_BaseVertex },
281 FirstInstanceLocation{_FirstInstanceLocation}
303 #if DILIGENT_CPP_INTERFACE
317 Uint32 _IndirectDrawArgsOffset = 0)noexcept :
319 IndirectAttribsBufferStateTransitionMode{_IndirectAttribsBufferStateTransitionMode},
320 IndirectDrawArgsOffset {_IndirectDrawArgsOffset }
346 #if DILIGENT_CPP_INTERFACE
362 Uint32 _IndirectDrawArgsOffset = 0)noexcept :
363 IndexType {_IndexType },
365 IndirectAttribsBufferStateTransitionMode{_IndirectAttribsBufferStateTransitionMode},
366 IndirectDrawArgsOffset {_IndirectDrawArgsOffset }
384 #if DILIGENT_CPP_INTERFACE
391 ThreadGroupCount {_ThreadGroupCount},
413 #if DILIGENT_CPP_INTERFACE
427 Uint32 _IndirectDrawArgsOffset = 0)noexcept :
429 IndirectAttribsBufferStateTransitionMode{_IndirectAttribsBufferStateTransitionMode},
430 IndirectDrawArgsOffset {_IndirectDrawArgsOffset }
460 #if DILIGENT_CPP_INTERFACE
466 Uint32 _IndirectDrawArgsOffset,
468 Uint32 _CountBufferOffset)noexcept :
470 IndirectAttribsBufferStateTransitionMode{_IndirectAttribsBufferStateTransitionMode},
471 IndirectDrawArgsOffset {_IndirectDrawArgsOffset },
472 CountBufferStateTransitionMode {_CountBufferStateTransitionMode },
473 CountBufferOffset {_CountBufferOffset }
506 #if DILIGENT_CPP_INTERFACE
511 ThreadGroupCountX {GroupsX},
512 ThreadGroupCountY {GroupsY},
513 ThreadGroupCountZ {GroupsZ}
531 #if DILIGENT_CPP_INTERFACE
538 IndirectAttribsBufferStateTransitionMode{StateTransitionMode},
539 DispatchArgsByteOffset {Offset }
616 #if DILIGENT_CPP_INTERFACE
621 TopLeftX {_TopLeftX},
622 TopLeftY {_TopLeftY},
625 MinDepth {_MinDepth},
649 #if DILIGENT_CPP_INTERFACE
662 return right > left && bottom > top;
711 #if DILIGENT_CPP_INTERFACE
718 pSrcTexture {_pSrcTexture },
719 SrcTextureTransitionMode{_SrcTextureTransitionMode},
720 pDstTexture {_pDstTexture },
721 DstTextureTransitionMode{_DstTextureTransitionMode}
884 #if DILIGENT_CPP_INTERFACE
917 #if DILIGENT_CPP_INTERFACE
978 #if DILIGENT_CPP_INTERFACE
995 static const Uint32 TLAS_INSTANCE_OFFSET_AUTO = ~0u;
1007 #if DILIGENT_CPP_INTERFACE
1010 data{{1.0f, 0.0f, 0.0f, 0.0f},
1011 {0.0f, 1.0f, 0.0f, 0.0f},
1012 {0.0f, 0.0f, 1.0f, 0.0f}}
1029 data[0][0] = pMatrix3x3[0]; data[1][0] = pMatrix3x3[1]; data[2][0] = pMatrix3x3[2];
1030 data[0][1] = pMatrix3x3[3]; data[1][1] = pMatrix3x3[4]; data[2][1] = pMatrix3x3[5];
1031 data[0][2] = pMatrix3x3[6]; data[1][2] = pMatrix3x3[7]; data[2][2] = pMatrix3x3[8];
1069 #if DILIGENT_CPP_INTERFACE
1078 static const Uint32 TLAS_INSTANCE_DATA_SIZE = 64;
1151 #if DILIGENT_CPP_INTERFACE
1180 #if DILIGENT_CPP_INTERFACE
1209 #if DILIGENT_CPP_INTERFACE
1234 #if DILIGENT_CPP_INTERFACE
1259 #if DILIGENT_CPP_INTERFACE
1276 #if DILIGENT_CPP_INTERFACE
1295 #if DILIGENT_CPP_INTERFACE
1314 #if DILIGENT_CPP_INTERFACE
1318 Uint32 _AttribsBufferOffset = 0,
1320 pAttribsBuffer {_pAttribsBuffer },
1321 AttribsBufferOffset{_AttribsBufferOffset},
1322 TransitionMode {_TransitionMode }
1329 static const Uint32 REMAINING_MIP_LEVELS = ~0u;
1330 static const Uint32 REMAINING_ARRAY_SLICES = ~0u;
1372 #if DILIGENT_CPP_INTERFACE
1378 Uint32 _FirstMipLevel = 0,
1379 Uint32 _MipLevelsCount = REMAINING_MIP_LEVELS,
1380 Uint32 _FirstArraySlice = 0,
1381 Uint32 _ArraySliceCount = REMAINING_ARRAY_SLICES,
1383 bool _UpdateState =
false)noexcept :
1385 FirstMipLevel {_FirstMipLevel },
1386 MipLevelsCount {_MipLevelsCount },
1388 ArraySliceCount {_ArraySliceCount},
1389 OldState {_OldState },
1390 NewState {_NewState },
1391 TransitionType {_TransitionType },
1392 UpdateResourceState {_UpdateState }
1398 bool _UpdateState)noexcept :
1405 REMAINING_MIP_LEVELS,
1407 REMAINING_ARRAY_SLICES,
1416 bool _UpdateState)noexcept :
1417 pResource {_pBuffer },
1418 OldState {_OldState },
1419 NewState {_NewState },
1420 UpdateResourceState {_UpdateState}
1426 bool _UpdateState)noexcept :
1427 pResource {_pBLAS },
1428 OldState {_OldState },
1429 NewState {_NewState },
1430 UpdateResourceState {_UpdateState}
1436 bool _UpdateState)noexcept :
1437 pResource {_pTLAS },
1438 OldState {_OldState },
1439 NewState {_NewState },
1440 UpdateResourceState {_UpdateState}
1447 #define DILIGENT_INTERFACE_NAME IDeviceContext
1448 #include "../../../Primitives/interface/DefineInterfaceHelperMacros.h"
1450 #define IDeviceContextInclusiveMethods \
1451 IObjectInclusiveMethods; \
1452 IDeviceContextMethods DeviceContext
2005 bool FlushContext)
PURE;
2176 const Box* pMapRegion,
2370 #include "../../../Primitives/interface/UndefInterfaceHelperMacros.h"
2372 #if DILIGENT_C_INTERFACE
2376 # define IDeviceContext_SetPipelineState(This, ...) CALL_IFACE_METHOD(DeviceContext, SetPipelineState, This, __VA_ARGS__)
2377 # define IDeviceContext_TransitionShaderResources(This, ...) CALL_IFACE_METHOD(DeviceContext, TransitionShaderResources, This, __VA_ARGS__)
2378 # define IDeviceContext_CommitShaderResources(This, ...) CALL_IFACE_METHOD(DeviceContext, CommitShaderResources, This, __VA_ARGS__)
2379 # define IDeviceContext_SetStencilRef(This, ...) CALL_IFACE_METHOD(DeviceContext, SetStencilRef, This, __VA_ARGS__)
2380 # define IDeviceContext_SetBlendFactors(This, ...) CALL_IFACE_METHOD(DeviceContext, SetBlendFactors, This, __VA_ARGS__)
2381 # define IDeviceContext_SetVertexBuffers(This, ...) CALL_IFACE_METHOD(DeviceContext, SetVertexBuffers, This, __VA_ARGS__)
2382 # define IDeviceContext_InvalidateState(This) CALL_IFACE_METHOD(DeviceContext, InvalidateState, This)
2383 # define IDeviceContext_SetIndexBuffer(This, ...) CALL_IFACE_METHOD(DeviceContext, SetIndexBuffer, This, __VA_ARGS__)
2384 # define IDeviceContext_SetViewports(This, ...) CALL_IFACE_METHOD(DeviceContext, SetViewports, This, __VA_ARGS__)
2385 # define IDeviceContext_SetScissorRects(This, ...) CALL_IFACE_METHOD(DeviceContext, SetScissorRects, This, __VA_ARGS__)
2386 # define IDeviceContext_SetRenderTargets(This, ...) CALL_IFACE_METHOD(DeviceContext, SetRenderTargets, This, __VA_ARGS__)
2387 # define IDeviceContext_Draw(This, ...) CALL_IFACE_METHOD(DeviceContext, Draw, This, __VA_ARGS__)
2388 # define IDeviceContext_DrawIndexed(This, ...) CALL_IFACE_METHOD(DeviceContext, DrawIndexed, This, __VA_ARGS__)
2389 # define IDeviceContext_DrawIndirect(This, ...) CALL_IFACE_METHOD(DeviceContext, DrawIndirect, This, __VA_ARGS__)
2390 # define IDeviceContext_DrawIndexedIndirect(This, ...) CALL_IFACE_METHOD(DeviceContext, DrawIndexedIndirect, This, __VA_ARGS__)
2391 # define IDeviceContext_DrawMesh(This, ...) CALL_IFACE_METHOD(DeviceContext, DrawMesh, This, __VA_ARGS__)
2392 # define IDeviceContext_DrawMeshIndirect(This, ...) CALL_IFACE_METHOD(DeviceContext, DrawMeshIndirect, This, __VA_ARGS__)
2393 # define IDeviceContext_DrawMeshIndirectCount(This, ...) CALL_IFACE_METHOD(DeviceContext, DrawMeshIndirectCount, This, __VA_ARGS__)
2394 # define IDeviceContext_DispatchCompute(This, ...) CALL_IFACE_METHOD(DeviceContext, DispatchCompute, This, __VA_ARGS__)
2395 # define IDeviceContext_DispatchComputeIndirect(This, ...) CALL_IFACE_METHOD(DeviceContext, DispatchComputeIndirect, This, __VA_ARGS__)
2396 # define IDeviceContext_ClearDepthStencil(This, ...) CALL_IFACE_METHOD(DeviceContext, ClearDepthStencil, This, __VA_ARGS__)
2397 # define IDeviceContext_ClearRenderTarget(This, ...) CALL_IFACE_METHOD(DeviceContext, ClearRenderTarget, This, __VA_ARGS__)
2398 # define IDeviceContext_FinishCommandList(This, ...) CALL_IFACE_METHOD(DeviceContext, FinishCommandList, This, __VA_ARGS__)
2399 # define IDeviceContext_ExecuteCommandLists(This, ...) CALL_IFACE_METHOD(DeviceContext, ExecuteCommandLists, This, __VA_ARGS__)
2400 # define IDeviceContext_SignalFence(This, ...) CALL_IFACE_METHOD(DeviceContext, SignalFence, This, __VA_ARGS__)
2401 # define IDeviceContext_WaitForFence(This, ...) CALL_IFACE_METHOD(DeviceContext, WaitForFence, This, __VA_ARGS__)
2402 # define IDeviceContext_WaitForIdle(This, ...) CALL_IFACE_METHOD(DeviceContext, WaitForIdle, This, __VA_ARGS__)
2403 # define IDeviceContext_BeginQuery(This, ...) CALL_IFACE_METHOD(DeviceContext, BeginQuery, This, __VA_ARGS__)
2404 # define IDeviceContext_EndQuery(This, ...) CALL_IFACE_METHOD(DeviceContext, EndQuery, This, __VA_ARGS__)
2405 # define IDeviceContext_Flush(This, ...) CALL_IFACE_METHOD(DeviceContext, Flush, This, __VA_ARGS__)
2406 # define IDeviceContext_UpdateBuffer(This, ...) CALL_IFACE_METHOD(DeviceContext, UpdateBuffer, This, __VA_ARGS__)
2407 # define IDeviceContext_CopyBuffer(This, ...) CALL_IFACE_METHOD(DeviceContext, CopyBuffer, This, __VA_ARGS__)
2408 # define IDeviceContext_MapBuffer(This, ...) CALL_IFACE_METHOD(DeviceContext, MapBuffer, This, __VA_ARGS__)
2409 # define IDeviceContext_UnmapBuffer(This, ...) CALL_IFACE_METHOD(DeviceContext, UnmapBuffer, This, __VA_ARGS__)
2410 # define IDeviceContext_UpdateTexture(This, ...) CALL_IFACE_METHOD(DeviceContext, UpdateTexture, This, __VA_ARGS__)
2411 # define IDeviceContext_CopyTexture(This, ...) CALL_IFACE_METHOD(DeviceContext, CopyTexture, This, __VA_ARGS__)
2412 # define IDeviceContext_MapTextureSubresource(This, ...) CALL_IFACE_METHOD(DeviceContext, MapTextureSubresource, This, __VA_ARGS__)
2413 # define IDeviceContext_UnmapTextureSubresource(This, ...) CALL_IFACE_METHOD(DeviceContext, UnmapTextureSubresource, This, __VA_ARGS__)
2414 # define IDeviceContext_GenerateMips(This, ...) CALL_IFACE_METHOD(DeviceContext, GenerateMips, This, __VA_ARGS__)
2415 # define IDeviceContext_FinishFrame(This) CALL_IFACE_METHOD(DeviceContext, FinishFrame, This)
2416 # define IDeviceContext_GetFrameNumber(This) CALL_IFACE_METHOD(DeviceContext, GetFrameNumber, This)
2417 # define IDeviceContext_TransitionResourceStates(This, ...) CALL_IFACE_METHOD(DeviceContext, TransitionResourceStates, This, __VA_ARGS__)
2418 # define IDeviceContext_ResolveTextureSubresource(This, ...) CALL_IFACE_METHOD(DeviceContext, ResolveTextureSubresource, This, __VA_ARGS__)
2419 # define IDeviceContext_BuildBLAS(This, ...) CALL_IFACE_METHOD(DeviceContext, BuildBLAS, This, __VA_ARGS__)
2420 # define IDeviceContext_BuildTLAS(This, ...) CALL_IFACE_METHOD(DeviceContext, BuildTLAS, This, __VA_ARGS__)
2421 # define IDeviceContext_CopyBLAS(This, ...) CALL_IFACE_METHOD(DeviceContext, CopyBLAS, This, __VA_ARGS__)
2422 # define IDeviceContext_CopyTLAS(This, ...) CALL_IFACE_METHOD(DeviceContext, CopyTLAS, This, __VA_ARGS__)
2423 # define IDeviceContext_WriteBLASCompactedSize(This, ...) CALL_IFACE_METHOD(DeviceContext, WriteBLASCompactedSize, This, __VA_ARGS__)
2424 # define IDeviceContext_WriteTLASCompactedSize(This, ...) CALL_IFACE_METHOD(DeviceContext, WriteTLASCompactedSize, This, __VA_ARGS__)
2425 # define IDeviceContext_TraceRays(This, ...) CALL_IFACE_METHOD(DeviceContext, TraceRays, This, __VA_ARGS__)
2426 # define IDeviceContext_TraceRaysIndirect(This, ...) CALL_IFACE_METHOD(DeviceContext, TraceRaysIndirect, This, __VA_ARGS__)
2427 # define IDeviceContext_UpdateSBT(This, ...) CALL_IFACE_METHOD(DeviceContext, UpdateSBT, This, __VA_ARGS__)
MAP_FLAGS
Special map flags.
Definition: GraphicsTypes.h:227
#define DILIGENT_END_INTERFACE
Definition: DefineInterfaceHelperMacros.h:88
@ RAYTRACING_GEOMETRY_FLAGS_LAST
Definition: DeviceContext.h:823
WriteBLASCompactedSizeAttribs() noexcept
Definition: DeviceContext.h:1235
DrawMeshIndirectCountAttribs(DRAW_FLAGS _Flags, RESOURCE_STATE_TRANSITION_MODE _IndirectAttribsBufferStateTransitionMode, Uint32 _IndirectDrawArgsOffset, RESOURCE_STATE_TRANSITION_MODE _CountBufferStateTransitionMode, Uint32 _CountBufferOffset) noexcept
Initializes the structure members with user-specified values.
Definition: DeviceContext.h:464
struct INTERFACE_ID INTERFACE_ID
Definition: InterfaceID.h:54
DispatchComputeAttribs() noexcept
Definition: DeviceContext.h:507
#define VIRTUAL
Definition: DefineInterfaceHelperMacros.h:83
void * PVoid
Definition: BasicTypes.h:56
DrawAttribs(Uint32 _NumVertices, DRAW_FLAGS _Flags, Uint32 _NumInstances=1, Uint32 _StartVertexLocation=0, Uint32 _FirstInstanceLocation=0) noexcept
Initializes the structure with user-specified values.
Definition: DeviceContext.h:205
This structure is used by IDeviceContext::UpdateSBT().
Definition: DeviceContext.h:1303
This structure is used by IDeviceContext::TraceRaysIndirect().
Definition: DeviceContext.h:1284
Shader resource binding interface.
Definition: ShaderResourceBinding.h:58
COPY_AS_MODE
Defines acceleration structure copy mode.
Definition: DeviceContext.h:795
This structure is used by IDeviceContext::TraceRays().
Definition: DeviceContext.h:1267
CopyTLASAttribs() noexcept
Definition: DeviceContext.h:1210
BeginRenderPass command attributes.
Definition: DeviceContext.h:731
Shader binding table interface.
Definition: ShaderBindingTable.h:93
StateTransitionDesc(ITexture *_pTexture, RESOURCE_STATE _OldState, RESOURCE_STATE _NewState, bool _UpdateState) noexcept
Definition: DeviceContext.h:1395
InstanceMatrix Transform
Instace to world transformation.
Definition: DeviceContext.h:1051
Defines the mesh indirect draw count command attributes.
Definition: DeviceContext.h:440
Pipeline state interface.
Definition: PipelineState.h:505
#define DILIGENT_BEGIN_INTERFACE(Name, Base)
Definition: CommonDefinitions.h:97
@ DRAW_FLAG_NONE
No flags.
Definition: DeviceContext.h:71
RESOURCE_STATE_TRANSITION_MODE
Defines resource state transition mode performed by various commands.
Definition: DeviceContext.h:136
DispatchComputeIndirectAttribs(RESOURCE_STATE_TRANSITION_MODE StateTransitionMode, Uint32 Offset=0)
Initializes the structure with user-specified values.
Definition: DeviceContext.h:536
@ DRAW_FLAG_VERIFY_DRAW_ATTRIBS
Verify correctness of parameters passed to the draw command.
Definition: DeviceContext.h:79
@ HIT_GROUP_BINDING_MODE_PER_GEOMETRY
Each geometry in every instance may use a unique hit shader group. In this mode, the SBT reserves spa...
Definition: TopLevelAS.h:78
Uint32 Flags
Definition: DXBCUtils.cpp:71
@ RAYTRACING_INSTANCE_NONE
Definition: DeviceContext.h:769
CLEAR_DEPTH_STENCIL_FLAGS
Defines which parts of the depth-stencil buffer to clear.
Definition: DeviceContext.h:483
TLASBuildInstanceData() noexcept
Definition: DeviceContext.h:1070
Base interface for all dynamic objects in the engine.
Definition: Object.h:41
uint64_t Uint64
64-bit unsigned integer
Definition: BasicTypes.h:50
DrawIndirectAttribs() noexcept
Initializes the structure members with default values.
Definition: DeviceContext.h:312
This structure is used by IDeviceContext::WriteBLASCompactedSize().
Definition: DeviceContext.h:1217
Top-level AS interface.
Definition: TopLevelAS.h:151
float Float32
32-bit float
Definition: BasicTypes.h:43
DispatchComputeAttribs(Uint32 GroupsX, Uint32 GroupsY, Uint32 GroupsZ=1) noexcept
Initializes the structure with user-specified values.
Definition: DeviceContext.h:510
Rect() noexcept
Definition: DeviceContext.h:658
DrawIndexedAttribs() noexcept
Initializes the structure members with default values.
Definition: DeviceContext.h:265
struct InstanceMatrix InstanceMatrix
Definition: DeviceContext.h:1036
struct BLASBuildTriangleData BLASBuildTriangleData
Definition: DeviceContext.h:888
This structure is used by IDeviceContext::WriteTLASCompactedSize().
Definition: DeviceContext.h:1242
DrawMeshAttribs(Uint32 _ThreadGroupCount, DRAW_FLAGS _Flags) noexcept
Initializes the structure with user-specified values.
Definition: DeviceContext.h:389
RAYTRACING_INSTANCE_FLAGS
TLAS instance flags that are used in IDeviceContext::BuildTLAS().
Definition: DeviceContext.h:767
Texture view interface.
Definition: TextureView.h:202
Row-major matrix.
Definition: DeviceContext.h:999
Framebuffer interface.
Definition: Framebuffer.h:73
DrawIndexedIndirectAttribs() noexcept
Initializes the structure members with default values.
Definition: DeviceContext.h:356
Defines the mesh draw command attributes.
Definition: DeviceContext.h:376
@ VT_UNDEFINED
Undefined type.
Definition: GraphicsTypes.h:51
Box.
Definition: GraphicsTypes.h:2407
Definition: Texture.h:245
StateTransitionDesc(ITopLevelAS *_pTLAS, RESOURCE_STATE _OldState, RESOURCE_STATE _NewState, bool _UpdateState) noexcept
Definition: DeviceContext.h:1433
Base interface for all objects created by the render device Diligent::IRenderDevice.
Definition: DeviceObject.h:52
UpdateIndirectRTBufferAttribs(IBuffer *_pAttribsBuffer, Uint32 _AttribsBufferOffset=0, RESOURCE_STATE_TRANSITION_MODE _TransitionMode=RESOURCE_STATE_TRANSITION_MODE_NONE) noexcept
Definition: DeviceContext.h:1317
#define THIS
Definition: DefineInterfaceHelperMacros.h:81
struct Viewport Viewport
Definition: DeviceContext.h:632
Buffer interface.
Definition: Buffer.h:187
StateTransitionDesc(IBottomLevelAS *_pBLAS, RESOURCE_STATE _OldState, RESOURCE_STATE _NewState, bool _UpdateState) noexcept
Definition: DeviceContext.h:1423
This structure is used by BuildTLASAttribs.
Definition: DeviceContext.h:1040
@ TEX_FORMAT_UNKNOWN
Unknown format.
Definition: GraphicsTypes.h:331
@ RAYTRACING_INSTANCE_FORCE_OPAQUE
Causes this instance to act as though RAYTRACING_GEOMETRY_FLAGS_OPAQUE were specified on all geometri...
Definition: DeviceContext.h:781
struct Rect Rect
Definition: DeviceContext.h:666
#define PURE
Definition: DefineInterfaceHelperMacros.h:85
UpdateIndirectRTBufferAttribs() noexcept
Definition: DeviceContext.h:1315
@ SET_VERTEX_BUFFERS_FLAG_NONE
No extra operations.
Definition: DeviceContext.h:581
int32_t Int32
32-bit signed integer
Definition: BasicTypes.h:46
TraceRaysIndirectAttribs() noexcept
Definition: DeviceContext.h:1296
@ CLEAR_DEPTH_FLAG
Clear depth part of the buffer.
Definition: DeviceContext.h:489
@ RAYTRACING_GEOMETRY_FLAG_OPAQUE
Indicates that this geometry does not invoke the any-hit shaders even if present in a hit group.
Definition: DeviceContext.h:817
Resource state transition barrier description.
Definition: DeviceContext.h:1333
@ RAYTRACING_INSTANCE_FORCE_NO_OPAQUE
Causes this instance to act as though RAYTRACING_GEOMETRY_FLAGS_OPAQUE were not specified on all geom...
Definition: DeviceContext.h:785
@ DRAW_FLAG_VERIFY_ALL
Perform all state validation checks.
Definition: DeviceContext.h:85
Command list interface.
Definition: CommandList.h:48
SET_VERTEX_BUFFERS_FLAGS
Defines allowed flags for IDeviceContext::SetVertexBuffers() function.
Definition: DeviceContext.h:578
@ RESOURCE_STATE_TRANSITION_MODE_TRANSITION
Transition resources to the states required by the specific command. Resources in unknown state are i...
Definition: DeviceContext.h:152
InstanceMatrix & SetRotation(const float *pMatrix3x3) noexcept
Sets the rotation part.
Definition: DeviceContext.h:1027
@ RAYTRACING_GEOMETRY_FLAG_NONE
Definition: DeviceContext.h:814
#define DILIGENT_END_NAMESPACE
Definition: CommonDefinitions.h:86
Describes multi-sampled texture resolve command arguments.
Definition: DeviceContext.h:549
Describes dispatch command arguments.
Definition: DeviceContext.h:523
DrawMeshIndirectCountAttribs() noexcept
Definition: DeviceContext.h:461
VALUE_TYPE
Value type.
Definition: GraphicsTypes.h:49
#define CONST
Definition: DefineInterfaceHelperMacros.h:84
Defines the indexed indirect draw command attributes.
Definition: DeviceContext.h:330
BLASBuildTriangleData() noexcept
Definition: DeviceContext.h:885
@ RESOURCE_STATE_TRANSITION_MODE_NONE
Perform no state transitions and no state validation. Resource states are not accessed (either read o...
Definition: DeviceContext.h:140
@ DRAW_FLAG_DYNAMIC_RESOURCE_BUFFERS_INTACT
Indicates that none of the dynamic resource buffers used by the draw command have been modified by th...
Definition: DeviceContext.h:127
int FirstArraySlice
Definition: GenerateMipsCS_inc.h:24
This structure is used by IDeviceContext::BuildTLAS().
Definition: DeviceContext.h:1082
@ RESOURCE_STATE_TRANSITION_MODE_VERIFY
Do not transition, but verify that states are correct. No validation is performed if the state is unk...
Definition: DeviceContext.h:162
DrawIndirectAttribs(DRAW_FLAGS _Flags, RESOURCE_STATE_TRANSITION_MODE _IndirectAttribsBufferStateTransitionMode, Uint32 _IndirectDrawArgsOffset=0) noexcept
Initializes the structure members with user-specified values.
Definition: DeviceContext.h:315
uint32_t Uint32
32-bit unsigned integer
Definition: BasicTypes.h:51
#define DEFAULT_INITIALIZER(x)
Definition: CommonDefinitions.h:93
Defines the mesh indirect draw command attributes.
Definition: DeviceContext.h:402
Triangle geometry data description.
Definition: DeviceContext.h:829
bool Bool
Boolean.
Definition: BasicTypes.h:59
AABB geometry data description.
Definition: DeviceContext.h:892
Describes the viewport.
Definition: DeviceContext.h:593
Describes dispatch command arguments.
Definition: DeviceContext.h:500
TraceRaysAttribs() noexcept
Definition: DeviceContext.h:1277
@ DRAW_FLAG_VERIFY_STATES
Verify the sate of index and vertex buffers (if any) used by the draw command. State validation is on...
Definition: DeviceContext.h:76
@ RESOURCE_STATE_UNKNOWN
The resource state is not known to the engine and is managed by the application.
Definition: GraphicsTypes.h:2817
DrawMeshIndirectAttribs(DRAW_FLAGS _Flags, RESOURCE_STATE_TRANSITION_MODE _IndirectAttribsBufferStateTransitionMode, Uint32 _IndirectDrawArgsOffset=0) noexcept
Initializes the structure members with user-specified values.
Definition: DeviceContext.h:425
@ RAYTRACING_GEOMETRY_FLAG_NO_DUPLICATE_ANY_HIT_INVOCATION
Indicates that the implementation must only call the any-hit shader a single time for each primitive ...
Definition: DeviceContext.h:821
BLASBuildBoundingBoxData() noexcept
Definition: DeviceContext.h:918
struct DrawMeshAttribs DrawMeshAttribs
Definition: DeviceContext.h:396
@ STATE_TRANSITION_TYPE_IMMEDIATE
Perform state transition immediately.
Definition: GraphicsTypes.h:2895
bool IsValid() const
Definition: DeviceContext.h:660
CopyTextureAttribs(ITexture *_pSrcTexture, RESOURCE_STATE_TRANSITION_MODE _SrcTextureTransitionMode, ITexture *_pDstTexture, RESOURCE_STATE_TRANSITION_MODE _DstTextureTransitionMode) noexcept
Definition: DeviceContext.h:714
BuildBLASAttribs() noexcept
Definition: DeviceContext.h:979
This structure is used by IDeviceContext::BuildBLAS().
Definition: DeviceContext.h:925
This structure is used by IDeviceContext::CopyBLAS().
Definition: DeviceContext.h:1159
DrawIndexedAttribs(Uint32 _NumIndices, VALUE_TYPE _IndexType, DRAW_FLAGS _Flags, Uint32 _NumInstances=1, Uint32 _FirstIndexLocation=0, Uint32 _BaseVertex=0, Uint32 _FirstInstanceLocation=0) noexcept
Initializes the structure members with user-specified values.
Definition: DeviceContext.h:268
@ DRAW_FLAG_VERIFY_RENDER_TARGETS
Verify that render targets bound to the context are consistent with the pipeline state.
Definition: DeviceContext.h:82
DrawAttribs() noexcept
Initializes the structure members with default values.
Definition: DeviceContext.h:202
DrawIndexedIndirectAttribs(VALUE_TYPE _IndexType, DRAW_FLAGS _Flags, RESOURCE_STATE_TRANSITION_MODE _IndirectAttribsBufferStateTransitionMode, Uint32 _IndirectDrawArgsOffset=0) noexcept
Initializes the structure members with user-specified values.
Definition: DeviceContext.h:359
TEXTURE_FORMAT
Texture formats.
Definition: GraphicsTypes.h:328
CopyTextureAttribs() noexcept
Definition: DeviceContext.h:712
#define REF
Definition: DefineGlobalFuncHelperMacros.h:39
DispatchComputeIndirectAttribs() noexcept
Definition: DeviceContext.h:532
Defines the indirect draw command attributes.
Definition: DeviceContext.h:291
#define METHOD(Name)
Definition: DefineInterfaceHelperMacros.h:87
#define DEFAULT_VALUE(x)
Definition: CommonDefinitions.h:99
Viewport() noexcept
Definition: DeviceContext.h:629
BuildTLASAttribs() noexcept
Definition: DeviceContext.h:1152
#define DILIGENT_TYPED_ENUM(EnumName, EnumType)
Definition: CommonDefinitions.h:88
DRAW_FLAGS
Draw command flags.
Definition: DeviceContext.h:68
@ CLEAR_STENCIL_FLAG
Clear stencil part of the buffer.
Definition: DeviceContext.h:492
This structure is used by IDeviceContext::CopyTLAS().
Definition: DeviceContext.h:1188
Fence interface.
Definition: Fence.h:62
Defines the indexed draw command attributes.
Definition: DeviceContext.h:224
@ RAYTRACING_INSTANCE_FLAGS_LAST
Definition: DeviceContext.h:787
STATE_TRANSITION_TYPE
State transition barrier type.
Definition: GraphicsTypes.h:2892
Device context interface.
Definition: DeviceContext.h:1460
InstanceMatrix & SetTranslation(float x, float y, float z) noexcept
Sets the translation part.
Definition: DeviceContext.h:1018
HIT_GROUP_BINDING_MODE
Defines hit group binding mode used by the top-level AS.
Definition: TopLevelAS.h:72
@ COPY_AS_MODE_CLONE
Creates a direct copy of the acceleration structure specified in pSrc into the one specified by pDst....
Definition: DeviceContext.h:799
Defines optimized clear value.
Definition: GraphicsTypes.h:1168
Query interface.
Definition: Query.h:177
uint8_t Uint8
8-bit unsigned integer
Definition: BasicTypes.h:53
#define DILIGENT_BEGIN_NAMESPACE(Name)
Definition: CommonDefinitions.h:82
@ RAYTRACING_INSTANCE_TRIANGLE_FACING_CULL_DISABLE
Disables face culling for this instance.
Definition: DeviceContext.h:772
Bottom-level AS interface.
Definition: BottomLevelAS.h:207
Describes the rectangle.
Definition: DeviceContext.h:642
@ COPY_AS_MODE_COMPACT
Creates a more compact version of an acceleration structure pSrc into pDst. The acceleration structur...
Definition: DeviceContext.h:805
Defines the draw command attributes.
Definition: DeviceContext.h:169
StateTransitionDesc() noexcept
Definition: DeviceContext.h:1373
DEFINE_FLAG_ENUM_OPERATORS(FILE_DIALOG_FLAGS)
WriteTLASCompactedSizeAttribs() noexcept
Definition: DeviceContext.h:1260
RESOURCE_STATE
Resource usage state.
Definition: GraphicsTypes.h:2814
RAYTRACING_GEOMETRY_FLAGS
Defines geometry flags for ray tracing.
Definition: DeviceContext.h:812
DrawMeshIndirectAttribs() noexcept
Initializes the structure members with default values.
Definition: DeviceContext.h:422
CopyBLASAttribs() noexcept
Definition: DeviceContext.h:1181
MAP_TYPE
Resource mapping type.
Definition: GraphicsTypes.h:206
Defines copy texture command attributes.
Definition: DeviceContext.h:672
@ SET_VERTEX_BUFFERS_FLAG_RESET
Reset the vertex buffers to only the buffers specified in this call. All buffers previously bound to ...
Definition: DeviceContext.h:585
@ COPY_AS_MODE_LAST
Definition: DeviceContext.h:807
Texture inteface.
Definition: Texture.h:273
@ RAYTRACING_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE
Indicates that the front face of the triangle for culling purposes is the face that is counter clockw...
Definition: DeviceContext.h:777
@ CLEAR_DEPTH_FLAG_NONE
Perform no clear.
Definition: DeviceContext.h:486
Render pass interface.
Definition: RenderPass.h:369
StateTransitionDesc(ITexture *_pTexture, RESOURCE_STATE _OldState, RESOURCE_STATE _NewState, Uint32 _FirstMipLevel=0, Uint32 _MipLevelsCount=REMAINING_MIP_LEVELS, Uint32 _FirstArraySlice=0, Uint32 _ArraySliceCount=REMAINING_ARRAY_SLICES, STATE_TRANSITION_TYPE _TransitionType=STATE_TRANSITION_TYPE_IMMEDIATE, bool _UpdateState=false) noexcept
Definition: DeviceContext.h:1375
The library uses Direct3D-style math:
Definition: AdvancedMath.hpp:37
#define THIS_
Definition: DefineInterfaceHelperMacros.h:82
Describes data for one subresource.
Definition: Texture.h:165
StateTransitionDesc(IBuffer *_pBuffer, RESOURCE_STATE _OldState, RESOURCE_STATE _NewState, bool _UpdateState) noexcept
Definition: DeviceContext.h:1413