D3D12XBOX_FLUSH Enumeration

Specifies flags that control ID3D12GraphicsCommandList::FlushPipelineX and ID3D12CommandQueue::SignalX.

Syntax

typedef enum D3D12XBOX_FLUSH
{
    D3D12XBOX_FLUSH_NONE = 0x00000000,
    // Top of pipe:
    D3D12XBOX_FLUSH_TOP_BASE_COHERENCY = 0x00000001,
    D3D12XBOX_FLUSH_TOP_COLOR_BLOCK_COHERENCY = 0x00000040,
    D3D12XBOX_FLUSH_TOP_DEPTH_BLOCK_COHERENCY = 0x00004000,
    D3D12XBOX_FLUSH_TOP_COLOR_BLOCK_INVALIDATE = 0x02000000,
    D3D12XBOX_FLUSH_TOP_DEPTH_BLOCK_INVALIDATE = 0x04000000,
    D3D12XBOX_FLUSH_TOP_TEXTURE_L1_INVALIDATE = 0x00400000,
    D3D12XBOX_FLUSH_TOP_TEXTURE_L2_INVALIDATE = 0x00800000,
    D3D12XBOX_FLUSH_TOP_TEXTURE_L2_WRITEBACK = 0x00040000,
    D3D12XBOX_FLUSH_TOP_KCACHE_INVALIDATE = 0x08000000,
    D3D12XBOX_FLUSH_TOP_ICACHE_INVALIDATE = 0x20000000,
    D3D12XBOX_FLUSH_TOP_SELECT_ENGINE_PFP = 0x80000000,
    D3D12XBOX_FLUSH_TOP_PFP_SYNC_ME = 0x40000000,
    // Bottom of pipe:
    D3D12XBOX_FLUSH_BOP_COLOR_BLOCK_DATA = 0x00000004,
    D3D12XBOX_FLUSH_BOP_DEPTH_BLOCK_DATA = 0x00000008,
    D3D12XBOX_FLUSH_BOP_COLOR_BLOCK_META = 0x00000010,
    D3D12XBOX_FLUSH_BOP_DEPTH_BLOCK_META = 0x00000020,
    D3D12XBOX_FLUSH_BOP_TEXTURE_L1_INVALIDATE = 0x00001000,
    D3D12XBOX_FLUSH_BOP_TEXTURE_L2_INVALIDATE = 0x00002000,
    D3D12XBOX_FLUSH_BOP_TEXTURE_L2_WRITEBACK = 0x00000800,
    D3D12XBOX_FLUSH_BOP_CS_PARTIAL = 0x00020000,
    D3D12XBOX_FLUSH_BOP_VS_PARTIAL = 0x00100000,
    D3D12XBOX_FLUSH_BOP_PS_PARTIAL = 0x01000000,
    D3D12XBOX_FLUSH_BOP_STREAMOUT = 0x00000400,
    // Idle:
    D3D12XBOX_FLUSH_IDLE = 0x00200000,
    // Masks:
    D3D12XBOX_FLUSH_TOP_MASK = D3D12XBOX_FLUSH_TOP_BASE_COHERENCY|D3D12XBOX_FLUSH_TOP_COLOR_BLOCK_COHERENCY|D3D12XBOX_FLUSH_TOP_DEPTH_BLOCK_COHERENCY|D3D12XBOX_FLUSH_TOP_COLOR_BLOCK_INVALIDATE|D3D12XBOX_FLUSH_TOP_DEPTH_BLOCK_INVALIDATE|D3D12XBOX_FLUSH_TOP_TEXTURE_L1_INVALIDATE|D3D12XBOX_FLUSH_TOP_TEXTURE_L2_INVALIDATE|D3D12XBOX_FLUSH_TOP_TEXTURE_L2_WRITEBACK|D3D12XBOX_FLUSH_TOP_KCACHE_INVALIDATE|D3D12XBOX_FLUSH_TOP_ICACHE_INVALIDATE|D3D12XBOX_FLUSH_TOP_SELECT_ENGINE_PFP|D3D12XBOX_FLUSH_TOP_PFP_SYNC_ME,
    D3D12XBOX_FLUSH_BOP_MASK = D3D12XBOX_FLUSH_BOP_COLOR_BLOCK_DATA|D3D12XBOX_FLUSH_BOP_DEPTH_BLOCK_DATA|D3D12XBOX_FLUSH_BOP_COLOR_BLOCK_META|D3D12XBOX_FLUSH_BOP_DEPTH_BLOCK_META|D3D12XBOX_FLUSH_BOP_TEXTURE_L1_INVALIDATE|D3D12XBOX_FLUSH_BOP_TEXTURE_L2_INVALIDATE|D3D12XBOX_FLUSH_BOP_TEXTURE_L2_WRITEBACK|D3D12XBOX_FLUSH_BOP_CS_PARTIAL|D3D12XBOX_FLUSH_BOP_VS_PARTIAL|D3D12XBOX_FLUSH_BOP_PS_PARTIAL|D3D12XBOX_FLUSH_BOP_STREAMOUT,
    D3D12XBOX_FLUSH_TOP_COMPUTE_MASK = D3D12XBOX_FLUSH_TOP_TEXTURE_L1_INVALIDATE|D3D12XBOX_FLUSH_TOP_TEXTURE_L2_INVALIDATE|D3D12XBOX_FLUSH_TOP_TEXTURE_L2_WRITEBACK|D3D12XBOX_FLUSH_TOP_KCACHE_INVALIDATED|3D12XBOX_FLUSH_TOP_ICACHE_INVALIDATE,
    D3D12XBOX_FLUSH_BOP_COMPUTE_MASK = D3D12XBOX_FLUSH_BOP_TEXTURE_L1_INVALIDATE|D3D12XBOX_FLUSH_BOP_TEXTURE_L2_INVALIDATE|D3D12XBOX_FLUSH_BOP_TEXTURE_L2_WRITEBACK|D3D12XBOX_FLUSH_BOP_CS_PARTIAL
} D3D12XBOX_FLUSH;  

