// d3d12umddi.h
typedef enum D3D12DDI_RENDER_PASS_ENDING_ACCESS_TYPE {
D3D12DDI_RENDER_PASS_ENDING_ACCESS_DISCARD,
D3D12DDI_RENDER_PASS_ENDING_ACCESS_PRESERVE,
D3D12DDI_RENDER_PASS_ENDING_ACCESS_RESOLVE,
D3D12DDI_RENDER_PASS_ENDING_ACCESS_NO_ACCESS,
D3D12DDI_RENDER_PASS_ENDING_ACCESS_SUSPEND_WRITING,
D3D12DDI_RENDER_PASS_ENDING_ACCESS_SUSPEND_LOCAL_READ
} ;
View the official Windows Driver Kit DDI referenceNo description available.
D3D12DDI_RENDER_PASS_ENDING_ACCESS_DISCARDIndicates that the application will have no future dependencies on the data written to the resource during this Render Pass. However, dependencies may be appropriate for a depth buffer where the depth buffer will never be textured from prior to future writes.
D3D12DDI_RENDER_PASS_ENDING_ACCESS_PRESERVEIndicates that the application will have a dependency on the written contents of this resource in the future, and they must be preserved.
D3D12DDI_RENDER_PASS_ENDING_ACCESS_RESOLVEAllows the application to directly resolve a MSAA (Multisampling anti-aliasing) surface to a separate resource at the conclusion of the Render Pass. Ideally, this is done while the MSAA contents are currently in the tile cache, for TBDRs (Tile Based Deferred Rendering). The resolve destination is expected to be in the hDstResource resource state field of the D3D12DDI_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS structure, at the time the Render Pass ends. The resolve source will be transitioned to the hSrcResource resource state of the [D3D12DDI_RENDER_PASS_ENDING_ACCESS_RESOLVE_PARAMETERS structure, at the time the Render Pass ends.
D3D12DDI_RENDER_PASS_ENDING_ACCESS_NO_ACCESSIndicates the resource will not be read from or written to during the Render Pass. It is most expected to used to denote whether the depth/stencil plane for a DSV is not accessed.
[!IMPORTANT] This value must be paired with the D3D12DDI_RENDER_PASS_BEGINNING_ACCESS_NO_ACCESS value of the D3D12DDI_RENDER_PASS_BEGINNING_ACCESS_TYPE enumeration.
D3D12DDI_RENDER_PASS_ENDING_ACCESS_SUSPEND_WRITINGIndicates that the application will continue writing to the resource in an immediately succeeding Render Pass, with no intervening GPU work.
D3D12DDI_RENDER_PASS_ENDING_ACCESS_SUSPEND_LOCAL_READIndicates that the application has written to the resource, and it will read from the resource in the future in a one-to-one (plus optional gutter pixels) fashion. In the pixel shader, only the current pixel plus an optional number of surrounding pixels will be read from. This enumeration also indicates that no GPU operations will occur between SUSPEND and RESUME.