Mesa (master): mesa: don't clamp just based on ARB_viewport_array extension

Marek Olšák mareko at kemper.freedesktop.org
Thu Feb 15 00:59:35 UTC 2018


Module: Mesa
Branch: master
Commit: c6694793e1148f920a94eb54db11cead1662c2da
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=c6694793e1148f920a94eb54db11cead1662c2da

Author: Gurchetan Singh <gurchetansingh at chromium.org>
Date:   Wed Feb 14 15:40:35 2018 -0800

mesa: don't clamp just based on ARB_viewport_array extension

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.

v2: Use _mesa_has_* (Ilia)

Signed-off-by: Marek Olšák <marek.olsak at amd.com>
Cc: 17.3 18.0 <mesa-stable at lists.freedesktop.org>

---

 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..398cc63685 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 (_mesa_has_ARB_viewport_array(ctx) ||
+       _mesa_has_OES_viewport_array(ctx)) {
       *x = CLAMP(*x,
                  ctx->Const.ViewportBounds.Min, ctx->Const.ViewportBounds.Max);
       *y = CLAMP(*y,




More information about the mesa-commit mailing list