diff options
author | Mathias Fröhlich <[email protected]> | 2018-01-27 12:09:00 -0700 |
---|---|---|
committer | Brian Paul <[email protected]> | 2018-01-30 09:07:59 -0700 |
commit | 6395a0ecf2224f7647262aa82d3ebba69cba891b (patch) | |
tree | 0f8282fd3f6cc21b6608d3cd8ef210c7b4b162f7 /src | |
parent | b4216b588e970c6d322fd068c553d0bfc5e7a062 (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.c | 29 |
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]; }; |