freedreno/a6xx: bump varyings limit
GL_MAX_VARYING_COMPONENTS is bumped to 124 since it should not include the components of gl_Position. (Same as in blob) GL_MAX_*_OUTPUT_COMPONENTS is bumped to 128, only GL_MAX_GEOMETRY_INPUT_COMPONENTS is 64. (Same as in blob) Per GL 3.2 spec the minimum of: - GL_MAX_GEOMETRY_OUTPUT_COMPONENTS is 128 - GL_MAX_FRAGMENT_INPUT_COMPONENTS is 128 - others is 64 Per ARB_tessellation_shader the minimum of: - GL_MAX_TESS_CONTROL_*_COMPONENTS to be 128 - GL_MAX_TESS_EVALUATION_*_COMPONENTS to be 128 Allows passing of: gl-3.2-minmax arb_tessellation_shader-minmax Signed-off-by: Danylo Piliaiev <dpiliaiev@igalia.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7917>
This commit is contained in:
@@ -367,7 +367,7 @@ fd_screen_get_param(struct pipe_screen *pscreen, enum pipe_cap param)
|
||||
return 1;
|
||||
|
||||
case PIPE_CAP_MAX_VARYINGS:
|
||||
return 16;
|
||||
return is_a6xx(screen) ? 31 : 16;
|
||||
|
||||
case PIPE_CAP_MAX_SHADER_PATCH_VARYINGS:
|
||||
/* We don't really have a limit on this, it all goes into the main
|
||||
@@ -544,8 +544,11 @@ fd_screen_get_shader_param(struct pipe_screen *pscreen,
|
||||
case PIPE_SHADER_CAP_MAX_CONTROL_FLOW_DEPTH:
|
||||
return 8; /* XXX */
|
||||
case PIPE_SHADER_CAP_MAX_INPUTS:
|
||||
if (shader == PIPE_SHADER_GEOMETRY && is_a6xx(screen))
|
||||
return 16;
|
||||
return is_a6xx(screen) ? 32 : 16;
|
||||
case PIPE_SHADER_CAP_MAX_OUTPUTS:
|
||||
return 16;
|
||||
return is_a6xx(screen) ? 32 : 16;
|
||||
case PIPE_SHADER_CAP_MAX_TEMPS:
|
||||
return 64; /* Max native temporaries. */
|
||||
case PIPE_SHADER_CAP_MAX_CONST_BUFFER_SIZE:
|
||||
|
||||
Reference in New Issue
Block a user