mesa/st: Clamp MaxImageUniforms to MAX_IMAGE_UNIFORMS

We're about to bump PIPE_MAX_SHADER_IMAGES to 64 and don't want to
overflow any state tracker arrays for GL.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Karol Herbst <kherbst@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15988>
This commit is contained in:
Jason Ekstrand
2022-04-18 12:26:40 -05:00
parent 620c5e9dd0
commit ed3ed466c4

View File

@@ -290,8 +290,10 @@ void st_init_limits(struct pipe_screen *screen,
pc->MaxAtomicBuffers = pc->MaxShaderStorageBlocks / 2;
pc->MaxShaderStorageBlocks -= pc->MaxAtomicBuffers;
}
pc->MaxImageUniforms = screen->get_shader_param(
screen, sh, PIPE_SHADER_CAP_MAX_SHADER_IMAGES);
pc->MaxImageUniforms =
_min(screen->get_shader_param(screen, sh,
PIPE_SHADER_CAP_MAX_SHADER_IMAGES),
MAX_IMAGE_UNIFORMS);
/* Gallium doesn't really care about local vs. env parameters so use the
* same limits.