[Mesa-dev] [PATCH] mesa: don't clamp just based on ARB_viewport_array extension

gurchetansingh at chromium.org gurchetansingh at chromium.org
Wed Feb 14 23:22:48 UTC 2018


From: Gurchetan Singh <gurchetansingh at chromium.org>

The ARB_viewport_array spec says:

"Dependencies
    OpenGL 1.0 is required.

    OpenGL 3.2 or the EXT_geometry_shader4 or ARB_geometry_shader4 extensions
    are required.

    This extension is written against the OpenGL 3.2 (Compatibility)
    Specification."

As such, we should ignore it for GLES2 contexts.

Fixes:
dEQP-GLES2.functional.state_query.integers.viewport_getinteger
dEQP-GLES2.functional.state_query.integers.viewport_getfloat

on llvmpipe and virgl.
---
 src/mesa/main/viewport.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/src/mesa/main/viewport.c b/src/mesa/main/viewport.c
index fc384909e6..380372772e 100644
--- a/src/mesa/main/viewport.c
+++ b/src/mesa/main/viewport.c
@@ -51,9 +51,8 @@ clamp_viewport(struct gl_context *ctx, GLfloat *x, GLfloat *y,
     *     determined by calling GetFloatv with the symbolic constant
     *     VIEWPORT_BOUNDS_RANGE (see section 6.1)."
     */
-   if (ctx->Extensions.ARB_viewport_array ||
-       (ctx->Extensions.OES_viewport_array &&
-        _mesa_is_gles31(ctx))) {
+   if ((ctx->Extensions.ARB_viewport_array && !_mesa_is_gles(ctx)) ||
+       (ctx->Extensions.OES_viewport_array && _mesa_is_gles31(ctx))) {
       *x = CLAMP(*x,
                  ctx->Const.ViewportBounds.Min, ctx->Const.ViewportBounds.Max);
       *y = CLAMP(*y,
-- 
2.13.5



More information about the mesa-dev mailing list