Mesa (staging/21.2): panfrost: Don't set CAP_TGSI_FS_COORD_PIXEL_CENTER_INTEGER

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Oct 12 17:45:24 UTC 2021


Module: Mesa
Branch: staging/21.2
Commit: f730509b7935dabd4e7acbacbd078b5a7790f57e
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=f730509b7935dabd4e7acbacbd078b5a7790f57e

Author: Alyssa Rosenzweig <alyssa at collabora.com>
Date:   Mon Sep 27 17:32:57 2021 -0400

panfrost: Don't set CAP_TGSI_FS_COORD_PIXEL_CENTER_INTEGER

We already set HALF_INTEGER, which is what the compiler actually does.
If we also set PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_INTEGER, we get
incorrect lowering. Only set the CAP we respect.

On Bifrost, this convention is arbitrary. We should consider moving the
Bifrost lowering into NIR to optimize this better...

Fixes Piglit glsl-arb-fragment-coord-conventions.

Signed-off-by: Alyssa Rosenzweig <alyssa at collabora.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/13070>
(cherry picked from commit 12facf23b1f1fd8668e057f13bcc69356fd89b52)

Conflicts:
	src/panfrost/ci/piglit-panfrost-g52-fails.txt

This CI file doesn't exist in 21.2.x, so it was removed from this patch

---

 .pick_status.json                         | 2 +-
 src/gallium/drivers/panfrost/pan_screen.c | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/.pick_status.json b/.pick_status.json
index 3b432d1b881..cc1dde9d0ec 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -2353,7 +2353,7 @@
         "description": "panfrost: Don't set CAP_TGSI_FS_COORD_PIXEL_CENTER_INTEGER",
         "nominated": true,
         "nomination_type": 0,
-        "resolution": 0,
+        "resolution": 1,
         "main_sha": null,
         "because_sha": null
     },
diff --git a/src/gallium/drivers/panfrost/pan_screen.c b/src/gallium/drivers/panfrost/pan_screen.c
index 593f158087d..65d5c0818f8 100644
--- a/src/gallium/drivers/panfrost/pan_screen.c
+++ b/src/gallium/drivers/panfrost/pan_screen.c
@@ -225,12 +225,12 @@ panfrost_get_param(struct pipe_screen *screen, enum pipe_cap param)
                 return MAX_MIP_LEVELS;
 
         case PIPE_CAP_TGSI_FS_COORD_ORIGIN_LOWER_LEFT:
-                /* Hardware is natively upper left */
+        case PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_INTEGER:
+                /* Hardware is upper left. Pixel center at (0.5, 0.5) */
                 return 0;
 
         case PIPE_CAP_TGSI_FS_COORD_ORIGIN_UPPER_LEFT:
         case PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_HALF_INTEGER:
-        case PIPE_CAP_TGSI_FS_COORD_PIXEL_CENTER_INTEGER:
         case PIPE_CAP_TGSI_TEXCOORD:
                 return 1;
 



More information about the mesa-commit mailing list