다음을 통해 공유


D3D11_RESOURCE_FLAGS 구조체(d3d11on12.h)

ID3D11On12Device::CreateWrappedResource와 함께 사용하여 바인딩 플래그, misc 플래그 및 CPU 액세스 플래그를 포함하여 리소스 속성 또는 힙 속성으로 유추되는 플래그를 재정의합니다.

구문

typedef struct D3D11_RESOURCE_FLAGS {
  UINT BindFlags;
  UINT MiscFlags;
  UINT CPUAccessFlags;
  UINT StructureByteStride;
} D3D11_RESOURCE_FLAGS;

멤버

BindFlags

그래픽 드라이버가 일반 D3D12 리소스를 D3D11이 이해할 수 있는 리소스에 scope 수 있도록 바인딩 플래그를 완전히 유추하거나 완전히 지정해야 합니다.

제공된 리소스에서 지원되지 않는 바인딩 플래그를 지정하면 오류가 반환됩니다.

다음 바인딩 플래그(D3D11_BIND_FLAG 열거형 상수)는 가정되지 않으며 리소스를 이러한 방식으로 사용하려면 지정해야 합니다.

  • D3D11_BIND_VERTEX_BUFFER
  • D3D11_BIND_INDEX_BUFFER
  • D3D11_BIND_CONSTANT_BUFFER
  • D3D11_BIND_STREAM_OUTPUT
  • D3D11_BIND_DECODER
  • D3D11_BIND_VIDEO_ENCODER
다음 바인딩 플래그는 해당 D3D12 리소스 플래그의 존재에 따라 가정되며 바인딩 플래그를 지정하여 제거할 수 있습니다.
  • D3D12_RESOURCE_MISC_DENY_SHADER_RESOURCE 없는 한 D3D11_BIND_SHADER_RESOURCE
  • D3D11_BIND_RENDER_TARGET(D3D12_RESOURCE_MISC_ALLOW_RENDER_TARGET 있는 경우)
  • D3D12_RESOURCE_MISC_ALLOW_DEPTH_STENCIL 있는 경우 D3D11_BIND_DEPTH_STENCIL
  • D3D12_RESOURCE_MISC_ALLOW_UNORDERED_ACCESS 있는 경우 D3D11_BIND_UNORDERED_ACCESS
렌더링 대상 또는 UAV 버퍼는 플래그를 재정의하지 않고 래핑할 수 있습니다. 그러나 VB/IB/CB/SO 버퍼는 Direct3D 11에서 상호 배타적이므로 바인딩 플래그를 수동으로 지정해야 합니다.

MiscFlags

misc 플래그가 0이 아닌 경우 지정된 플래그는 유추된 플래그가 있는 최종 리소스 desc에 OR가 됩니다. 기능을 추가하기 위해 Misc 플래그를 부분적으로 지정할 수 있지만 암시된 misc 플래그는 마스킹할 수 없습니다.

다음 오류 플래그(D3D11_RESOURCE_MISC_FLAG 열거형 상수)는 가정되지 않습니다.

  • D3D11_RESOURCE_MISC_GENERATE_MIPS(CLAMP와 충돌).
  • D3D11_RESOURCE_MISC_TEXTURECUBE(기본 보기 동작 변경)
  • D3D11_RESOURCE_MISC_DRAWINDIRECT_ARGS(일부 바인딩 플래그와 함께 사용할 수 없음).
  • D3D11_RESOURCE_MISC_BUFFER_ALLOW_RAW_VIEWS(다른 유형의 UAV와는 제외됨).
  • D3D11_RESOURCE_MISC_BUFFER_STRUCTURED(다른 유형의 UAV와는 배타적).
  • D3D11_RESOURCE_MISC_RESOURCE_CLAMP(D3D10 QI 금지, GENERATE_MIPS 충돌)
  • D3D11_RESOURCE_MISC_SHARED_KEYEDMUTEX. D3D11 키 뮤텍스 리소스를 만들고, 공유 핸들을 만들고, 11on12 또는 D3D11을 통해 열 수 있습니다.
다음 misc 플래그가 가정되며 생성된 리소스 desc에서 제거할 수 없습니다. 이 중 하나가 설정되고 D3D12 리소스가 지원하지 않는 경우 생성이 실패합니다.
  • 적절한 힙 오류 플래그가 있는 경우 D3D11_RESOURCE_MISC_SHARED, D3D11_RESOURCE_MISC_SHARED_NTHANDLE, D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE.
  • D3D12 리소스가 GDI와 호환되는 경우 D3D11_RESOURCE_MISC_GDI_COMPATIBLE.
  • createReservedResource를 통해 D3D12 리소스를 만든 경우 D3D11_RESOURCE_MISC_TILED.
  • D3D12 힙이 전달된 경우 D3D11_RESOURCE_MISC_TILE_POOL.
이 API에 대해 지정하는 데 잘못된 오류 플래그는 다음과 같습니다.
  • D3D11_RESOURCE_MISC_RESTRICTED_CONTENT D3D12는 하드웨어 보호만 지원하므로
  • D3D11_RESOURCE_MISC_RESTRICT_SHARED_RESOURCE_DRIVER 12에 존재하지 않으며 리소스를 만든 후에는 에 추가할 수 없습니다.
  • D3D11_RESOURCE_MISC_GUARDED 내부 생성 메커니즘에 의해서만 설정됩니다.

CPUAccessFlags

CPUAccessFlags는 D3D12 리소스에서 유추되지 않습니다. 이는 모든 리소스가 D3D11_USAGE_DEFAULT 처리되므로 CPUAccessFlags 는 기본 버퍼 또는 텍스처의 을 가정하는 유효성 검사를 강제로 적용하기 때문입니다. 래핑된 리소스는 Map(DISCARD)을 지원하지 않습니다. 래핑된 리소스는 Map(NO_OVERWRITE)을 지원하지 않지만 대신 기본 D3D12 리소스를 매핑하여 구현할 수 있습니다. 래핑된 리소스에서 Map 호출을 실행하면 DO_NOT_WAIT 플래그를 사용하지 않는 한 해당 리소스에 대해 제출된 모든 D3D11 작업과 동기화됩니다.

StructureByteStride

버퍼가 구조화된 버퍼를 나타내는 경우 버퍼 구조의 각 요소 크기(바이트)입니다.

설명

CreateWrappedResource에서 이 구조를 사용합니다.

요구 사항

요구 사항
헤더 d3d11on12.h

추가 정보

11on12 구조체