D3D11_FEATURE_DATA_D3D11_OPTIONS 구조체(d3d11.h)
현재 그래픽 드라이버의 Direct3D 11.1 기능 옵션에 대해 설명합니다.
참고
이 구조는 Windows 8 이상 운영 체제에서 사용할 수 있는 Direct3D 11.1 런타임에서 지원됩니다.
구문
typedef struct D3D11_FEATURE_DATA_D3D11_OPTIONS {
BOOL OutputMergerLogicOp;
BOOL UAVOnlyRenderingForcedSampleCount;
BOOL DiscardAPIsSeenByDriver;
BOOL FlagsForUpdateAndCopySeenByDriver;
BOOL ClearView;
BOOL CopyWithOverlap;
BOOL ConstantBufferPartialUpdate;
BOOL ConstantBufferOffsetting;
BOOL MapNoOverwriteOnDynamicConstantBuffer;
BOOL MapNoOverwriteOnDynamicBufferSRV;
BOOL MultisampleRTVWithForcedSampleCountOne;
BOOL SAD4ShaderInstructions;
BOOL ExtendedDoublesShaderInstructions;
BOOL ExtendedResourceSharing;
} D3D11_FEATURE_DATA_D3D11_OPTIONS;
멤버
OutputMergerLogicOp
논리 작업을 혼합 상태에서 사용할 수 있는지 여부를 지정합니다. 논리 작업을 혼합 상태에서 사용할 수 있고 그렇지 않으면 FALSE 인 경우 런타임은 이 멤버를 TRUE 로 설정합니다. 이 멤버는 기능 수준 9.1, 9.2 및 9.3에 대해 FALSE입니다. 이 멤버는 기능 수준 10, 10.1 및 11에 대한 선택 사항입니다. 이 멤버는 기능 수준 11.1의 경우 TRUE 입니다.
UAVOnlyRenderingForcedSampleCount
드라이버가 RTV(렌더링 대상 뷰) 또는 깊이 스텐실 뷰(DSV)가 없고 UAV(순서가 지정되지 않은 액세스 뷰)만 바인딩된 상태로 렌더링할 수 있는지 여부를 지정합니다. 드라이버가 RTV 또는 DSV 없이 렌더링할 수 있고 UAV만 바인딩되고 그렇지 않으면 FALSE로 렌더링할 수 있는 경우 런타임은 이 멤버를 TRUE로 설정합니다. TRUE이면 RTV 또는 DSV가 없고 UAV만 바인딩된 상태에서 렌더링할 때 D3D11_RASTERIZER_DESC1 ForcedSampleCount 멤버를 1, 4 또는 8로 설정할 수 있습니다. 기능 수준 11.1의 경우 이 멤버는 항상 TRUE이며 ForcedSampleCount를 1, 4 또는 8 외에 16으로 설정할 수도 있습니다. ForcedSampleCount의 기본값은 0입니다. 즉, 값이 1로 설정된 경우와 동일합니다. 이 멤버를 설정하는 방법과 독립적으로 UAV 전용 렌더링의 경우 항상 ForcedSampleCount 를 0 또는 1로 설정할 수 있습니다.
DiscardAPIsSeenByDriver
드라이버가 ID3D11DeviceContext1::D iscardView 및 ID3D11DeviceContext1::D iscardResource 메서드를 지원하는지 여부를 지정합니다. 드라이버가 이러한 메서드를 지원하는 경우 런타임은 이 멤버를 TRUE 로 설정하고 그렇지 않으면 FALSE 로 설정합니다. 이 멤버를 설정하는 방법은 드라이버가 실제로 이러한 메서드를 사용하는지 여부를 나타내지 않습니다. 즉, 드라이버가 하드웨어에 유용하지 않은 경우 이러한 메서드를 무시할 수 있습니다. FALSE이면 드라이버가 지원하지 않으므로 런타임은 이러한 메서드를 드라이버에 노출하지 않습니다. 개발 중에 이 멤버를 모니터링하여 이러한 메서드가 도움이 되었을 수 있는 하드웨어의 레거시 드라이버를 배제할 수 있습니다. 이 멤버가 TRUE 인지 FALSE인지에 따라 별도의 코드 경로를 작성할 필요가 없습니다. 해당하는 경우 언제든지 이러한 메서드를 호출할 수 있습니다.
FlagsForUpdateAndCopySeenByDriver
드라이버가 ID3D11DeviceContext1::CopySubresourceRegion1 및 ID3D11DeviceContext1::UpdateSubresource1 메서드에 의해 노출되는 복사 및 업데이트에 대한 새 의미 체계를 지원하는지 여부를 지정합니다. 드라이버가 복사 및 업데이트에 대한 새 의미 체계를 지원하는 경우 런타임은 이 멤버를 TRUE 로 설정합니다. 런타임은 레거시 드라이버에 대해서만 이 멤버를 FALSE 로 설정합니다. 런타임은 DiscardAPIsSeenByDriver 멤버와 유사하게 이 멤버를 처리합니다.
ClearView
드라이버가 ID3D11DeviceContext1::ClearView 메서드를 지원하는지 여부를 지정합니다. 드라이버가 이 메서드를 지원하는 경우 런타임은 이 멤버를 TRUE 로 설정하고 그렇지 않으면 FALSE 로 설정합니다. FALSE이면 드라이버가 지원하지 않으므로 런타임에서 이 메서드를 드라이버에 노출하지 않습니다.
CopyWithOverlap
겹치는 원본 및 대상 사각형을 사용하여 ID3D11DeviceContext1::CopySubresourceRegion1 을 호출할 수 있는지 여부를 지정합니다. 겹치는 원본 및 대상 사각형을 사용하여 CopySubresourceRegion1을 호출하고 그렇지 않으면 FALSE를 호출할 수 있는 경우 런타임은 이 멤버를 TRUE로 설정합니다. FALSE이면 드라이버가 지원하지 않으므로 런타임에서 이 메서드를 드라이버에 노출하지 않습니다.
ConstantBufferPartialUpdate
드라이버가 상수 버퍼의 부분 업데이트를 지원하는지 여부를 지정합니다. 드라이버가 상수 버퍼의 부분 업데이트를 지원하고 그렇지 않으면 FALSE를 지원하는 경우 런 타임은 이 멤버를 TRUE 로 설정합니다. FALSE이면 드라이버가 지원하지 않으므로 런타임에서 이 작업을 드라이버에 노출하지 않습니다.
ConstantBufferOffsetting
드라이버가 셰이더에 대한 상수 버퍼에서 오프셋을 설정하기 위한 새 의미 체계를 지원하는지 여부를 지정합니다. 드라이버에서 ID3D11DeviceContext1::VSSetConstantBuffers1 메서드 및 FALSE와 같은 새 메서드를 호출할 때 오프셋을 지정할 수 있도록 지원하는 경우 런타임은 이 멤버를 TRUE로 설정합니다. FALSE이면 드라이버가 지원하지 않으므로 런타임에서 이 작업을 드라이버에 노출하지 않습니다.
MapNoOverwriteOnDynamicConstantBuffer
동적 상수 버퍼에서 D3D11_MAP_WRITE_NO_OVERWRITE 사용하여 ID3D11DeviceContext::Map을 호출할 수 있는지 여부를 지정합니다(즉, 드라이버가 이 작업을 지원하는지 여부). 런타임은 드라이버가 이 작업을 지원하는 경우 이 멤버를 TRUE 로 설정하고 그렇지 않으면 FALSE 로 설정합니다. FALSE이면 드라이버가 작업을 지원하지 않으므로 런타임이 이 메서드에 실패합니다.
MapNoOverwriteOnDynamicBufferSRV
동적 버퍼 SRV에서 D3D11_MAP_WRITE_NO_OVERWRITE 사용하여 ID3D11DeviceContext::Map을 호출할 수 있는지 여부를 지정합니다(즉, 드라이버가 이 작업을 지원하는지 여부). 런타임은 드라이버가 이 작업을 지원하는 경우 이 멤버를 TRUE 로 설정하고 그렇지 않으면 FALSE 로 설정합니다. FALSE이면 드라이버가 작업을 지원하지 않으므로 런타임이 이 메서드에 실패합니다.
MultisampleRTVWithForcedSampleCountOne
RTV 바인딩으로 렌더링할 때 드라이버가 다중 샘플 렌더링을 지원하는지 여부를 지정합니다. TRUE이면 다중 샘플 RTV가 바인딩된 D3D11_RASTERIZER_DESC1ForcedSampleCount 멤버를 1로 설정할 수 있습니다. 드라이버는 기능 수준 10 이상에서 이 옵션을 지원할 수 있습니다. FALSE이면 드라이버가 레거시이거나 기능 수준이 너무 낮기 때문에 래스터라이저 상태 만들기가 실패합니다.
SAD4ShaderInstructions
하드웨어 및 드라이버가 셰이더에서 msad4 내장 함수를 지원하는지 여부를 지정합니다. 하드웨어 및 드라이버 지원에서 셰이더의 msad4 내장 함수를 호출하는 경우 런타임은 이 멤버를 TRUE로 설정합니다. FALSE이면 드라이버가 레거시이거나 하드웨어에서 옵션을 지원하지 않습니다. 런타임은 msad4를 사용하는 셰이더에 대한 셰이더 생성에 실패합니다.
ExtendedDoublesShaderInstructions
하드웨어 및 드라이버가 셰이더에서 fma 내장 함수 및 기타 확장 이중 명령(DDIV 및 DRCP)을 지원하는지 여부를 지정합니다. fma 내장 함수는 확장 doubles DFMA 명령을 내보낸다. 하드웨어 및 드라이버 지원 확장이 셰이더(셰이더 모델 5 이상)의 명령을 두 배로 늘리면 런타임은 이 멤버를 TRUE로 설정합니다. 이 옵션을 지원하면 기본 배정밀도 셰이더 명령도 지원됩니다. D3D11_FEATURE_DOUBLES 값을 사용하여 배정밀도 셰이더 지원을 쿼리할 수 있습니다. FALSE이면 하드웨어 및 드라이버에서 옵션을 지원하지 않습니다. 런타임은 확장된 doubles 명령을 사용하는 셰이더에 대한 셰이더 생성에 실패합니다.
ExtendedResourceSharing
하드웨어 및 드라이버가 공유 Texture2D 리소스 유형 및 형식에 대한 추가 지원을 사용할 수 있는지 여부를 지정합니다. 하드웨어 및 드라이버가 확장된 Texture2D 리소스 공유를 지원하는 경우 런타임은 이 멤버를 TRUE 로 설정합니다.
설명
Microsoft Direct3D 디바이스가 기능 수준 11.1(D3D_FEATURE_LEVEL_11_1)을 지원하는 경우 D3D11_FEATURE_D3D11_OPTIONS 사용하여 ID3D11Device::CheckFeatureSupport를 호출할 때 CheckFeatureSupport는 SAD4ShaderInstructions 및 ExtendedDoublesShaderInstructions를 제외한 모든 멤버가 TRUE로 설정된 D3D11_FEATURE_DATA_D3D11_OPTIONS 대한 포인터를 반환합니다. 멤버- 필요에 따라 하드웨어 및 드라이버에서 지원되므로 TRUE 또는 FALSE일 수 있습니다.
기능 수준 11.1은 다음과 같은 추가 기능을 제공합니다.
- UAV 바인딩 슬롯이 8개 대신 64개인 모든 셰이더 단계의 UAV.
- 대상 독립적 래스터화를 사용하면 D3D11_RASTERIZER_DESC1ForcedSampleCount 멤버를 1, 4, 8 또는 16으로 설정하고 단일 샘플로 RTV로 렌더링할 수 있습니다.
- D3D11_RASTERIZER_DESC1 ForcedSampleCount 멤버가 최대 16으로 설정된 UAV 전용 렌더링( 기능 수준 11의 경우 최대 8개).
- DiscardAPIsSeenByDriver 및 FlagsForUpdateAndCopySeenByDriver
- ClearView, CopyWithOverlap, ConstantBufferPartialUpdate, ConstantBufferOffsetting 및 MapNoOverwriteOnDynamicConstantBuffer
- MapNoOverwriteOnDynamicBufferSRV 및 MultisampleRTVWithForcedSampleCountOne
요구 사항
지원되는 최소 클라이언트 | Windows 7용 Windows 8 및 플랫폼 업데이트 [데스크톱 앱 | UWP 앱] |
지원되는 최소 서버 | Windows Server 2012 및 Windows Server 2008 R2용 플랫폼 업데이트 [데스크톱 앱 | UWP 앱] |
머리글 | d3d11.h |