From 509d8fa11be2480461ac007cadb74a939e424a37 Mon Sep 17 00:00:00 2001 From: Tim Biermann Date: Fri, 30 Dec 2022 08:41:21 +0000 Subject: mesa: 22.3.1 -> 22.3.2 --- mesa/.signature | 7 +-- ...EDIA_INTERFACE_DESCRIPTOR_LOAD-reemit-aft.patch | 52 ++++++++++++++++++++++ mesa/Pkgfile | 8 +++- 3 files changed, 62 insertions(+), 5 deletions(-) create mode 100644 mesa/0001-anv-force-MEDIA_INTERFACE_DESCRIPTOR_LOAD-reemit-aft.patch diff --git a/mesa/.signature b/mesa/.signature index 8a5da1c2..9883866f 100644 --- a/mesa/.signature +++ b/mesa/.signature @@ -1,5 +1,6 @@ untrusted comment: verify with /etc/ports/xorg.pub -RWTSGWF5Q7TndJl5Cfi3WLDwC8ASKTWZsw6hEqVH7xFC10DdbUq6tpFn3k9Y/0lHxhnZX3B0kLyot2+pUnDObv4wtCGkCnMbpgg= -SHA256 (Pkgfile) = 9cb7eceeb60f636993fc784d34729bde47eca9064809b2729b42cc530c441f19 +RWTSGWF5Q7TndHYMuvTEH2a2b5pTJ1Uq6VNCVjzgWgqIl4sxe/17bH5KLk52w4YHSjsDslfC4W4JPzKnLmg+xwQ8wElZgRY1yQM= +SHA256 (Pkgfile) = d9e221d1496a0c59f6c256c9e3a23ea31883c1bd8c75a545e10b20b59e977c53 SHA256 (.footprint) = 0a096e4a6066d23884d972266fbb66a32fe44c44877cebc2b82d4a9c694ece1e -SHA256 (mesa-22.3.1.tar.xz) = 3c9cd611c0859d307aba0659833386abdca4c86162d3c275ba5be62d16cf31eb +SHA256 (mesa-22.3.2.tar.xz) = c15df758a8795f53e57f2a228eb4593c22b16dffd9b38f83901f76cd9533140b +SHA256 (0001-anv-force-MEDIA_INTERFACE_DESCRIPTOR_LOAD-reemit-aft.patch) = 384868758a6d80924a21647f6892ba3d5ecad7d641cb3940d087d001f67aefeb diff --git a/mesa/0001-anv-force-MEDIA_INTERFACE_DESCRIPTOR_LOAD-reemit-aft.patch b/mesa/0001-anv-force-MEDIA_INTERFACE_DESCRIPTOR_LOAD-reemit-aft.patch new file mode 100644 index 00000000..aa8f3167 --- /dev/null +++ b/mesa/0001-anv-force-MEDIA_INTERFACE_DESCRIPTOR_LOAD-reemit-aft.patch @@ -0,0 +1,52 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Lionel Landwerlin +Date: Sun, 12 Jun 2022 23:59:05 +0300 +Subject: [PATCH] anv: force MEDIA_INTERFACE_DESCRIPTOR_LOAD reemit after + 3D->GPGPU switch + +Seems to fix a hang in the following titles : + - Age of Empire 4 + - Monster Hunter Rise + +where the HW is hung on a PIPE_CONTROL after a GPGPU_WALKER but no +MEDIA_INTERFACE_DESCRIPTOR_LOAD was emitted since the switch from 3D +to GPGPU. + +This would happen in the following case : + + vkCmdBindPipeline(COMPUTE, cs_pipeline); + vkCmdDispatch(...); + vkCmdBindPipeline(GRAPHICS, gfx_pipeline); + vkCmdDraw(...); + vkCmdDispatch(...); + +Signed-off-by: Lionel Landwerlin +--- + src/intel/vulkan/genX_cmd_buffer.c | 14 ++++++++++++++ + 1 file changed, 14 insertions(+) + +diff --git a/src/intel/vulkan/genX_cmd_buffer.c b/src/intel/vulkan/genX_cmd_buffer.c +index d56f9037fde1..e03dc16c1fc5 100644 +--- a/src/intel/vulkan/genX_cmd_buffer.c ++++ b/src/intel/vulkan/genX_cmd_buffer.c +@@ -6001,6 +6001,20 @@ genX(flush_pipeline_select)(struct anv_cmd_buffer *cmd_buffer, + } + #endif + ++#if GFX_VERx10 == 120 ++ /* Undocumented workaround to force the re-emission of ++ * MEDIA_INTERFACE_DESCRIPTOR_LOAD when switching from 3D to Compute ++ * pipeline without rebinding a pipeline : ++ * vkCmdBindPipeline(COMPUTE, cs_pipeline); ++ * vkCmdDispatch(...); ++ * vkCmdBindPipeline(GRAPHICS, gfx_pipeline); ++ * vkCmdDraw(...); ++ * vkCmdDispatch(...); ++ */ ++ if (pipeline == _3D) ++ cmd_buffer->state.compute.pipeline_dirty = true; ++#endif ++ + /* From "BXML » GT » MI » vol1a GPU Overview » [Instruction] + * PIPELINE_SELECT [DevBWR+]": + * diff --git a/mesa/Pkgfile b/mesa/Pkgfile index 0cd2d5ea..cf75fede 100644 --- a/mesa/Pkgfile +++ b/mesa/Pkgfile @@ -5,9 +5,10 @@ # Optional: libva libvdpau wayland-protocols name=mesa -version=22.3.1 +version=22.3.2 release=1 -source=(https://archive.mesa3d.org/$name-$version.tar.xz) +source=(https://archive.mesa3d.org/$name-$version.tar.xz + 0001-anv-force-MEDIA_INTERFACE_DESCRIPTOR_LOAD-reemit-aft.patch) build() { prt-get isinst vulkan-loader && PKGMK_MESA_GALLIUM+='zink,' @@ -20,11 +21,14 @@ build() { CFLAGS+=' -mtls-dialect=gnu' CXXFLAGS+=' -mtls-dialect=gnu' + patch -Np1 -d mesa-$version -i $SRC/0001-anv-force-MEDIA_INTERFACE_DESCRIPTOR_LOAD-reemit-aft.patch + meson setup build mesa-$version $PKGMK_MESA \ --prefix=/usr \ --sysconfdir=/etc \ --buildtype=plain \ --wrap-mode nodownload \ + -D b_lto=false \ -D b_pie=true \ -D dri3=enabled \ -D egl=enabled \ -- cgit v1.2.3