From cdc025c9ef67bddf733fccb5b3e78d8d7c8b4880 Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Thu, 14 Nov 2019 13:09:32 -0500 Subject: [PATCH] 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 Signed-off-by: Adam Jackson Part-of: --- 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]);