다음을 통해 공유


D3D12_RESOURCE_FLAGS 열거형(d3d12.h)

리소스 작업에 대한 옵션을 지정하는 상수를 정의합니다.

통사론

typedef enum D3D12_RESOURCE_FLAGS {
  D3D12_RESOURCE_FLAG_NONE = 0,
  D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET = 0x1,
  D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL = 0x2,
  D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS = 0x4,
  D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE = 0x8,
  D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER = 0x10,
  D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS = 0x20,
  D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY = 0x40,
  D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY = 0x80,
  D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE = 0x100
} ;

상수

 
D3D12_RESOURCE_FLAG_NONE
값: 0
옵션이 지정되지 않았습니다.
D3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET
값: 0x1
리소스에 대한 렌더링 대상 뷰를 만들 수 있습니다. 또한 리소스를 D3D12_RESOURCE_STATE_RENDER_TARGET상태로 전환할 수 있습니다. 일부 어댑터 아키텍처는 일반 렌더링 중에 유효 대역폭을 줄이기 위해 이 플래그를 사용하여 텍스처에 추가 메모리를 할당합니다. 이 특성은 렌더링되지 않는 텍스처에 도움이 되지 않을 수 있으며 BC 형식으로 압축된 텍스처에도 사용할 수 없습니다. 렌더링이 발생하지 않을 때 애플리케이션은 이 플래그를 설정하지 않아야 합니다.

다음과 같은 제한 사항 및 상호 작용이 적용됩니다.
D3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL
값: 0x2
리소스에 대해 깊이 스텐실 보기를 만들 수 있을 뿐만 아니라 리소스가 D3D12_RESOURCE_STATE_DEPTH_WRITE 및/또는 D3D12_RESOURCE_STATE_DEPTH_READ상태로 전환할 수 있습니다. 대부분의 어댑터 아키텍처는 유효 대역폭을 줄이고 초기 깊이 테스트를 위한 최적화를 최대화하기 위해 이 플래그를 사용하여 텍스처에 추가 메모리를 할당합니다. 깊이 작업이 발생하지 않는 경우 애플리케이션에서 이 플래그를 설정하지 않아야 합니다.

다음과 같은 제한 사항 및 상호 작용이 적용됩니다.

  • 텍스처 형식은 현재 기능 수준에서 깊이 스텐실 기능을 지원해야 합니다. 또는 형식이 형식이 없는 형식인 경우 동일한 형식 없는 그룹 내의 형식은 현재 기능 수준에서 깊이 스텐실 기능을 지원해야 합니다.

  • D3D12_RESOURCE_DIMENSION_BUFFER, 4KB 맞춤과 함께 사용할 수 없습니다. D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_ALLOW_RENDER_TARGET, D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS, D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS, D3D12_TEXTURE_LAYOUT_64KB_STANDARD_SWIZZLE, D3D12_TEXTURE_LAYOUT_ROW_MAJOR, D3D12_HEAP_FLAG_DENY_RT_DS_TEXTURES 또는 D3D12_HEAP_FLAG_ALLOW_DISPLAY있는 힙과 함께 사용되지도 않습니다.

  • WriteToSubresource 및 ReadFromSubresource사용을 배제합니다.

  • 하위 리소스의 GPU 복사를 제외합니다. CopyTextureRegion 이 플래그를 사용하여 리소스 간 전체 하위 리소스를 복사해야 합니다.

D3D12_RESOURCE_FLAG_ALLOW_UNORDERED_ACCESS
값: 0x4
리소스에 대해 순서가 지정되지 않은 액세스 보기를 만들 수 있을 뿐만 아니라 리소스를 D3D12_RESOURCE_STATE_UNORDERED_ACCESS상태로 전환할 수 있습니다. 일부 어댑터 아키텍처는 이 기능을 제공하기 위해 덜 효율적인 텍스처 레이아웃에 의존해야 합니다. 텍스처가 순서가 지정되지 않은 액세스에 거의 사용되지 않는 경우 두 개의 텍스처를 가지고 그 간에 복사하는 것이 좋습니다. 한 텍스처에는 이 플래그가 있지만 다른 텍스처는 이 플래그를 갖지 않습니다. 순서가 지정되지 않은 액세스 작업이 발생하지 않을 경우 애플리케이션에서 이 플래그를 설정하지 않아야 합니다.

다음과 같은 제한 사항 및 상호 작용이 적용됩니다.
D3D12_RESOURCE_FLAG_DENY_SHADER_RESOURCE
값: 0x8
셰이더 리소스 뷰가 리소스에 대해 만들어지는 것을 허용하지 않고 리소스가 D3D12_RESOURCE_STATE_NON_PIXEL_SHADER_RESOURCE 또는 D3D12_RESOURCE_STATE_PIXEL_SHADER_RESOURCE상태로 전환되지 않도록 설정합니다. 일부 어댑터 아키텍처는 셰이더 리소스 뷰가 제외될 때 깊이 스텐실 텍스처에 대한 대역폭 용량을 얻습니다. 셰이더 리소스에 텍스처가 거의 사용되지 않는 경우 두 개의 텍스처를 가지고 그 간에 복사하는 것이 좋습니다. 한 텍스처에는 이 플래그가 있지만 다른 텍스처는 이 플래그를 갖지 않습니다. 깊이 스텐실 텍스처가 셰이더 리소스 뷰에서 사용되지 않는 경우 애플리케이션에서 이 플래그를 설정해야 합니다.

