aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCaio Marcelo de Oliveira Filho <[email protected]>2019-09-03 17:10:52 -0700
committerCaio Marcelo de Oliveira Filho <[email protected]>2019-09-10 14:36:46 -0700
commiteea3aa25aa20599578a20fb3256fdb90882abb2b (patch)
treee9224e56df25b125fc645ecb06422304772d36bb
parenteda596d64b0e143005d52fe50331e099463813d9 (diff)
mesa: Pack gl_program_parameter struct
The gl_register_file doesn't need 16 bits, so shorten it and use the extra room for 'Padded' (also mark it as a single bit). This shrinks the struct size from 32 bytes to 24 bytes. See also 4794fbc86e3 ("mesa: reduce the size of gl_program_parameter") that shrinked from 40 to 24 and later 7536af670b7 ("glsl: fix shader cache for packed param list") that added `Padded`. v2: Use just 5 bits for gl_register_file. (Timothy) Reviewed-by: Timothy Arceri <[email protected]>
-rw-r--r--src/mesa/program/prog_parameter.h16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/mesa/program/prog_parameter.h b/src/mesa/program/prog_parameter.h
index 57050042012..94aeb5540b5 100644
--- a/src/mesa/program/prog_parameter.h
+++ b/src/mesa/program/prog_parameter.h
@@ -91,8 +91,16 @@ typedef union gl_constant_value
struct gl_program_parameter
{
const char *Name; /**< Null-terminated string */
- gl_register_file Type:16; /**< PROGRAM_CONSTANT or STATE_VAR */
+ gl_register_file Type:5; /**< PROGRAM_CONSTANT or STATE_VAR */
+
+ /**
+ * We need to keep track of whether the param is padded for use in the
+ * shader cache.
+ */
+ bool Padded:1;
+
GLenum16 DataType; /**< GL_FLOAT, GL_FLOAT_VEC2, etc */
+
/**
* Number of components (1..4), or more.
* If the number of components is greater than 4,
@@ -104,12 +112,6 @@ struct gl_program_parameter
* A sequence of STATE_* tokens and integers to identify GL state.
*/
gl_state_index16 StateIndexes[STATE_LENGTH];
-
- /**
- * We need to keep track of whether the param is padded for use in the
- * shader cache.
- */
- bool Padded;
};