radv: always export gl_SampleMask when the fragment shader uses it
authorSamuel Pitoiset <samuel.pitoiset@gmail.com>
Tue, 12 Feb 2019 08:50:15 +0000 (09:50 +0100)
committerSamuel Pitoiset <samuel.pitoiset@gmail.com>
Wed, 13 Feb 2019 22:01:30 +0000 (23:01 +0100)
For some reasons, this breaks trees rendering in Project Cars.

Fixes: 85010585cde ("radv: only enable gl_SampleMask if MSAA is enabled too")
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109401
Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
src/amd/vulkan/radv_pipeline.c

index fb6c61cf3f05f42bb28da4c183269577d0387022..a9df2b94b936708f58615fd62e43285210399d70 100644 (file)
@@ -3183,11 +3183,11 @@ radv_compute_db_shader_control(const struct radv_device *device,
        bool disable_rbplus = device->physical_device->has_rbplus &&
                              !device->physical_device->rbplus_allowed;
 
-       /* Do not enable the gl_SampleMask fragment shader output if MSAA is
-        * disabled.
+       /* It shouldn't be needed to export gl_SampleMask when MSAA is disabled
+        * but this appears to break Project Cars (DXVK). See
+        * https://bugs.freedesktop.org/show_bug.cgi?id=109401
         */
-       bool mask_export_enable = ms->num_samples > 1 &&
-                                 ps->info.info.ps.writes_sample_mask;
+       bool mask_export_enable = ps->info.info.ps.writes_sample_mask;
 
        return  S_02880C_Z_EXPORT_ENABLE(ps->info.info.ps.writes_z) |
                S_02880C_STENCIL_TEST_VAL_EXPORT_ENABLE(ps->info.info.ps.writes_stencil) |