D3D12DDI_BARRIER_ACCESS 열거형(d3d12umddi.h)

중요

일부 정보는 상업적으로 출시되기 전에 실질적으로 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.

D3D12DDI_BARRIER_ACCESS 값은 장벽과 관련하여 리소스 액세스를 지정하는 다음 필드의 비트 단위 OR입니다.

Syntax

typedef enum D3D12DDI_BARRIER_ACCESS {
  D3D12DDI_BARRIER_ACCESS_COMMON = 0x0,
  D3D12DDI_BARRIER_ACCESS_VERTEX_BUFFER = 0x1,
  D3D12DDI_BARRIER_ACCESS_CONSTANT_BUFFER = 0x2,
  D3D12DDI_BARRIER_ACCESS_INDEX_BUFFER = 0x4,
  D3D12DDI_BARRIER_ACCESS_RENDER_TARGET = 0x8,
  D3D12DDI_BARRIER_ACCESS_UNORDERED_ACCESS = 0x10,
  D3D12DDI_BARRIER_ACCESS_DEPTH_STENCIL_WRITE = 0x20,
  D3D12DDI_BARRIER_ACCESS_DEPTH_STENCIL_READ = 0x40,
  D3D12DDI_BARRIER_ACCESS_SHADER_RESOURCE = 0x80,
  D3D12DDI_BARRIER_ACCESS_STREAM_OUTPUT = 0x100,
  D3D12DDI_BARRIER_ACCESS_INDIRECT_ARGUMENT = 0x200,
  D3D12DDI_BARRIER_ACCESS_PREDICATION = 0x200,
  D3D12DDI_BARRIER_ACCESS_COPY_DEST = 0x400,
  D3D12DDI_BARRIER_ACCESS_COPY_SOURCE = 0x800,
  D3D12DDI_BARRIER_ACCESS_RESOLVE_DEST = 0x1000,
  D3D12DDI_BARRIER_ACCESS_RESOLVE_SOURCE = 0x2000,
  D3D12DDI_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_READ = 0x4000,
  D3D12DDI_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_WRITE = 0x8000,
  D3D12DDI_BARRIER_ACCESS_SHADING_RATE_SOURCE = 0x10000,
  D3D12DDI_BARRIER_ACCESS_VIDEO_DECODE_READ = 0x20000,
  D3D12DDI_BARRIER_ACCESS_VIDEO_DECODE_WRITE = 0x40000,
  D3D12DDI_BARRIER_ACCESS_VIDEO_PROCESS_READ = 0x80000,
  D3D12DDI_BARRIER_ACCESS_VIDEO_PROCESS_WRITE = 0x100000,
  D3D12DDI_BARRIER_ACCESS_VIDEO_ENCODE_READ = 0x200000,
  D3D12DDI_BARRIER_ACCESS_VIDEO_ENCODE_WRITE = 0x400000,
  D3D12DDI_BARRIER_ACCESS_NO_ACCESS = 0x80000000
} ;

상수

 
D3D12DDI_BARRIER_ACCESS_COMMON
값: 0x0
지정된 ExecuteCommandLists scope 모든 리소스에 대한 기본 초기 액세스입니다. 둘 이상의 쓰기 액세스를 포함하여 현재 레이아웃 및 리소스 속성과 호환되는 모든 유형의 액세스를 지원합니다. D3D12DDI_BARRIER_LAYOUT_COMMON 사용하는 버퍼 및 텍스처의 경우 D3D12DDI_BARRIER_ACCESS_COMMON 동시 읽기 및 쓰기 액세스를 지원합니다.

AccessAfter로 사용되는 경우 D3D12DDI_BARRIER_ACCESS_COMMON 사용하여 리소스를 일반 접근성으로 다시 반환할 수 있습니다. 잘못 사용하면 불필요한 캐시 플러시를 강제로 적용할 수 있습니다. 가능하면 AccessAfter 를 명시적 액세스 비트로 제한해야 합니다.

