[Mesa-dev] [PATCH 2/8] glapi: define AMD_framebuffer_multisample_advanced and add its functions

Juan A. Suarez Romero jasuarez at igalia.com
Mon Aug 6 10:49:18 UTC 2018


On Wed, 2018-08-01 at 19:25 -0400, Marek Olšák wrote:
> From: Marek Olšák <marek.olsak at amd.com>
> 
> ---
>  src/mapi/glapi/gen/gl_API.xml | 27 +++++++++++++++++++++++++++
>  src/mesa/main/fbobject.c      | 22 ++++++++++++++++++++++
>  src/mesa/main/fbobject.h      | 10 ++++++++++
>  3 files changed, 59 insertions(+)
> 


Apparently, this patch is causing a break in the mesa tests:

https://travis-ci.org/mesa3d/mesa/jobs/412504427

http://paste.debian.net/1036881/


	J.A.

diff --git a/src/mapi/glapi/gen/gl_API.xml b/src/mapi/glapi/gen/gl_API.xml
> index 49807e1ea52..81e4ac08cce 100644
> --- a/src/mapi/glapi/gen/gl_API.xml
> +++ b/src/mapi/glapi/gen/gl_API.xml
> @@ -13028,20 +13028,47 @@
>  <xi:include href="EXT_window_rectangles.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>;
>  
>  <!-- 520. GL_EXT_shader_framebuffer_fetch -->
>  <category name="GL_EXT_shader_framebuffer_fetch" number="520">
>      <enum name="FRAGMENT_SHADER_DISCARDS_SAMPLES_EXT" value="0x8A52"/>
>      <function name="FramebufferFetchBarrierEXT" es2="2.0"/>
>  </category>
>  
>  <!-- Unnumbered extensions sorted by name. -->
>  
> +<category name="GL_AMD_framebuffer_multisample_advanced">
> +    <enum name="RENDERBUFFER_STORAGE_SAMPLES_AMD"          value="0x91B2"/>
> +    <enum name="MAX_COLOR_FRAMEBUFFER_SAMPLES_AMD"         value="0x91B3"/>
> +    <enum name="MAX_COLOR_FRAMEBUFFER_STORAGE_SAMPLES_AMD" value="0x91B4"/>
> +    <enum name="MAX_DEPTH_STENCIL_FRAMEBUFFER_SAMPLES_AMD" value="0x91B5"/>
> +    <enum name="NUM_SUPPORTED_MULTISAMPLE_MODES_AMD"       value="0x91B6"/>
> +    <enum name="SUPPORTED_MULTISAMPLE_MODES_AMD"           value="0x91B7"/>
> +
> +    <function name="RenderbufferStorageMultisampleAdvancedAMD" es2="2.0">
> +        <param name="target" type="GLenum"/>
> +        <param name="samples" type="GLsizei"/>
> +        <param name="storageSamples" type="GLsizei"/>
> +        <param name="internalformat" type="GLenum"/>
> +        <param name="width" type="GLsizei"/>
> +        <param name="height" type="GLsizei"/>
> +    </function>
> +
> +    <function name="NamedRenderbufferStorageMultisampleAdvancedAMD" es2="2.0">
> +       <param name="renderbuffer" type="GLuint" />
> +       <param name="samples" type="GLsizei" />
> +       <param name="storageSamples" type="GLsizei"/>
> +       <param name="internalformat" type="GLenum" />
> +       <param name="width" type="GLsizei" />
> +       <param name="height" type="GLsizei" />
> +    </function>
> +</category>
> +
>  <category name="GL_ATI_blend_equation_separate">
>      <function name="BlendEquationSeparateATI" alias="BlendEquationSeparate">
>          <param name="modeRGB" type="GLenum"/>
>          <param name="modeA" type="GLenum"/>
>      </function>
>  </category>
>  
>  <category name="GL_ATI_separate_stencil">
>      <enum name="STENCIL_BACK_FUNC_ATI"     count="1"  value="0x8800">
>          <size name="Get" mode="get"/>
> diff --git a/src/mesa/main/fbobject.c b/src/mesa/main/fbobject.c
> index edafdd011aa..f63902c9dd4 100644
> --- a/src/mesa/main/fbobject.c
> +++ b/src/mesa/main/fbobject.c
> @@ -2485,20 +2485,31 @@ void GLAPIENTRY
>  _mesa_RenderbufferStorageMultisample(GLenum target, GLsizei samples,
>                                       GLenum internalFormat,
>                                       GLsizei width, GLsizei height)
>  {
>     renderbuffer_storage_target(target, internalFormat, width, height,
>                                 samples, samples,
>                                 "glRenderbufferStorageMultisample");
>  }
>  
>  
> +void GLAPIENTRY
> +_mesa_RenderbufferStorageMultisampleAdvancedAMD(
> +      GLenum target, GLsizei samples, GLsizei storageSamples,
> +      GLenum internalFormat, GLsizei width, GLsizei height)
> +{
> +   renderbuffer_storage_target(target, internalFormat, width, height,
> +                               samples, storageSamples,
> +                               "glRenderbufferStorageMultisampleAdvancedAMD");
> +}
> +
> +
>  /**
>   * OpenGL ES version of glRenderBufferStorage.
>   */
>  void GLAPIENTRY
>  _es_RenderbufferStorageEXT(GLenum target, GLenum internalFormat,
>                             GLsizei width, GLsizei height)
>  {
>     switch (internalFormat) {
>     case GL_RGB565:
>        /* XXX this confuses GL_RENDERBUFFER_INTERNAL_FORMAT_OES */
> @@ -2529,20 +2540,31 @@ void GLAPIENTRY
>  _mesa_NamedRenderbufferStorageMultisample(GLuint renderbuffer, GLsizei samples,
>                                            GLenum internalformat,
>                                            GLsizei width, GLsizei height)
>  {
>     renderbuffer_storage_named(renderbuffer, internalformat, width, height,
>                                samples, samples,
>                                "glNamedRenderbufferStorageMultisample");
>  }
>  
>  
> +void GLAPIENTRY
> +_mesa_NamedRenderbufferStorageMultisampleAdvancedAMD(
> +      GLuint renderbuffer, GLsizei samples, GLsizei storageSamples,
> +      GLenum internalformat, GLsizei width, GLsizei height)
> +{
> +   renderbuffer_storage_named(renderbuffer, internalformat, width, height,
> +                              samples, storageSamples,
> +                              "glNamedRenderbufferStorageMultisampleAdvancedAMD");
> +}
> +
> +
>  static void
>  get_render_buffer_parameteriv(struct gl_context *ctx,
>                                struct gl_renderbuffer *rb, GLenum pname,
>                                GLint *params, const char *func)
>  {
>     /* No need to flush here since we're just quering state which is
>      * not effected by rendering.
>      */
>  
>     switch (pname) {
> diff --git a/src/mesa/main/fbobject.h b/src/mesa/main/fbobject.h
> index 0299781b1e5..5cd3c60297f 100644
> --- a/src/mesa/main/fbobject.h
> +++ b/src/mesa/main/fbobject.h
> @@ -166,33 +166,43 @@ _mesa_CreateRenderbuffers(GLsizei n, GLuint *renderbuffers);
>  
>  extern void GLAPIENTRY
>  _mesa_RenderbufferStorage(GLenum target, GLenum internalformat,
>                               GLsizei width, GLsizei height);
>  
>  extern void GLAPIENTRY
>  _mesa_RenderbufferStorageMultisample(GLenum target, GLsizei samples,
>                                       GLenum internalformat,
>                                       GLsizei width, GLsizei height);
>  
> +extern void GLAPIENTRY
> +_mesa_RenderbufferStorageMultisampleAdvancedAMD(
> +      GLenum target, GLsizei samples, GLsizei storageSamples,
> +      GLenum internalFormat, GLsizei width, GLsizei height);
> +
>  extern void GLAPIENTRY
>  _es_RenderbufferStorageEXT(GLenum target, GLenum internalFormat,
>  			   GLsizei width, GLsizei height);
>  
>  extern void GLAPIENTRY
>  _mesa_NamedRenderbufferStorage(GLuint renderbuffer, GLenum internalformat,
>                                 GLsizei width, GLsizei height);
>  
>  extern void GLAPIENTRY
>  _mesa_NamedRenderbufferStorageMultisample(GLuint renderbuffer, GLsizei samples,
>                                            GLenum internalformat,
>                                            GLsizei width, GLsizei height);
>  
> +extern void GLAPIENTRY
> +_mesa_NamedRenderbufferStorageMultisampleAdvancedAMD(
> +      GLuint renderbuffer, GLsizei samples, GLsizei storageSamples,
> +      GLenum internalformat, GLsizei width, GLsizei height);
> +
>  extern void GLAPIENTRY
>  _mesa_EGLImageTargetRenderbufferStorageOES(GLenum target, GLeglImageOES image);
>  
>  extern void GLAPIENTRY
>  _mesa_GetRenderbufferParameteriv(GLenum target, GLenum pname,
>                                      GLint *params);
>  
>  void GLAPIENTRY
>  _mesa_GetNamedRenderbufferParameteriv(GLuint renderbuffer, GLenum pname,
>                                        GLint *params);



More information about the mesa-dev mailing list