Mesa (master): mesa: Generate more errors from GetSamplerParameter

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Wed Sep 9 18:20:53 UTC 2020


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

Author: Adam Jackson <ajax at redhat.com>
Date:   Thu Nov 14 13:09:32 2019 -0500

mesa: Generate more errors from GetSamplerParameter

Not all of the corresponding extensions are enabled unconditionally, and
we should throw INVALID_ENUM in those cases.

Reviewed-by: Eric Anholt <eric at anholt.net>
Signed-off-by: Adam Jackson <ajax at redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6653>

---

 src/mesa/main/samplerobj.c | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/src/mesa/main/samplerobj.c b/src/mesa/main/samplerobj.c
index 0bf58859a54..271983e4f10 100644
--- a/src/mesa/main/samplerobj.c
+++ b/src/mesa/main/samplerobj.c
@@ -1445,18 +1445,26 @@ _mesa_GetSamplerParameteriv(GLuint sampler, GLenum pname, GLint *params)
       *params = lroundf(sampObj->LodBias);
       break;
    case GL_TEXTURE_COMPARE_MODE:
+      if (!ctx->Extensions.ARB_shadow)
+         goto invalid_pname;
       *params = sampObj->CompareMode;
       break;
    case GL_TEXTURE_COMPARE_FUNC:
+      if (!ctx->Extensions.ARB_shadow)
+         goto invalid_pname;
       *params = sampObj->CompareFunc;
       break;
    case GL_TEXTURE_MAX_ANISOTROPY_EXT:
+      if (!ctx->Extensions.EXT_texture_filter_anisotropic)
+         goto invalid_pname;
       /* GL spec 'Data Conversions' section specifies that floating-point
        * value in integer Get function is rounded to nearest integer
        */
       *params = lroundf(sampObj->MaxAnisotropy);
       break;
    case GL_TEXTURE_BORDER_COLOR:
+      if (!ctx->Extensions.ARB_texture_border_clamp)
+         goto invalid_pname;
       params[0] = FLOAT_TO_INT(sampObj->BorderColor.f[0]);
       params[1] = FLOAT_TO_INT(sampObj->BorderColor.f[1]);
       params[2] = FLOAT_TO_INT(sampObj->BorderColor.f[2]);



More information about the mesa-commit mailing list