panfrost: Only flip point sprites for GL
authorAlyssa Rosenzweig <alyssa@collabora.com>
Mon, 25 Apr 2022 19:11:34 +0000 (15:11 -0400)
committerMarge Bot <emma+marge@anholt.net>
Mon, 2 May 2022 13:12:31 +0000 (13:12 +0000)
Fixes dEQP-VK.glsl.builtin_var.simple.pointcoord

Signed-off-by: Alyssa Rosenzweig <alyssa@collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16204>

src/gallium/drivers/panfrost/pan_cmdstream.c
src/panfrost/ci/deqp-panfrost-g52-vk.toml
src/panfrost/lib/pan_shader.h

index a1bf4c1..8cf8aa8 100644 (file)
@@ -4357,6 +4357,14 @@ prepare_shader(struct panfrost_shader_state *state,
 
         pan_pack(out, RENDERER_STATE, cfg) {
                 pan_shader_prepare_rsd(&state->info, state->bin.gpu, &cfg);
+
+#if PAN_ARCH >= 6
+                /* Match the mesa/st convention. If this needs to be flipped,
+                 * nir_lower_pntc_ytransform will do so.
+                 */
+                if (state->info.stage == MESA_SHADER_FRAGMENT)
+                        cfg.properties.point_sprite_coord_origin_max_y = true;
+#endif
         }
 #else
         assert(upload);
index 0cd46e9..a077578 100644 (file)
@@ -16,6 +16,7 @@ include = [
     "dEQP-VK.glsl.builtin.function.*",
     "dEQP-VK.glsl.builtin.precision.frexp.*",
     "dEQP-VK.glsl.builtin.precision.ldexp.*",
+    "dEQP-VK.glsl.builtin_var.*",
     "dEQP-VK.glsl.conversions.*",
     "dEQP-VK.glsl.derivate.*.constant.*",
     "dEQP-VK.glsl.derivate.*.linear.*",
index 8201b32..17d9208 100644 (file)
@@ -237,10 +237,6 @@ pan_shader_prepare_bifrost_rsd(const struct pan_shader_info *info,
                 rsd->properties.shader_modifies_coverage =
                         info->fs.writes_coverage || info->fs.can_discard;
 
-                /* Match the mesa/st convention. If this needs to be flipped,
-                 * nir_lower_pntc_ytransform will do so. */
-                rsd->properties.point_sprite_coord_origin_max_y = true;
-
                 rsd->properties.allow_forward_pixel_to_be_killed =
                         !info->fs.sidefx;