Module: Mesa
Branch: master
Commit: eea3aa25aa20599578a20fb3256fdb90882abb2b
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=eea3aa25aa20599578a20fb3256fdb90882abb2b

Author: Caio Marcelo de Oliveira Filho <[email protected]>
Date:   Tue Sep  3 17:10:52 2019 -0700

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]>

---

 src/mesa/program/prog_parameter.h | 16 +++++++++-------
 1 file 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;
 };
 
 

_______________________________________________
mesa-commit mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/mesa-commit

Reply via email to