mesa/src/gallium/drivers/i915
Marek Olšák 27dcb46629 gallium: add take_ownership param into set_vertex_buffers to eliminate atomics
There are a few places (mainly u_threaded_context) that do:
   set_vertex_buffers(...);
   for (i = 0; i < count; i++)
      pipe_resource_reference(&buffers[i].resource.buffer, NULL);

set_vertex_buffers increments the reference counts while the loop
decrements them.

This commit eliminates those reference count changes by adding a parameter
into set_vertex_buffers that tells the callee to accept all buffers
without incrementing the reference counts.

AMD Zen benefits from this because it has slow atomics if they come from
different CCXs.

Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8298>
2021-01-27 23:53:35 +00:00
..
Android.mk
i915_batch.h
i915_batchbuffer.h
i915_blit.c
i915_blit.h
i915_clear.c gallium: add pipe cap for scissored clears and pass scissor state to clear() hook 2020-04-29 18:05:06 +00:00
i915_context.c gallium: remove and emulate PIPE_CAP_MULTI_DRAW 2021-01-04 19:22:33 -05:00
i915_context.h gallium: rename 'state tracker' to 'frontend' 2020-05-13 13:46:53 -04:00
i915_debug.c treewide: Disambiguate various variables named "debug_options" 2021-01-04 20:51:28 +00:00
i915_debug.h util: don't include p_defines.h and u_pointer.h from gallium 2020-03-27 21:00:10 +00:00
i915_debug_fp.c
i915_debug_private.h
i915_flush.c
i915_fpc.h
i915_fpc_emit.c
i915_fpc_optimize.c
i915_fpc_translate.c
i915_prim_emit.c
i915_prim_vbuf.c
i915_public.h
i915_query.c
i915_query.h
i915_reg.h
i915_resource.c
i915_resource.h
i915_resource_buffer.c
i915_resource_texture.c gallium: rename PIPE_TRANSFER_* -> PIPE_MAP_* 2020-09-22 03:20:54 +00:00
i915_screen.c r300,i915g: Report no shader buffers or images on non-TCL HW. 2021-01-25 18:50:26 +00:00
i915_screen.h
i915_state.c gallium: add take_ownership param into set_vertex_buffers to eliminate atomics 2021-01-27 23:53:35 +00:00
i915_state.h
i915_state_derived.c
i915_state_dynamic.c
i915_state_emit.c
i915_state_fpc.c
i915_state_immediate.c
i915_state_inlines.h
i915_state_sampler.c
i915_state_static.c
i915_surface.c
i915_surface.h
i915_winsys.h
Makefile.sources
meson.build meson: use gnu_symbol_visibility argument 2020-06-01 18:59:18 +00:00
TODO tree-wide: fix deprecated GitLab URLs 2020-05-23 15:33:50 +00:00