Constants

Constant Description
D3D12XBOX_FLUSH_NONENo flags.
D3D12XBOX_FLUSH_TOP_BASE_COHERENCYThis 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
D3D12XBOX_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. This enumeration constant is equivalent to setting the following group of enumeration constants in D3D11:
  • D3D11_FLUSH_ENSURE_CB0_COHERENCY
  • D3D11_FLUSH_ENSURE_CB1_COHERENCY
  • D3D11_FLUSH_ENSURE_CB2_COHERENCY
  • D3D11_FLUSH_ENSURE_CB3_COHERENCY
  • D3D11_FLUSH_ENSURE_CB4_COHERENCY
  • D3D11_FLUSH_ENSURE_CB5_COHERENCY
  • D3D11_FLUSH_ENSURE_CB6_COHERENCY
  • D3D11_FLUSH_ENSURE_CB7_COHERENCY
See also the description at D3D11_FLUSH_ENSURE_CB0_COHERENCY in D3D11_FLUSH.
D3D12XBOX_FLUSH_TOP_DEPTH_BLOCK_COHERENCYChecks whether the depth buffer or HTILE surface are in the specified range, before flushing any caches. (Corresponds to D3D11_FLUSH_ENSURE_DB_COHERENCY in D3D11_FLUSH.)
D3D12XBOX_FLUSH_TOP_COLOR_BLOCK_INVALIDATEThis flag clears and invalidates all cache lines in the color cache.
D3D12XBOX_FLUSH_TOP_DEPTH_BLOCK_INVALIDATEClears and invalidates all cache lines in the depth cache.
D3D12XBOX_FLUSH_TOP_TEXTURE_L1_INVALIDATEClears and invalidates all cache lines in the texture Level 1 cache.
D3D12XBOX_FLUSH_TOP_TEXTURE_L2_INVALIDATEClears and invalidates all cache lines in the texture Level 2 cache.
D3D12XBOX_FLUSH_TOP_TEXTURE_L2_WRITEBACKFor Writeback or Invalidate, this flag flushes the Level 2 texture cache. Anything that needs to be written back gets written back immediately, but this flag doesn't necessarily invalidate the cache lines.
D3D12XBOX_FLUSH_TOP_KCACHE_INVALIDATEClears and invalidates all cache lines in the constant cache. KCACHE is the shader's scalar vector cache.
D3D12XBOX_FLUSH_TOP_ICACHE_INVALIDATEClears and invalidates all cache lines in the shader instruction cache. ICACHE is the shader program cache.
D3D12XBOX_FLUSH_TOP_SELECT_ENGINE_PFPCauses the invalidation to occur earlier, in the pre-fetch parser (PFP) engine, instead of in the Memory Engine (ME). This flag performs the cache flushes that are specified by the top-of-pipe flags above, by using the pre-fetch parser engine (PFP) instead of the Memory Engine (ME). (Corresponds to the flag D3D11_FLUSH_ENGINE_PFP in the D3D11_FLUSH enumeration.)
D3D12XBOX_FLUSH_TOP_PFP_SYNC_MESynchronizes command processor PFP with ME. (Corresponds to the D3D11X_GPU_PIPELINED_EVENT_PFP_SYNC_ME enumeration constant.)
D3D12XBOX_FLUSH_BOP_COLOR_BLOCK_DATAFlush Color Block data. (Corresponds to the D3D11X_GPU_PIPELINED_EVENT enumeration.)
D3D12XBOX_FLUSH_BOP_DEPTH_BLOCK_DATAFlushes Depth Block data.
D3D12XBOX_FLUSH_BOP_COLOR_BLOCK_METAFlushes Color Block metadata.
D3D12XBOX_FLUSH_BOP_DEPTH_BLOCK_METAFlushes Depth Block metadata.
D3D12XBOX_FLUSH_BOP_TEXTURE_L1_INVALIDATEClears and invalidates all cache lines in the texture Level 1 cache.
D3D12XBOX_FLUSH_BOP_TEXTURE_L2_INVALIDATEClears and invalidates all cache lines in the texture Level 2 cache.
D3D12XBOX_FLUSH_BOP_TEXTURE_L2_WRITEBACKFor Writeback or Invalidate, this flag flushes the Level 2 texture cache. Anything that needs to be written back gets written back immediately, but this flag doesn't necessarily invalidate the cache lines.
D3D12XBOX_FLUSH_BOP_CS_PARTIALEnsures all CS have finished running before processing more commands through the command processor (CP). (Corresponds to D3D11X_GPU_PIPELINED_EVENT_CS_PARTIAL_FLUSH in the D3D11X_GPU_PIPELINED_EVENT enumeration.)
D3D12XBOX_FLUSH_BOP_VS_PARTIALEnsures all VS have finished running before processing more commands through the command processor (CP). (Corresponds to D3D11X_GPU_PIPELINED_EVENT_VS_PARTIAL_FLUSH in the D3D11X_GPU_PIPELINED_EVENT enumeration.)
D3D12XBOX_FLUSH_BOP_PS_PARTIALEnsures all PS have finished running before processing more commands through the command processor (CP). (Corresponds to D3D11X_GPU_PIPELINED_EVENT_PS_PARTIAL_FLUSH in the D3D11X_GPU_PIPELINED_EVENT enumeration.)
D3D12XBOX_FLUSH_BOP_STREAMOUTFlushes the stream out caches. (Corresponds to D3D11X_GPU_PIPELINED_EVENT_STREAMOUT_FLUSH in the D3D11X_GPU_PIPELINED_EVENT enumeration.)
D3D12XBOX_FLUSH_IDLEForces the GPU to wait until the GPU is idle, before flushing. This flag is not supported on compute command lists. (Corresponds to ID3D11DeviceContextX::InsertWaitUntilIdle in D3D11.)
D3D12XBOX_FLUSH_TOP_MASKCombines all Top Of Pipe (_TOP_) flags.
D3D12XBOX_FLUSH_BOP_MASKCombines all Bottom Of Pipe (_BOP_) flags.
D3D12XBOX_FLUSH_TOP_COMPUTE_MASKCombines all compute flags that are for Top Of Pipe.
D3D12XBOX_FLUSH_BOP_COMPUTE_MASKCombines all compute flags that are for Bottom Of Pipe.

Remarks

This enumeration is used by the following API items:

TOP means top of pipe. BOP means bottom of pipe.

In D3D11, ID3D11DeviceContextX::FlushGpuCacheRange uses the D3D11_FLUSH enumeration, which largely corresponds to this D3D12 enumeration.

Requirements

Header: Declared in d3d12_x.h.