From: Conor McCarthy cmccarthy@codeweavers.com
--- libs/vkd3d/device.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+)
diff --git a/libs/vkd3d/device.c b/libs/vkd3d/device.c index cf8b506fd..2a7024ecf 100644 --- a/libs/vkd3d/device.c +++ b/libs/vkd3d/device.c @@ -3348,6 +3348,31 @@ static HRESULT STDMETHODCALLTYPE d3d12_device_CheckFeatureSupport(ID3D12Device7 return S_OK; }
+ case D3D12_FEATURE_D3D12_OPTIONS6: + { + D3D12_FEATURE_DATA_D3D12_OPTIONS6 *data = feature_data; + + if (feature_data_size != sizeof(*data)) + { + WARN("Invalid size %u.\n", feature_data_size); + return E_INVALIDARG; + } + + data->AdditionalShadingRatesSupported = FALSE; + data->PerPrimitiveShadingRateSupportedWithViewportIndexing = FALSE; + data->VariableShadingRateTier = D3D12_VARIABLE_SHADING_RATE_TIER_NOT_SUPPORTED; + data->ShadingRateImageTileSize = 0; + data->BackgroundProcessingSupported = FALSE; + + TRACE("Additional shading rates support %#x.\n", data->AdditionalShadingRatesSupported); + TRACE("Per-primitive shading rates with viewport indexing %#x.\n", + data->PerPrimitiveShadingRateSupportedWithViewportIndexing); + TRACE("Variable shading rate tier %#x.\n", data->VariableShadingRateTier); + TRACE("Shading rate image tile size %#x.\n", data->ShadingRateImageTileSize); + TRACE("Background processing support %#x.\n", data->BackgroundProcessingSupported); + return S_OK; + } + default: FIXME("Unhandled feature %#x.\n", feature); return E_NOTIMPL;
From: Conor McCarthy cmccarthy@codeweavers.com
--- libs/vkd3d/device.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+)
diff --git a/libs/vkd3d/device.c b/libs/vkd3d/device.c index 2a7024ecf..299ecd6d3 100644 --- a/libs/vkd3d/device.c +++ b/libs/vkd3d/device.c @@ -3373,6 +3373,24 @@ static HRESULT STDMETHODCALLTYPE d3d12_device_CheckFeatureSupport(ID3D12Device7 return S_OK; }
+ case D3D12_FEATURE_D3D12_OPTIONS7: + { + D3D12_FEATURE_DATA_D3D12_OPTIONS7 *data = feature_data; + + if (feature_data_size != sizeof(*data)) + { + WARN("Invalid size %u.\n", feature_data_size); + return E_INVALIDARG; + } + + data->MeshShaderTier = D3D12_MESH_SHADER_TIER_NOT_SUPPORTED; + data->SamplerFeedbackTier = D3D12_SAMPLER_FEEDBACK_TIER_NOT_SUPPORTED; + + TRACE("Mesh shading tier %#x.\n", data->MeshShaderTier); + TRACE("Sampler feedback tier %#x.\n", data->SamplerFeedbackTier); + return S_OK; + } + default: FIXME("Unhandled feature %#x.\n", feature); return E_NOTIMPL;
From: Conor McCarthy cmccarthy@codeweavers.com
--- libs/vkd3d/device.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+)
diff --git a/libs/vkd3d/device.c b/libs/vkd3d/device.c index 299ecd6d3..b1c07eb23 100644 --- a/libs/vkd3d/device.c +++ b/libs/vkd3d/device.c @@ -3391,6 +3391,22 @@ static HRESULT STDMETHODCALLTYPE d3d12_device_CheckFeatureSupport(ID3D12Device7 return S_OK; }
+ case D3D12_FEATURE_D3D12_OPTIONS8: + { + D3D12_FEATURE_DATA_D3D12_OPTIONS8 *data = feature_data; + + if (feature_data_size != sizeof(*data)) + { + WARN("Invalid size %u.\n", feature_data_size); + return E_INVALIDARG; + } + + data->UnalignedBlockTexturesSupported = FALSE; + + TRACE("Unaligned block texture support %#x.\n", data->UnalignedBlockTexturesSupported); + return S_OK; + } + default: FIXME("Unhandled feature %#x.\n", feature); return E_NOTIMPL;
From: Conor McCarthy cmccarthy@codeweavers.com
--- libs/vkd3d/device.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+)
diff --git a/libs/vkd3d/device.c b/libs/vkd3d/device.c index b1c07eb23..7cdc5d77c 100644 --- a/libs/vkd3d/device.c +++ b/libs/vkd3d/device.c @@ -3407,6 +3407,32 @@ static HRESULT STDMETHODCALLTYPE d3d12_device_CheckFeatureSupport(ID3D12Device7 return S_OK; }
+ case D3D12_FEATURE_D3D12_OPTIONS9: + { + D3D12_FEATURE_DATA_D3D12_OPTIONS9 *data = feature_data; + + if (feature_data_size != sizeof(*data)) + { + WARN("Invalid size %u.\n", feature_data_size); + return E_INVALIDARG; + } + + data->MeshShaderPipelineStatsSupported = FALSE; + data->MeshShaderSupportsFullRangeRenderTargetArrayIndex = FALSE; + data->AtomicInt64OnTypedResourceSupported = FALSE; + data->AtomicInt64OnGroupSharedSupported = FALSE; + data->DerivativesInMeshAndAmplificationShadersSupported = FALSE; + data->WaveMMATier = D3D12_WAVE_MMA_TIER_NOT_SUPPORTED; + + TRACE("Mesh shader pipeline stats support %#x.\n", data->MeshShaderPipelineStatsSupported); + TRACE("Mesh shader RT array index full range %#x.\n", data->MeshShaderSupportsFullRangeRenderTargetArrayIndex); + TRACE("Atomic int64 on typed resource %#x.\n", data->AtomicInt64OnTypedResourceSupported); + TRACE("Atomic int64 on group shared mem %#x.\n", data->AtomicInt64OnGroupSharedSupported); + TRACE("Derivatives in mesh and amp shaders %#x.\n", data->DerivativesInMeshAndAmplificationShadersSupported); + TRACE("Wave MMA tier %#x.\n", data->WaveMMATier); + return S_OK; + } + default: FIXME("Unhandled feature %#x.\n", feature); return E_NOTIMPL;
This merge request was approved by Giovanni Mascellani.
The code looks fine. I don't understand what's happening with test that fails intermittently on the CI, though.
On Tue Feb 6 14:19:39 2024 +0000, Giovanni Mascellani wrote:
The code looks fine. I don't understand what's happening with test that fails intermittently on the CI, though.
That's the `src_param_init_scalar()` issue again.