Commit a7012eed authored by Ilia Mirkin's avatar Ilia Mirkin Committed by Dave Airlie

mesa/st: hardcode the viewport bounds range

The bound range is disconnected from the viewport dimensions. This is
the relevant bit from glViewportArray:

The location of the viewport's bottom left corner, given by (x, y) is
clamped to be within the implementaiton-dependent viewport bounds range.
The viewport bounds range [min, max] can be determined by calling glGet
with argument GL_VIEWPORT_BOUNDS_RANGE. Viewport width and height are
silently clamped to a range that depends on the implementation. To query
this range, call glGet with argument GL_MAX_VIEWPORT_DIMS.

Just set it to +/-16384, as that is the minimum required by
ARB_viewport_array and the value that all current drivers provide.
Signed-off-by: Ilia Mirkin's avatarIlia Mirkin <>
Signed-off-by: default avatarDave Airlie <>
parent f0e967f2
......@@ -782,8 +782,8 @@ void st_init_extensions(struct st_context *st)
if (ctx->API == API_OPENGL_CORE) {
ctx->Const.MaxViewports = screen->get_param(screen, PIPE_CAP_MAX_VIEWPORTS);
if (ctx->Const.MaxViewports >= 16) {
ctx->Const.ViewportBounds.Min = -(float)ctx->Const.MaxViewportWidth;
ctx->Const.ViewportBounds.Max = ctx->Const.MaxViewportWidth;
ctx->Const.ViewportBounds.Min = -16384.0;
ctx->Const.ViewportBounds.Max = 16384.0;
ctx->Extensions.ARB_viewport_array = GL_TRUE;
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment