radv: Consider maximum sample distances for entire grid.
authorBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Tue, 7 Apr 2020 20:23:09 +0000 (22:23 +0200)
committerMarge Bot <eric+marge@anholt.net>
Wed, 8 Apr 2020 10:53:33 +0000 (10:53 +0000)
The other pixels in the grid might have samples with a larger
distance than the (0,0) pixel.

Fixes dEQP-VK.pipeline.multisample.sample_locations_ext.verify_location.samples_8_packed
when CTS is compiled with clang.

CC: <mesa-stable@lists.freedesktop.org>
Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4480>

src/amd/vulkan/radv_cmd_buffer.c

index 30738e38fdb352e152b6d1bba66c4e2d1c40e826..811a21cf3edec27b1a46de182dd72c9e6ab49bbc 100644 (file)
@@ -810,10 +810,12 @@ radv_emit_sample_locations(struct radv_cmd_buffer *cmd_buffer)
                                               num_samples);
 
        /* Compute the maximum sample distance from the specified locations. */
-       for (uint32_t i = 0; i < num_samples; i++) {
-               VkOffset2D offset = sample_locs[0][i];
-               max_sample_dist = MAX2(max_sample_dist,
-                                      MAX2(abs(offset.x), abs(offset.y)));
+       for (unsigned i = 0; i < 4; ++i) {
+               for (uint32_t j = 0; j < num_samples; j++) {
+                       VkOffset2D offset = sample_locs[i][j];
+                       max_sample_dist = MAX2(max_sample_dist,
+                                              MAX2(abs(offset.x), abs(offset.y)));
+               }
        }
 
        /* Emit the specified user sample locations. */