> -----Original Message----- > From: mesa-dev [mailto:mesa-dev-boun...@lists.freedesktop.org] On > Behalf Of Tapani Pälli > Sent: Monday, August 24, 2015 12:05 PM > To: Marta Lofstedt; mesa-dev@lists.freedesktop.org > Subject: Re: [Mesa-dev] [PATCH 2/2] mesa/es3.1: Limit Framebuffer > Parameter OpenGL ES 3.1 usage > > > > On 08/24/2015 12:21 PM, Tapani Pälli wrote: > > > > > > On 08/24/2015 10:10 AM, Marta Lofstedt wrote: > >> From: Marta Lofstedt <marta.lofst...@intel.com> > >> > >> 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.lofst...@intel.com> > >> --- > >> src/mesa/main/fbobject.c | 34 ++++++++++++++++++++++++++++------ > >> 1 file changed, 28 insertions(+), 6 deletions(-) > >> > >> diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c > >> index 07db195..1bbdd30 100644 > >> --- a/src/mesa/main/fbobject.c > >> +++ b/src/mesa/main/fbobject.c > >> @@ -1389,11 +1389,22 @@ framebuffer_parameteri(struct gl_context > >> *ctx, struct gl_framebuffer *fb, > >> fb->DefaultGeometry.Height = param; > >> break; > >> case GL_FRAMEBUFFER_DEFAULT_LAYERS: > >> - if (param < 0 || param > ctx->Const.MaxFramebufferLayers) > >> - _mesa_error(ctx, GL_INVALID_VALUE, "%s", func); > >> - else > >> - fb->DefaultGeometry.Layers = param; > >> - break; > >> + /* > >> + * 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); > >> + } > >> + else { > >> + if (param < 0 || param > ctx->Const.MaxFramebufferLayers) > >> + _mesa_error(ctx, GL_INVALID_VALUE, "%s", func); > >> + else > >> + fb->DefaultGeometry.Layers = param; > >> + break; > >> + } > > > > I'd suggest to avoid else { ... }, just insert the error case before > > regular handling and break out if error. No need to touch original > > code and looks cleaner. > > > >> case GL_FRAMEBUFFER_DEFAULT_SAMPLES: > >> if (param < 0 || param > ctx->Const.MaxFramebufferSamples) > >> _mesa_error(ctx, GL_INVALID_VALUE, "%s", func); @@ -1451,7 > >> +1462,18 @@ get_framebuffer_parameteriv(struct gl_context *ctx, > >> struct gl_framebuffer *fb, > >> *params = fb->DefaultGeometry.Height; > >> break; > >> case GL_FRAMEBUFFER_DEFAULT_LAYERS: > >> - *params = fb->DefaultGeometry.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); > >> + } > >> + else { > >> + *params = fb->DefaultGeometry.Layers; > >> + } > > > > same here > > > >> break; > >> case GL_FRAMEBUFFER_DEFAULT_SAMPLES: > >> *params = fb->DefaultGeometry.NumSamples; > >> > > > > > > With these changes both of the patches are > > > > Reviewed-by: Tapani Pälli <tapani.pa...@intel.com> > > One note, I just spotted that with these changes you can also enable > ARB_framebuffer_no_attachments for 3.1 check in compute_version_es2() > (version.c).
OK, this is done in V2 of "Expose GL_ARB_framebuffer_no_attachments to GLES 3.1" > > // Tapani > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev