summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMathias Fröhlich <[email protected]>2018-01-27 12:09:00 -0700
committerBrian Paul <[email protected]>2018-01-30 09:07:59 -0700
commit6395a0ecf2224f7647262aa82d3ebba69cba891b (patch)
tree0f8282fd3f6cc21b6608d3cd8ef210c7b4b162f7 /src
parentb4216b588e970c6d322fd068c553d0bfc5e7a062 (diff)
mesa: Reduce ffvertex_prog state_key to 36 bytes.
Using lower alignment restrictions for the state key fields finally yields to a smaller hashing state key. Signed-off-by: Mathias Fröhlich <[email protected]> Reviewed-by: Brian Paul <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/mesa/main/ffvertex_prog.c29
1 files changed, 15 insertions, 14 deletions
diff --git a/src/mesa/main/ffvertex_prog.c b/src/mesa/main/ffvertex_prog.c
index 964d7079e1a..172ab698dbd 100644
--- a/src/mesa/main/ffvertex_prog.c
+++ b/src/mesa/main/ffvertex_prog.c
@@ -51,6 +51,10 @@
#define NUM_UNITS MAX2(MAX_TEXTURE_COORD_UNITS, MAX_LIGHTS)
struct state_key {
+ GLbitfield varying_vp_inputs;
+
+ unsigned fragprog_inputs_read:12;
+
unsigned light_color_material_mask:12;
unsigned light_global_enabled:1;
unsigned light_local_viewer:1;
@@ -63,22 +67,19 @@ struct state_key {
unsigned fog_distance_mode:2;
unsigned separate_specular:1;
unsigned point_attenuated:1;
- unsigned fragprog_inputs_read:12;
-
- GLbitfield varying_vp_inputs;
struct {
- unsigned light_enabled:1;
- unsigned light_eyepos3_is_zero:1;
- unsigned light_spotcutoff_is_180:1;
- unsigned light_attenuated:1;
- unsigned texmat_enabled:1;
- unsigned coord_replace:1;
- unsigned texgen_enabled:1;
- unsigned texgen_mode0:4;
- unsigned texgen_mode1:4;
- unsigned texgen_mode2:4;
- unsigned texgen_mode3:4;
+ unsigned char light_enabled:1;
+ unsigned char light_eyepos3_is_zero:1;
+ unsigned char light_spotcutoff_is_180:1;
+ unsigned char light_attenuated:1;
+ unsigned char texmat_enabled:1;
+ unsigned char coord_replace:1;
+ unsigned char texgen_enabled:1;
+ unsigned char texgen_mode0:4;
+ unsigned char texgen_mode1:4;
+ unsigned char texgen_mode2:4;
+ unsigned char texgen_mode3:4;
} unit[NUM_UNITS];
};