D3D12XBOX_RESOURCE_BARRIER_ACTIONS Enumeration

Defines resource barrier actions. Each member is an action that will or might result from calling ID3D12XboxDmaCommandList::ResourceBarrier.

Syntax

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;  

Constants

Constant Description
D3D12XBOX_RESOURCE_BARRIER_ACTION_NONENo 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_COHERENCYChecks 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_COHERENCYChecks 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_INVALIDATEClear 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_INVALIDATEClear 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_INVALIDATEClear 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_INVALIDATEClear 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_WRITEBACKFor 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_INVALIDATEClear 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_INVALIDATEClear 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_PFPCause 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_MESynchronize 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_DATAFlush 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_METAFlushes 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_METAFlushes 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_INVALIDATEClears 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_INVALIDATEClear 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_WRITEBACKFor 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_PARTIALEnsure 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_PARTIALEnsure 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_PARTIALEnsures 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_STREAMOUTFlush 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_DEPTHPerform a depth decompress. Corresponds to the D3D11X_DECOMPRESS_EXPAND_DEPTH enumeration constant in the D3D11X_DECOMPRESS_FLAG enumeration.
D3D12XBOX_RESOURCE_BARRIER_ACTION_DECOMPRESS_EXPAND_STENCILPerform 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_STENCILPerform 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_CLEARPropagate 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_FMASKGather 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_RESOURCEWait 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_MASKActions for Flush Bottom Of Pipe.
D3D12XBOX_RESOURCE_BARRIER_ACTION_DECOMPRESS_MASKActions for decompressing.
D3D12XBOX_RESOURCE_BARRIER_ACTION_WAIT_MASKActions for waiting.

Remarks

When you call ID3D12XboxDmaCommandList::ResourceBarrier, the returned bitwise-OR’d combination of D3D12XBOX_RESOURCE_BARRIER_ACTIONS enumeration constants will tell you which actions were taken to flush the pipeline for that barrier.

This enumeration is used for the Actions parameter of the function D3D12GetFlushFromResourceBarrierActionsX.

This enumeration is returned by ID3D12GraphicsCommandList::ResourceBarrier.

Requirements

Header: Declared in d3d12_x.h.

See also

D3D12_RESOURCE_BARRIER structure

D3D12_RESOURCE_BARRIER_TYPE enumeration

D3D12_RESOURCE_BARRIER_FLAGS enumeration