Accepting request 1140618 from X11:XOrg

- split python36-buildfix.patch into two patches python36-buildfix1.patch 
  and python36-buildfix2.patch; apply the latter only on sle15-sp6/Leap 15.6
  since on newer python releases than 3.6 it changes behaviour to 
  remove required=True option

- python36-buildfix.patch
  * src/freedreno/registers/gen_header.py: hopefully fixes aarch64
    build

- u_0001-intel-genxml-Drop-from-__future__-import-annotations.patch
  u_0002-intel-genxml-Add-a-untyped-OrderedDict-fallback-for-.patch
  python36-buildfix.patch
  * fixes build against python 3.6 

- let Mesa-dri require libvulkan1 to get zink/swrast driver
  fallbacks working (hopefully); probably related:
  2a71f06f29

-  Update to bugfix release 23.3.3
  --> https://docs.mesa3d.org/relnotes/23.3.3.html

- Update to bugfix release 23.3.2
  --> https://docs.mesa3d.org/relnotes/23.3.2.html 

- Update to version 23.3.0:
  * It includes NVK, a new reverse-engineered Vulkan driver for
    Nvidia hardware. This driver is still in experimental phase,
    not quite ready for prime time yet, but adventurous users can
    give it a go!
  * New extensions & features (in no particular order):
    - VK_EXT_pipeline_robustness on ANV
    - VK_KHR_maintenance5 on RADV
    - OpenGL ES 3.1 on Asahi
    - GL_ARB_compute_shader on Asahi
    - GL_ARB_shader_atomic_counters on Asahi
    - GL_ARB_shader_image_load_store on Asahi
    - GL_ARB_shader_image_size on Asahi
    - GL_ARB_shader_storage_buffer_object on Asahi
    - GL_ARB_sample_shading on Asahi
    - GL_OES_sample_variables on Asahi
    - GL_OES_shader_multisample_interpolation on Asahi
    - GL_OES_gpu_shader5 on Asahi
    - EGL_ANDROID_blob_cache works when disk caching is disabled
    - VK_KHR_cooperative_matrix on RADV/GFX11+
- Drop patches fixed upstream:
  * U_clover-llvm-move-to-modern-pass-manager.patch
  * U_radeonsi-prefix-function-with-si_-to-prevent-name-co.patch
- Refresh patches with quilt.
- Use %patch -p N instead of deprecated %patchN.

- enable rusticl on sle15-sp6

OBS-URL: https://build.opensuse.org/request/show/1140618
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/Mesa?expand=0&rev=492
This commit is contained in:
Ana Guerrero 2024-01-24 18:03:53 +00:00 committed by Git OBS Bridge
commit 403ddb935c
16 changed files with 325 additions and 240 deletions

View File

