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>
This commit is contained in:
@@ -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:
|
||||
|
@@ -767,6 +767,8 @@ struct virgl_caps_v2 {
|
||||
uint32_t num_video_caps;
|
||||
struct virgl_video_caps video_caps[32];
|
||||
uint32_t max_uniform_block_size;
|
||||
uint32_t max_tcs_outputs;
|
||||
uint32_t max_tes_outputs;
|
||||
};
|
||||
|
||||
union virgl_caps {
|
||||
|
Reference in New Issue
Block a user