diff options
author | Gert Wollny <gert.wollny@collabora.com> | 2023-07-13 12:34:39 +0200 |
---|---|---|
committer | Marge Bot <emma+marge@anholt.net> | 2023-10-31 13:03:29 +0000 |
commit | 4cdd094ae1e97d857a6b9dbc291d7bbe6ea266ac (patch) | |
tree | 9618cb1a5b0aafaa06de575a2ac4b92c1b2d810e /src/gallium/drivers/virgl/virgl_screen.c | |
parent | c24a635d1cf1cd538c503a37c2a3535409a01e46 (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.c | 15 |
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: |