@ -1,3 +1,74 @@
-------------------------------------------------------------------
Mon Jan 22 14:36:33 UTC 2024 - Stefan Dirsch <sndirsch@suse.com>
- split python36-buildfix.patch into two patches python36-buildfix1.patch
and python36-buildfix2.patch; apply the latter only on sle15-sp6/Leap 15.6
since on newer python releases than 3.6 it changes behaviour to
remove required=True option
-------------------------------------------------------------------
Sat Jan 20 13:04:02 UTC 2024 - Stefan Dirsch <sndirsch@suse.com>
- python36-buildfix.patch
* src/freedreno/registers/gen_header.py: hopefully fixes aarch64
build
-------------------------------------------------------------------
Sat Jan 20 11:22:42 UTC 2024 - Stefan Dirsch <sndirsch@suse.com>
- u_0001-intel-genxml-Drop-from-__future__-import-annotations.patch
u_0002-intel-genxml-Add-a-untyped-OrderedDict-fallback-for-.patch
python36-buildfix.patch
* fixes build against python 3.6
-------------------------------------------------------------------
Sat Jan 20 10:43:27 UTC 2024 - Stefan Dirsch <sndirsch@suse.com>
- let Mesa-dri require libvulkan1 to get zink/swrast driver
fallbacks working (hopefully); probably related:
https://gitlab.freedesktop.org/mesa/mesa/-/commit/2a71f06f2938678d89d5ed1372cda6a7b55d964d
-------------------------------------------------------------------
Thu Jan 11 11:41:17 UTC 2024 - Stefan Dirsch <sndirsch@suse.com>
- Update to bugfix release 23.3.3
--> https://docs.mesa3d.org/relnotes/23.3.3.html
-------------------------------------------------------------------
Sat Jan 6 14:24:41 UTC 2024 - Stefan Dirsch <sndirsch@suse.com>
- Update to bugfix release 23.3.2
--> https://docs.mesa3d.org/relnotes/23.3.2.html
-------------------------------------------------------------------
Fri Dec 1 20:10:26 UTC 2023 - Bjørn Lie <bjorn.lie@gmail.com>
- Update to version 23.3.0:
* It includes NVK, a new reverse-engineered Vulkan driver for
Nvidia hardware. This driver is still in experimental phase,
not quite ready for prime time yet, but adventurous users can
give it a go!
* New extensions & features (in no particular order):
- VK_EXT_pipeline_robustness on ANV
- VK_KHR_maintenance5 on RADV
- OpenGL ES 3.1 on Asahi
- GL_ARB_compute_shader on Asahi
- GL_ARB_shader_atomic_counters on Asahi
- GL_ARB_shader_image_load_store on Asahi
- GL_ARB_shader_image_size on Asahi
- GL_ARB_shader_storage_buffer_object on Asahi
- GL_ARB_sample_shading on Asahi
- GL_OES_sample_variables on Asahi
- GL_OES_shader_multisample_interpolation on Asahi
- GL_OES_gpu_shader5 on Asahi
- EGL_ANDROID_blob_cache works when disk caching is disabled
- VK_KHR_cooperative_matrix on RADV/GFX11+
- Drop patches fixed upstream:
* U_clover-llvm-move-to-modern-pass-manager.patch
* U_radeonsi-prefix-function-with-si_-to-prevent-name-co.patch
- Refresh patches with quilt.
- Use %patch -p N instead of deprecated %patchN.
-------------------------------------------------------------------
Mon Nov 20 14:53:17 UTC 2023 - Stefan Dirsch <sndirsch@suse.com>
@ -14,7 +85,7 @@ Mon Nov 20 14:44:53 UTC 2023 - Stefan Dirsch <sndirsch@suse.com>
-------------------------------------------------------------------
Mon Nov 20 14:40:06 UTC 2023 - Stefan Dirsch <sndirsch@suse.com>
- enable rusticl on sle15-sp6
- enable rusticl on sle15-sp6
-------------------------------------------------------------------
Fri Nov 17 14:14:06 UTC 2023 - Stefan Dirsch <sndirsch@suse.com>

View File

