Merge pull request #332732 from K900/mesa-vcn-fix

mesa: cherry-pick patch to fix broken video decoding on AMD iGPUs
This commit is contained in:
K900 2024-08-06 18:57:20 +03:00 committed by GitHub
commit a1ebb54903
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 15 additions and 0 deletions

View File

@ -138,6 +138,11 @@ in stdenv.mkDerivation {
patches = [
./opencl.patch
# Manual backport of https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30510
# Fixes video corruption / crashes when decoding video on AMD iGPUs
# FIXME: remove when merged
./vcn-pagefault.patch
];
postPatch = ''

View File

@ -0,0 +1,10 @@
--- a/src/gallium/drivers/radeonsi/radeon_vcn_dec.c
+++ b/src/gallium/drivers/radeonsi/radeon_vcn_dec.c
@@ -1390,6 +1390,7 @@ static unsigned rvcn_dec_dynamic_dpb_t2_message(struct radeon_decoder *dec, rvcn
dummy->dpb.res;
addr = dec->ws->buffer_get_virtual_address(dummy_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;