You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Mar 30, 2019. It is now read-only.
Copy file name to clipboardExpand all lines: Source/SharpDX.Direct3D12/Device.cs
+29-13Lines changed: 29 additions & 13 deletions
Original file line number
Diff line number
Diff line change
@@ -78,12 +78,8 @@ public bool CheckFeatureSupport<T>(SharpDX.Direct3D12.Feature feature, ref T fea
78
78
/// <summary>
79
79
/// <p>Creates a command queue.</p>
80
80
/// </summary>
81
-
/// <param name="descRef"><dd> <p> Specifies a <see cref="SharpDX.Direct3D12.CommandQueueDescription"/> that describes the command queue. </p> </dd></param>
82
-
/// <param name="riid"><dd> <p> The globally unique identifier (<see cref="System.Guid"/>) for the command queue interface. See remarks. An input parameter. </p> </dd></param>
81
+
/// <param name="description"><dd> <p> Specifies a <see cref="SharpDX.Direct3D12.CommandQueueDescription"/> that describes the command queue. </p> </dd></param>
83
82
/// <returns><dd> <p> A reference to a memory block that receives a reference to the <strong><see cref="SharpDX.Direct3D12.CommandQueue"/></strong> interface for the command queue. </p> </dd></returns>
84
-
/// <remarks>
85
-
/// <p> The <strong>REFIID</strong>, or <strong><see cref="System.Guid"/></strong>, of the interface to the command queue can be obtained by using the __uuidof() macro. For example, __uuidof(<see cref="SharpDX.Direct3D12.CommandQueue"/>) will get the <strong><see cref="System.Guid"/></strong> of the interface to a command queue. </p>
/// <param name="type">The <see cref="SharpDX.Direct3D12.CommandListType"/> that describes the command queue.</param>
96
+
/// <returns><dd> <p> A reference to a memory block that receives a reference to the <strong><see cref="SharpDX.Direct3D12.CommandQueue"/></strong> interface for the command queue. </p> </dd></returns>
/// <returns><dd> <p> A reference to a memory block that receives a reference to the <strong><see cref="SharpDX.Direct3D12.CommandQueue"/></strong> interface for the command queue. </p> </dd></returns>
/// <param name="type"><dd> <p> A <strong><see cref="SharpDX.Direct3D12.CommandListType"/></strong>-typed value that specifies the type of command allocator to create. The type of command allocator can be the type that records either direct command lists or bundles. </p> </dd></param>
100
-
/// <param name="riid"><dd> <p> The globally unique identifier (<strong><see cref="System.Guid"/></strong>) for the command allocator interface (<strong><see cref="SharpDX.Direct3D12.CommandAllocator"/></strong>). The <strong>REFIID</strong>, or <strong><see cref="System.Guid"/></strong>, of the interface to the command allocator can be obtained by using the __uuidof() macro. For example, __uuidof(<see cref="SharpDX.Direct3D12.CommandAllocator"/>) will get the <strong><see cref="System.Guid"/></strong> of the interface to a command allocator. </p> </dd></param>
101
117
/// <returns><dd> <p> A reference to a memory block that receives a reference to the <strong><see cref="SharpDX.Direct3D12.CommandAllocator"/></strong> interface for the command allocator. </p> </dd></returns>
102
118
/// <remarks>
103
119
/// <p> The device creates command lists from the command allocator. </p>
@@ -148,10 +164,10 @@ public GraphicsCommandList CreateCommandList(int nodeMask,
@@ -383,5 +385,39 @@ public void SetMarker(string name)
383
385
}
384
386
}
385
387
}
388
+
389
+
/// <summary>
390
+
/// <p> Apps perform indirect draws/dispatches using the <strong>ExecuteIndirect</strong> method. </p>
391
+
/// </summary>
392
+
/// <param name="commandSignature"><dd> <p> Specifies a <strong><see cref="SharpDX.Direct3D12.CommandSignature"/></strong>. The data referenced by <em>pArgumentBuffer</em> will be interpreted depending on the contents of the command signature. Refer to Indirect Drawing for the APIs that are used to create a command signature. </p> </dd></param>
393
+
/// <param name="maxCommandCount"><dd> <p>There are two ways that command counts can be specified:</p> <ul> <li> If <em>pCountBuffer</em> is not <c>null</c>, then <em>MaxCommandCount</em> specifies the maximum number of operations which will be performed. The actual number of operations to be performed are defined by the minimum of this value, and a 32-bit unsigned integer contained in <em>pCountBuffer</em> (at the byte offset specified by <em>CountBufferOffset</em>). </li> <li> If <em>pCountBuffer</em> is <c>null</c>, the <em>MaxCommandCount</em> specifies the exact number of operations which will be performed. </li> </ul> </dd></param>
394
+
/// <param name="argumentBuffer"><dd> <p> Specifies one or more <strong><see cref="SharpDX.Direct3D12.Resource"/></strong> objects, containing the command arguments. </p> </dd></param>
395
+
/// <param name="argumentBufferOffset"><dd> <p> Specifies an offset into <em>pArgumentBuffer</em> to identify the first command argument. </p> </dd></param>
396
+
/// <remarks>
397
+
/// <p>The semantics of this API are defined with the following pseudo-code:</p><p>Non-<c>null</c> pCountBuffer:</p><code>// Read draw count out of count buffer
398
+
/// UINT CommandCount = pCountBuffer->ReadUINT32(CountBufferOffset); CommandCount = min(CommandCount, MaxCommandCount) // Get reference to first Commanding argument
/// { // Interpret the data contained in *Arguments // according to the command signature pCommandSignature->Interpret(Arguments); Arguments += pCommandSignature ->GetByteStride();
401
+
/// }
402
+
/// </code><p><c>null</c> pCountBuffer:</p><code>// Get reference to first Commanding argument
/// { // Interpret the data contained in *Arguments // according to the command signature pCommandSignature->Interpret(Arguments); Arguments += pCommandSignature ->GetByteStride();
405
+
/// }
406
+
/// </code><p>The debug layer will issue an error if either the count buffer or the argument buffer are not in the <see cref="SharpDX.Direct3D12.ResourceStates.IndirectArgument"/> state. The core runtime will validate:</p><ul> <li><em>CountBufferOffset</em> and <em>ArgumentBufferOffset</em> are 4-byte aligned </li> <li><em>pCountBuffer</em> and <em>pArgumentBuffer</em> are buffer resources (any heap type) </li> <li> The offset implied by <em>MaxCommandCount</em>, <em>ArgumentBufferOffset</em>, and the drawing program stride do not exceed the bounds of <em>pArgumentBuffer</em> (similarly for count buffer) </li> <li>The command list is a direct command list or a compute command list (not a copy or JPEG decode command list)</li> <li>The root signature of the command list matches the root signature of the command signature</li> </ul><p> The functionality of two APIs from earlier versions of Direct3D, <code>DrawInstancedIndirect</code> and <code>DrawIndexedInstancedIndirect</code>, are encompassed by <strong>ExecuteIndirect</strong>. </p>
0 commit comments