diff --git a/Mesa.changes b/Mesa.changes index 287faea..e9c2068 100644 --- a/Mesa.changes +++ b/Mesa.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Sun Aug 25 09:04:57 UTC 2024 - Stefan Dirsch + +- Fix random GPU crash with AMDGPU (bsc#1229050): + U_radeonsi-vcn-Add-decode-DPB-buffers-as-CS-dependency.patch + (credits go to Takashi Iwai!) + ------------------------------------------------------------------- Wed Aug 21 16:53:28 UTC 2024 - Andreas Stieger diff --git a/Mesa.spec b/Mesa.spec index 7531200..df32186 100644 --- a/Mesa.spec +++ b/Mesa.spec @@ -1,5 +1,5 @@ # -# spec file for package Mesa +# spec file # # Copyright (c) 2024 SUSE LLC # @@ -183,6 +183,7 @@ Patch15: u_fix_rust_bindgen.patch Patch54: n_drirc-disable-rgb10-for-chromium-on-amd.patch Patch58: u_dep_xcb.patch Patch100: U_fix-mpeg1_2-decode-mesa-20.2.patch +Patch101: U_radeonsi-vcn-Add-decode-DPB-buffers-as-CS-dependency.patch Patch400: n_stop-iris-flicker.patch %ifarch %{ix86} x86_64 BuildRequires: DirectX-Headers @@ -838,6 +839,7 @@ cp %{SOURCE6} subprojects/packagecache/ %endif %patch -P 58 -p1 %patch -P 100 -p1 +%patch -P 101 -p1 %patch -P 400 -p1 # Remove requires to vulkan libs from baselibs.conf on platforms diff --git a/U_radeonsi-vcn-Add-decode-DPB-buffers-as-CS-dependency.patch b/U_radeonsi-vcn-Add-decode-DPB-buffers-as-CS-dependency.patch new file mode 100644 index 0000000..f6a7fdc --- /dev/null +++ b/U_radeonsi-vcn-Add-decode-DPB-buffers-as-CS-dependency.patch @@ -0,0 +1,31 @@ +From 8b35da91b23afc65256b78a59d116fd09544cd28 Mon Sep 17 00:00:00 2001 +From: David Rosca +Date: Mon, 5 Aug 2024 09:14:37 +0200 +Subject: [PATCH] radeonsi/vcn: Add decode DPB buffers as CS dependency + +This is needed to ensure correct synchronization in kernel eg. when it +moves the buffers between VRAM and GTT. + +Reviewed-by: Boyuan Zhang +(cherry picked from commit 0c024bbe641b092bbbc751baae54a37642794de0) + +Part-of: +--- + src/gallium/drivers/radeonsi/radeon_vcn_dec.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/src/gallium/drivers/radeonsi/radeon_vcn_dec.c b/src/gallium/drivers/radeonsi/radeon_vcn_dec.c +index ede5f9d7c1a5..9e3d0b88493b 100644 +--- a/src/gallium/drivers/radeonsi/radeon_vcn_dec.c ++++ b/src/gallium/drivers/radeonsi/radeon_vcn_dec.c +@@ -1838,6 +1838,7 @@ static unsigned rvcn_dec_dynamic_dpb_t2_message(struct radeon_decoder *dec, rvcn + RVID_ERR("Ref list from application is incorrect, using dummy buffer instead.\n"); + addr = dec->ws->buffer_get_virtual_address(dummy->dpb.res->buf); + } ++ dec->ws->cs_add_buffer(&dec->cs, d->dpb.res->buf, RADEON_USAGE_READWRITE | RADEON_USAGE_SYNCHRONIZED, RADEON_DOMAIN_VRAM); + dynamic_dpb_t2->dpbAddrLo[i] = addr; + dynamic_dpb_t2->dpbAddrHi[i] = addr >> 32; + ++dynamic_dpb_t2->dpbArraySize; +-- +2.43.0 +