D3D12DDI_BARRIER_LAYOUT 열거형(d3d12umddi.h)

중요

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

D3D12DDI_BARRIER_LAYOUT 값은 텍스처 장벽과 관련하여 D3D12 하위 리소스에서 사용할 수 있는 레이아웃을 설명합니다. 레이아웃은 텍스처 리소스에만 적용됩니다.

Syntax

typedef enum D3D12DDI_BARRIER_LAYOUT {
  D3D12DDI_BARRIER_LAYOUT_UNDEFINED = 0xffffffff,
  D3D12DDI_BARRIER_LAYOUT_COMMON = 0,
  D3D12DDI_BARRIER_LAYOUT_PRESENT = 0,
  D3D12DDI_BARRIER_LAYOUT_GENERIC_READ,
  D3D12DDI_BARRIER_LAYOUT_RENDER_TARGET,
  D3D12DDI_BARRIER_LAYOUT_UNORDERED_ACCESS,
  D3D12DDI_BARRIER_LAYOUT_DEPTH_STENCIL_WRITE,
  D3D12DDI_BARRIER_LAYOUT_DEPTH_STENCIL_READ,
  D3D12DDI_BARRIER_LAYOUT_SHADER_RESOURCE,
  D3D12DDI_BARRIER_LAYOUT_COPY_SOURCE,
  D3D12DDI_BARRIER_LAYOUT_COPY_DEST,
  D3D12DDI_BARRIER_LAYOUT_RESOLVE_SOURCE,
  D3D12DDI_BARRIER_LAYOUT_RESOLVE_DEST,
  D3D12DDI_BARRIER_LAYOUT_SHADING_RATE_SOURCE,
  D3D12DDI_BARRIER_LAYOUT_VIDEO_DECODE_READ,
  D3D12DDI_BARRIER_LAYOUT_VIDEO_DECODE_WRITE,
  D3D12DDI_BARRIER_LAYOUT_VIDEO_PROCESS_READ,
  D3D12DDI_BARRIER_LAYOUT_VIDEO_PROCESS_WRITE,
  D3D12DDI_BARRIER_LAYOUT_VIDEO_ENCODE_READ,
  D3D12DDI_BARRIER_LAYOUT_VIDEO_ENCODE_WRITE,
  D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_COMMON,
  D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ,
  D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_UNORDERED_ACCESS,
  D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_SHADER_RESOURCE,
  D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_SOURCE,
  D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_DEST,
  D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_COMMON,
  D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_GENERIC_READ,
  D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_UNORDERED_ACCESS,
  D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_SHADER_RESOURCE,
  D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_SOURCE,
  D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_DEST,
  D3D12DDI_BARRIER_LAYOUT_VIDEO_QUEUE_COMMON,
  D3D12DDI_BARRIER_LAYOUT_LEGACY_COPY_SOURCE = 0x80000000,
  D3D12DDI_BARRIER_LAYOUT_LEGACY_COPY_DEST,
  D3D12DDI_BARRIER_LAYOUT_LEGACY_SHADER_RESOURCE,
  D3D12DDI_BARRIER_LAYOUT_LEGACY_PIXEL_SHADER_RESOURCE
} ;

상수

 
D3D12DDI_BARRIER_LAYOUT_UNDEFINED
값: 0xffffffff
이전 레이아웃이 관련이 없거나 정의되지 않은 하위 리소스 레이아웃 변경에 대한 지원을 제공합니다. 일반적으로 전체 하위 리소스 또는 전체 리소스 지우기, 취소 및 복사 명령에 사용됩니다.

LayoutBeforeLayoutAfter모두 D3D12_BARRIER_LAYOUT_UNDEFINED 설정된 레이아웃 전환은 메모리 액세스 전용 장벽을 나타냅니다. 많은 읽기/쓰기 작업은 D3D12_BARRIER_LAYOUT_COMMON 지원합니다. 특히 복사 명령은 D3D12_BARRIER_LAYOUT_COMMON 또는D3D12_BARRIER_LAYOUT_COPY 사용하여 텍스처에 쓸 수 있습니다. 메모리 액세스 전용 장벽을 사용하여 텍스처 레이아웃을 변경하지 않고 복사 쓰기를 텍스처로 플러시할 수 있습니다.
D3D12DDI_BARRIER_LAYOUT_COMMON
값: 0
D3D12_RESOURCE_STATE_COMMON 사용하는 레이아웃입니다. 이 레이아웃이 있는 하위 리소스는 레이아웃을 변경할 필요 없이 모든 큐 유형에서 읽을 수 있습니다. 또한 모든 큐 유형에서 복사 대상으로 쓸 수 있습니다.

