summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2017-11-16 00:44:43 +0100
committerMarek Olšák <[email protected]>2018-02-13 01:00:45 +0100
commit78f1decc95edee0c774098e29582d5bb9dec39a4 (patch)
tree15577849bb1fcac6a68a253fc197b0707d5d5738
parentca5c5d96d8d6c4aa39701ec2bd012b79d9493910 (diff)
mesa: reduce the size of gl_image_unit (v2)
gl_context::ImageUnits: 6144 -> 4608 bytes v2: use ASSERT_BITFIELD_SIZE Reviewed-by: Brian Paul <[email protected]>
-rw-r--r--src/mesa/main/mtypes.h13
-rw-r--r--src/mesa/main/shaderimage.c2
2 files changed, 8 insertions, 7 deletions
diff --git a/src/mesa/main/mtypes.h b/src/mesa/main/mtypes.h
index 23fe45920cf..f829fa3ff05 100644
--- a/src/mesa/main/mtypes.h
+++ b/src/mesa/main/mtypes.h
@@ -4685,7 +4685,7 @@ struct gl_image_unit
/**
* Level of the texture object bound to this unit.
*/
- GLuint Level;
+ GLubyte Level;
/**
* \c GL_TRUE if the whole level is bound as an array of layers, \c
@@ -4698,13 +4698,13 @@ struct gl_image_unit
* Layer of the texture object bound to this unit as specified by the
* application.
*/
- GLuint Layer;
+ GLushort Layer;
/**
- * Layer of the texture object bound to this unit, or zero if the
- * whole level is bound.
+ * Layer of the texture object bound to this unit, or zero if
+ * Layered == false.
*/
- GLuint _Layer;
+ GLushort _Layer;
/**
* Access allowed to this texture image. Either \c GL_READ_ONLY,
@@ -4722,8 +4722,7 @@ struct gl_image_unit
/**
* Mesa format corresponding to \c Format.
*/
- mesa_format _ActualFormat;
-
+ mesa_format _ActualFormat:16;
};
/**
diff --git a/src/mesa/main/shaderimage.c b/src/mesa/main/shaderimage.c
index c722b327de2..596eadd4f85 100644
--- a/src/mesa/main/shaderimage.c
+++ b/src/mesa/main/shaderimage.c
@@ -464,6 +464,8 @@ _mesa_init_image_units(struct gl_context *ctx)
{
unsigned i;
+ ASSERT_BITFIELD_SIZE(struct gl_image_unit, Format, MESA_FORMAT_COUNT);
+
for (i = 0; i < ARRAY_SIZE(ctx->ImageUnits); ++i)
ctx->ImageUnits[i] = _mesa_default_image_unit(ctx);
}