mesa/src/gallium/drivers/swr
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
..
rasterizer swr: Fix typos. 2020-12-30 13:10:52 -08:00
.clang-format
meson.build meson: add idep_mesautil to components using simple_mtx.h 2020-11-24 18:13:07 -08:00
swr_clear.cpp gallium: add pipe cap for scissored clears and pass scissor state to clear() hook 2020-04-29 18:05:06 +00:00
swr_context.cpp swr: Fix crashes on Windows 2020-12-18 11:25:45 +00:00
swr_context.h gallium/swr: Fix crashes in sampling code 2020-05-07 17:31:21 +00:00
swr_draw.cpp gallium: skip draws with count == 0 or instance_count == 0 in drivers 2021-01-09 06:53:00 +00:00
swr_fence.cpp gallium: switch boolean -> bool at the interface definitions 2019-07-22 22:13:51 -04:00
swr_fence.h gallium: switch boolean -> bool at the interface definitions 2019-07-22 22:13:51 -04:00
swr_fence_work.cpp gallium/swr: implementation of tessellation shaders compilation 2020-01-24 11:38:03 +00:00
swr_fence_work.h gallium/swr: implementation of tessellation shaders compilation 2020-01-24 11:38:03 +00:00
swr_loader.cpp gallium: Add optional pipe_context to flush_frontbuffer 2020-12-14 23:31:37 +00:00
swr_memory.h gallium/swr: fix rdtsc debug statistics mechanism 2020-02-13 15:33:27 +01:00
swr_public.h gallium/swr: Fix Windows build 2020-12-15 20:39:06 +00:00
swr_query.cpp gallium/swr: Fix various asserts and security issues 2020-02-05 16:08:44 +00:00
swr_query.h gallium: switch boolean -> bool at the interface definitions 2019-07-22 22:13:51 -04:00
swr_resource.h gallium: switch boolean -> bool at the interface definitions 2019-07-22 22:13:51 -04:00
swr_scratch.cpp gallium/swr: Re-enable scratch space for client-memory buffers 2020-04-01 20:00:06 +00:00
swr_scratch.h gallium/swr: implementation of tessellation shaders compilation 2020-01-24 11:38:03 +00:00
swr_screen.cpp swr: Don't report support for shader images. 2021-01-25 18:50:26 +00:00
swr_screen.h gallium/swr: fix gcc warnings 2020-01-31 09:52:27 +00:00
swr_shader.cpp swr: Fix typos. 2020-12-30 13:10:52 -08:00
swr_shader.h gallium/swr: implementation of tessellation shaders compilation 2020-01-24 11:38:03 +00:00
swr_state.cpp gallium: add take_ownership param into set_vertex_buffers to eliminate atomics 2021-01-27 23:53:35 +00:00
swr_state.h gallium: extend draw_vbo to support multi draws 2020-11-18 01:41:25 +00:00
swr_tex_sample.cpp gallivm/sample: pass indirect offset into texture/image units 2020-07-02 04:12:17 +00:00
swr_tex_sample.h swr: s/unsigned/enum pipe_shader_type/ 2017-03-08 08:50:20 -07:00