Mesa (master): mesa: Reduce ffvertex_prog state_key to 36 bytes.
Brian Paul
brianp at kemper.freedesktop.org
Tue Jan 30 16:11:23 UTC 2018
Module: Mesa
Branch: master
Commit: 6395a0ecf2224f7647262aa82d3ebba69cba891b
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=6395a0ecf2224f7647262aa82d3ebba69cba891b
Author: Mathias Fröhlich <mathias.froehlich at web.de>
Date: Sat Jan 27 12:09:00 2018 -0700
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 <Mathias.Froehlich at web.de>
Reviewed-by: Brian Paul <brianp at vmware.com>
---
src/mesa/main/ffvertex_prog.c | 29 +++++++++++++++--------------
1 file changed, 15 insertions(+), 14 deletions(-)
diff --git a/src/mesa/main/ffvertex_prog.c b/src/mesa/main/ffvertex_prog.c
index 964d7079e1..172ab698db 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];
};
More information about the mesa-commit
mailing list