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 iscardViewID3D11DeviceContext1::D iscardResource 메서드를 지원하는지 여부를 지정합니다. 드라이버가 이러한 메서드를 지원하는 경우 런타임은 이 멤버를 TRUE 로 설정하고 그렇지 않으면 FALSE 로 설정합니다. 이 멤버를 설정하는 방법은 드라이버가 실제로 이러한 메서드를 사용하는지 여부를 나타내지 않습니다. 즉, 드라이버가 하드웨어에 유용하지 않은 경우 이러한 메서드를 무시할 수 있습니다. FALSE이면 드라이버가 지원하지 않으므로 런타임은 이러한 메서드를 드라이버에 노출하지 않습니다. 개발 중에 이 멤버를 모니터링하여 이러한 메서드가 도움이 되었을 수 있는 하드웨어의 레거시 드라이버를 배제할 수 있습니다. 이 멤버가 TRUE 인지 FALSE인지에 따라 별도의 코드 경로를 작성할 필요가 없습니다. 해당하는 경우 언제든지 이러한 메서드를 호출할 수 있습니다.

FlagsForUpdateAndCopySeenByDriver

드라이버가 ID3D11DeviceContext1::CopySubresourceRegion1 및 ID3D11DeviceContext1::UpdateSubresource1 메서드에 의해 노출되는 복사 및 업데이트에 대한 새 의미 체계를 지원하는지 여부를 지정합니다. 드라이버가 복사 및 업데이트에 대한 새 의미 체계를 지원하는 경우 런타임은 이 멤버를 TRUE 로 설정합니다. 런타임은 레거시 드라이버에 대해서만 이 멤버를 FALSE 로 설정합니다. 런타임은 DiscardAPIsSeenByDriver 멤버와 유사하게 이 멤버를 처리합니다.

ClearView

드라이버가 ID3D11DeviceContext1::ClearView 메서드를 지원하는지 여부를 지정합니다. 드라이버가 이 메서드를 지원하는 경우 런타임은 이 멤버를 TRUE 로 설정하고 그렇지 않으면 FALSE 로 설정합니다. FALSE이면 드라이버가 지원하지 않으므로 런타임에서 이 메서드를 드라이버에 노출하지 않습니다.

참고기능 수준 9.1, 9.2 및 9.3의 경우 옵션이 런타임에 의해 에뮬레이트되기 때문에 이 멤버는 항상 TRUE 입니다.
 

CopyWithOverlap

겹치는 원본 및 대상 사각형을 사용하여 ID3D11DeviceContext1::CopySubresourceRegion1 을 호출할 수 있는지 여부를 지정합니다. 겹치는 원본 및 대상 사각형을 사용하여 CopySubresourceRegion1을 호출하고 그렇지 않으면 FALSE를 호출할 수 있는 경우 런타임은 이 멤버를 TRUE로 설정합니다. FALSE이면 드라이버가 지원하지 않으므로 런타임에서 이 메서드를 드라이버에 노출하지 않습니다.

참고기능 수준 9.1, 9.2 및 9.3의 경우 드라이버가 이미 이러한 기능 수준에 대한 옵션을 지원하므로 이 멤버는 항상 TRUE 입니다.
 

ConstantBufferPartialUpdate

드라이버가 상수 버퍼의 부분 업데이트를 지원하는지 여부를 지정합니다. 드라이버가 상수 버퍼의 부분 업데이트를 지원하고 그렇지 않으면 FALSE를 지원하는 경우 런 타임은 이 멤버를 TRUE 로 설정합니다. FALSE이면 드라이버가 지원하지 않으므로 런타임에서 이 작업을 드라이버에 노출하지 않습니다.

참고기능 수준 9.1, 9.2 및 9.3의 경우 옵션이 런타임에 의해 에뮬레이트되기 때문에 이 멤버는 항상 TRUE 입니다.
 

ConstantBufferOffsetting

드라이버가 셰이더에 대한 상수 버퍼에서 오프셋을 설정하기 위한 새 의미 체계를 지원하는지 여부를 지정합니다. 드라이버에서 ID3D11DeviceContext1::VSSetConstantBuffers1 메서드 및 FALSE와 같은 새 메서드를 호출할 때 오프셋을 지정할 수 있도록 지원하는 경우 런타임은 이 멤버를 TRUE로 설정합니다. FALSE이면 드라이버가 지원하지 않으므로 런타임에서 이 작업을 드라이버에 노출하지 않습니다.

참고기능 수준 9.1, 9.2 및 9.3의 경우 옵션이 런타임에 의해 에뮬레이트되기 때문에 이 멤버는 항상 TRUE 입니다.
 

MapNoOverwriteOnDynamicConstantBuffer

동적 상수 버퍼에서 D3D11_MAP_WRITE_NO_OVERWRITE 사용하여 ID3D11DeviceContext::Map을 호출할 수 있는지 여부를 지정합니다(즉, 드라이버가 이 작업을 지원하는지 여부). 런타임은 드라이버가 이 작업을 지원하는 경우 이 멤버를 TRUE 로 설정하고 그렇지 않으면 FALSE 로 설정합니다. FALSE이면 드라이버가 작업을 지원하지 않으므로 런타임이 이 메서드에 실패합니다.

참고기능 수준 9.1, 9.2 및 9.3의 경우 옵션이 런타임에 의해 에뮬레이트되기 때문에 이 멤버는 항상 TRUE 입니다.
 

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 내장 함수 및 기타 확장 이중 명령(DDIVDRCP)을 지원하는지 여부를 지정합니다. 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를 호출할 때 CheckFeatureSupportSAD4ShaderInstructions 및 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개).
런타임은 항상 다음과 같은 멤버 그룹화가 동일하게 설정됩니다. 즉, 그룹화의 모든 값은 TRUE 또는 FALSE 입니다.
  • DiscardAPIsSeenByDriverFlagsForUpdateAndCopySeenByDriver
  • ClearView, CopyWithOverlap, ConstantBufferPartialUpdate, ConstantBufferOffsettingMapNoOverwriteOnDynamicConstantBuffer
  • MapNoOverwriteOnDynamicBufferSRVMultisampleRTVWithForcedSampleCountOne

요구 사항

   
지원되는 최소 클라이언트 Windows 7용 Windows 8 및 플랫폼 업데이트 [데스크톱 앱 | UWP 앱]
지원되는 최소 서버 Windows Server 2012 및 Windows Server 2008 R2용 플랫폼 업데이트 [데스크톱 앱 | UWP 앱]
머리글 d3d11.h

추가 정보

핵심 구조체

D3D11_FEATURE