[Mesa-dev] [PATCH] mesa: add compressed_tex_sub_image_{error, no_error} helpers

Timothy Arceri tarceri at itsqueeze.com
Sun Jul 23 00:01:56 UTC 2017


On 21/07/17 19:44, Samuel Pitoiset wrote:
> On 07/21/2017 11:19 AM, Timothy Arceri wrote:
>> I wasn't too worried about this because more than just no_error gets 
>> in-lined away, for example the dsa conditions and also the dim == 3. 
>> The resulting output shouldn't be overly large. What do you think?
> 
> Usually, when a helper function marked as ALWAYS_INLINE has to be 
> inlined more than one time, we declare two more helpers (XXX_error() and 
> XXX_no_error()), this is also why I wrote this patch.

Sure I'm just saying that in this instance it's not so bad, the code 
getting inlined will be rather small and in most cases will end up 
unique to the caller.

However we probably should just keep things consistent as you say, I'm 
sure its not gaining us much so:

Reviewed-by: Timothy Arceri <tarceri at itsqueeze.com>

> 
>>
>> On 21/07/17 18:43, Samuel Pitoiset wrote:
>>> To avoid inlining compressed_tex_sub_image() a bunch of times.
>>>
>>> Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
>>> ---
>>>   src/mesa/main/teximage.c | 101 
>>> ++++++++++++++++++++++++++++++-----------------
>>>   1 file changed, 65 insertions(+), 36 deletions(-)
>>>
>>> diff --git a/src/mesa/main/teximage.c b/src/mesa/main/teximage.c
>>> index 38feb3fea4..c8aa2803e7 100644
>>> --- a/src/mesa/main/teximage.c
>>> +++ b/src/mesa/main/teximage.c
>>> @@ -4997,6 +4997,31 @@ compressed_tex_sub_image(unsigned dim, GLenum 
>>> target, GLuint texture,
>>>      }
>>>   }
>>> +static void
>>> +compressed_tex_sub_image_error(unsigned dim, GLenum target, GLuint 
>>> texture,
>>> +                               GLint level, GLint xoffset, GLint 
>>> yoffset,
>>> +                               GLint zoffset, GLsizei width, GLsizei 
>>> height,
>>> +                               GLsizei depth, GLenum format, GLsizei 
>>> imageSize,
>>> +                               const GLvoid *data, bool dsa,
>>> +                               const char *caller)
>>> +{
>>> +   compressed_tex_sub_image(dim, target, texture, level, xoffset, 
>>> yoffset,
>>> +                            zoffset, width, height, depth, format, 
>>> imageSize,
>>> +                            data, dsa, false, caller);
>>> +}
>>> +
>>> +static void
>>> +compressed_tex_sub_image_no_error(unsigned dim, GLenum target, 
>>> GLuint texture,
>>> +                                  GLint level, GLint xoffset, GLint 
>>> yoffset,
>>> +                                  GLint zoffset, GLsizei width, 
>>> GLsizei height,
>>> +                                  GLsizei depth, GLenum format, 
>>> GLsizei imageSize,
>>> +                                  const GLvoid *data, bool dsa,
>>> +                                  const char *caller)
>>> +{
>>> +   compressed_tex_sub_image(dim, target, texture, level, xoffset, 
>>> yoffset,
>>> +                            zoffset, width, height, depth, format, 
>>> imageSize,
>>> +                            data, dsa, true, caller);
>>> +}
>>>   void GLAPIENTRY
>>>   _mesa_CompressedTexSubImage1D_no_error(GLenum target, GLint level,
>>> @@ -5004,9 +5029,9 @@ _mesa_CompressedTexSubImage1D_no_error(GLenum 
>>> target, GLint level,
>>>                                          GLenum format, GLsizei 
>>> imageSize,
>>>                                          const GLvoid *data)
>>>   {
>>> -   compressed_tex_sub_image(1, target, 0, level, xoffset, 0, 0, width,
>>> -                            1, 1, format, imageSize, data, false, true,
>>> -                            "glCompressedTexSubImage1D");
>>> +   compressed_tex_sub_image_no_error(1, target, 0, level, xoffset, 
>>> 0, 0, width,
>>> +                                     1, 1, format, imageSize, data, 
>>> false,
>>> +                                     "glCompressedTexSubImage1D");
>>>   }
>>> @@ -5015,9 +5040,9 @@ _mesa_CompressedTexSubImage1D(GLenum target, 
>>> GLint level, GLint xoffset,
>>>                                 GLsizei width, GLenum format,
>>>                                 GLsizei imageSize, const GLvoid *data)
>>>   {
>>> -   compressed_tex_sub_image(1, target, 0, level, xoffset, 0, 0, 
>>> width, 1, 1,
>>> -                            format, imageSize, data, false, false,
>>> -                            "glCompressedTexSubImage1D");
>>> +   compressed_tex_sub_image_error(1, target, 0, level, xoffset, 0, 
>>> 0, width, 1,
>>> +                                  1, format, imageSize, data, false,
>>> +                                  "glCompressedTexSubImage1D");
>>>   }
>>> @@ -5027,9 +5052,9 @@ 
>>> _mesa_CompressedTextureSubImage1D_no_error(GLuint texture, GLint level,
>>>                                              GLenum format, GLsizei 
>>> imageSize,
>>>                                              const GLvoid *data)
>>>   {
>>> -   compressed_tex_sub_image(1, 0, texture, level, xoffset, 0, 0, 
>>> width, 1, 1,
>>> -                            format, imageSize, data, true, true,
>>> -                            "glCompressedTextureSubImage1D");
>>> +   compressed_tex_sub_image_no_error(1, 0, texture, level, xoffset, 
>>> 0, 0, width,
>>> +                                     1, 1, format, imageSize, data, 
>>> true,
>>> +                                     "glCompressedTextureSubImage1D");
>>>   }
>>> @@ -5038,9 +5063,9 @@ _mesa_CompressedTextureSubImage1D(GLuint 
>>> texture, GLint level, GLint xoffset,
>>>                                     GLsizei width, GLenum format,
>>>                                     GLsizei imageSize, const GLvoid 
>>> *data)
>>>   {
>>> -   compressed_tex_sub_image(1, 0, texture, level, xoffset, 0, 0, 
>>> width, 1, 1,
>>> -                            format, imageSize, data, true, false,
>>> -                            "glCompressedTextureSubImage1D");
>>> +   compressed_tex_sub_image_error(1, 0, texture, level, xoffset, 0, 
>>> 0, width,
>>> +                                  1, 1, format, imageSize, data, true,
>>> +                                  "glCompressedTextureSubImage1D");
>>>   }
>>>   void GLAPIENTRY
>>> @@ -5050,9 +5075,9 @@ _mesa_CompressedTexSubImage2D_no_error(GLenum 
>>> target, GLint level,
>>>                                          GLenum format, GLsizei 
>>> imageSize,
>>>                                          const GLvoid *data)
>>>   {
>>> -   compressed_tex_sub_image(2, target, 0, level, xoffset, yoffset, 
>>> 0, width,
>>> -                            height, 1, format, imageSize, data, 
>>> false, true,
>>> -                            "glCompressedTexSubImage2D");
>>> +   compressed_tex_sub_image_no_error(2, target, 0, level, xoffset, 
>>> yoffset, 0,
>>> +                                     width, height, 1, format, 
>>> imageSize, data,
>>> +                                     false, 
>>> "glCompressedTexSubImage2D");
>>>   }
>>> @@ -5062,9 +5087,9 @@ _mesa_CompressedTexSubImage2D(GLenum target, 
>>> GLint level, GLint xoffset,
>>>                                 GLenum format, GLsizei imageSize,
>>>                                 const GLvoid *data)
>>>   {
>>> -   compressed_tex_sub_image(2, target, 0, level, xoffset, yoffset, 
>>> 0, width,
>>> -                            height, 1, format, imageSize, data, 
>>> false, false,
>>> -                            "glCompressedTexSubImage2D");
>>> +   compressed_tex_sub_image_error(2, target, 0, level, xoffset, 
>>> yoffset, 0,
>>> +                                  width, height, 1, format, 
>>> imageSize, data,
>>> +                                  false, "glCompressedTexSubImage2D");
>>>   }
>>> @@ -5075,9 +5100,9 @@ 
>>> _mesa_CompressedTextureSubImage2D_no_error(GLuint texture, GLint level,
>>>                                              GLenum format, GLsizei 
>>> imageSize,
>>>                                              const GLvoid *data)
>>>   {
>>> -   compressed_tex_sub_image(2, 0, texture, level, xoffset, yoffset, 
>>> 0, width,
>>> -                            height, 1, format, imageSize, data, 
>>> true, true,
>>> -                            "glCompressedTextureSubImage2D");
>>> +   compressed_tex_sub_image_no_error(2, 0, texture, level, xoffset, 
>>> yoffset, 0,
>>> +                                     width, height, 1, format, 
>>> imageSize, data,
>>> +                                     true, 
>>> "glCompressedTextureSubImage2D");
>>>   }
>>> @@ -5088,9 +5113,9 @@ _mesa_CompressedTextureSubImage2D(GLuint 
>>> texture, GLint level, GLint xoffset,
>>>                                     GLenum format, GLsizei imageSize,
>>>                                     const GLvoid *data)
>>>   {
>>> -   compressed_tex_sub_image(2, 0, texture, level, xoffset, yoffset, 
>>> 0, width,
>>> -                            height, 1, format, imageSize, data, 
>>> true, false,
>>> -                            "glCompressedTextureSubImage2D");
>>> +   compressed_tex_sub_image_error(2, 0, texture, level, xoffset, 
>>> yoffset, 0,
>>> +                                  width, height, 1, format, 
>>> imageSize, data,
>>> +                                  true, 
>>> "glCompressedTextureSubImage2D");
>>>   }
>>>   void GLAPIENTRY
>>> @@ -5101,9 +5126,10 @@ _mesa_CompressedTexSubImage3D_no_error(GLenum 
>>> target, GLint level,
>>>                                          GLenum format, GLsizei 
>>> imageSize,
>>>                                          const GLvoid *data)
>>>   {
>>> -   compressed_tex_sub_image(3, target, 0, level, xoffset, yoffset, 
>>> zoffset,
>>> -                            width, height, depth, format, imageSize, 
>>> data,
>>> -                            false, true, "glCompressedTexSubImage3D");
>>> +   compressed_tex_sub_image_no_error(3, target, 0, level, xoffset, 
>>> yoffset,
>>> +                                     zoffset, width, height, depth, 
>>> format,
>>> +                                     imageSize, data, false,
>>> +                                     "glCompressedTexSubImage3D");
>>>   }
>>>   void GLAPIENTRY
>>> @@ -5112,9 +5138,10 @@ _mesa_CompressedTexSubImage3D(GLenum target, 
>>> GLint level, GLint xoffset,
>>>                                 GLsizei height, GLsizei depth, GLenum 
>>> format,
>>>                                 GLsizei imageSize, const GLvoid *data)
>>>   {
>>> -   compressed_tex_sub_image(3, target, 0, level, xoffset, yoffset, 
>>> zoffset,
>>> -                            width, height, depth, format, imageSize, 
>>> data,
>>> -                            false, false, "glCompressedTexSubImage3D");
>>> +   compressed_tex_sub_image_error(3, target, 0, level, xoffset, 
>>> yoffset,
>>> +                                  zoffset, width, height, depth, 
>>> format,
>>> +                                  imageSize, data, false,
>>> +                                  "glCompressedTexSubImage3D");
>>>   }
>>>   void GLAPIENTRY
>>> @@ -5125,9 +5152,10 @@ 
>>> _mesa_CompressedTextureSubImage3D_no_error(GLuint texture, GLint level,
>>>                                              GLenum format, GLsizei 
>>> imageSize,
>>>                                              const GLvoid *data)
>>>   {
>>> -   compressed_tex_sub_image(3, 0, texture, level, xoffset, yoffset, 
>>> zoffset,
>>> -                            width, height, depth, format, imageSize, 
>>> data,
>>> -                            true, true, 
>>> "glCompressedTextureSubImage3D");
>>> +   compressed_tex_sub_image_no_error(3, 0, texture, level, xoffset, 
>>> yoffset,
>>> +                                     zoffset, width, height, depth, 
>>> format,
>>> +                                     imageSize, data, true,
>>> +                                     "glCompressedTextureSubImage3D");
>>>   }
>>>   void GLAPIENTRY
>>> @@ -5137,9 +5165,10 @@ _mesa_CompressedTextureSubImage3D(GLuint 
>>> texture, GLint level, GLint xoffset,
>>>                                     GLenum format, GLsizei imageSize,
>>>                                     const GLvoid *data)
>>>   {
>>> -   compressed_tex_sub_image(3, 0, texture, level, xoffset, yoffset, 
>>> zoffset,
>>> -                            width, height, depth, format, imageSize, 
>>> data,
>>> -                            true, false, 
>>> "glCompressedTextureSubImage3D");
>>> +   compressed_tex_sub_image_error(3, 0, texture, level, xoffset, 
>>> yoffset,
>>> +                                  zoffset, width, height, depth, 
>>> format,
>>> +                                  imageSize, data, true,
>>> +                                  "glCompressedTextureSubImage3D");
>>>   }
>>>   static mesa_format
>>>


More information about the mesa-dev mailing list