diff options
author | Caio Marcelo de Oliveira Filho <[email protected]> | 2019-09-03 17:10:52 -0700 |
---|---|---|
committer | Caio Marcelo de Oliveira Filho <[email protected]> | 2019-09-10 14:36:46 -0700 |
commit | eea3aa25aa20599578a20fb3256fdb90882abb2b (patch) | |
tree | e9224e56df25b125fc645ecb06422304772d36bb | |
parent | eda596d64b0e143005d52fe50331e099463813d9 (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.h | 16 |
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; }; |