Метод ID3D12ShaderReflection::GetRequiresFlags (d3d12shader.h)
Извлекает группу флагов, указывающих требования к шейдеру.
Синтаксис
UINT64 GetRequiresFlags();
Возвращаемое значение
Тип: UINT64
Значение типа , содержащее сочетание одного или нескольких флагов требований #define
шейдера; каждый флаг указывает требование к шейдеру. Значение по умолчанию 0 означает, что требования отсутствуют.
D3D_SHADER_REQUIRES_DOUBLES. Для шейдера требуется, чтобы графический драйвер и оборудование поддерживали тип данных double .
D3D_SHADER_REQUIRES_EARLY_DEPTH_STENCIL. Для шейдера требуется набор элементов ранней глубины.
D3D_SHADER_REQUIRES_UAVS_AT_EVERY_STAGE. Для шейдера требуются неупорядоченные представления доступа (UAV) на каждом этапе конвейера.
D3D_SHADER_REQUIRES_64_UAVS. Для шейдера требуется 64 БПЛА.
D3D_SHADER_REQUIRES_MINIMUM_PRECISION. Для поддержки минимальной точности шейдеру требуется графический драйвер и оборудование. Дополнительные сведения см. в разделе Использование минимальной точности HLSL.
D3D_SHADER_REQUIRES_11_1_DOUBLE_EXTENSIONS. Для шейдера требуется, чтобы графический драйвер и оборудование поддерживали расширенные инструкции удваителя. Дополнительные сведения см. в элементе ExtendedDoublesShaderInstructionsD3D12_FEATURE_DATA_D3D12_OPTIONS.
D3D_SHADER_REQUIRES_11_1_SHADER_EXTENSIONS. Шейдер требует, чтобы графический драйвер и оборудование поддерживали встроенную функцию msad4 в шейдерах. Дополнительные сведения см. в разделе ЭЛЕМЕНТ SAD4ShaderInstructionsD3D12_FEATURE_DATA_D3D12_OPTIONS.
D3D_SHADER_REQUIRES_LEVEL_9_COMPARISON_FILTERING. Для шейдера требуется, чтобы графический драйвер и оборудование поддерживали теневой режим Direct3D 9.
D3D_SHADER_REQUIRES_TILED_RESOURCES. Для шейдера требуется, чтобы графический драйвер и оборудование поддерживали мозаичные ресурсы.
D3D_SHADER_REQUIRES_STENCIL_REF. Для тестирования трафарета глубины шейдеру требуется значение ссылки. Дополнительные сведения см. в разделе элемент PSSpecifiedStencilRefSupported структуры D3D12_FEATURE_DATA_D3D12_OPTIONS и ID3D12GraphicsCommandList::OMSetStencilRef.
D3D_SHADER_REQUIRES_INNER_COVERAGE. Для шейдера требуется, чтобы графический драйвер и оборудование поддерживали внутреннее покрытие. Дополнительные сведения см. в разделе константы перечисления D3D_NAME_INNER_COVERAGE и D3D11_NAME_INNER_COVERAGE в D3D_NAME.
D3D_SHADER_REQUIRES_TYPED_UAV_LOAD_ADDITIONAL_FORMATS. Для шейдера требуется, чтобы графический драйвер и оборудование поддерживали загрузку дополнительных форматов для типизированных представлений без упорядоченного доступа (БПЛА). См. элемент TypedUAVLoadAdditionalFormats структуры D3D12_FEATURE_DATA_D3D12_OPTIONS .
D3D_SHADER_REQUIRES_ROVS. Для шейдера требуется, чтобы графический драйвер и оборудование поддерживали растеризатор упорядоченных представлений (ROV). См . раздел Упорядоченные представления растеризатора.
D3D_SHADER_REQUIRES_VIEWPORT_AND_RT_ARRAY_INDEX_FROM_ANY_SHADER_FEEDING_RASTERIZER. Для шейдера требуется, чтобы графический драйвер и оборудование поддерживали окно просмотра и отображали значения индекса целевого массива из любого растеризатора, подающего шейдер. Дополнительные сведения см. в описании элемента VPAndRTArrayIndexFromAnyShaderFeedingRasterizerSupportedWithoutGSEmulationструктуры D3D12_FEATURE_DATA_D3D12_OPTIONS .
D3D_SHADER_REQUIRES_WAVE_OPS. Для шейдера требуется, чтобы графический драйвер и оборудование поддерживали волновые операции. Дополнительные сведения см. в разделе Член WaveOps структуры D3D12_FEATURE_DATA_D3D12_OPTIONS1 .
D3D_SHADER_REQUIRES_INT64_OPS. Для шейдера требуется, чтобы графический драйвер и оборудование поддерживали 64-разрядные целочисленные операции. Дополнительные сведения см. в элементе Int64ShaderOps структуры D3D12_FEATURE_DATA_D3D12_OPTIONS1 .
D3D_SHADER_REQUIRES_VIEW_ID. Для шейдера требуется, чтобы графический драйвер и оборудование поддерживали экземпляр представления с помощью SV_ViewID. Дополнительные сведения см. в разделе ViewInstancingTier элемента структуры D3D12_FEATURE_DATA_D3D12_OPTIONS3 .
D3D_SHADER_REQUIRES_BARYCENTRICS. Для шейдера требуется, чтобы графический драйвер и оборудование поддерживали barycentrics с помощью SV_Barycentrics. Дополнительные сведения см. в разделе Член BarycentricsSupportedструктуры D3D12_FEATURE_DATA_D3D12_OPTIONS3 .
D3D_SHADER_REQUIRES_NATIVE_16BIT_OPS. Для шейдера требуется, чтобы графический драйвер и оборудование поддерживали собственные 16-разрядные операции. Дополнительные сведения см. в разделе Член Native16BitShaderOpsSupported структуры D3D12_FEATURE_DATA_D3D12_OPTIONS4 .
D3D_SHADER_REQUIRES_SHADING_RATE. Для шейдера требуется, чтобы графический драйвер и оборудование поддерживали функцию переменной скорости заливки (VRS). Дополнительные сведения см. в разделе Элемент VariableShadingRateTier структуры D3D12_FEATURE_DATA_D3D12_OPTIONS6 .
D3D_SHADER_REQUIRES_RAYTRACING_TIER_1_1. Для шейдера требуется, чтобы графический драйвер и оборудование поддерживали DXR уровня 1.1. Дополнительные сведения см. в элементе RaytracingTier структуры D3D12_FEATURE_DATA_D3D12_OPTIONS5 .
D3D_SHADER_REQUIRES_SAMPLER_FEEDBACK. Для шейдера требуется, чтобы графический драйвер и оборудование поддерживали обратную связь с образцом. Дополнительные сведения см. в разделе Член SamplerFeedbackTier структуры D3D12_FEATURE_DATA_D3D12_OPTIONS7 .
D3D_SHADER_REQUIRES_ATOMIC_INT64_ON_TYPED_RESOURCE. Для шейдера требуется, чтобы графический драйвер и оборудование поддерживали атомары int64 для типизированных ресурсов. Дополнительные сведения см. в элементе AtomicInt64OnTypedResourceSupported структуры D3D12_FEATURE_DATA_D3D12_OPTIONS9 .
D3D_SHADER_REQUIRES_ATOMIC_INT64_ON_GROUP_SHARED. Для шейдера требуется, чтобы графический драйвер и оборудование поддерживали атомары int64 в памяти с группировкой. Дополнительные сведения см. в разделе AtomicInt64OnGroupSharedSupported структуры D3D12_FEATURE_DATA_D3D12_OPTIONS9 .
D3D_SHADER_REQUIRES_DERIVATIVES_IN_MESH_AND_AMPLIFICATION_SHADERS. Для шейдера требуется, чтобы графический драйвер и оборудование поддерживали производные от шейдеров сетки и усиления. Дополнительные сведения см. в разделе Member DerivativesInMeshAndAmplificationShadersSupported структуры D3D12_FEATURE_DATA_D3D12_OPTIONS9 .
D3D_SHADER_REQUIRES_RESOURCE_DESCRIPTOR_HEAP_INDEXING. Шейдер требует, чтобы графический драйвер и оборудование поддерживали динамические ресурсы (требование для модели шейдера 6.6) и ResourceDescriptorHeap , в частности. Дополнительные сведения см. в спецификации динамических ресурсов HLSL на сайте GitHub.
D3D_SHADER_REQUIRES_SAMPLER_DESCRIPTOR_HEAP_INDEXING. Шейдер требует, чтобы графический драйвер и оборудование поддерживали динамические ресурсы (требование для модели шейдера 6.6) и SamplerDescriptorHeap , в частности. Дополнительные сведения см. в спецификации динамических ресурсов HLSL на сайте GitHub.
D3D_SHADER_REQUIRES_WAVE_MMA. Для шейдера требуется, чтобы графический драйвер и оборудование поддерживали волны MMA. Дополнительные сведения см. в разделе Член WaveMMATier структуры D3D12_FEATURE_DATA_D3D12_OPTIONS9 .
D3D_SHADER_REQUIRES_ATOMIC_INT64_ON_DESCRIPTOR_HEAP_RESOURCE. Шейдер требует, чтобы графический драйвер и оборудование поддерживали атомары int64 в ресурсах кучи дескриптора. Дополнительные сведения см. в разделе Элемент AtomicInt64OnDescriptorHeapResourceSupported структуры D3D12_FEATURE_DATA_D3D12_OPTIONS11 .
Комментарии
Вот как файл заголовка d3d12shader.h
определяет флаги требований шейдера:
#define D3D_SHADER_REQUIRES_DOUBLES 0x00000001
#define D3D_SHADER_REQUIRES_EARLY_DEPTH_STENCIL 0x00000002
#define D3D_SHADER_REQUIRES_UAVS_AT_EVERY_STAGE 0x00000004
#define D3D_SHADER_REQUIRES_64_UAVS 0x00000008
#define D3D_SHADER_REQUIRES_MINIMUM_PRECISION 0x00000010
#define D3D_SHADER_REQUIRES_11_1_DOUBLE_EXTENSIONS 0x00000020
#define D3D_SHADER_REQUIRES_11_1_SHADER_EXTENSIONS 0x00000040
#define D3D_SHADER_REQUIRES_LEVEL_9_COMPARISON_FILTERING 0x00000080
#define D3D_SHADER_REQUIRES_TILED_RESOURCES 0x00000100
#define D3D_SHADER_REQUIRES_STENCIL_REF 0x00000200
#define D3D_SHADER_REQUIRES_INNER_COVERAGE 0x00000400
#define D3D_SHADER_REQUIRES_TYPED_UAV_LOAD_ADDITIONAL_FORMATS 0x00000800
#define D3D_SHADER_REQUIRES_ROVS 0x00001000
#define D3D_SHADER_REQUIRES_VIEWPORT_AND_RT_ARRAY_INDEX_FROM_ANY_SHADER_FEEDING_RASTERIZER 0x00002000
#define D3D_SHADER_REQUIRES_WAVE_OPS 0x00004000
#define D3D_SHADER_REQUIRES_INT64_OPS 0x00008000
#define D3D_SHADER_REQUIRES_VIEW_ID 0x00010000
#define D3D_SHADER_REQUIRES_BARYCENTRICS 0x00020000
#define D3D_SHADER_REQUIRES_NATIVE_16BIT_OPS 0x00040000
#define D3D_SHADER_REQUIRES_SHADING_RATE 0x00080000
#define D3D_SHADER_REQUIRES_RAYTRACING_TIER_1_1 0x00100000
#define D3D_SHADER_REQUIRES_SAMPLER_FEEDBACK 0x00200000
#define D3D_SHADER_REQUIRES_ATOMIC_INT64_ON_TYPED_RESOURCE 0x00400000
#define D3D_SHADER_REQUIRES_ATOMIC_INT64_ON_GROUP_SHARED 0x00800000
#define D3D_SHADER_REQUIRES_DERIVATIVES_IN_MESH_AND_AMPLIFICATION_SHADERS 0x01000000
#define D3D_SHADER_REQUIRES_RESOURCE_DESCRIPTOR_HEAP_INDEXING 0x02000000
#define D3D_SHADER_REQUIRES_SAMPLER_DESCRIPTOR_HEAP_INDEXING 0x04000000
#define D3D_SHADER_REQUIRES_WAVE_MMA 0x08000000
#define D3D_SHADER_REQUIRES_ATOMIC_INT64_ON_DESCRIPTOR_HEAP_RESOURCE 0x10000000
Требования
Целевая платформа | Windows |
Header | d3d12shader.h |