From 0b569ed8c77fd746ff3b655d20e277e82e36e799 Mon Sep 17 00:00:00 2001 From: Sebastian Sumpf Date: Tue, 8 Nov 2022 14:44:39 +0100 Subject: [PATCH] mesa/iris: remove binder patch There is one binder with one memory zone per OpenGL context. The patch was needed before because Genode didn't have proper context support (separate page tables) leading to binders from one or more context being allocated to the same GPU address with the same page tables. This was clearly an error and is fixed with context support. issue #4664 --- repos/libports/ports/mesa.hash | 2 +- repos/libports/ports/mesa.port | 1 - .../src/lib/mesa/patches/iris_binder.patch | 26 ------------------- 3 files changed, 1 insertion(+), 28 deletions(-) delete mode 100644 repos/libports/src/lib/mesa/patches/iris_binder.patch diff --git a/repos/libports/ports/mesa.hash b/repos/libports/ports/mesa.hash index 10cd30a7c9..9b2d18690d 100644 --- a/repos/libports/ports/mesa.hash +++ b/repos/libports/ports/mesa.hash @@ -1 +1 @@ -a195203391df18dabe0e9c247301d9f3df1c8192 +5762ad18c4b5d48ad6b8651fc554e65d656e144f diff --git a/repos/libports/ports/mesa.port b/repos/libports/ports/mesa.port index ffb87f3a4d..4749b492ac 100644 --- a/repos/libports/ports/mesa.port +++ b/repos/libports/ports/mesa.port @@ -18,7 +18,6 @@ PATCHES := src/lib/mesa/patches/bitset_redefined.patch \ src/lib/mesa/patches/iris.patch \ src/lib/mesa/patches/iris_bufmgr_tmp.patch \ src/lib/mesa/patches/iris_bufmgr_unmap.patch \ - src/lib/mesa/patches/iris_binder.patch \ src/lib/mesa/patches/iris_disable_compute.patch \ src/lib/mesa/patches/lseek.patch \ src/lib/mesa/patches/mesa.patch \ diff --git a/repos/libports/src/lib/mesa/patches/iris_binder.patch b/repos/libports/src/lib/mesa/patches/iris_binder.patch deleted file mode 100644 index 77f105bd05..0000000000 --- a/repos/libports/src/lib/mesa/patches/iris_binder.patch +++ /dev/null @@ -1,26 +0,0 @@ -The binder re-uses vgpu addresses of buffer objects, which are scheduled -to be deleted, but not yet destroyed. The drm_ioctl backend still have a -vgpu mapping of the not yet destroyed buffer object. When the binder reuses -the vgpu address for a new/another buffer object, the gpu multiplexer will -complain about an overmap. To avoid that, as workaround, don't reuse vgpu -addresses immediately in the binder. ---- a/src/lib/mesa/src/gallium/drivers/iris/iris_binder.c -+++ a/src/lib/mesa/src/gallium/drivers/iris/iris_binder.c -@@ -71,7 +71,7 @@ - struct iris_bufmgr *bufmgr = screen->bufmgr; - struct iris_binder *binder = &ice->state.binder; - -- uint64_t next_address = IRIS_MEMZONE_BINDER_START; -+ static uint64_t next_address = IRIS_MEMZONE_BINDER_START; - - if (binder->bo) { - /* Place the new binder just after the old binder, unless we've hit the -@@ -100,6 +100,8 @@ - */ - ice->state.dirty |= IRIS_DIRTY_RENDER_BUFFER; - ice->state.stage_dirty |= IRIS_ALL_STAGE_DIRTY_BINDINGS; -+ -+ next_address += IRIS_BINDER_SIZE; - } - - static uint32_t