Mesa (master): swr: fix crashes caused by incorrectly reporting SSBO support

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Dec 10 15:07:24 UTC 2020


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

Author: jzielins <jan.zielinski at intel.com>
Date:   Thu Dec 10 12:15:33 2020 +0100

swr: fix crashes caused by incorrectly reporting SSBO support

Reviewed-by: Krzysztof Raszkowski <krzysztof.raszkowski at intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8036>

---

 src/gallium/drivers/swr/swr_screen.cpp | 21 +++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)

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);
-
-   // Todo: compute
-   return 0;
+   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;
+
+   if (param == PIPE_SHADER_CAP_MAX_SHADER_BUFFERS)
+      return 0;
+
+   return gallivm_get_shader_param(param);
 }
 
 



More information about the mesa-commit mailing list