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