Module: Mesa Branch: master Commit: c8fe3b9dca73e3b91979d92ba4136b302001b3bb URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=c8fe3b9dca73e3b91979d92ba4136b302001b3bb
Author: Marek Olšák <[email protected]> Date: Sun Jul 17 18:38:38 2016 +0200 st/mesa: completely rewrite state atoms The goal is to do this in st_validate_state: while (dirty) atoms[u_bit_scan(&dirty)]->update(st); That implies that atoms can't specify which flags they consume. There is exactly one ST_NEW_* flag for each atom. (58 flags in total) There are macros that combine multiple flags into one for easier use. All _NEW_* flags are translated into ST_NEW_* flags in st_invalidate_state. st/mesa doesn't keep the _NEW_* flags after that. torcs is 2% faster between the previous patch and the end of this series. v2: - add st_atom_list.h to Makefile.sources Reviewed-by: Nicolai Hähnle <[email protected]> --- src/mesa/Makefile.sources | 1 + src/mesa/state_tracker/st_atom.c | 156 +++++------------- src/mesa/state_tracker/st_atom.h | 210 +++++++++++++++++-------- src/mesa/state_tracker/st_atom_array.c | 4 - src/mesa/state_tracker/st_atom_atomicbuf.c | 24 --- src/mesa/state_tracker/st_atom_blend.c | 4 - src/mesa/state_tracker/st_atom_clip.c | 4 - src/mesa/state_tracker/st_atom_constbuf.c | 48 ------ src/mesa/state_tracker/st_atom_depth.c | 4 - src/mesa/state_tracker/st_atom_framebuffer.c | 4 - src/mesa/state_tracker/st_atom_image.c | 24 --- src/mesa/state_tracker/st_atom_list.h | 75 +++++++++ src/mesa/state_tracker/st_atom_msaa.c | 8 - src/mesa/state_tracker/st_atom_pixeltransfer.c | 4 - src/mesa/state_tracker/st_atom_rasterizer.c | 16 -- src/mesa/state_tracker/st_atom_sampler.c | 4 - src/mesa/state_tracker/st_atom_scissor.c | 8 - src/mesa/state_tracker/st_atom_shader.c | 24 --- src/mesa/state_tracker/st_atom_stipple.c | 5 - src/mesa/state_tracker/st_atom_storagebuf.c | 24 --- src/mesa/state_tracker/st_atom_tess.c | 4 - src/mesa/state_tracker/st_atom_texture.c | 24 --- src/mesa/state_tracker/st_atom_viewport.c | 4 - src/mesa/state_tracker/st_cb_bitmap.c | 10 +- src/mesa/state_tracker/st_cb_bufferobjects.c | 10 +- src/mesa/state_tracker/st_cb_compute.c | 2 +- src/mesa/state_tracker/st_cb_feedback.c | 2 +- src/mesa/state_tracker/st_cb_program.c | 38 ++--- src/mesa/state_tracker/st_cb_texture.c | 2 +- src/mesa/state_tracker/st_context.c | 100 ++++++++++-- src/mesa/state_tracker/st_context.h | 42 +---- src/mesa/state_tracker/st_draw.c | 4 +- src/mesa/state_tracker/st_manager.c | 4 +- 33 files changed, 381 insertions(+), 516 deletions(-) Diff: http://cgit.freedesktop.org/mesa/mesa/diff/?id=c8fe3b9dca73e3b91979d92ba4136b302001b3bb _______________________________________________ mesa-commit mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-commit
