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(-) _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev