drm/radeon
Pauli Nieminen 966c9907c0 libdrm_radeon: Optimize cs_gem_reloc to do less looping.
bo->referenced_in_cs is checked if bo is already in cs. Adding and removing
reference in bo is done with atomic operations to allow parallel access to a
bo from multiple contexts.

cs->id generation code quarentees there is not duplicated ids which limits
number of cs->ids to 32. If there is more cs objects rest will get id 0.

V2:
 - Fix configure to check for atomics operations if libdrm_radeon is only selected.
 - Make atomic operations private to libdrm.

This optimization decreases cs_write_reloc share of torcs profiling from 4.3%
to 2.6%.

Tested-by: Michel Dänzer <michel@daenzer.net>
Signed-off-by: Pauli Nieminen <suokkos@gmail.com>
2010-03-17 12:42:21 +02:00
..
Makefile.am radeon: straighten out the API insanity. 2009-12-21 08:05:16 +10:00
libdrm_radeon.pc.in radeon: enable by default now that kms is out of staging 2010-02-02 10:58:50 +10:00
radeon_bo.c radeon: indentation & trailing space cleanup 2010-01-14 11:24:16 +01:00
radeon_bo.h radeon: add square-tiling flag 2010-02-18 06:14:55 +01:00
radeon_bo_gem.c libdrm_radeon: Optimize cs_gem_reloc to do less looping. 2010-03-17 12:42:21 +02:00
radeon_bo_gem.h libdrm_radeon: Optimize cs_gem_reloc to do less looping. 2010-03-17 12:42:21 +02:00
radeon_bo_int.h radeon: indentation & trailing space cleanup 2010-01-14 11:24:16 +01:00
radeon_cs.c libdrm_radeon: Optimize cs_gem_reloc to do less looping. 2010-03-17 12:42:21 +02:00
radeon_cs.h libdrm_radeon: Optimize cs_gem_reloc to do less looping. 2010-03-17 12:42:21 +02:00
radeon_cs_gem.c libdrm_radeon: Optimize cs_gem_reloc to do less looping. 2010-03-17 12:42:21 +02:00
radeon_cs_gem.h radeon: indentation & trailing space cleanup 2010-01-14 11:24:16 +01:00
radeon_cs_int.h libdrm_radeon: Optimize cs_gem_reloc to do less looping. 2010-03-17 12:42:21 +02:00
radeon_cs_space.c radeon: indentation & trailing space cleanup 2010-01-14 11:24:16 +01:00