diff --git a/src/gallium/drivers/swr/swr_screen.cpp b/src/gallium/drivers/swr/swr_screen.cpp index 4a3a1eea7c9..8bc7a207901 100644 --- a/src/gallium/drivers/swr/swr_screen.cpp +++ b/src/gallium/drivers/swr/swr_screen.cpp @@ -342,16 +342,17 @@ swr_get_shader_param(struct pipe_screen *screen, enum pipe_shader_type shader, enum pipe_shader_cap param) { - if (shader == PIPE_SHADER_VERTEX || - shader == PIPE_SHADER_FRAGMENT || - shader == PIPE_SHADER_GEOMETRY - || shader == PIPE_SHADER_TESS_CTRL || - shader == PIPE_SHADER_TESS_EVAL - ) - return gallivm_get_shader_param(param); + if (shader != PIPE_SHADER_VERTEX && + shader != PIPE_SHADER_FRAGMENT && + shader != PIPE_SHADER_GEOMETRY && + shader != PIPE_SHADER_TESS_CTRL && + shader != PIPE_SHADER_TESS_EVAL) + return 0; - // Todo: compute - return 0; + if (param == PIPE_SHADER_CAP_MAX_SHADER_BUFFERS) + return 0; + + return gallivm_get_shader_param(param); }