Defines resource barrier actions. Each member is an action that will or might result from calling ID3D12XboxDmaCommandList::ResourceBarrier.
typedef enum
{
D3D12XBOX_RESOURCE_BARRIER_ACTION_NONE = 0,
// _FLUSH_ Top Of Pipe:
D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_TOP_BASE_COHERENCY = D3D12XBOX_FLUSH_TOP_BASE_COHERENCY,
D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_TOP_COLOR_BLOCK_COHERENCY = D3D12XBOX_FLUSH_TOP_COLOR_BLOCK_COHERENCY,
D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_TOP_DEPTH_BLOCK_COHERENCY = D3D12XBOX_FLUSH_TOP_DEPTH_BLOCK_COHERENCY,
D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_TOP_COLOR_BLOCK_INVALIDATE = D3D12XBOX_FLUSH_TOP_COLOR_BLOCK_INVALIDATE,
D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_TOP_DEPTH_BLOCK_INVALIDATE = D3D12XBOX_FLUSH_TOP_DEPTH_BLOCK_INVALIDATE,
D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_TOP_TEXTURE_L1_INVALIDATE = D3D12XBOX_FLUSH_TOP_TEXTURE_L1_INVALIDATE,
D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_TOP_TEXTURE_L2_INVALIDATE = D3D12XBOX_FLUSH_TOP_TEXTURE_L2_INVALIDATE,
D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_TOP_TEXTURE_L2_WRITEBACK = D3D12XBOX_FLUSH_TOP_TEXTURE_L2_WRITEBACK,
D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_TOP_KCACHE_INVALIDATE = D3D12XBOX_FLUSH_TOP_KCACHE_INVALIDATE,
D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_TOP_ICACHE_INVALIDATE = D3D12XBOX_FLUSH_TOP_ICACHE_INVALIDATE,
D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_TOP_SELECT_ENGINE_PFP = D3D12XBOX_FLUSH_TOP_SELECT_ENGINE_PFP,
D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_TOP_PFP_SYNC_ME = D3D12XBOX_FLUSH_TOP_PFP_SYNC_ME,
// _FLUSH_ Bottom Of Pipe:
D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_BOP_COLOR_BLOCK_DATA = D3D12XBOX_FLUSH_BOP_COLOR_BLOCK_DATA,
D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_BOP_DEPTH_BLOCK_DATA = D3D12XBOX_FLUSH_BOP_DEPTH_BLOCK_DATA,
D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_BOP_COLOR_BLOCK_META = D3D12XBOX_FLUSH_BOP_COLOR_BLOCK_META,
D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_BOP_DEPTH_BLOCK_META = D3D12XBOX_FLUSH_BOP_DEPTH_BLOCK_META,
D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_BOP_TEXTURE_L1_INVALIDATE = D3D12XBOX_FLUSH_BOP_TEXTURE_L1_INVALIDATE,
D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_BOP_TEXTURE_L2_INVALIDATE = D3D12XBOX_FLUSH_BOP_TEXTURE_L2_INVALIDATE,
D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_BOP_TEXTURE_L2_WRITEBACK = D3D12XBOX_FLUSH_BOP_TEXTURE_L2_WRITEBACK,
D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_BOP_CS_PARTIAL = D3D12XBOX_FLUSH_BOP_CS_PARTIAL,
D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_BOP_VS_PARTIAL = D3D12XBOX_FLUSH_BOP_VS_PARTIAL,
D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_BOP_PS_PARTIAL = D3D12XBOX_FLUSH_BOP_PS_PARTIAL,
D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_BOP_STREAMOUT = D3D12XBOX_FLUSH_BOP_STREAMOUT,
// _DECOMPRESS_:
D3D12XBOX_RESOURCE_BARRIER_ACTION_DECOMPRESS_EXPAND_COLOR = 0x000100000000,
D3D12XBOX_RESOURCE_BARRIER_ACTION_DECOMPRESS_EXPAND_DEPTH = 0x000200000000,
D3D12XBOX_RESOURCE_BARRIER_ACTION_DECOMPRESS_EXPAND_STENCIL = 0x000400000000,
D3D12XBOX_RESOURCE_BARRIER_ACTION_DECOMPRESS_EXPAND_DEPTH_STENCIL = 0x000600000000,
D3D12XBOX_RESOURCE_BARRIER_ACTION_DECOMPRESS_PROPAGATE_COLOR_CLEAR = 0x000800000000,
D3D12XBOX_RESOURCE_BARRIER_ACTION_DECOMPRESS_GATHER_COLOR_FMASK = 0x001000000000,
// _WAIT_:
D3D12XBOX_RESOURCE_BARRIER_ACTION_WAIT_FOR_DISPLAY = 0x100000000000,
D3D12XBOX_RESOURCE_BARRIER_ACTION_WAIT_FOR_RESOURCE = 0x200000000000,
// _MASK_:
D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_TOP_MASK = D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_TOP_BASE_COHERENCY|D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_TOP_COLOR_BLOCK_COHERENCY|D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_TOP_DEPTH_BLOCK_COHERENCY|D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_TOP_COLOR_BLOCK_INVALIDATE|D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_TOP_DEPTH_BLOCK_INVALIDATE|D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_TOP_TEXTURE_L1_INVALIDATE|D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_TOP_TEXTURE_L2_INVALIDATE|D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_TOP_TEXTURE_L2_WRITEBACK|D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_TOP_KCACHE_INVALIDATE|D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_TOP_ICACHE_INVALIDATE|D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_TOP_SELECT_ENGINE_PFP|D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_TOP_PFP_SYNC_ME,
D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_BOP_MASK = D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_BOP_COLOR_BLOCK_DATA|D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_BOP_DEPTH_BLOCK_DATA|D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_BOP_COLOR_BLOCK_META|D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_BOP_DEPTH_BLOCK_META|D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_BOP_TEXTURE_L1_INVALIDATE|D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_BOP_TEXTURE_L2_INVALIDATE|D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_BOP_TEXTURE_L2_WRITEBACK|D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_BOP_CS_PARTIAL|D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_BOP_VS_PARTIAL|D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_BOP_PS_PARTIAL|D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_BOP_STREAMOUT,
D3D12XBOX_RESOURCE_BARRIER_ACTION_DECOMPRESS_MASK = D3D12XBOX_RESOURCE_BARRIER_ACTION_DECOMPRESS_EXPAND_COLOR|D3D12XBOX_RESOURCE_BARRIER_ACTION_DECOMPRESS_EXPAND_DEPTH|D3D12XBOX_RESOURCE_BARRIER_ACTION_DECOMPRESS_EXPAND_STENCIL|D3D12XBOX_RESOURCE_BARRIER_ACTION_DECOMPRESS_PROPAGATE_COLOR_CLEAR|D3D12XBOX_RESOURCE_BARRIER_ACTION_DECOMPRESS_GATHER_COLOR_FMASK,
D3D12XBOX_RESOURCE_BARRIER_ACTION_WAIT_MASK = D3D12XBOX_RESOURCE_BARRIER_ACTION_WAIT_FOR_DISPLAY|D3D12XBOX_RESOURCE_BARRIER_ACTION_WAIT_FOR_RESOURCE
} D3D12XBOX_RESOURCE_BARRIER_ACTIONS;
|
Constant |
Description |
| D3D12XBOX_RESOURCE_BARRIER_ACTION_NONE | No action. |
| D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_TOP_BASE_COHERENCY |
Note |
| The _FLUSH_ enumeration constants, below, are actions that will be taken when the command list is executed. |
Note |
| Flush Top Of Pipe: |
This enumeration constant, for top of pipe, is equivalent to the following set of four D3D11_FLUSH enumeration constants:
- D3D11_FLUSH_ENSURE_BASE_0_COHERENCY
- D3D11_FLUSH_ENSURE_BASE_1_COHERENCY
- D3D11_FLUSH_ENSURE_BASE_2_COHERENCY
- D3D11_FLUSH_ENSURE_BASE_3_COHERENCY
See the D3D12XBOX_FLUSH_TOP_BASE_COHERENCY enumeration constant in the D3D12XBOX_FLUSH enumeration. |
| D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_TOP_COLOR_BLOCK_COHERENCY | Checks whether any in-flight rendering to RenderTarget0 through RenderTarget7 is being done within the specified range, before continuing on and flushing the caches. This checking ensures color buffer cache coherence. Coherency means the contents in different memory caches are the same. When something is non-coherent, that means values might be different in different caches, which is bad. See the D3D12XBOX_FLUSH_TOP_COLOR_BLOCK_COHERENCY enumeration constant in the D3D12XBOX_FLUSH enumeration. |
| D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_TOP_DEPTH_BLOCK_COHERENCY | Checks whether the depth buffer or HTILE surface are in the specified range, before flushing any caches. See the D3D12XBOX_FLUSH_TOP_DEPTH_BLOCK_COHERENCY enumeration constant in the D3D12XBOX_FLUSH enumeration. |
| D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_TOP_COLOR_BLOCK_INVALIDATE | Clear and invalidate all cache lines in the color cache. See the D3D12XBOX_FLUSH_TOP_COLOR_BLOCK_INVALIDATE enumeration constant in the D3D12XBOX_FLUSH enumeration. |
| D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_TOP_DEPTH_BLOCK_INVALIDATE | Clear and invalidate all cache lines in the depth cache. See the D3D12XBOX_FLUSH_TOP_DEPTH_BLOCK_INVALIDATE enumeration constant in the D3D12XBOX_FLUSH enumeration. |
| D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_TOP_TEXTURE_L1_INVALIDATE | Clear and invalidate all cache lines in the texture Level 1 cache. See the D3D12XBOX_FLUSH_TOP_TEXTURE_L1_INVALIDATE enumeration constant in the D3D12XBOX_FLUSH enumeration. |
| D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_TOP_TEXTURE_L2_INVALIDATE | Clear and invalidate all cache lines in the texture Level 2 cache. See the D3D12XBOX_FLUSH_TOP_TEXTURE_L2_INVALIDATE enumeration constant in the D3D12XBOX_FLUSH enumeration. |
| D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_TOP_TEXTURE_L2_WRITEBACK | For Writeback or Invalidate, flush the Level 2 texture cache. Anything that needs to be written back gets written back immediately, but this doesn't necessarily invalidate the cache lines. See the D3D12XBOX_FLUSH_TOP_TEXTURE_L2_WRITEBACK enumeration constant in the D3D12XBOX_FLUSH enumeration. |
| D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_TOP_KCACHE_INVALIDATE | Clear and invalidates all cache lines in the constant cache. KCACHE is the shader's scalar vector cache. See the D3D12XBOX_FLUSH_TOP_KCACHE_INVALIDATE enumeration constant in the D3D12XBOX_FLUSH enumeration. |
| D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_TOP_ICACHE_INVALIDATE | Clear and invalidate all cache lines in the shader instruction cache. ICACHE is the shader program cache. See the D3D12XBOX_FLUSH_TOP_ICACHE_INVALIDATE enumeration constant in the D3D12XBOX_FLUSH enumeration. |
| D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_TOP_SELECT_ENGINE_PFP | Cause the invalidation to occur earlier, in the pre-fetch parser (PFP) engine, instead of in the Memory Engine (ME). Perform the cache flushes that are specified by the top-of-pipe enumeration constants above, by using the pre-fetch parser engine (PFP) instead of the Memory Engine (ME). See the D3D12XBOX_FLUSH_TOP_SELECT_ENGINE_PFP enumeration constant in the D3D12XBOX_FLUSH enumeration. |
| D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_TOP_PFP_SYNC_ME | Synchronize command processor PFP with ME. See the D3D12XBOX_FLUSH_TOP_PFP_SYNC_ME enumeration constant in the D3D12XBOX_FLUSH enumeration. |
| D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_BOP_COLOR_BLOCK_DATA |
Note |
| Flush Bottom Of Pipe: |
Flush Color Block data. See the D3D12XBOX_FLUSH_BOP_COLOR_BLOCK_DATA enumeration constant in the D3D12XBOX_FLUSH enumeration. |
| D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_BOP_DEPTH_BLOCK_DATA | Flush Depth Block data. See the D3D12XBOX_FLUSH_BOP_DEPTH_BLOCK_DATA enumeration constant in the D3D12XBOX_FLUSH enumeration. |
| D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_BOP_COLOR_BLOCK_META | Flushes Color Block metadata. See the D3D12XBOX_FLUSH_BOP_COLOR_BLOCK_META enumeration constant in the D3D12XBOX_FLUSH enumeration. |
| D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_BOP_DEPTH_BLOCK_META | Flushes Depth Block metadata. See the D3D12XBOX_FLUSH_BOP_DEPTH_BLOCK_META enumeration constant in the D3D12XBOX_FLUSH enumeration. |
| D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_BOP_TEXTURE_L1_INVALIDATE | Clears and invalidates all cache lines in the texture Level 1 cache. See the D3D12XBOX_FLUSH_BOP_TEXTURE_L1_INVALIDATE enumeration constant in the D3D12XBOX_FLUSH enumeration. |
| D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_BOP_TEXTURE_L2_INVALIDATE | Clear and invalidate all cache lines in the texture Level 2 cache. See the D3D12XBOX_FLUSH_BOP_TEXTURE_L2_INVALIDATE enumeration constant in the D3D12XBOX_FLUSH enumeration. |
| D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_BOP_TEXTURE_L2_WRITEBACK | For Writeback or Invalidate, flush the Level 2 texture cache. Anything that needs to be written back gets written back immediately, but this doesn't necessarily invalidate the cache lines. See the D3D12XBOX_FLUSH_BOP_TEXTURE_L2_WRITEBACK enumeration constant in the D3D12XBOX_FLUSH enumeration. |
| D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_BOP_CS_PARTIAL | Ensure all CS have finished running before processing more commands through the command processor (CP). See the D3D12XBOX_FLUSH_BOP_CS_PARTIAL enumeration constant in the D3D12XBOX_FLUSH enumeration. |
| D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_BOP_VS_PARTIAL | Ensure all VS have finished running before processing more commands through the command processor (CP). See the D3D12XBOX_FLUSH_BOP_VS_PARTIAL enumeration constant in the D3D12XBOX_FLUSH enumeration. |
| D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_BOP_PS_PARTIAL | Ensures all PS have finished running before processing more commands through the command processor (CP). See the D3D12XBOX_FLUSH_BOP_PS_PARTIAL enumeration constant in the D3D12XBOX_FLUSH enumeration. |
| D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_BOP_STREAMOUT | Flush the stream out caches. See the D3D12XBOX_FLUSH_BOP_STREAMOUT enumeration constant in the D3D12XBOX_FLUSH enumeration. |
| D3D12XBOX_RESOURCE_BARRIER_ACTION_DECOMPRESS_EXPAND_COLOR |
Note |
| The _DECOMPRESS_ enumeration constants, below, are potential actions that might be taken when the command list is executed. |
Using the coverage values in a gathered fmask, expand color samples for each pixel out into all of the sample positions. Corresponds to the D3D11X_DECOMPRESS_EXPAND_COLOR enumeration constant in the D3D11X_DECOMPRESS_FLAG enumeration. |
| D3D12XBOX_RESOURCE_BARRIER_ACTION_DECOMPRESS_EXPAND_DEPTH | Perform a depth decompress. Corresponds to the D3D11X_DECOMPRESS_EXPAND_DEPTH enumeration constant in the D3D11X_DECOMPRESS_FLAG enumeration. |
| D3D12XBOX_RESOURCE_BARRIER_ACTION_DECOMPRESS_EXPAND_STENCIL | Perform a stencil decompress. Corresponds to the D3D11X_DECOMPRESS_EXPAND_STENCIL enumeration constant in the D3D11X_DECOMPRESS_FLAG enumeration. |
| D3D12XBOX_RESOURCE_BARRIER_ACTION_DECOMPRESS_EXPAND_DEPTH_STENCIL | Perform both stencil and depth decompression. Corresponds to the D3D11X_DECOMPRESS_EXPAND_DEPTH_STENCIL enumeration constant in the D3D11X_DECOMPRESS_FLAG enumeration. |
| D3D12XBOX_RESOURCE_BARRIER_ACTION_DECOMPRESS_PROPAGATE_COLOR_CLEAR | Propagate color clear. Corresponds to the D3D11X_DECOMPRESS_PROPAGATE_COLOR_CLEAR enumeration constant in the D3D11X_DECOMPRESS_FLAG enumeration. |
| D3D12XBOX_RESOURCE_BARRIER_ACTION_DECOMPRESS_GATHER_COLOR_FMASK | Gather the bit planes constituting a group of fmask fragment pointers into contiguous bit values for each sample, enabling a shader to fetch from the fmask and determine the multisample indices to use in fetching the fragment colors for compressed texture reads. Corresponds to the D3D11X_DECOMPRESS_GATHER_COLOR_FMASK enumeration constant in the D3D11X_DECOMPRESS_FLAG enumeration. |
| D3D12XBOX_RESOURCE_BARRIER_ACTION_WAIT_FOR_DISPLAY |
Note |
| The _WAIT_ enumeration constants, below, are actions that will be taken when the command list is executed. |
Your barrier transition involves a resource that is presentable, and the barrier will insert a wait on the present queue, to ensure the resource is not being displayed after the transition. |
| D3D12XBOX_RESOURCE_BARRIER_ACTION_WAIT_FOR_RESOURCE | Wait until the resource involved in the transition is no longer being written by the GPU. |
| D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_TOP_MASK |
Note |
| The following enumeration constants are masks to combine the above enumeration constants: |
Actions for Flush Top Of Pipe. |
| D3D12XBOX_RESOURCE_BARRIER_ACTION_FLUSH_BOP_MASK | Actions for Flush Bottom Of Pipe. |
| D3D12XBOX_RESOURCE_BARRIER_ACTION_DECOMPRESS_MASK | Actions for decompressing. |
| D3D12XBOX_RESOURCE_BARRIER_ACTION_WAIT_MASK | Actions for waiting. |