다음과 같은 제한 사항 및 상호 작용이 적용됩니다.

  • D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL함께 사용해야 합니다.

D3D12_RESOURCE_FLAG_ALLOW_CROSS_ADAPTER
값: 0x10
D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS사용하도록 설정된 기능뿐만 아니라 어댑터 간 데이터에 리소스를 사용할 수 있습니다. 어댑터 간 리소스는 일반적으로 사용 중에 효과적인 텍스처 대역폭을 줄이는 기술을 배제하며, 일부 어댑터 아키텍처에는 다른 캐싱 동작이 필요할 수 있습니다. 리소스 데이터를 다른 어댑터와 함께 사용하지 않을 경우 애플리케이션에서 이 플래그를 설정하지 않아야 합니다.

다음과 같은 제한 사항 및 상호 작용이 적용됩니다.
D3D12_RESOURCE_FLAG_ALLOW_SIMULTANEOUS_ACCESS
값: 0x20
여러 다른 큐, 디바이스 또는 프로세스에서 리소스에 동시에 액세스할 수 있도록 허용합니다(예를 들어 둘 이상의 명령 목록에서 동시에 실행되는 ResourceBarrier 전환과 함께 리소스를 사용할 수 있습니다).

기록기가 다른 판독기에서 액세스하는 텍셀을 동시에 수정하지 않는 한 동시 액세스를 통해 여러 판독기와 하나의 작성기를 사용할 수 있습니다. 일부 어댑터 아키텍처는 사용 중에 효과적인 텍스처 대역폭을 줄이기 위해 기술을 활용할 수 없습니다.

그러나 텍스처에 자주 겹치지 않는 쓰기 중에 여러 판독기가 필요하지 않은 경우 애플리케이션에서 이 플래그를 설정하지 않아야 합니다. 이 플래그를 사용하면 리소스 펜스가 손상되어 대기를 수행하고 리소스와 함께 압축이 사용되지 않도록 방지할 수 있습니다.

다음과 같은 제한 사항 및 상호 작용이 적용됩니다.

  • D3D12_RESOURCE_DIMENSION_BUFFER함께 사용할 수 없습니다. 그러나 버퍼에는 항상 이 플래그가 나타내는 속성이 있습니다.

  • MSAA 텍스처와 함께 사용할 수 없습니다.

  • D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_ALLOW_DEPTH_STENCIL사용할 수 없습니다.

D3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY
값: 0x40
이 리소스가 디코딩 참조 프레임으로만 사용될 수 있다는 것을 스펙페이스합니다. 비디오 디코딩 작업에서만 쓰거나 읽을 수 있습니다.

D3D12_VIDEO_DECODE_TIER_1D3D12_VIDEO_DECODE_TIER_2D3D12_FEATURE_DATA_VIDEO_DECODE_SUPPORT 구조 구성 플래그에서 D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_REFERENCE_ONLY_ALLOCATIONS_REQUIRED 보고할 수 있습니다. 이 경우 애플리케이션은 D3D12_RESOURCE_FLAGS::D 3D12_RESOURCE_FLAG_VIDEO_DECODE_REFERENCE_ONLY 리소스 플래그를 사용하여 참조 프레임을 할당해야 합니다.

D3D12_VIDEO_DECODE_TIER_3 [D3D12_VIDEO_DECODE_CONFIGURATION_FLAG_REFERENCE_ONLY_ALLOCATIONS_REQUIRED]을 설정하면 안됩니다.
(.. /d3d12video/ne-d3d12video-d3d12_video_decode_configuration_flags) 구성 플래그이며 이 리소스 플래그를 사용할 필요가 없습니다.
D3D12_RESOURCE_FLAG_VIDEO_ENCODE_REFERENCE_ONLY
값: 0x80
이 리소스가 인코딩 참조 프레임으로만 사용될 수 있음을 스펙페이스합니다. 비디오 인코딩 작업에서만 쓰거나 읽을 수 있습니다.
D3D12_RESOURCE_FLAG_RAYTRACING_ACCELERATION_STRUCTURE
값: 0x100
DirectX 12 Agility SDK 1.608.0 이상이 필요합니다. 버퍼가 광선 추적 가속 구조로 사용됨을 나타냅니다. D3D12 고급 장벽을 사용하는 경우 버퍼에 더 이상 레이아웃/상태가 없으므로 이 플래그는 D3D12_RESOURCE_STATE_RAYTRACING_ACCELERATION_STRUCTURE대신 사용됩니다.

발언

이 열거형은 D3D12_RESOURCE_DESCFlags 멤버에서 사용됩니다.

요구 사항

요구
헤더 d3d12.h

참고 항목