summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/virgl/virgl_screen.c
diff options
context:
space:
mode:
authorGert Wollny <gert.wollny@collabora.com>2023-07-13 12:34:39 +0200
committerMarge Bot <emma+marge@anholt.net>2023-10-31 13:03:29 +0000
commit4cdd094ae1e97d857a6b9dbc291d7bbe6ea266ac (patch)
tree9618cb1a5b0aafaa06de575a2ac4b92c1b2d810e /src/gallium/drivers/virgl/virgl_screen.c
parentc24a635d1cf1cd538c503a37c2a3535409a01e46 (diff)
virgl: Use host reported limits for max outputs
Signed-off-by: Gert Wollny <gert.wollny@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24136>
Diffstat (limited to 'src/gallium/drivers/virgl/virgl_screen.c')
-rw-r--r--src/gallium/drivers/virgl/virgl_screen.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/gallium/drivers/virgl/virgl_screen.c b/src/gallium/drivers/virgl/virgl_screen.c
index c3a8ce5db3d..44f2a28ca56 100644
--- a/src/gallium/drivers/virgl/virgl_screen.c
+++ b/src/gallium/drivers/virgl/virgl_screen.c
@@ -422,9 +422,20 @@ virgl_get_shader_param(struct pipe_screen *screen,
return (shader == PIPE_SHADER_VERTEX ||
shader == PIPE_SHADER_GEOMETRY) ? vscreen->caps.caps.v2.max_vertex_attribs : 32;
case PIPE_SHADER_CAP_MAX_OUTPUTS:
- if (shader == PIPE_SHADER_FRAGMENT)
+ switch (shader) {
+ case PIPE_SHADER_FRAGMENT:
return vscreen->caps.caps.v1.max_render_targets;
- return vscreen->caps.caps.v2.max_vertex_outputs;
+ case PIPE_SHADER_TESS_CTRL:
+ if (vscreen->caps.caps.v2.host_feature_check_version >= 19)
+ return vscreen->caps.caps.v2.max_tcs_outputs;
+ FALLTHROUGH;
+ case PIPE_SHADER_TESS_EVAL:
+ if (vscreen->caps.caps.v2.host_feature_check_version >= 19)
+ return vscreen->caps.caps.v2.max_tes_outputs;
+ FALLTHROUGH;
+ default:
+ return vscreen->caps.caps.v2.max_vertex_outputs;
+ }
// case PIPE_SHADER_CAP_MAX_CONSTS:
// return 4096;
case PIPE_SHADER_CAP_MAX_TEMPS: