[Mesa-dev] [PATCH] mesa/mtypes: repack gl_texture_object.

Christian Gmeiner christian.gmeiner at gmail.com
Tue Sep 5 16:52:04 UTC 2017


2017-09-05 17:50 GMT+02:00 Brian Paul <brianp at vmware.com>:
> On 09/04/2017 05:29 AM, Marek Olšák wrote:
>>
>> On Sun, Sep 3, 2017 at 1:18 PM, Dave Airlie <airlied at gmail.com> wrote:
>>>
>>> From: Dave Airlie <airlied at redhat.com>
>>>
>>> reduces size from 1144 to 1128.
>>>
>>> Signed-off-by: Dave Airlie <airlied at redhat.com>
>>> ---
>>>   src/mesa/main/mtypes.h | 10 +++++-----
>>>   1 file changed, 5 insertions(+), 5 deletions(-)
>>>
>>> diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
>>> index d44897b..3d68a6d 100644
>>> --- a/src/mesa/main/mtypes.h
>>> +++ b/src/mesa/main/mtypes.h
>>> @@ -1012,7 +1012,6 @@ struct gl_texture_object
>>>      struct gl_sampler_object Sampler;
>>>
>>>      GLenum DepthMode;           /**< GL_ARB_depth_texture */
>>
>>
>> The patch looks good, but here are some ideas for future improvements:
>>
>> GLenum can be uint16_t everywhere, because GL doesn't set higher bits:
>>
>> typedef uint16_t GLenum16.
>> s/GLenum/GLenum16/
>>
>>> -   bool StencilSampling;       /**< Should we sample stencil instead of
>>> depth? */
>>>
>>>      GLfloat Priority;           /**< in [0,1] */
>>>      GLint BaseLevel;            /**< min mipmap level, OpenGL 1.2 */
>>> @@ -1033,12 +1032,17 @@ struct gl_texture_object
>>>      GLboolean Immutable;        /**< GL_ARB_texture_storage */
>>>      GLboolean _IsFloat;         /**< GL_OES_float_texture */
>>>      GLboolean _IsHalfFloat;     /**< GL_OES_half_float_texture */
>>> +   bool StencilSampling;       /**< Should we sample stencil instead of
>>> depth? */
>>> +   bool HandleAllocated;       /**< GL_ARB_bindless_texture */
>>
>>
>> All bools can be 1 bit:
>>
>> bool x:1;
>> GLboolean y:1;
>>
>> etc.
>>
>>>
>>>      GLuint MinLevel;            /**< GL_ARB_texture_view */
>>>      GLuint MinLayer;            /**< GL_ARB_texture_view */
>>>      GLuint NumLevels;           /**< GL_ARB_texture_view */
>>>      GLuint NumLayers;           /**< GL_ARB_texture_view */
>>
>>
>> MinLevel, NumLevels can be ubyte (uint8_t). MinLayer, NumLayers can be
>> ushort (uint16_t)... simply by considering the range of possible
>> values.
>
>
> There's lots of opportunities along these lines in gl_texture_image. And
> since we often have many gl_texture_images per gl_texture_object, and we
> often have many textures, it'll probably have considerable impact.  I've
> suggested this in the past but never got around to working on it.
>
> I recall Eric Anholt mentioning a memory profiling tool that was helpful for
> finding wasted space in structures, etc.  I don't recall the name right now.
> Eric?
>

maybe you thought about pahole - https://linux.die.net/man/1/pahole

greets
--
Christian Gmeiner, MSc

https://christian-gmeiner.info


More information about the mesa-dev mailing list