@ -1,7 +1,7 @@
#
# spec file
#
# Copyright (c) 2023 SUSE LLC
# Copyright (c) 2024 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@ -42,7 +42,7 @@
%define glamor 1
%define _name_archive mesa
%define _version 23.2.1
%define _version 23.3.3
%define with_opencl 0
%define with_rusticl 0
%define with_vulkan 0
@ -123,7 +123,7 @@
%endif
Name: Mesa%{psuffix}
Version: 23.2.1
Version: 23.3.3
Release: 0
Summary: System for rendering 3-D graphics
License: MIT
@ -138,9 +138,10 @@ Source4: manual-pages.tar.bz2
Source6: Mesa-rpmlintrc
Source7: Mesa.keyring
Patch2: n_add-Mesa-headers-again.patch
# Patches for LLVM 17, should all be in 23.2.
Patch4: U_clover-llvm-move-to-modern-pass-manager.patch
Patch10: U_radeonsi-prefix-function-with-si_-to-prevent-name-co.patch
Patch11: u_0001-intel-genxml-Drop-from-__future__-import-annotations.patch
Patch12: u_0002-intel-genxml-Add-a-untyped-OrderedDict-fallback-for-.patch
Patch13: python36-buildfix1.patch
Patch14: python36-buildfix2.patch
# never to be upstreamed
Patch54: n_drirc-disable-rgb10-for-chromium-on-amd.patch
Patch58: u_dep_xcb.patch
@ -506,6 +507,7 @@ the Mesa-libGLES* packages.
Summary: DRI plug-ins for 3D acceleration
Group: System/Libraries
Requires: Mesa = %{version}
Requires: libvulkan1
Supplements: Mesa
%description -n Mesa-dri
@ -752,17 +754,22 @@ programs against the XA state tracker.
# remove some docs
rm -rf docs/README.{VMS,WIN32,OS2}
%patch2 -p1
%patch4 -p1
%patch10 -p1
%patch -P 2 -p1
# fixes build against python 3.6
%patch -P 11 -p1
%patch -P 12 -p1
%patch -P 13 -p1
%if 0%{?suse_version} < 1550
%patch -P 14 -p1
%endif
# no longer needed since gstreamer-plugins-vaapi 1.18.4
%if 0%{?suse_version} < 1550
%patch54 -p1
%patch -P 54 -p1
%endif
%patch58 -p1
%patch100 -p1
#%patch200 -p1
%patch400 -p1
%patch -P 58 -p1
%patch -P 100 -p1
#%patch -P 200 -p1
%patch -P 400 -p1
# Remove requires to vulkan libs from baselibs.conf on platforms
# where vulkan build is disabled; ugly ...

View File

