[Mesa-dev] [PATCH 00/18] winsys/amdgpu: adjust IB sizes and implement IB chaining

Nicolai Hähnle nhaehnle at gmail.com
Mon May 9 23:21:18 UTC 2016


Hi everybody,

this series addresses the fact that we currently allocate 3MB of IB backing
buffers at initialization for every context - 2MB for gfx CE, and 512kB for
gfx and DMA main IBs each. This is reduced to 128kB, and then grown as
necessary for programs that need it.

Furthermore, IB chaining is used to reduce internal fragmentation, allowing
us to use even smaller buffers. This especially affects the CE IB, which now
never has to trigger a flush.

I have not seen any changes in benchmarks - this is mostly beneficial for
scenarios with many light OpenGL users, e.g. desktop apps using OpenGL.

The series starts with some cleanups (most of them to make the rest easier),
followed by the dynamic IB resizing and eventually the chaining as the last
part. Please review!

Thanks,
Nicolai
--
 src/gallium/drivers/r300/r300_blit.c         |   2 +-
 src/gallium/drivers/r300/r300_cs.h           |  12 +-
 src/gallium/drivers/r300/r300_render.c       |   2 +-
 src/gallium/drivers/r600/evergreen_compute.c |   2 +-
 .../drivers/r600/evergreen_hw_context.c      |  10 +-
 src/gallium/drivers/r600/evergreen_state.c   |  26 +-
 src/gallium/drivers/r600/r600_hw_context.c   |  51 +-
 src/gallium/drivers/r600/r600_pipe.h         |  14 +-
 src/gallium/drivers/r600/r600_state.c        |  22 +-
 src/gallium/drivers/r600/r600_state_common.c | 123 ++--
 .../drivers/radeon/r600_buffer_common.c      |   7 +-
 src/gallium/drivers/radeon/r600_cs.h         |   8 +-
 .../drivers/radeon/r600_pipe_common.c        |   8 +-
 src/gallium/drivers/radeon/radeon_uvd.c      |   5 +-
 src/gallium/drivers/radeon/radeon_vce.c      |   2 +-
 src/gallium/drivers/radeon/radeon_vce.h      |   8 +-
 .../drivers/radeon/radeon_vce_40_2_2.c       |   6 +-
 src/gallium/drivers/radeon/radeon_winsys.h   |  33 +-
 src/gallium/drivers/radeonsi/cik_sdma.c      |  50 +-
 src/gallium/drivers/radeonsi/si_debug.c      |   7 +
 src/gallium/drivers/radeonsi/si_dma.c        |  32 +-
 src/gallium/drivers/radeonsi/si_hw_context.c |  24 +-
 src/gallium/drivers/radeonsi/sid.h           |   8 +
 src/gallium/winsys/amdgpu/drm/amdgpu_cs.c    | 526 +++++++++++------
 src/gallium/winsys/amdgpu/drm/amdgpu_cs.h    |  42 +-
 .../winsys/radeon/drm/radeon_drm_cs.c        |  37 +-
 26 files changed, 649 insertions(+), 418 deletions(-)



More information about the mesa-dev mailing list