[Mesa-dev] [PATCH 17/20] mesa: reduce the size of gl_texture_image

Marek Olšák maraeo at gmail.com
Tue Nov 21 18:01:59 UTC 2017


From: Marek Olšák <marek.olsak at amd.com>

80 -> 40 bytes.
---
 src/mesa/main/mtypes.h | 37 +++++++++++++++++++------------------
 1 file changed, 19 insertions(+), 18 deletions(-)

diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
index 9f3df70..950d156 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -919,49 +919,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
+   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? */
 };
 
 
 /**
  * Indexes for cube map faces.
  */
 typedef enum
 {
    FACE_POS_X = 0,
-- 
2.7.4



More information about the mesa-dev mailing list