스왑 체인 프레젠테이션을 사용하려면 백 버퍼가 D3D12_BARRIER_LAYOUT_COMMON 사용해야 합니다.
D3D12DDI_BARRIER_LAYOUT_PRESENT
값: 0
D3D12_BARRIER_LAYOUT_COMMON 별칭입니다.
D3D12DDI_BARRIER_LAYOUT_GENERIC_READ
모든 읽기 전용 액세스(예: SHADER_RESOURCE, COPY_SOURCE)에 대한 지원을 제공합니다. 이 값은 보다 구체적인 읽기 레이아웃만큼 최적이지 않을 수 있으므로 여러 동시 읽기 액세스가 필요한 텍스처에만 사용해야 합니다.
D3D12DDI_BARRIER_LAYOUT_RENDER_TARGET
D3D12_RESOURCE_STATE_RENDER_TARGET 사용하는 레이아웃과 일치합니다.
D3D12DDI_BARRIER_LAYOUT_UNORDERED_ACCESS
D3D12_RESOURCE_STATE_UNORDERED_ACCESS 사용하는 레이아웃과 일치합니다.
D3D12DDI_BARRIER_LAYOUT_DEPTH_STENCIL_WRITE
D3D12_RESOURCE_STATE_DEPTH_WRITE 사용하는 레이아웃과 일치합니다.
D3D12DDI_BARRIER_LAYOUT_DEPTH_STENCIL_READ
D3D12_RESOURCE_STATE_DEPTH_READ 사용하는 레이아웃과 일치합니다.
D3D12DDI_BARRIER_LAYOUT_SHADER_RESOURCE
D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE 사용하는 레이아웃과 일치합니다.
D3D12DDI_BARRIER_LAYOUT_COPY_SOURCE
D3D12_RESOURCE_STATE_COPY_SOURCE 사용하는 레이아웃과 일치합니다.
D3D12DDI_BARRIER_LAYOUT_COPY_DEST
D3D12_RESOURCE_STATE_COPY_DEST 사용하는 레이아웃과 일치합니다.
D3D12DDI_BARRIER_LAYOUT_RESOLVE_SOURCE
D3D12DDI_RESOURCE_STATE_RESOLVE_SOURCE 사용하는 레이아웃과 일치합니다.
D3D12DDI_BARRIER_LAYOUT_RESOLVE_DEST
D3D12DDI_RESOURCE_STATE_RESOLVE_DEST 사용하는 레이아웃과 일치합니다.
D3D12DDI_BARRIER_LAYOUT_SHADING_RATE_SOURCE
D3D12DDI_RESOURCE_STATE_0062_SHADING_RATE_SOURCE 사용하는 레이아웃과 일치합니다.
D3D12DDI_BARRIER_LAYOUT_VIDEO_DECODE_READ
D3D12_RESOURCE_STATE_VIDEO_DECODE_READ 사용하는 레이아웃과 일치합니다.
D3D12DDI_BARRIER_LAYOUT_VIDEO_DECODE_WRITE
D3D12_RESOURCE_STATE_VIDEO_DECODE_WRITE 사용하는 레이아웃과 일치합니다.
D3D12DDI_BARRIER_LAYOUT_VIDEO_PROCESS_READ
D3D12_RESOURCE_STATE_VIDEO_PROCESS_READ 사용하는 레이아웃과 일치합니다.
D3D12DDI_BARRIER_LAYOUT_VIDEO_PROCESS_WRITE
D3D12_RESOURCE_STATE_VIDEO_PROCESS_WRITE 사용하는 레이아웃과 일치합니다.
D3D12DDI_BARRIER_LAYOUT_VIDEO_ENCODE_READ
D3D12_RESOURCE_STATE_VIDEO_ENCODE_READ 사용하는 레이아웃과 일치합니다.
D3D12DDI_BARRIER_LAYOUT_VIDEO_ENCODE_WRITE
D3D12_RESOURCE_STATE_VIDEO_ENCODE_WRITE 사용하는 레이아웃과 일치합니다.
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_COMMON
직접 큐에서만 일반적인(장벽 없는) 사용을 지원합니다. 이 값은 일반적인 D3D12DDI_BARRIER_LAYOUT_COMMON 것보다 더 적합합니다. 직접 큐의 장벽에서만 사용할 수 있습니다.

Present에는 사용할 수 없습니다. D3D12_BARRIER_LAYOUT_COMMON ( D3D12_BARRIER_LAYOUT_PRESENT라고도 함)는 여전히 프레젠테이션에 필요한 레이아웃입니다.
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ
직접 큐에 특정한 최적화를 제외하고 D3D12_BARRIER_LAYOUT_GENERIC_READ 동일합니다. 직접 큐의 장벽에서만 사용할 수 있습니다.

