[Mesa-dev] [PATCH 00/31] Make more use of bitmasks v2
Mathias.Froehlich at gmx.net
Mathias.Froehlich at gmx.net
Tue Jun 7 05:29:35 UTC 2016
From: Mathias Fröhlich <Mathias.Froehlich at gmx.net>
Hi all,
following a series with performance improvements
for cpu/draw bound applications. This part makes
more use of the bitmask/ffs technique for iterating
a set of enabled items. The gains are not huge
but they are noticable for some of my favourite
workloads.
Changes in v2:
Past the suggestion from Brian Paul and the
discussion about maintainability I
switched to gallium/u_bit_scan{,64} style
functions for the series of changes.
Providing them and using them in some places
in core mesa make up the two new patches upfront.
Appart from that the problem spotted
by Roland Scheidegger is fixed and the changes
requested all around are incorporated.
Please review!
Thanks
Mathias
Mathias Fröhlich (31):
mesa: Provide _mesa_bit_scan{,64} similar to gallium.
mesa: Make use of _mesa_bit_scan{,64}.
mesa: Add gl_point_attrib::CoordReplaceBits bitfield.
swrast: Convert swrast to use CoordsReplaceBits.
gallium: Convert the state_tracker to use CoordsReplaceBits.
r200: convert r200 to use CoordsReplaceBits.
i915: Convert i915 to use CoordsReplaceBits.
i965: Convert i965 to use CoordsReplaceBits.
mesa: Remove the now unused CoordsReplace array.
mesa: Rename CoordReplaceBits back to CoordReplace.
mesa: Track enabled lights in a bitmask
mesa: Use bitmask/ffs to iterate enabled lights
mesa: Use bitmask/ffs to iterate enabled lights for ff shader keys.
tnl: Use bitmask/ffs to iterate enabled lights
nouveau: Use bitmask/ffs to iterate enabled lights
radeon/r200: Use bitmask/ffs to iterate enabled lights
mesa: Switch to bitmask based enabled lights in gen_matypes.c
mesa: Remove the linked list of enabled lights
mesa: Use bitmask/ffs to build ff vertex shader keys.
mesa: Use bitmask/ffs to build ff fragment shader keys.
mesa: Use bitmask/ffs to iterate color material attributes.
mesa: Use bitmask/ffs to iterate enabled clip planes.
radeon/r200: Use bitmask/ffs to iterate enabled clip planes.
i965: Use bitmask/ffs to iterate enabled clip planes.
i965: Use bitmask/ffs to iterate used vertex attributes.
mesa: Use bitmask/ffs to iterate SamplersUsed
mesa: Use designated bool value to check texture unit completeness.
mesa: Use bitmask/ffs to iterate the enabled textures.
mesa: Use bitmask/ffs to iterate the active_samplers bitmask.
vbo: Use a bitmask to track the active arrays in vbo_exec*.
vbo: Use a bitmask to track the active arrays in vbo_save*.
src/mesa/drivers/common/meta.c | 21 ++--
src/mesa/drivers/dri/i915/i915_state.c | 17 ++-
src/mesa/drivers/dri/i965/brw_curbe.c | 20 ++--
src/mesa/drivers/dri/i965/brw_draw.c | 9 +-
src/mesa/drivers/dri/i965/brw_sf.c | 7 +-
src/mesa/drivers/dri/i965/brw_vs.c | 6 +-
src/mesa/drivers/dri/i965/gen6_sf_state.c | 2 +-
src/mesa/drivers/dri/nouveau/nouveau_state.c | 9 +-
src/mesa/drivers/dri/nouveau/nv10_state_tnl.c | 26 +++--
src/mesa/drivers/dri/nouveau/nv20_state_tnl.c | 26 +++--
src/mesa/drivers/dri/r200/r200_state.c | 65 ++++++------
src/mesa/drivers/dri/radeon/radeon_state.c | 60 ++++++-----
src/mesa/main/arrayobj.c | 5 +-
src/mesa/main/attrib.c | 2 +-
src/mesa/main/buffers.c | 3 +-
src/mesa/main/context.c | 11 +-
src/mesa/main/enable.c | 6 +-
src/mesa/main/ff_fragment_shader.cpp | 9 +-
src/mesa/main/ffvertex_prog.c | 35 ++++---
src/mesa/main/imports.h | 24 +++++
src/mesa/main/light.c | 59 +++++++----
src/mesa/main/matrix.c | 18 ++--
src/mesa/main/mtypes.h | 8 +-
src/mesa/main/points.c | 6 +-
src/mesa/main/rastpos.c | 27 ++---
src/mesa/main/texenv.c | 32 +++---
src/mesa/main/texstate.c | 33 +++---
src/mesa/main/uniform_query.cpp | 7 +-
src/mesa/main/uniforms.c | 41 ++++----
src/mesa/state_tracker/st_atom_rasterizer.c | 8 +-
src/mesa/swrast/s_points.c | 4 +-
src/mesa/tnl/t_vb_cliptmp.h | 51 +++++----
src/mesa/tnl/t_vb_light.c | 13 ++-
src/mesa/tnl/t_vb_lighttmp.h | 24 +++--
src/mesa/tnl/t_vb_program.c | 64 ++++++------
src/mesa/tnl/t_vb_vertex.c | 57 +++++-----
src/mesa/vbo/vbo_exec.h | 1 +
src/mesa/vbo/vbo_exec_api.c | 145 +++++++++++++-------------
src/mesa/vbo/vbo_exec_draw.c | 2 +
src/mesa/vbo/vbo_save.h | 2 +
src/mesa/vbo/vbo_save_api.c | 66 ++++++------
src/mesa/vbo/vbo_save_draw.c | 54 +++++-----
src/mesa/x86/gen_matypes.c | 4 +-
43 files changed, 569 insertions(+), 520 deletions(-)
--
2.5.5
More information about the mesa-dev
mailing list