@ -1,127 +0,0 @@
From 2d4fe5f229791fde52846b3f583c12508b5109d6 Mon Sep 17 00:00:00 2001
From: Dave Airlie <airlied@redhat.com>
Date: Fri, 25 Aug 2023 12:43:44 +1000
Subject: [PATCH] clover/llvm: move to modern pass manager.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This seems like it should work, but I haven't tested it yet.
Tested-by: Dieter Nützel <Dieter@nuetzel-hh.de>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24879>
---
.../frontends/clover/llvm/invocation.cpp | 64 +++++++++++++++----
1 file changed, 51 insertions(+), 13 deletions(-)
diff --git a/src/gallium/frontends/clover/llvm/invocation.cpp b/src/gallium/frontends/clover/llvm/invocation.cpp
index 7a50fea3323..43d26fe1abb 100644
--- a/src/gallium/frontends/clover/llvm/invocation.cpp
+++ b/src/gallium/frontends/clover/llvm/invocation.cpp
@@ -27,13 +27,17 @@
#include <llvm/IR/DiagnosticPrinter.h>
#include <llvm/IR/DiagnosticInfo.h>
#include <llvm/IR/LLVMContext.h>
+#include <llvm/IR/Module.h>
#include <llvm/Support/raw_ostream.h>
-#include <llvm/Transforms/IPO/PassManagerBuilder.h>
+#include <llvm/Transforms/IPO/Internalize.h>
#include <llvm-c/Target.h>
#ifdef HAVE_CLOVER_SPIRV
#include <LLVMSPIRVLib/LLVMSPIRVLib.h>
#endif
+#include <llvm-c/TargetMachine.h>
+#include <llvm-c/Transforms/PassBuilder.h>
+#include <llvm/Support/CBindingWrapping.h>
#include <clang/CodeGen/CodeGenAction.h>
#include <clang/Lex/PreprocessorOptions.h>
#include <clang/Frontend/TextDiagnosticBuffer.h>
@@ -439,10 +443,10 @@ clover::llvm::compile_program(const std::string &source,
namespace {
void
- optimize(Module &mod, unsigned optimization_level,
+ optimize(Module &mod,
+ const std::string& ir_target,
+ unsigned optimization_level,
bool internalize_symbols) {
- ::llvm::legacy::PassManager pm;
-
// By default, the function internalizer pass will look for a function
// called "main" and then mark all other functions as internal. Marking
// functions as internal enables the optimizer to perform optimizations
@@ -458,19 +462,53 @@ namespace {
if (internalize_symbols) {
std::vector<std::string> names =
map(std::mem_fn(&Function::getName), get_kernels(mod));
- pm.add(::llvm::createInternalizePass(
+ internalizeModule(mod,
[=](const ::llvm::GlobalValue &gv) {
return std::find(names.begin(), names.end(),
gv.getName()) != names.end();
- }));
+ });
}
- ::llvm::PassManagerBuilder pmb;
- pmb.OptLevel = optimization_level;
- pmb.LibraryInfo = new ::llvm::TargetLibraryInfoImpl(
- ::llvm::Triple(mod.getTargetTriple()));
- pmb.populateModulePassManager(pm);
- pm.run(mod);
+
+ const char *opt_str = NULL;
+ LLVMCodeGenOptLevel level;
+ switch (optimization_level) {
+ case 0:
+ default:
+ opt_str = "default<O0>";
+ level = LLVMCodeGenLevelNone;
+ break;
+ case 1:
+ opt_str = "default<O1>";
+ level = LLVMCodeGenLevelLess;
+ break;
+ case 2:
+ opt_str = "default<O2>";
+ level = LLVMCodeGenLevelDefault;
+ break;
+ case 3:
+ opt_str = "default<O3>";
+ level = LLVMCodeGenLevelAggressive;
+ break;
+ }
+
+ const target &target = ir_target;
+ LLVMTargetRef targ;
+ char *err_message;
+
+ if (LLVMGetTargetFromTriple(target.triple.c_str(), &targ, &err_message))
+ return;
+ LLVMTargetMachineRef tm =
+ LLVMCreateTargetMachine(targ, target.triple.c_str(),
+ target.cpu.c_str(), "", level,
+ LLVMRelocDefault, LLVMCodeModelDefault);
+
+ if (!tm)
+ return;
+ LLVMPassBuilderOptionsRef opts = LLVMCreatePassBuilderOptions();
+ LLVMRunPasses(wrap(&mod), opt_str, tm, opts);
+
+ LLVMDisposeTargetMachine(tm);
}
std::unique_ptr<Module>
@@ -500,7 +538,7 @@ clover::llvm::link_program(const std::vector<binary> &binaries,
auto c = create_compiler_instance(dev, dev.ir_target(), options, r_log);
auto mod = link(*ctx, *c, binaries, r_log);
- optimize(*mod, c->getCodeGenOpts().OptimizationLevel, !create_library);
+ optimize(*mod, dev.ir_target(), c->getCodeGenOpts().OptimizationLevel, !create_library);
static std::atomic_uint seq(0);
const std::string id = "." + mod->getModuleIdentifier() + "-" +
--
2.42.0

View File

@ -3,9 +3,11 @@
src/gallium/drivers/r600/evergreen_state.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
--- a/src/gallium/drivers/r600/evergreen_state.c
+++ b/src/gallium/drivers/r600/evergreen_state.c
@@ -580,7 +580,8 @@ static void *evergreen_create_sampler_st
Index: mesa-23.3.0/src/gallium/drivers/r600/evergreen_state.c
===================================================================
--- mesa-23.3.0.orig/src/gallium/drivers/r600/evergreen_state.c
+++ mesa-23.3.0/src/gallium/drivers/r600/evergreen_state.c
@@ -598,7 +598,8 @@ static void *evergreen_create_sampler_st
: state->max_anisotropy;
unsigned max_aniso_ratio = r600_tex_aniso_filter(max_aniso);
bool trunc_coord = state->min_img_filter == PIPE_TEX_FILTER_NEAREST &&
@ -15,4 +17,3 @@
float max_lod = state->max_lod;
if (!ss) {
--

View File

@ -1,75 +0,0 @@
From 9590bce3e249a34665b2c42b20bfdbdc7f32147f Mon Sep 17 00:00:00 2001
From: WinLinux1028 <reimu@hakurei.win>
Date: Tue, 11 Jul 2023 18:16:01 +0900
Subject: [PATCH] radeonsi: prefix function with si_ to prevent name collision
Fixed a build error caused by multiple gfx11_init_query symbols when building with iris and radeonsi specified in gallium-drivers.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/9238
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24045>
---
src/gallium/drivers/radeonsi/gfx11_query.c | 4 ++--
src/gallium/drivers/radeonsi/si_pipe.c | 4 ++--
src/gallium/drivers/radeonsi/si_pipe.h | 4 ++--
3 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/src/gallium/drivers/radeonsi/gfx11_query.c b/src/gallium/drivers/radeonsi/gfx11_query.c
index bfcd8e25110..2a331cc3bda 100644
--- a/src/gallium/drivers/radeonsi/gfx11_query.c
+++ b/src/gallium/drivers/radeonsi/gfx11_query.c
@@ -422,13 +422,13 @@ struct pipe_query *gfx11_sh_query_create(struct si_screen *screen, enum pipe_que
return (struct pipe_query *)query;
}
-void gfx11_init_query(struct si_context *sctx)
+void si_gfx11_init_query(struct si_context *sctx)
{
list_inithead(&sctx->shader_query_buffers);
sctx->atoms.s.shader_query.emit = emit_shader_query;
}
-void gfx11_destroy_query(struct si_context *sctx)
+void si_gfx11_destroy_query(struct si_context *sctx)
{
if (!sctx->shader_query_buffers.next)
return;
diff --git a/src/gallium/drivers/radeonsi/si_pipe.c b/src/gallium/drivers/radeonsi/si_pipe.c
index fb5c02c473b..2b4fceb89b1 100644
--- a/src/gallium/drivers/radeonsi/si_pipe.c
+++ b/src/gallium/drivers/radeonsi/si_pipe.c
@@ -192,7 +192,7 @@ static void si_destroy_context(struct pipe_context *context)
si_release_all_descriptors(sctx);
if (sctx->gfx_level >= GFX10 && sctx->has_graphics)
- gfx11_destroy_query(sctx);
+ si_gfx11_destroy_query(sctx);
if (sctx->sqtt) {
struct si_screen *sscreen = sctx->screen;
@@ -637,7 +637,7 @@ static struct pipe_context *si_create_context(struct pipe_screen *screen, unsign
/* Initialize graphics-only context functions. */
if (sctx->has_graphics) {
if (sctx->gfx_level >= GFX10)
- gfx11_init_query(sctx);
+ si_gfx11_init_query(sctx);
si_init_msaa_functions(sctx);
si_init_shader_functions(sctx);
si_init_state_functions(sctx);
diff --git a/src/gallium/drivers/radeonsi/si_pipe.h b/src/gallium/drivers/radeonsi/si_pipe.h
index 55f1d1788f1..389716854f9 100644
--- a/src/gallium/drivers/radeonsi/si_pipe.h
+++ b/src/gallium/drivers/radeonsi/si_pipe.h
@@ -1616,8 +1616,8 @@ void *si_create_query_result_cs(struct si_context *sctx);
void *gfx11_create_sh_query_result_cs(struct si_context *sctx);
/* gfx11_query.c */
-void gfx11_init_query(struct si_context *sctx);
-void gfx11_destroy_query(struct si_context *sctx);
+void si_gfx11_init_query(struct si_context *sctx);
+void si_gfx11_destroy_query(struct si_context *sctx);
/* si_test_image_copy_region.c */
void si_test_image_copy_region(struct si_screen *sscreen);
--
2.41.0

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:64de0616fc2d801f929ab1ac2a4f16b3e2783c4309a724c8a259b20df8bbc1cc
size 18855304

Binary file not shown.

3
mesa-23.3.3.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:518307c0057fa3cee8b58df78be431d4df5aafa7edc60d09278b2d7a0a80f3b4
size 19379484

BIN
mesa-23.3.3.tar.xz.sig Normal file

Binary file not shown.

View File

@ -1,8 +1,8 @@
Index: mesa-20.2.0/include/meson.build
Index: mesa-23.3.0/include/meson.build
===================================================================
--- mesa-20.2.0.orig/include/meson.build
+++ mesa-20.2.0/include/meson.build
@@ -29,10 +29,8 @@ if with_android_stub
--- mesa-23.3.0.orig/include/meson.build
+++ mesa-23.3.0/include/meson.build
@@ -28,10 +28,8 @@ if with_android_stub
inc_include += [include_directories('android_stub')]
endif

View File

@ -4,11 +4,11 @@ Date: Tue May 24 14:47:53 2022 -0400
Adjusting 'iris_batch.c' per 'https://gitlab.freedesktop.org/mesa/mesa/-/issues/5731'.
Index: mesa-23.1.0/src/gallium/drivers/iris/i915/iris_kmd_backend.c
Index: mesa-23.3.0/src/gallium/drivers/iris/i915/iris_kmd_backend.c
===================================================================
--- mesa-23.1.0.orig/src/gallium/drivers/iris/i915/iris_kmd_backend.c
+++ mesa-23.1.0/src/gallium/drivers/iris/i915/iris_kmd_backend.c
@@ -273,8 +273,7 @@ i915_batch_submit(struct iris_batch *bat
--- mesa-23.3.0.orig/src/gallium/drivers/iris/i915/iris_kmd_backend.c
+++ mesa-23.3.0/src/gallium/drivers/iris/i915/iris_kmd_backend.c
@@ -308,8 +308,7 @@ i915_batch_submit(struct iris_batch *bat
(struct drm_i915_gem_exec_object2) {
.handle = bo->gem_handle,
.offset = bo->address,

65
python36-buildfix1.patch Normal file
View File

@ -0,0 +1,65 @@
--- mesa-23.3.3/src/nouveau/nvidia-headers/class_parser.py.orig 2024-01-20 12:47:36.464476669 +0100
+++ mesa-23.3.3/src/nouveau/nvidia-headers/class_parser.py 2024-01-20 13:04:30.212851443 +0100
@@ -9,6 +9,16 @@
from mako.template import Template
+def removeprefix(s, prefix):
+ if s.startswith(prefix):
+ return s[len(prefix):]
+ return s
+
+def removesuffix(s, suffix):
+ if s.endswith(suffix):
+ return s[:-len(suffix)]
+ return s
+
METHOD_ARRAY_SIZES = {
'BIND_GROUP_CONSTANT_BUFFER' : 16,
'CALL_MME_DATA' : 256,
@@ -273,7 +283,7 @@
if ":" in list[2]:
state = 1
elif teststr in list[1]:
- curmthd.field_defs[curfield][list[1].removeprefix(teststr)] = list[2]
+ curmthd.field_defs[curfield][removeprefix(list[1], teststr)] = list[2]
else:
state = 1
@@ -283,7 +293,7 @@
if ("0x" in list[2]):
state = 1
else:
- field = list[1].removeprefix(teststr)
+ field = removeprefix(list[1], teststr)
bitfield = list[2].split(":")
curmthd.field_name_start[field] = bitfield[1]
curmthd.field_name_end[field] = bitfield[0]
@@ -304,13 +314,13 @@
is_array = 0
if (':' in list[2]):
continue
- name = list[1].removeprefix(teststr)
+ name = removeprefix(list[1], teststr)
if name.endswith("(i)"):
is_array = 1
- name = name.removesuffix("(i)")
+ name = removesuffix(name, "(i)")
if name.endswith("(j)"):
is_array = 1
- name = name.removesuffix("(j)")
+ name = removesuffix(name, "(j)")
x = method()
x.name = name
x.addr = list[2]
@@ -336,8 +346,8 @@
clheader = os.path.basename(args.in_h)
nvcl = clheader
- nvcl = nvcl.removeprefix("cl")
- nvcl = nvcl.removesuffix(".h")
+ nvcl = removeprefix(nvcl, "cl")
+ nvcl = removesuffix(nvcl, ".h")
nvcl = nvcl.upper()
nvcl = "NV" + nvcl

11
python36-buildfix2.patch Normal file
View File

@ -0,0 +1,11 @@
--- mesa-23.3.3/src/freedreno/registers/gen_header.py.orig 2024-01-20 14:01:30.261999839 +0100
+++ mesa-23.3.3/src/freedreno/registers/gen_header.py 2024-01-20 14:01:57.678558692 +0100
@@ -781,7 +781,7 @@ def main():
parser.add_argument('--rnn', type=str, required=True)
parser.add_argument('--xml', type=str, required=True)
- subparsers = parser.add_subparsers(required=True)
+ subparsers = parser.add_subparsers()
parser_c_defines = subparsers.add_parser('c-defines')
parser_c_defines.set_defaults(func=dump_c_defines)

View File

@ -0,0 +1,54 @@
From a14fa9920669c8d6d911e375376f2e45052a31d6 Mon Sep 17 00:00:00 2001
From: Jordan Justen <jordan.l.justen@intel.com>
Date: Sat, 20 Jan 2024 01:07:23 -0800
Subject: [PATCH 1/2] intel/genxml: Drop "from __future__ import annotations"
This is not supported in Python 3.6, and optional in 3.7+.
Ref: f1eae2f8bbe ("python: drop python2 support")
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
---
src/intel/genxml/gen_sort_tags.py | 1 -
src/intel/genxml/genxml_import.py | 1 -
src/intel/genxml/intel_genxml.py | 1 -
3 files changed, 3 deletions(-)
diff --git a/src/intel/genxml/gen_sort_tags.py b/src/intel/genxml/gen_sort_tags.py
index dcdba333fe6..44cd152cd11 100755
--- a/src/intel/genxml/gen_sort_tags.py
+++ b/src/intel/genxml/gen_sort_tags.py
@@ -2,7 +2,6 @@
# Copyright © 2019, 2022 Intel Corporation
# SPDX-License-Identifier: MIT
-from __future__ import annotations
import argparse
import copy
import intel_genxml
diff --git a/src/intel/genxml/genxml_import.py b/src/intel/genxml/genxml_import.py
index 76a7c77eb4c..442b4726d08 100755
--- a/src/intel/genxml/genxml_import.py
+++ b/src/intel/genxml/genxml_import.py
@@ -2,7 +2,6 @@
# Copyright © 2019, 2022 Intel Corporation
# SPDX-License-Identifier: MIT
-from __future__ import annotations
import argparse
import copy
import intel_genxml
diff --git a/src/intel/genxml/intel_genxml.py b/src/intel/genxml/intel_genxml.py
index 2b7b4d8391a..9388ebecfce 100755
--- a/src/intel/genxml/intel_genxml.py
+++ b/src/intel/genxml/intel_genxml.py
@@ -2,7 +2,6 @@
# Copyright © 2019, 2022 Intel Corporation
# SPDX-License-Identifier: MIT
-from __future__ import annotations
from collections import OrderedDict
import copy
import io
--
2.35.3

View File

@ -0,0 +1,78 @@
From 89ede5b851a6a15f85e83278257ee4e3783f6bd2 Mon Sep 17 00:00:00 2001
From: Jordan Justen <jordan.l.justen@intel.com>
Date: Sat, 20 Jan 2024 01:00:56 -0800
Subject: [PATCH 2/2] intel/genxml: Add a untyped OrderedDict fallback for
Python 3.6
typing.OrderedDict was introduced in Python 3.7.2.
Python 3.6 and 3.7 have been deprecated and are no longer supported,
but this seems like an easy enough fallback to include for now.
https://devguide.python.org/versions/
Signed-off-by: Jordan Justen <jordan.l.justen@intel.com>
---
src/intel/genxml/intel_genxml.py | 22 +++++++++++++++++-----
1 file changed, 17 insertions(+), 5 deletions(-)
diff --git a/src/intel/genxml/intel_genxml.py b/src/intel/genxml/intel_genxml.py
index 9388ebecfce..eefd7b44992 100755
--- a/src/intel/genxml/intel_genxml.py
+++ b/src/intel/genxml/intel_genxml.py
@@ -45,10 +45,22 @@ BASE_TYPES = {
FIXED_PATTERN = re.compile(r"(s|u)(\d+)\.(\d+)")
+try:
+ # Python 3.7 and newer should be able to support strong typing for
+ # our OrderedDict usage.
+ def typed_ordered_dict(key_ty, val_ty):
+ return typing.OrderedDict[str, bool]
+ # This will raise an exception on Python 3.6
+ typed_ordered_dict(int, int)
+except Exception:
+ # For Python 3.6 we return an untyped OrderedDict
+ def typed_ordered_dict(key_ty, val_ty):
+ return OrderedDict
+
def is_base_type(name: str) -> bool:
return name in BASE_TYPES or FIXED_PATTERN.match(name) is not None
-def add_struct_refs(items: typing.OrderedDict[str, bool], node: et.Element) -> None:
+def add_struct_refs(items: typed_ordered_dict(str, bool), node: et.Element) -> None:
if node.tag == 'field':
if 'type' in node.attrib and not is_base_type(node.attrib['type']):
t = node.attrib['type']
@@ -64,16 +76,16 @@ class Struct(object):
def __init__(self, xml: et.Element):
self.xml = xml
self.name = xml.attrib['name']
- self.deps: typing.OrderedDict[str, Struct] = OrderedDict()
+ self.deps: typed_ordered_dict(str, Struct) = OrderedDict()
def find_deps(self, struct_dict, enum_dict) -> None:
- deps: typing.OrderedDict[str, bool] = OrderedDict()
+ deps: typed_ordered_dict(str, bool) = OrderedDict()
add_struct_refs(deps, self.xml)
for d in deps.keys():
if d in struct_dict:
self.deps[d] = struct_dict[d]
- def add_xml(self, items: typing.OrderedDict[str, et.Element]) -> None:
+ def add_xml(self, items: typed_ordered_dict(str, et.Element)) -> None:
for d in self.deps.values():
d.add_xml(items)
items[self.name] = self.xml
@@ -151,7 +163,7 @@ def sort_xml(xml: et.ElementTree) -> None:
for ws in wrapped_struct_dict.values():
ws.find_deps(wrapped_struct_dict, enum_dict)
- sorted_structs: typing.OrderedDict[str, et.Element] = OrderedDict()
+ sorted_structs: typed_ordered_dict(str, et.Element) = OrderedDict()
for s in structs:
_s = wrapped_struct_dict[s.attrib['name']]
_s.add_xml(sorted_structs)
--
2.35.3

View File

@ -1,8 +1,8 @@
Index: mesa-23.1.1/meson.build
Index: mesa-23.3.0/meson.build
===================================================================
--- mesa-23.1.1.orig/meson.build
+++ mesa-23.1.1/meson.build
@@ -1966,9 +1966,11 @@ if with_platform_x11
--- mesa-23.3.0.orig/meson.build
+++ mesa-23.3.0/meson.build
@@ -2022,9 +2022,11 @@ if with_platform_x11
endif
endif
if with_any_vk or with_egl or (with_glx == 'dri' and with_dri_platform == 'drm')
@ -14,11 +14,11 @@ Index: mesa-23.1.1/meson.build
dep_xcb_dri3 = dependency('xcb-dri3')
dep_xcb_present = dependency('xcb-present')
# until xcb-dri3 has been around long enough to make a hard-dependency:
Index: mesa-23.1.1/src/loader/meson.build
Index: mesa-23.3.0/src/loader/meson.build
===================================================================
--- mesa-23.1.1.orig/src/loader/meson.build
+++ mesa-23.1.1/src/loader/meson.build
@@ -46,6 +46,6 @@ libloader = static_library(
--- mesa-23.3.0.orig/src/loader/meson.build
+++ mesa-23.3.0/src/loader/meson.build
@@ -47,6 +47,6 @@ libloader = static_library(
c_args : loader_c_args,
gnu_symbol_visibility : 'hidden',
include_directories : [inc_include, inc_src, inc_util],