summaryrefslogtreecommitdiffstats
path: root/Graphics/GraphicsEngine
diff options
context:
space:
mode:
authorazhirnov <zh1dron@gmail.com>2020-08-25 01:58:29 +0000
committerazhirnov <zh1dron@gmail.com>2020-08-27 12:22:35 +0000
commitb915c15b2e0b9b1ef2757aa959f5fd34c30a5773 (patch)
tree88bb3b2c6f5a6bc5f9206c433760ee002d53e64a /Graphics/GraphicsEngine
parentdisable vulkan extensions if disabled volk (diff)
downloadDiligentCore-b915c15b2e0b9b1ef2757aa959f5fd34c30a5773.tar.gz
DiligentCore-b915c15b2e0b9b1ef2757aa959f5fd34c30a5773.zip
update documentation for DrawMesh, log new shader version if it has been changed
Diffstat (limited to 'Graphics/GraphicsEngine')
-rw-r--r--Graphics/GraphicsEngine/interface/DeviceContext.h21
1 files changed, 14 insertions, 7 deletions
diff --git a/Graphics/GraphicsEngine/interface/DeviceContext.h b/Graphics/GraphicsEngine/interface/DeviceContext.h
index a66470c5..ae237638 100644
--- a/Graphics/GraphicsEngine/interface/DeviceContext.h
+++ b/Graphics/GraphicsEngine/interface/DeviceContext.h
@@ -1063,6 +1063,10 @@ DILIGENT_BEGIN_INTERFACE(IDeviceContext, IObject)
/// Executes an mesh draw command.
/// \param [in] Attribs - Draw command attributes, see Diligent::DrawMeshAttribs for details.
+ ///
+ /// \remarks For compatibility between Direct3D12 and Vulkan used only single work group dimension.
+ /// Also in shader numthreads and local_size attributes must use only single dimension,
+ /// example: '[numthreads(ThreadCount, 1, 1)]' or 'layout(local_size_x = ThreadCount) in'.
VIRTUAL void METHOD(DrawMesh)(THIS_
const DrawMeshAttribs REF Attribs) PURE;
@@ -1072,13 +1076,16 @@ DILIGENT_BEGIN_INTERFACE(IDeviceContext, IObject)
/// \param [in] Attribs - Structure describing the command attributes, see Diligent::DrawMeshIndirectAttribs for details.
/// \param [in] pAttribsBuffer - Pointer to the buffer, from which indirect draw attributes will be read.
/// The buffer must contain the following arguments at the specified offset:
- /// for Direct3D12:
- /// Uint32 ThreadGroupCountX; // should be same as TaskCount for compatibility with Vulkan
- /// Uint32 ThreadGroupCountY; // should be 1 for compatibility with Vulkan
- /// Uint32 ThreadGroupCountZ; // should be 1 for compatibility with Vulkan
- /// for Vulkan:
- /// Uint32 TaskCount; // should be same as ThreadGroupCountX for compatibility with D3D12
- /// Uint32 FirstTask; // should be 0 for compatibility with D3D12
+ /// Direct3D12:
+ /// Uint32 ThreadGroupCountX;
+ /// Uint32 ThreadGroupCountY;
+ /// Uint32 ThreadGroupCountZ;
+ /// Vulkan:
+ /// Uint32 TaskCount;
+ /// Uint32 FirstTask;
+ ///
+ /// \remarks For compatibility between Direct3D12 and Vulkan and with direct call (DrawMesh) use only first element in structure,
+ /// example: Direct3D12 {TaskCount, 1, 1}, Vulkan {TaskCount, 0}.
///
/// \remarks If IndirectAttribsBufferStateTransitionMode member is Diligent::RESOURCE_STATE_TRANSITION_MODE_TRANSITION,
/// the method may transition the state of the indirect draw arguments buffer. This is not a thread safe operation,