[Mesa-dev] [PATCH v2] glapi: fixup EXT_multisampled_render_to_texture dispatch
Kristian Høgsberg
hoegsberg at gmail.com
Mon Dec 10 23:10:40 UTC 2018
On Mon, Dec 10, 2018 at 2:12 PM Ian Romanick <idr at freedesktop.org> wrote:
>
> Reviewed-by: Ian Romanick <ian.d.romanick at intel.com>
Thanks Ian. I went ahead and pushed this to appease the CI bots.
Kristian
> On 12/10/18 10:14 AM, Emil Velikov wrote:
> > From: "Kristian H. Kristensen" <hoegsberg at gmail.com>
> >
> > There's a few missing and convoluted bits:
> >
> > - FramebufferTexture2DMultisampleEXT
> > Missing sanity check, should be desktop="false"
> >
> > - RenderbufferStorageMultisampleEXT
> > Missing sanity check, is aliased to RenderbufferStorageMultisample.
> > Thus it's set only when desktop GL or GLES2 v3.0+, while the extension
> > is GLES2 2.0+.
> >
> > If we flip the aliasing we'll break indirect GLX, so loosen the version
> > to 2.0. Not perfect, yet this is the most sane thing I could think of.
> >
> > v2: [Emil] Fixup RenderbufferStorageMultisampleEXT, commmit message
> >
> > Cc: Kristian H. Kristensen <hoegsberg at gmail.com>
> > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108974
> > Fixes: 1b331ae505e ("mesa: Add core support for EXT_multisampled_render_to_texture{,2}")
> > Reviewed-by: Emil Velikov <emil.velikov at collabora.com>
> > Signed-off-by: Emil Velikov <emil.velikov at collabora.com>
> > ---
> > src/mapi/glapi/gen/ARB_framebuffer_object.xml | 10 +++++++++-
> > .../glapi/gen/EXT_multisampled_render_to_texture.xml | 2 +-
> > src/mapi/glapi/gen/es_EXT.xml | 2 ++
> > src/mapi/glapi/gen/gl_API.xml | 2 --
> > src/mesa/main/tests/dispatch_sanity.cpp | 6 +++++-
> > 5 files changed, 17 insertions(+), 5 deletions(-)
> >
> > diff --git a/src/mapi/glapi/gen/ARB_framebuffer_object.xml b/src/mapi/glapi/gen/ARB_framebuffer_object.xml
> > index bd0793c8ece..295175c8816 100644
> > --- a/src/mapi/glapi/gen/ARB_framebuffer_object.xml
> > +++ b/src/mapi/glapi/gen/ARB_framebuffer_object.xml
> > @@ -172,7 +172,15 @@
> > <glx rop="4318"/>
> > </function>
> >
> > - <function name="RenderbufferStorageMultisample" es2="3.0">
> > +<!--
> > + The EXT aliasee, as part of EXT_multisampled_render_to_texture can
> > + work on GLES 2.0. While the entry point below is only set when
> > + gl || (gles && version > 3.0)
> > +
> > + As such, the entrypoint will be noop, and calling it will do nothing.
> > + Workaround that by loosening the version to 2.0.
> > + -->
> > + <function name="RenderbufferStorageMultisample" es2="2.0">
> > <param name="target" type="GLenum"/>
> > <param name="samples" type="GLsizei"/>
> > <param name="internalformat" type="GLenum"/>
> > diff --git a/src/mapi/glapi/gen/EXT_multisampled_render_to_texture.xml b/src/mapi/glapi/gen/EXT_multisampled_render_to_texture.xml
> > index 555b008bd33..d76ecd47d0e 100644
> > --- a/src/mapi/glapi/gen/EXT_multisampled_render_to_texture.xml
> > +++ b/src/mapi/glapi/gen/EXT_multisampled_render_to_texture.xml
> > @@ -20,7 +20,7 @@
> > </function>
> > -->
> >
> > - <function name="FramebufferTexture2DMultisampleEXT" es2="2.0">
> > + <function name="FramebufferTexture2DMultisampleEXT" es2="2.0" desktop="false">
> > <param name="target" type="GLenum"/>
> > <param name="attachment" type="GLenum"/>
> > <param name="textarget" type="GLenum"/>
> > diff --git a/src/mapi/glapi/gen/es_EXT.xml b/src/mapi/glapi/gen/es_EXT.xml
> > index bbc4a1a1118..917fed62f98 100644
> > --- a/src/mapi/glapi/gen/es_EXT.xml
> > +++ b/src/mapi/glapi/gen/es_EXT.xml
> > @@ -810,6 +810,8 @@
> > <enum name="RG8_EXT" value="0x822B"/>
> > </category>
> >
> > +<xi:include href="EXT_multisampled_render_to_texture.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
> > +
> > <!-- 111. GL_ANGLE_texture_compression_dxt -->
> > <category name="GL_ANGLE_texture_compression_dxt" number="111">
> > <enum name="COMPRESSED_RGBA_S3TC_DXT3_ANGLE" value="0x83F2"/>
> > diff --git a/src/mapi/glapi/gen/gl_API.xml b/src/mapi/glapi/gen/gl_API.xml
> > index f1def8090de..f4d0808f13b 100644
> > --- a/src/mapi/glapi/gen/gl_API.xml
> > +++ b/src/mapi/glapi/gen/gl_API.xml
> > @@ -8175,8 +8175,6 @@
> >
> > <xi:include href="ARB_robustness.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
> >
> > -<xi:include href="EXT_multisampled_render_to_texture.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
> > -
> > <xi:include href="ARB_base_instance.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
> >
> > <category name="GL_ARB_transform_feedback_instanced" number="109">
> > diff --git a/src/mesa/main/tests/dispatch_sanity.cpp b/src/mesa/main/tests/dispatch_sanity.cpp
> > index fb2acfbdeea..307639a4a4e 100644
> > --- a/src/mesa/main/tests/dispatch_sanity.cpp
> > +++ b/src/mesa/main/tests/dispatch_sanity.cpp
> > @@ -2236,6 +2236,10 @@ const struct function gles2_functions_possible[] = {
> > /* GL_NV_conservative_raster_pre_snap_triangles */
> > { "glConservativeRasterParameteriNV", 20, -1 },
> >
> > + /* GL_EXT_multisampled_render_to_texture */
> > + { "glRenderbufferStorageMultisampleEXT", 20, -1 },
> > + { "glFramebufferTexture2DMultisampleEXT", 20, -1 },
> > +
> > { NULL, 0, -1 }
> > };
> >
> > @@ -2330,7 +2334,7 @@ const struct function gles3_functions_possible[] = {
> > // glProgramParameteri aliases glProgramParameteriEXT in GLES 2
> > // We check for the aliased -NV version in GLES 2
> > // { "glReadBuffer", 30, -1 },
> > - { "glRenderbufferStorageMultisample", 30, -1 },
> > + // glRenderbufferStorageMultisample aliases glRenderbufferStorageMultisampleEXT in GLES 2
> > { "glResumeTransformFeedback", 30, -1 },
> > { "glSamplerParameterf", 30, -1 },
> > { "glSamplerParameterfv", 30, -1 },
> >
>
More information about the mesa-dev
mailing list