From 9926aedc96fe13cf9ff343cd7c4d92aa771e323a Mon Sep 17 00:00:00 2001 From: Lionel Landwerlin Date: Mon, 26 Feb 2024 11:16:53 +0200 Subject: [PATCH] anv: enable EDS3 AlphaToCoverageEnable & RasterizationSamples Signed-off-by: Lionel Landwerlin Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/10647 Reviewed-by: Ivan Briano Part-of: --- src/intel/vulkan/anv_device.c | 4 ++-- src/intel/vulkan/anv_pipeline.c | 10 ++++++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c index d8eb35411d2..507be254624 100644 --- a/src/intel/vulkan/anv_device.c +++ b/src/intel/vulkan/anv_device.c @@ -825,9 +825,9 @@ get_features(const struct anv_physical_device *pdevice, .extendedDynamicState3SampleLocationsEnable = true, .extendedDynamicState3SampleMask = true, .extendedDynamicState3ConservativeRasterizationMode = true, + .extendedDynamicState3AlphaToCoverageEnable = true, + .extendedDynamicState3RasterizationSamples = true, - .extendedDynamicState3RasterizationSamples = false, - .extendedDynamicState3AlphaToCoverageEnable = false, .extendedDynamicState3ExtraPrimitiveOverestimationSize = false, .extendedDynamicState3ViewportWScalingEnable = false, .extendedDynamicState3ViewportSwizzle = false, diff --git a/src/intel/vulkan/anv_pipeline.c b/src/intel/vulkan/anv_pipeline.c index 15c1a038528..6d417fda354 100644 --- a/src/intel/vulkan/anv_pipeline.c +++ b/src/intel/vulkan/anv_pipeline.c @@ -655,14 +655,20 @@ populate_wm_prog_key(struct anv_pipeline_stage *stage, * * It's also required for the fragment output interface. */ - key->alpha_to_coverage = - ms->alpha_to_coverage_enable ? BRW_ALWAYS : BRW_NEVER; key->multisample_fbo = + BITSET_TEST(dynamic, MESA_VK_DYNAMIC_MS_RASTERIZATION_SAMPLES) ? + BRW_SOMETIMES : ms->rasterization_samples > 1 ? BRW_ALWAYS : BRW_NEVER; key->persample_interp = + BITSET_TEST(dynamic, MESA_VK_DYNAMIC_MS_RASTERIZATION_SAMPLES) ? + BRW_SOMETIMES : (ms->sample_shading_enable && (ms->min_sample_shading * ms->rasterization_samples) > 1) ? BRW_ALWAYS : BRW_NEVER; + key->alpha_to_coverage = + BITSET_TEST(dynamic, MESA_VK_DYNAMIC_MS_ALPHA_TO_COVERAGE_ENABLE) ? + BRW_SOMETIMES : + (ms->alpha_to_coverage_enable ? BRW_ALWAYS : BRW_NEVER); /* TODO: We should make this dynamic */ if (device->physical->instance->sample_mask_out_opengl_behaviour)