diff --git a/0001-Revert-frontends-va-Fix-AV1-slice_data_offset-with-m.patch b/0001-Revert-frontends-va-Fix-AV1-slice_data_offset-with-m.patch deleted file mode 100644 index 9018d29..0000000 --- a/0001-Revert-frontends-va-Fix-AV1-slice_data_offset-with-m.patch +++ /dev/null @@ -1,123 +0,0 @@ -From a90258da81e2f09fb66dbbdd193e3f0cc31aec41 Mon Sep 17 00:00:00 2001 -From: David Rosca -Date: Thu, 18 Jul 2024 19:15:13 +0200 -Subject: [PATCH] Revert "frontends/va: Fix AV1 slice_data_offset with multiple - slice data buffers" - -This commit is fixing an issue where all AV1 slice data offsets always point -into the first slice data buffer, even when multiple slice data buffers -are submitted. However, after b0d6e58d88f ("Reapply "radeonsi/vcn: AV1 skip the redundant bs resize"") -only the first slice data buffer will be sent to decoder and the incorrect -behavior is required, so this commit also needs to be reverted. - -This reverts commit 6746d4df6eac83d048e88c2d54aa19e7c1a0a696. - -Reviewed-by: Leo Liu -Part-of: ---- - .pick_status.json | 2 +- - src/gallium/frontends/va/picture.c | 11 +++-------- - src/gallium/frontends/va/picture_av1.c | 4 ++-- - src/gallium/frontends/va/va_private.h | 2 +- - 4 files changed, 7 insertions(+), 12 deletions(-) - -diff --git a/.pick_status.json b/.pick_status.json -index 71e39f35b09..194d445cdc9 100644 ---- a/.pick_status.json -+++ b/.pick_status.json -@@ -33654,7 +33654,7 @@ - "description": "frontends/va: Fix AV1 slice_data_offset with multiple slice data buffers", - "nominated": true, - "nomination_type": 0, -- "resolution": 1, -+ "resolution": 0, - "main_sha": null, - "because_sha": null, - "notes": null -diff --git a/src/gallium/frontends/va/picture.c b/src/gallium/frontends/va/picture.c -index 59692aeee91..a2bb608ec96 100644 ---- a/src/gallium/frontends/va/picture.c -+++ b/src/gallium/frontends/va/picture.c -@@ -299,7 +299,7 @@ handleIQMatrixBuffer(vlVaContext *context, vlVaBuffer *buf) - } - - static void --handleSliceParameterBuffer(vlVaContext *context, vlVaBuffer *buf, unsigned num_slices, unsigned slice_offset) -+handleSliceParameterBuffer(vlVaContext *context, vlVaBuffer *buf, unsigned num_slices) - { - switch (u_reduce_video_profile(context->templat.profile)) { - case PIPE_VIDEO_FORMAT_MPEG12: -@@ -331,7 +331,7 @@ handleSliceParameterBuffer(vlVaContext *context, vlVaBuffer *buf, unsigned num_s - break; - - case PIPE_VIDEO_FORMAT_AV1: -- vlVaHandleSliceParameterBufferAV1(context, buf, num_slices, slice_offset); -+ vlVaHandleSliceParameterBufferAV1(context, buf, num_slices); - break; - - default: -@@ -968,7 +968,6 @@ vlVaRenderPicture(VADriverContextP ctx, VAContextID context_id, VABufferID *buff - - unsigned i; - unsigned slice_idx = 0; -- unsigned slice_offset = 0; - vlVaBuffer *seq_param_buf = NULL; - - if (!ctx) -@@ -1024,17 +1023,13 @@ vlVaRenderPicture(VADriverContextP ctx, VAContextID context_id, VABufferID *buff - - slice_idx is the zero based number of total slices received - before this call to handleSliceParameterBuffer -- -- slice_offset is the slice offset in bitstream buffer - */ -- handleSliceParameterBuffer(context, buf, slice_idx, slice_offset); -+ handleSliceParameterBuffer(context, buf, slice_idx); - slice_idx += buf->num_elements; - } break; - - case VASliceDataBufferType: - vaStatus = handleVASliceDataBufferType(context, buf); -- if (slice_idx) -- slice_offset += buf->size; - break; - - case VAProcPipelineParameterBufferType: -diff --git a/src/gallium/frontends/va/picture_av1.c b/src/gallium/frontends/va/picture_av1.c -index c014b0b1168..e6f2652e362 100644 ---- a/src/gallium/frontends/va/picture_av1.c -+++ b/src/gallium/frontends/va/picture_av1.c -@@ -396,7 +396,7 @@ void vlVaHandlePictureParameterBufferAV1(vlVaDriver *drv, vlVaContext *context, - context->desc.av1.slice_parameter.slice_count = 0; - } - --void vlVaHandleSliceParameterBufferAV1(vlVaContext *context, vlVaBuffer *buf, unsigned num_slices, unsigned slice_offset) -+void vlVaHandleSliceParameterBufferAV1(vlVaContext *context, vlVaBuffer *buf, unsigned num_slices) - { - for (uint32_t buffer_idx = 0; buffer_idx < buf->num_elements; buffer_idx++) { - uint32_t slice_index = -@@ -407,7 +407,7 @@ void vlVaHandleSliceParameterBufferAV1(vlVaContext *context, vlVaBuffer *buf, un - - VASliceParameterBufferAV1 *av1 = &(((VASliceParameterBufferAV1*)buf->data)[buffer_idx]); - context->desc.av1.slice_parameter.slice_data_size[slice_index] = av1->slice_data_size; -- context->desc.av1.slice_parameter.slice_data_offset[slice_index] = slice_offset + av1->slice_data_offset; -+ context->desc.av1.slice_parameter.slice_data_offset[slice_index] = av1->slice_data_offset; - context->desc.av1.slice_parameter.slice_data_row[slice_index] = av1->tile_row; - context->desc.av1.slice_parameter.slice_data_col[slice_index] = av1->tile_column; - context->desc.av1.slice_parameter.slice_data_anchor_frame_idx[slice_index] = av1->anchor_frame_idx; -diff --git a/src/gallium/frontends/va/va_private.h b/src/gallium/frontends/va/va_private.h -index 007ed95ce7f..ad30f3bad2a 100644 ---- a/src/gallium/frontends/va/va_private.h -+++ b/src/gallium/frontends/va/va_private.h -@@ -540,7 +540,7 @@ void vlVaHandlePictureParameterBufferVP9(vlVaDriver *drv, vlVaContext *context, - void vlVaHandleSliceParameterBufferVP9(vlVaContext *context, vlVaBuffer *buf); - void vlVaDecoderVP9BitstreamHeader(vlVaContext *context, vlVaBuffer *buf); - void vlVaHandlePictureParameterBufferAV1(vlVaDriver *drv, vlVaContext *context, vlVaBuffer *buf); --void vlVaHandleSliceParameterBufferAV1(vlVaContext *context, vlVaBuffer *buf, unsigned num_slices, unsigned slice_offset); -+void vlVaHandleSliceParameterBufferAV1(vlVaContext *context, vlVaBuffer *buf, unsigned num_slices); - void getEncParamPresetH264(vlVaContext *context); - void getEncParamPresetH265(vlVaContext *context); - void getEncParamPresetAV1(vlVaContext *context); --- -2.45.2 - diff --git a/mesa.spec b/mesa.spec index 72142fb..e59e3d5 100644 --- a/mesa.spec +++ b/mesa.spec @@ -64,7 +64,7 @@ Name: mesa Summary: Mesa graphics libraries -%global ver 24.1.4 +%global ver 24.2.0-rc3 Version: %{lua:ver = string.gsub(rpm.expand("%{ver}"), "-", "~"); print(ver)} Release: %autorelease License: MIT AND BSD-3-Clause AND SGI-B-2.0 @@ -77,7 +77,6 @@ Source0: https://archive.mesa3d.org/mesa-%{ver}.tar.xz Source1: Mesa-MLAA-License-Clarification-Email.txt Patch10: gnome-shell-glthread-disable.patch -Patch11: 0001-Revert-frontends-va-Fix-AV1-slice_data_offset-with-m.patch BuildRequires: meson >= 1.3.0 BuildRequires: gcc @@ -169,6 +168,7 @@ BuildRequires: python3-mako BuildRequires: python3-ply %endif BuildRequires: python3-pycparser +BuildRequires: python3-pyyaml BuildRequires: vulkan-headers BuildRequires: glslang %if 0%{?with_vulkan_hw} @@ -578,7 +578,9 @@ popd %files dri-drivers %dir %{_datadir}/drirc.d %{_datadir}/drirc.d/00-mesa-defaults.conf +%{_libdir}/libgallium-*.so %{_libdir}/dri/kms_swrast_dri.so +%{_libdir}/dri/libdril_dri.so %{_libdir}/dri/swrast_dri.so %{_libdir}/dri/virtio_gpu_dri.so @@ -666,11 +668,9 @@ popd %{_libdir}/dri/sti_dri.so %{_libdir}/dri/sun4i-drm_dri.so %{_libdir}/dri/udl_dri.so +%{_libdir}/dri/vkms_dri.so %{_libdir}/dri/zynqmp-dpsub_dri.so %endif -%if 0%{?with_vulkan_hw} -%{_libdir}/dri/zink_dri.so -%endif %if 0%{?with_omx} %files omx-drivers @@ -679,6 +679,7 @@ popd %if 0%{?with_va} %files va-drivers +%{_libdir}/dri/libgallium_drv_video.so %{_libdir}/dri/nouveau_drv_video.so %if 0%{?with_r600} %{_libdir}/dri/r600_drv_video.so @@ -691,6 +692,7 @@ popd %if 0%{?with_vdpau} %files vdpau-drivers +%{_libdir}/vdpau/libvdpau_gallium.so.1* %{_libdir}/vdpau/libvdpau_nouveau.so.1* %if 0%{?with_r600} %{_libdir}/vdpau/libvdpau_r600.so.1* diff --git a/sources b/sources index 3b7d894..68c0c9b 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (mesa-24.1.4.tar.xz) = 0293f1493685888e5d2f0e616645c937e5a9c348fcb654b050b7c42bfdade1518c508920e456cf8be0033dceab4570a916db87dbb454174e425d91e9c05d0748 +SHA512 (mesa-24.2.0-rc3.tar.xz) = f65611d2f49882ceaff0ae487e1e687fd48c948a33f6ccae215f814806e575faff5eb32456d24d53c76fb3d183688062f6a78b961c54747ff5ca91fc9dec1835