From 6ee88f0acde103758c02bbb423cb281fe3ecc5d0 Mon Sep 17 00:00:00 2001 From: Iago Toral Quiroga Date: Tue, 4 Aug 2020 08:39:14 +0200 Subject: [PATCH] v3dv: enable sample rate shading if fragment shader reads gl_SampleID According to the spec, if a fragment shader reads gl_SampleID then the shader must be evaluated per-sample. Fixes: dEQP-VK.pipeline.multisample_shader_builtin.write_sample_mask.4_samples Part-of: --- src/broadcom/vulkan/v3dv_pipeline.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/broadcom/vulkan/v3dv_pipeline.c b/src/broadcom/vulkan/v3dv_pipeline.c index 03ce280863f..06ce8c79076 100644 --- a/src/broadcom/vulkan/v3dv_pipeline.c +++ b/src/broadcom/vulkan/v3dv_pipeline.c @@ -2528,7 +2528,8 @@ pack_shader_state_record(struct v3dv_pipeline *pipeline) shader.fragment_shader_uses_real_pixel_centre_w_in_addition_to_centroid_w2 = prog_data_fs->uses_center_w; - shader.enable_sample_rate_shading = pipeline->sample_rate_shading; + shader.enable_sample_rate_shading = pipeline->sample_rate_shading || + prog_data_fs->force_per_sample_msaa; shader.any_shader_reads_hardware_written_primitive_id = false;