From 58e43594fc457eaaf1b1e01e48948959a82080bc Mon Sep 17 00:00:00 2001 From: Eric Anholt Date: Fri, 22 Jan 2021 11:27:28 -0800 Subject: [PATCH] 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 Fixes: d6fd7acf9b79 ("gallium: Fix leak of bound SSBOs at CSO context destruction.") Closes: #3990 Part-of: --- 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)