Mesa (master): r300,i915g: Report no shader buffers or images on non-TCL HW.

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Jan 25 19:20:56 UTC 2021


Module: Mesa
Branch: master
Commit: 58e43594fc457eaaf1b1e01e48948959a82080bc
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=58e43594fc457eaaf1b1e01e48948959a82080bc

Author: Eric Anholt <eric at anholt.net>
Date:   Fri Jan 22 11:27:28 2021 -0800

r300,i915g: Report no shader buffers or images on non-TCL HW.

We don't have the driver hooks to set the state, or to update draw's copy
of the state at draw time.

Reviewed-by: Adam Jackson <ajax at redhat.com>
Fixes: d6fd7acf9b79 ("gallium: Fix leak of bound SSBOs at CSO context
destruction.")

Closes: #3990
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8530>

---

 src/gallium/drivers/i915/i915_screen.c | 3 +++
 src/gallium/drivers/r300/r300_screen.c | 8 +++++++-
 2 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/src/gallium/drivers/i915/i915_screen.c b/src/gallium/drivers/i915/i915_screen.c
index abb4889c822..b6b968c5296 100644
--- a/src/gallium/drivers/i915/i915_screen.c
+++ b/src/gallium/drivers/i915/i915_screen.c
@@ -121,6 +121,9 @@ i915_get_shader_param(struct pipe_screen *screen,
             return PIPE_MAX_SAMPLERS;
          else
             return 0;
+      case PIPE_SHADER_CAP_MAX_SHADER_BUFFERS:
+      case PIPE_SHADER_CAP_MAX_SHADER_IMAGES:
+         return 0;
        default:
          return draw_get_shader_param(shader, cap);
       }
diff --git a/src/gallium/drivers/r300/r300_screen.c b/src/gallium/drivers/r300/r300_screen.c
index c1579d9df9d..e1cb040a810 100644
--- a/src/gallium/drivers/r300/r300_screen.c
+++ b/src/gallium/drivers/r300/r300_screen.c
@@ -326,7 +326,13 @@ static int r300_get_shader_param(struct pipe_screen *pscreen,
         }
 
         if (!r300screen->caps.has_tcl) {
-            return draw_get_shader_param(shader, param);
+            switch (param) {
+            case PIPE_SHADER_CAP_MAX_SHADER_BUFFERS:
+            case PIPE_SHADER_CAP_MAX_SHADER_IMAGES:
+                return 0;
+            default:
+                return draw_get_shader_param(shader, param);
+            }
         }
 
         switch (param)



More information about the mesa-commit mailing list