From: Caio Marcelo de Oliveira Filho Date: Wed, 4 Sep 2019 00:10:52 +0000 (-0700) Subject: mesa: Pack gl_program_parameter struct X-Git-Url: https://git.libre-soc.org/?p=mesa.git;a=commitdiff_plain;h=eea3aa25aa20599578a20fb3256fdb90882abb2b 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 --- 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; };