또한 D3D12_BARRIER_LAYOUT_DIRECT_QUEUE_GENERIC_READ 직접 큐에서 읽기 전용 깊이, 음영 속도 원본 및 resolve 원본 액세스에 대한 지원이 포함됩니다.
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_UNORDERED_ACCESS
직접 큐에 특정한 최적화를 제외하고 D3D12_BARRIER_LAYOUT_UNORDERED_ACCESS 동일합니다. 직접 큐의 장벽에서만 사용할 수 있습니다.
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_SHADER_RESOURCE
직접 큐에 특정한 최적화를 제외하고 D3D12_BARRIER_LAYOUT_SHADER_RESOURCE 동일합니다. 직접 큐의 장벽에서만 사용할 수 있습니다.
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_SOURCE
직접 큐에 특정한 최적화를 제외하고 D3D12_BARRIER_LAYOUT_COPY_SOURCE 동일합니다. 직접 큐의 장벽에서만 사용할 수 있습니다.
D3D12DDI_BARRIER_LAYOUT_DIRECT_QUEUE_COPY_DEST
직접 큐에 특정한 최적화를 제외하고 D3D12_BARRIER_LAYOUT_COPY_DEST 동일합니다. 직접 큐의 장벽에서만 사용할 수 있습니다. Direct 큐에서 다음 액세스를 통해 리소스의 일부 레이아웃 전환에서 비용이 많이 들고 불필요한 압축 해제를 방지할 수 있습니다.
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_COMMON
컴퓨팅 큐에서만 일반적인(장벽 없는) 사용을 지원합니다. 보다 일반적인 D3D12_BARRIER_LAYOUT_COMMON 보다 최적일 수 있습니다. 컴퓨팅 큐의 장벽에서만 사용할 수 있습니다.
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_GENERIC_READ
컴퓨팅 큐에 특정한 최적화를 제외하고 D3D12_BARRIER_LAYOUT_GENERIC_READ 동일합니다. 컴퓨팅 큐의 장벽에서만 사용할 수 있습니다.
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_UNORDERED_ACCESS
컴퓨팅 큐에 특정한 최적화를 제외하고 D3D12_BARRIER_LAYOUT_UNORDERED_ACCESS 동일합니다. 컴퓨팅 큐의 장벽에서만 사용할 수 있습니다.
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_SHADER_RESOURCE
컴퓨팅 큐에 특정한 최적화를 제외하고 D3D12_BARRIER_LAYOUT_SHADER_RESOURCE 동일합니다. 컴퓨팅 큐의 장벽에서만 사용할 수 있습니다.
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_SOURCE
컴퓨팅 큐에 특정한 최적화를 제외하고 D3D12_BARRIER_LAYOUT_COPY_SOURCE 동일합니다. 컴퓨팅 큐의 장벽에서만 사용할 수 있습니다.
D3D12DDI_BARRIER_LAYOUT_COMPUTE_QUEUE_COPY_DEST
컴퓨팅 큐에 특정한 최적화를 제외하고 D3D12_BARRIER_LAYOUT_COPY_DEST 동일합니다. 컴퓨팅 큐의 장벽에서만 사용할 수 있습니다.
D3D12DDI_BARRIER_LAYOUT_VIDEO_QUEUE_COMMON
비디오 큐에서만 일반적인(장벽 없는) 사용을 지원합니다. 보다 일반적인 D3D12_BARRIER_LAYOUT_COMMON 보다 최적일 수 있습니다. 비디오 큐의 장벽에서만 사용할 수 있습니다.
D3D12DDI_BARRIER_LAYOUT_LEGACY_COPY_SOURCE
값: 0x80000000
내부적으로 변환된 레거시 리소스 상태를 지원합니다. 향상된 장벽 API가 이 값에 매핑되지 않습니다.
D3D12DDI_BARRIER_LAYOUT_LEGACY_COPY_DEST
내부적으로 변환된 레거시 리소스 상태를 지원합니다. 향상된 장벽 API가 이 값에 매핑되지 않습니다.
D3D12DDI_BARRIER_LAYOUT_LEGACY_SHADER_RESOURCE
내부적으로 변환된 레거시 리소스 상태를 지원합니다. 향상된 장벽 API가 이 값에 매핑되지 않습니다.
D3D12DDI_BARRIER_LAYOUT_LEGACY_PIXEL_SHADER_RESOURCE
내부적으로 변환된 레거시 리소스 상태를 지원합니다. 향상된 장벽 API가 이 값에 매핑되지 않습니다.

설명

버퍼 리소스에는 액세스 유형에 관계없이 선형 레이아웃만 있습니다.

리소스 레이아웃은 레이아웃 전환을 수행하는 큐 유형과 호환되어야 합니다.

요구 사항

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

추가 정보

D3D12DDI_TEXTURE_BARRIER_0088