D3D12DDI_BARRIER_ACCESS_COMMON 장벽 AccessBefore 값으로 사용하지 마세요. 쓰기 후 읽기 또는 쓰기 후 위험은 명시적 AccessBefore 비트를 사용하여 가장 잘 처리됩니다.
D3D12DDI_BARRIER_ACCESS_VERTEX_BUFFER
값: 0x1
버퍼 리소스는 현재 실행 큐에서 꼭짓점 버퍼로 액세스할 수 있습니다.
D3D12DDI_BARRIER_ACCESS_CONSTANT_BUFFER
값: 0x2
버퍼 리소스는 현재 실행 큐에서 상수 버퍼로 액세스할 수 있습니다.
D3D12DDI_BARRIER_ACCESS_INDEX_BUFFER
값: 0x4
버퍼 리소스는 현재 실행 큐에서 인덱스 버퍼로 액세스할 수 있습니다.
D3D12DDI_BARRIER_ACCESS_RENDER_TARGET
값: 0x8
리소스는 렌더링 대상으로 액세스할 수 있습니다.
D3D12DDI_BARRIER_ACCESS_UNORDERED_ACCESS
값: 0x10
리소스는 순서가 지정되지 않은 액세스 리소스로 액세스할 수 있습니다.
D3D12DDI_BARRIER_ACCESS_DEPTH_STENCIL_WRITE
값: 0x20
리소스는 쓰기 가능한 깊이/스텐실 리소스로 액세스할 수 있습니다.
D3D12DDI_BARRIER_ACCESS_DEPTH_STENCIL_READ
값: 0x40
리소스는 읽기 전용 깊이/스텐실 리소스로 액세스할 수 있습니다.
D3D12DDI_BARRIER_ACCESS_SHADER_RESOURCE
값: 0x80
리소스는 셰이더 리소스로 액세스할 수 있습니다.
D3D12DDI_BARRIER_ACCESS_STREAM_OUTPUT
값: 0x100
버퍼는 스트림 출력 대상으로 액세스할 수 있습니다.
D3D12DDI_BARRIER_ACCESS_INDIRECT_ARGUMENT
값: 0x200
버퍼는 간접 인수 버퍼로 액세스할 수 있습니다.
D3D12DDI_BARRIER_ACCESS_PREDICATION
값: 0x200
버퍼는 조건자 버퍼로 액세스할 수 있습니다. D3D12DDI_BARRIER_ACCESS_INDIRECT_ARGUMENT 별칭이 지정됩니다.
D3D12DDI_BARRIER_ACCESS_COPY_DEST
값: 0x400
리소스는 복사 대상으로 액세스할 수 있습니다.
D3D12DDI_BARRIER_ACCESS_COPY_SOURCE
값: 0x800
리소스는 복사 원본으로 액세스할 수 있습니다.
D3D12DDI_BARRIER_ACCESS_RESOLVE_DEST
값: 0x1000
리소스는 resolve 대상으로 액세스할 수 있습니다.
D3D12DDI_BARRIER_ACCESS_RESOLVE_SOURCE
값: 0x2000
리소스는 resolve 원본으로 액세스할 수 있습니다.
D3D12DDI_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_READ
값: 0x4000
광선 추적 가속 구조로 읽을 수 있는 리소스에 액세스할 수 있습니다. D3D12DDI_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE 초기 상태를 사용하여 리소스를 만들어야 합니다.
D3D12DDI_BARRIER_ACCESS_RAYTRACING_ACCELERATION_STRUCTURE_WRITE
값: 0x8000
광선 추적 가속 구조로 쓰기 위해 리소스에 액세스할 수 있습니다. D3D12DDI_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE 초기 상태를 사용하여 리소스를 만들어야 합니다.
D3D12DDI_BARRIER_ACCESS_SHADING_RATE_SOURCE
값: 0x10000
리소스는 음영 속도 원본으로 액세스할 수 있습니다.
D3D12DDI_BARRIER_ACCESS_VIDEO_DECODE_READ
값: 0x20000
비디오 디코딩 큐에서 읽기 전용 액세스를 위해 리소스에 액세스할 수 있습니다.
D3D12DDI_BARRIER_ACCESS_VIDEO_DECODE_WRITE
값: 0x40000
비디오 디코딩 큐에서 쓰기 액세스를 위해 리소스에 액세스할 수 있습니다.
D3D12DDI_BARRIER_ACCESS_VIDEO_PROCESS_READ
값: 0x80000
비디오 프로세스 큐에서 읽기 전용 액세스를 위해 리소스에 액세스할 수 있습니다.
D3D12DDI_BARRIER_ACCESS_VIDEO_PROCESS_WRITE
값: 0x100000
비디오 프로세스 큐에서 쓰기 액세스를 위해 리소스에 액세스할 수 있습니다.
D3D12DDI_BARRIER_ACCESS_VIDEO_ENCODE_READ
값: 0x200000
비디오 인코딩 큐에서 읽기 전용 액세스를 위해 리소스에 액세스할 수 있습니다.
D3D12DDI_BARRIER_ACCESS_VIDEO_ENCODE_WRITE
값: 0x400000
비디오 인코딩 큐에서 쓰기 액세스를 위해 리소스에 액세스할 수 있습니다.
D3D12DDI_BARRIER_ACCESS_NO_ACCESS
값: 0x80000000
리소스는 읽기 또는 쓰기에 액세스할 수 없습니다. 하위 리소스 액세스가 D3D12DDI_BARRIER_ACCESS_NO_ACCESS 전환되면 동일한 ExecuteCommandLists scope 사용하기 전에 AccessBeforeD3D12DDI_BARRIER_ACCESS_NO_ACCESS 설정된 장벽에 의해 다시 활성화되어야 합니다.

D3D12DDI_BARRIER_ACCESS_NO_ACCESS D3D12DDI_BARRIER_SYNC_NONE또는D3D12DDI_BARRIER_SYNC_SPLIT 함께 사용할 수 있습니다.

D3D12DDI_BARRIER_ACCESS_NO_ACCESS 다른 액세스 비트로 설정할 수 없습니다. D3D12DDI_BARRIER_ACCESS_NO_ACCESS 일부 후속 장벽 또는 다음 ECL scope 때까지 리소스에 액세스할 것으로 예상되지 않음을 나타냅니다.

이 값은 읽기 캐시에서 하위 리소스를 제거하는 것이 합리적일 정도로 오랜 시간 동안 하위 리소스가 필요하지 않은 경우 장벽을 별칭 지정하는 데 유용합니다.

ExecuteCommandLists scope 끝나기 전에 리소스에 대한 최종 작업으로 레이아웃 전환을 시작하는 데에도 유용합니다. SyncAfterD3D12DDI_BARRIER_SYNC_NONE 경우 AccessAfterD3D12DDI_BARRIER_ACCESS_NO_ACCESS 합니다.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 11(WDDM 3.0)
머리글 d3d12umddi.h

추가 정보

D3D12DDI_BARRIER_SYNC

D3D12DDI_BUFFER_BARRIER_0088

D3D12DDI_GLOBAL_BARRIER_0088

D3D12DDI_RANGED_BARRIER_0088

D3D12DDI_TEXTURE_BARRIER_0088