diff options
author | Mike Blumenkrantz <michael.blumenkrantz@gmail.com> | 2020-12-17 21:29:26 -0500 |
---|---|---|
committer | Marge Bot <eric+marge@anholt.net> | 2020-12-22 13:46:38 +0000 |
commit | f815b87e188a0e7f4b0aa31f502be7939479f622 (patch) | |
tree | 5c945dcd8a29eb510203988905c65c6c8d2112df | |
parent | 6324699e67a65b7412e607878f5043e07e898091 (diff) |
zink: export tess shader pipe caps
Reviewed-by: Erik Faye-Lund <kusmabite@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8152>
-rw-r--r-- | src/gallium/drivers/zink/zink_screen.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c index 9d0eda0e507..8d29074b941 100644 --- a/src/gallium/drivers/zink/zink_screen.c +++ b/src/gallium/drivers/zink/zink_screen.c @@ -102,6 +102,7 @@ zink_get_param(struct pipe_screen *pscreen, enum pipe_cap param) case PIPE_CAP_TGSI_TEXCOORD: case PIPE_CAP_DRAW_INDIRECT: case PIPE_CAP_TEXTURE_QUERY_LOD: + case PIPE_CAP_GLSL_TESS_LEVELS_AS_INPUTS: return 1; case PIPE_CAP_VERTEX_ELEMENT_INSTANCE_DIVISOR: @@ -391,6 +392,11 @@ zink_get_shader_param(struct pipe_screen *pscreen, case PIPE_SHADER_FRAGMENT: case PIPE_SHADER_VERTEX: return INT_MAX; + case PIPE_SHADER_TESS_CTRL: + case PIPE_SHADER_TESS_EVAL: + if (screen->info.feats.features.tessellationShader) + return INT_MAX; + break; case PIPE_SHADER_GEOMETRY: if (screen->info.feats.features.geometryShader) @@ -415,6 +421,12 @@ zink_get_shader_param(struct pipe_screen *pscreen, case PIPE_SHADER_VERTEX: return MIN2(screen->info.props.limits.maxVertexInputAttributes, PIPE_MAX_SHADER_INPUTS); + case PIPE_SHADER_TESS_CTRL: + return MIN2(screen->info.props.limits.maxTessellationControlPerVertexInputComponents / 4, + PIPE_MAX_SHADER_INPUTS); + case PIPE_SHADER_TESS_EVAL: + return MIN2(screen->info.props.limits.maxTessellationEvaluationInputComponents / 4, + PIPE_MAX_SHADER_INPUTS); case PIPE_SHADER_GEOMETRY: return MIN2(screen->info.props.limits.maxGeometryInputComponents, PIPE_MAX_SHADER_INPUTS); @@ -430,6 +442,12 @@ zink_get_shader_param(struct pipe_screen *pscreen, case PIPE_SHADER_VERTEX: return MIN2(screen->info.props.limits.maxVertexOutputComponents / 4, PIPE_MAX_SHADER_OUTPUTS); + case PIPE_SHADER_TESS_CTRL: + return MIN2(screen->info.props.limits.maxTessellationControlPerVertexOutputComponents / 4, + PIPE_MAX_SHADER_OUTPUTS); + case PIPE_SHADER_TESS_EVAL: + return MIN2(screen->info.props.limits.maxTessellationEvaluationOutputComponents / 4, + PIPE_MAX_SHADER_OUTPUTS); case PIPE_SHADER_GEOMETRY: return MIN2(screen->info.props.limits.maxGeometryOutputComponents / 4, PIPE_MAX_SHADER_OUTPUTS); @@ -445,6 +463,8 @@ zink_get_shader_param(struct pipe_screen *pscreen, case PIPE_SHADER_VERTEX: case PIPE_SHADER_FRAGMENT: case PIPE_SHADER_GEOMETRY: + case PIPE_SHADER_TESS_CTRL: + case PIPE_SHADER_TESS_EVAL: /* this might be a bit simplistic... */ return MIN2(screen->info.props.limits.maxPerStageDescriptorSamplers, PIPE_MAX_SAMPLERS); |