mesa/src/gallium/drivers/vc4
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
..
kernel vc4: Fix typos. 2020-12-18 13:23:18 -08:00
.dir-locals.el
.editorconfig
Android.mk
Makefile.sources
meson.build meson: use gnu_symbol_visibility argument 2020-06-01 18:59:18 +00:00
vc4_blit.c gallium: add unbind_num_trailing_slots to set_sampler_views 2021-01-27 23:53:35 +00:00
vc4_bufmgr.c vc4: use intmax_t for formatted output of timespec members 2020-11-05 07:07:39 +00:00
vc4_bufmgr.h gallium/hash_table: remove some function wrappers 2020-02-26 20:35:50 +00:00
vc4_cl.c
vc4_cl.h
vc4_cl_dump.c
vc4_cl_dump.h
vc4_context.c
vc4_context.h
vc4_draw.c gallium: skip draws with count == 0 or instance_count == 0 in drivers 2021-01-09 06:53:00 +00:00
vc4_emit.c vc4: Avoid negative scissor caused by no intersection 2020-10-05 04:09:02 +02:00
vc4_fence.c replace all F_DUPFD_CLOEXEC with os_dupfd_cloexec() 2020-06-18 02:09:56 +00:00
vc4_formats.c
vc4_job.c
vc4_nir_lower_blend.c vc4: use intrinsic builders 2021-01-06 14:34:41 +00:00
vc4_nir_lower_io.c vc4: use intrinsic builders 2021-01-06 14:34:41 +00:00
vc4_nir_lower_txf_ms.c
vc4_opt_algebraic.c
vc4_opt_coalesce_ff_writes.c
vc4_opt_constant_folding.c
vc4_opt_copy_propagation.c
vc4_opt_dead_code.c
vc4_opt_peephole_sf.c
vc4_opt_small_immediates.c
vc4_opt_vpm.c
vc4_program.c nir: replace .lower_sub with .has_fsub and .has_isub 2021-01-11 19:13:51 +00:00
vc4_qir.c
vc4_qir.h
vc4_qir_emit_uniform_stream_resets.c
vc4_qir_live_variables.c
vc4_qir_lower_uniforms.c
vc4_qir_schedule.c
vc4_qir_validate.c
vc4_qpu.c vc4: Fix typos. 2020-12-18 13:23:18 -08:00
vc4_qpu.h
vc4_qpu_defines.h
vc4_qpu_disasm.c
vc4_qpu_emit.c
vc4_qpu_schedule.c vc4: Fix typos. 2020-12-18 13:23:18 -08:00
vc4_qpu_validate.c
vc4_query.c
vc4_register_allocate.c util/ra: spiff out select_reg_callback 2020-03-10 16:01:39 +00:00
vc4_reorder_uniforms.c
vc4_resource.c gallium: remove PIPE_CAP_INFO_START_WITH_USER_INDICES and fix all drivers 2021-01-04 19:22:34 -05:00
vc4_resource.h
vc4_screen.c treewide: Disambiguate various variables named "debug_options" 2021-01-04 20:51:28 +00:00
vc4_screen.h gallium: rename 'state tracker' to 'frontend' 2020-05-13 13:46:53 -04:00
vc4_simulator.c vc4: Fix unused var warnings in release builds from assertions. 2020-08-28 22:45:08 +00:00
vc4_simulator_validate.h
vc4_state.c gallium: add take_ownership param into set_vertex_buffers to eliminate atomics 2021-01-27 23:53:35 +00:00
vc4_tiling.c
vc4_tiling.h
vc4_tiling_lt.c
vc4_tiling_lt_neon.c
vc4_uniforms.c gallium: inline pipe_alpha_state to enable better DSA bitfield packing 2020-12-22 12:01:38 +00:00