[Mesa-dev] [PATCH 00/31] Make more use of bitmasks v2
Nicolai Hähnle
nhaehnle at gmail.com
Tue Jun 7 14:15:58 UTC 2016
Hi Mathias,
Thanks for staying with this!
I know it's bike-shedding, and I'm not sure what other people's opinions
are on this matter, but having the duplication of u_bit_scan and
_mesa_bit_scan feels a bit annoying to me...
Cheers,
Nicolai
On 07.06.2016 07:29, Mathias.Froehlich at gmx.net wrote:
> 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(-)
>
More information about the mesa-dev
mailing list