[Mesa-dev] [PATCH 12/13] mesa: reduce the size of gl_texture_image
Brian Paul
brian.e.paul at gmail.com
Fri Feb 9 01:56:02 UTC 2018
On Thu, Feb 8, 2018 at 6:18 PM, Marek Olšák <maraeo at gmail.com> wrote:
> From: Marek Olšák <marek.olsak at amd.com>
>
> 80 -> 40 bytes.
> ---
> src/mesa/main/mtypes.h | 47 ++++++++++++++++++++++++------
> -----------------
> 1 file changed, 24 insertions(+), 23 deletions(-)
>
> diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
> index a589bd4..b619d5c 100644
> --- a/src/mesa/main/mtypes.h
> +++ b/src/mesa/main/mtypes.h
> @@ -958,49 +958,50 @@ typedef enum
> #define TEXTURE_1D_BIT (1 << TEXTURE_1D_INDEX)
> /*@}*/
>
>
> /**
> * Texture image state. Drivers will typically create a subclass of this
> * with extra fields for memory buffers, etc.
> */
> struct gl_texture_image
> {
> - GLint InternalFormat; /**< Internal format as given by the user
> */
> + struct gl_texture_object *TexObject; /**< Pointer back to parent
> object */
> +
> + GLenum16 InternalFormat; /**< Internal format as given by the user
> */
> GLenum16 _BaseFormat; /**< Either GL_RGB, GL_RGBA, GL_ALPHA,
> - * GL_LUMINANCE, GL_LUMINANCE_ALPHA,
> - * GL_INTENSITY, GL_DEPTH_COMPONENT or
> - * GL_DEPTH_STENCIL_EXT only. Used for
> - * choosing TexEnv arithmetic.
> - */
> - mesa_format TexFormat; /**< The actual texture memory format */
> -
> - GLuint Border; /**< 0 or 1 */
> - GLuint Width; /**< = 2^WidthLog2 + 2*Border */
> - GLuint Height; /**< = 2^HeightLog2 + 2*Border */
> - GLuint Depth; /**< = 2^DepthLog2 + 2*Border */
> - GLuint Width2; /**< = Width - 2*Border */
> - GLuint Height2; /**< = Height - 2*Border */
> - GLuint Depth2; /**< = Depth - 2*Border */
> - GLuint WidthLog2; /**< = log2(Width2) */
> - GLuint HeightLog2; /**< = log2(Height2) */
> - GLuint DepthLog2; /**< = log2(Depth2) */
> - GLuint MaxNumLevels; /**< = maximum possible number of
> mipmap
> + * GL_LUMINANCE, GL_LUMINANCE_ALPHA,
> + * GL_INTENSITY, GL_DEPTH_COMPONENT or
> + * GL_DEPTH_STENCIL_EXT only. Used for
> + * choosing TexEnv arithmetic.
> + */
> + mesa_format TexFormat:16; /**< The actual texture memory format */
> +
> + GLushort Width; /**< = 2^WidthLog2 + 2*Border */
>
I don't have time to look right now, but as with pipe_resource::width0,
does this have to stay GLuint for buffer objects?
-Brian
> + GLushort Height; /**< = 2^HeightLog2 + 2*Border */
> + GLushort Depth; /**< = 2^DepthLog2 + 2*Border */
> + GLushort Width2; /**< = Width - 2*Border */
> + GLushort Height2; /**< = Height - 2*Border */
> + GLushort Depth2; /**< = Depth - 2*Border */
> + GLubyte WidthLog2; /**< = log2(Width2) */
> + GLubyte HeightLog2; /**< = log2(Height2) */
> + GLubyte DepthLog2; /**< = log2(Depth2) */
> + GLubyte Border; /**< 0 or 1 */
> + GLubyte MaxNumLevels; /**< = maximum possible number of mipmap
> levels, computed from the
> dimensions */
>
> - struct gl_texture_object *TexObject; /**< Pointer back to parent
> object */
> - GLuint Level; /**< Which mipmap level am I? */
> + GLubyte Level; /**< Which mipmap level am I? */
> /** Cube map face: index into gl_texture_object::Image[] array */
> - GLuint Face;
> + GLubyte Face;
>
> /** GL_ARB_texture_multisample */
> - GLuint NumSamples; /**< Sample count, or 0 for
> non-multisample */
> + GLubyte NumSamples; /**< Sample count, or 0 for
> non-multisample */
> GLboolean FixedSampleLocations; /**< Same sample locations for all
> pixels? */
> };
>
>
> /**
> * Indexes for cube map faces.
> */
> typedef enum
> {
> FACE_POS_X = 0,
> --
> 2.7.4
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20180208/67b8d0fb/attachment.html>
More information about the mesa-dev
mailing list