[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