[Mesa-dev] ARB_sparse_buffer implementation for radeonsi

Nicolai Hähnle nhaehnle at gmail.com
Wed Feb 8 12:42:42 UTC 2017


Hi all,

the goal of this series is to implement the GL_ARB_sparse_buffer extension
in Mesa core and radeonsi, the latter on top of recently suggested kernel
changes.

This is a necessary foundation for GL_ARB_sparse_texture (also called PRT,
partially-resident textures) and extensions that build on top of that.

This is still a work in progress: I have done some very rudimentary testing
using a simple piglit test, but more thorough testing is required. At least
most of the radeonsi parts also need to wait until the required kernel
patches are upstream, and I've left some points open that are related to
that (and to reducing rebase headaches while this is being developed).

Note that the kernel support still has bugs, or this series is using it
wrong. It doesn't crash for me (like Bas reported with radv), but mapping
the "PRT holes" has no effects, and running a test that accesses uncommitted
pages still leads to VM faults.

The kernel and libdrm patches are on the amd-gfx mailing list. This series
is also at https://cgit.freedesktop.org/~nh/mesa/log/?h=ARB_sparse_buffer

Cheers,
Nicolai
--
 src/gallium/docs/source/context.rst          |   9 +
 src/gallium/docs/source/screen.rst           |   3 +
 .../drivers/radeon/r600_buffer_common.c      |  36 +-
 .../drivers/radeon/r600_pipe_common.c        |  35 +
 src/gallium/drivers/radeon/radeon_winsys.h   |  17 +
 src/gallium/drivers/radeonsi/si_pipe.c       |   6 +
 src/gallium/include/pipe/p_context.h         |  13 +
 src/gallium/include/pipe/p_defines.h         |   2 +
 src/gallium/include/pipe/p_screen.h          |   1 -
 src/gallium/winsys/amdgpu/drm/amdgpu_bo.c    | 598 ++++++++++++++++-
 src/gallium/winsys/amdgpu/drm/amdgpu_bo.h    |  44 +-
 src/gallium/winsys/amdgpu/drm/amdgpu_cs.c    | 277 ++++++--
 src/gallium/winsys/amdgpu/drm/amdgpu_cs.h    |  11 +-
 .../winsys/radeon/drm/radeon_drm_bo.c        |   2 +
 src/mapi/glapi/gen/ARB_sparse_buffer.xml     |  30 +
 src/mapi/glapi/gen/Makefile.am               |   1 +
 src/mapi/glapi/gen/gl_API.xml                |   3 +
 src/mesa/main/bufferobj.c                    |  95 ++-
 src/mesa/main/bufferobj.h                    |   7 +
 src/mesa/main/dd.h                           |  10 +
 src/mesa/main/extensions_table.h             |   1 +
 src/mesa/main/get.c                          |   1 +
 src/mesa/main/get_hash_params.py             |   3 +
 src/mesa/main/mtypes.h                       |   4 +
 src/mesa/main/tests/dispatch_sanity.cpp      |   4 +
 src/mesa/state_tracker/st_cb_bufferobjects.c |  20 +
 src/mesa/state_tracker/st_extensions.c       |   4 +
 27 files changed, 1156 insertions(+), 81 deletions(-)



More information about the mesa-dev mailing list