mesa: Limit Framebuffer Parameter OpenGL ES 3.1 usage
According to OpenGL ES 3.1 specification, section 9.2.1 for glFramebufferParameter and section 9.2.3 for glGetFramebufferParameteriv: "An INVALID_ENUM error is generated if pname is not FRAMEBUFFER_DEFAULT_WIDTH, FRAMEBUFFER_DEFAULT_HEIGHT, FRAMEBUFFER_DEFAULT_SAMPLES, or FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS." Therefore exclude OpenGL ES 3.1 from using the GL_FRAMEBUFFER_DEFAULT_LAYERS parameter. Signed-off-by: Marta Lofstedt <marta.lofstedt@intel.com> Reviewed-by: Kevin Rogovin <kevin.rogovin at intel.com>
This commit is contained in:
parent
d770e2746c
commit
f8a938814e
|
@ -1389,8 +1389,16 @@ framebuffer_parameteri(struct gl_context *ctx, struct gl_framebuffer *fb,
|
||||||
fb->DefaultGeometry.Height = param;
|
fb->DefaultGeometry.Height = param;
|
||||||
break;
|
break;
|
||||||
case GL_FRAMEBUFFER_DEFAULT_LAYERS:
|
case GL_FRAMEBUFFER_DEFAULT_LAYERS:
|
||||||
|
/*
|
||||||
|
* According to the OpenGL ES 3.1 specification section 9.2.1, the
|
||||||
|
* GL_FRAMEBUFFER_DEFAULT_LAYERS parameter name is not supported.
|
||||||
|
*/
|
||||||
|
if (_mesa_is_gles31(ctx)) {
|
||||||
|
_mesa_error(ctx, GL_INVALID_ENUM, "%s(pname=0x%x)", func, pname);
|
||||||
|
break;
|
||||||
|
}
|
||||||
if (param < 0 || param > ctx->Const.MaxFramebufferLayers)
|
if (param < 0 || param > ctx->Const.MaxFramebufferLayers)
|
||||||
_mesa_error(ctx, GL_INVALID_VALUE, "%s", func);
|
_mesa_error(ctx, GL_INVALID_VALUE, "%s", func);
|
||||||
else
|
else
|
||||||
fb->DefaultGeometry.Layers = param;
|
fb->DefaultGeometry.Layers = param;
|
||||||
break;
|
break;
|
||||||
|
@ -1451,6 +1459,14 @@ get_framebuffer_parameteriv(struct gl_context *ctx, struct gl_framebuffer *fb,
|
||||||
*params = fb->DefaultGeometry.Height;
|
*params = fb->DefaultGeometry.Height;
|
||||||
break;
|
break;
|
||||||
case GL_FRAMEBUFFER_DEFAULT_LAYERS:
|
case GL_FRAMEBUFFER_DEFAULT_LAYERS:
|
||||||
|
/*
|
||||||
|
* According to the OpenGL ES 3.1 specification section 9.2.3, the
|
||||||
|
* GL_FRAMEBUFFER_LAYERS parameter name is not supported.
|
||||||
|
*/
|
||||||
|
if (_mesa_is_gles31(ctx)) {
|
||||||
|
_mesa_error(ctx, GL_INVALID_ENUM, "%s(pname=0x%x)", func, pname);
|
||||||
|
break;
|
||||||
|
}
|
||||||
*params = fb->DefaultGeometry.Layers;
|
*params = fb->DefaultGeometry.Layers;
|
||||||
break;
|
break;
|
||||||
case GL_FRAMEBUFFER_DEFAULT_SAMPLES:
|
case GL_FRAMEBUFFER_DEFAULT_SAMPLES:
|
||||||
|
|
Loading…
Reference in New Issue