Mesa (master): mesa: reduce the size of gl_texture_image

Marek Olšák mareko at kemper.freedesktop.org
Tue Feb 13 00:17:37 UTC 2018


Module: Mesa
Branch: master
Commit: f4ea2b2a9e99d93fbf36c3f0e5f6f384be3cdb89
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=f4ea2b2a9e99d93fbf36c3f0e5f6f384be3cdb89

Author: Marek Olšák <marek.olsak at amd.com>
Date:   Thu Nov 16 04:46:02 2017 +0100

mesa: reduce the size of gl_texture_image

80 -> 40 bytes.

Reviewed-by: Brian Paul <brianp at vmware.com>

---

 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 a589bd4bb2..b619d5c02d 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -965,35 +965,36 @@ typedef enum
  */
 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 */
+   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? */
 };
 




More information about the mesa-commit mailing list