From: Adam Jackson Date: Thu, 14 Nov 2019 18:09:32 +0000 (-0500) Subject: mesa: Generate more errors from GetSamplerParameter X-Git-Tag: upstream/21.0.0~5495 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=cdc025c9ef67bddf733fccb5b3e78d8d7c8b4880;p=platform%2Fupstream%2Fmesa.git 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: --- diff --git a/src/mesa/main/samplerobj.c b/src/mesa/main/samplerobj.c index 0bf5885..271983e 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]);