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_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
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을 통해 열 수 있습니다.
- 적절한 힙 오류 플래그가 있는 경우 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.
- 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 |