[Mesa-dev] [PATCH] mesa: add compressed_tex_sub_image_{error, no_error} helpers
Samuel Pitoiset
samuel.pitoiset at gmail.com
Fri Jul 21 09:44:17 UTC 2017
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.
>
> 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