ID3D12CommandList::ExecuteBundle method

[This documentation is preliminary and is subject to change.]

Executes a bundle.


void ExecuteBundle(
  ID3D12CommandList pCommandList



The bundle to be executed.

Return value

Returns nothing.


Bundles do not inherit pipeline state or primitive topology of the parent command list on which ExecuteBundle is called. Also, the pipeline state object of the parent command list is not affected by this operation. All other state set in bundle will affect the state of the parent command list. Note that ExecuteBundle is not a predicated operation.

Runtime validation

The runtime will validate that the “callee” is a bundle and that the “caller” is a direct command list. The runtime will also validate that the bundle has been closed. If the contract is violated, the runtime will silently drop the call. Validation failure will result in ID3D12CommandList::Close returning E_INVALIDARG.

Debug layer

The debug layer will issue a warning in the same cases where the runtime will fail. The debug layer will issue a warning if a predicate is set when ExecuteCommandList is called. Also, the debug layer will issue an error if it detects that any resource reference by the command list has been destroyed.

The debug layer will also validate that the command allocator associated with the bundle has not been reset since ID3D12CommandList::Close was called on the command list. This validation occurs at ExecuteBundle time, and when the parent command list is executed on a command queue.

See also