import UBI mesa-25.2.7-4.el10
This commit is contained in:
parent
7801f0c855
commit
723fd4237c
13
.gitignore
vendored
13
.gitignore
vendored
@ -1,3 +1,10 @@
|
||||
libclc-20.1.3.src.tar.xz
|
||||
mesa-25.0.7.tar.xz
|
||||
spirv-llvm-translator-834db1a.tar.gz
|
||||
libclc-21.1.3.src.tar.xz
|
||||
mesa-25.2.7.tar.xz
|
||||
meson-1.7.0.tar.gz
|
||||
paste-1.0.15.tar.gz
|
||||
proc-macro2-1.0.101.tar.gz
|
||||
quote-1.0.40.tar.gz
|
||||
rustc-hash-2.1.1.tar.gz
|
||||
spirv-llvm-translator-a37544f.tar.gz
|
||||
syn-2.0.106.tar.gz
|
||||
unicode-ident-1.0.18.tar.gz
|
||||
|
||||
@ -0,0 +1,59 @@
|
||||
From 102d282d8add081f5f1aab35974218f151744ac5 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jos=C3=A9=20Exp=C3=B3sito?= <jose.exposito89@gmail.com>
|
||||
Date: Mon, 23 Feb 2026 08:40:07 +0100
|
||||
Subject: [PATCH] Revert "dri: fix __DRI_IMAGE_FORMAT* to PIPE_FORMAT*
|
||||
mappings"
|
||||
|
||||
This reverts commit 2ae8d0362bec12e84f787f226d2ba7a18130084f.
|
||||
---
|
||||
src/loader/loader_dri_helper.h | 18 ++++++++++--------
|
||||
1 file changed, 10 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/src/loader/loader_dri_helper.h b/src/loader/loader_dri_helper.h
|
||||
index 169e36b5d80..0d801e99648 100644
|
||||
--- a/src/loader/loader_dri_helper.h
|
||||
+++ b/src/loader/loader_dri_helper.h
|
||||
@@ -61,8 +61,10 @@ struct loader_screen_resources {
|
||||
|
||||
|
||||
/**
|
||||
- * These formats are endian independent they result in the same layout
|
||||
- * regradless of a big or little endian cpu.
|
||||
+ * These formats correspond to the similarly named MESA_FORMAT_*
|
||||
+ * tokens, except in the native endian of the CPU. For example, on
|
||||
+ * little endian __DRI_IMAGE_FORMAT_XRGB8888 corresponds to
|
||||
+ * MESA_FORMAT_XRGB8888, but MESA_FORMAT_XRGB8888_REV on big endian.
|
||||
*
|
||||
* __DRI_IMAGE_FORMAT_NONE is for images that aren't directly usable
|
||||
* by the driver (YUV planar formats) but serve as a base image for
|
||||
@@ -73,21 +75,21 @@ struct loader_screen_resources {
|
||||
* createImageFromNames (NONE, see above) and fromPlane (R8 & GR88).
|
||||
*/
|
||||
#define __DRI_IMAGE_FORMAT_RGB565 PIPE_FORMAT_B5G6R5_UNORM
|
||||
-#define __DRI_IMAGE_FORMAT_XRGB8888 PIPE_FORMAT_B8G8R8X8_UNORM
|
||||
-#define __DRI_IMAGE_FORMAT_ARGB8888 PIPE_FORMAT_B8G8R8A8_UNORM
|
||||
-#define __DRI_IMAGE_FORMAT_ABGR8888 PIPE_FORMAT_R8G8B8A8_UNORM
|
||||
-#define __DRI_IMAGE_FORMAT_XBGR8888 PIPE_FORMAT_R8G8B8X8_UNORM
|
||||
+#define __DRI_IMAGE_FORMAT_XRGB8888 PIPE_FORMAT_BGRX8888_UNORM
|
||||
+#define __DRI_IMAGE_FORMAT_ARGB8888 PIPE_FORMAT_BGRA8888_UNORM
|
||||
+#define __DRI_IMAGE_FORMAT_ABGR8888 PIPE_FORMAT_RGBA8888_UNORM
|
||||
+#define __DRI_IMAGE_FORMAT_XBGR8888 PIPE_FORMAT_RGBX8888_UNORM
|
||||
#define __DRI_IMAGE_FORMAT_RGB888 PIPE_FORMAT_B8G8R8_UNORM
|
||||
#define __DRI_IMAGE_FORMAT_BGR888 PIPE_FORMAT_R8G8B8_UNORM
|
||||
#define __DRI_IMAGE_FORMAT_R8 PIPE_FORMAT_R8_UNORM
|
||||
-#define __DRI_IMAGE_FORMAT_GR88 PIPE_FORMAT_R8G8_UNORM
|
||||
+#define __DRI_IMAGE_FORMAT_GR88 PIPE_FORMAT_RG88_UNORM
|
||||
#define __DRI_IMAGE_FORMAT_NONE PIPE_FORMAT_NONE
|
||||
#define __DRI_IMAGE_FORMAT_XRGB2101010 PIPE_FORMAT_B10G10R10X2_UNORM
|
||||
#define __DRI_IMAGE_FORMAT_ARGB2101010 PIPE_FORMAT_B10G10R10A2_UNORM
|
||||
#define __DRI_IMAGE_FORMAT_SARGB8 PIPE_FORMAT_BGRA8888_SRGB
|
||||
#define __DRI_IMAGE_FORMAT_ARGB1555 PIPE_FORMAT_B5G5R5A1_UNORM
|
||||
#define __DRI_IMAGE_FORMAT_R16 PIPE_FORMAT_R16_UNORM
|
||||
-#define __DRI_IMAGE_FORMAT_GR1616 PIPE_FORMAT_R16G16_UNORM
|
||||
+#define __DRI_IMAGE_FORMAT_GR1616 PIPE_FORMAT_RG1616_UNORM
|
||||
#define __DRI_IMAGE_FORMAT_XBGR2101010 PIPE_FORMAT_R10G10B10X2_UNORM
|
||||
#define __DRI_IMAGE_FORMAT_ABGR2101010 PIPE_FORMAT_R10G10B10A2_UNORM
|
||||
#define __DRI_IMAGE_FORMAT_SABGR8 PIPE_FORMAT_RGBA8888_SRGB
|
||||
--
|
||||
2.53.0
|
||||
|
||||
@ -1,88 +0,0 @@
|
||||
From 870b8717b25eceadac8dd653debe8346826227cb Mon Sep 17 00:00:00 2001
|
||||
From: Dave Airlie <airlied@redhat.com>
|
||||
Date: Mon, 9 Jun 2025 09:19:28 +1000
|
||||
Subject: [PATCH] Revert "hasvk/elk: stop turning load_push_constants into
|
||||
load_uniform"
|
||||
|
||||
This reverts commit b036d2ded2de32e81730ec8ce37c803bad112efa.
|
||||
|
||||
This seems to break gtk4 and other stuff.
|
||||
|
||||
Cc: mesa-stable
|
||||
(taking ack from Lionel saying we should revert)
|
||||
|
||||
Acked-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
|
||||
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35407>
|
||||
---
|
||||
src/intel/compiler/elk/elk_fs_nir.cpp | 4 ++--
|
||||
src/intel/vulkan_hasvk/anv_nir_apply_pipeline_layout.c | 6 +++---
|
||||
src/intel/vulkan_hasvk/anv_nir_compute_push_layout.c | 3 +--
|
||||
3 files changed, 6 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/src/intel/compiler/elk/elk_fs_nir.cpp b/src/intel/compiler/elk/elk_fs_nir.cpp
|
||||
index 459e2d966b7..6b78d6cf9f8 100644
|
||||
--- a/src/intel/compiler/elk/elk_fs_nir.cpp
|
||||
+++ b/src/intel/compiler/elk/elk_fs_nir.cpp
|
||||
@@ -4969,8 +4969,7 @@ fs_nir_emit_intrinsic(nir_to_elk_state &ntb,
|
||||
break;
|
||||
}
|
||||
|
||||
- case nir_intrinsic_load_uniform:
|
||||
- case nir_intrinsic_load_push_constant: {
|
||||
+ case nir_intrinsic_load_uniform: {
|
||||
/* Offsets are in bytes but they should always aligned to
|
||||
* the type size
|
||||
*/
|
||||
@@ -7058,3 +7057,4 @@ nir_to_elk(elk_fs_visitor *s)
|
||||
|
||||
ralloc_free(ntb.mem_ctx);
|
||||
}
|
||||
+
|
||||
diff --git a/src/intel/vulkan_hasvk/anv_nir_apply_pipeline_layout.c b/src/intel/vulkan_hasvk/anv_nir_apply_pipeline_layout.c
|
||||
index 2bedf9017ed..1c613a9ebe7 100644
|
||||
--- a/src/intel/vulkan_hasvk/anv_nir_apply_pipeline_layout.c
|
||||
+++ b/src/intel/vulkan_hasvk/anv_nir_apply_pipeline_layout.c
|
||||
@@ -463,9 +463,9 @@ build_buffer_addr_for_res_index(nir_builder *b,
|
||||
nir_iadd(b, res.dyn_offset_base, res.array_index);
|
||||
|
||||
nir_def *dyn_load =
|
||||
- nir_load_uniform(b, 1, 32, nir_imul_imm(b, dyn_offset_idx, 4),
|
||||
- .base = offsetof(struct anv_push_constants, dynamic_offsets),
|
||||
- .range = MAX_DYNAMIC_BUFFERS * 4);
|
||||
+ nir_load_push_constant(b, 1, 32, nir_imul_imm(b, dyn_offset_idx, 4),
|
||||
+ .base = offsetof(struct anv_push_constants, dynamic_offsets),
|
||||
+ .range = MAX_DYNAMIC_BUFFERS * 4);
|
||||
|
||||
nir_def *dynamic_offset =
|
||||
nir_bcsel(b, nir_ieq_imm(b, res.dyn_offset_base, 0xff),
|
||||
diff --git a/src/intel/vulkan_hasvk/anv_nir_compute_push_layout.c b/src/intel/vulkan_hasvk/anv_nir_compute_push_layout.c
|
||||
index ed314af8b98..8a3f83f2c26 100644
|
||||
--- a/src/intel/vulkan_hasvk/anv_nir_compute_push_layout.c
|
||||
+++ b/src/intel/vulkan_hasvk/anv_nir_compute_push_layout.c
|
||||
@@ -55,7 +55,6 @@ anv_nir_compute_push_layout(nir_shader *nir,
|
||||
has_const_ubo = true;
|
||||
break;
|
||||
|
||||
- case nir_intrinsic_load_uniform:
|
||||
case nir_intrinsic_load_push_constant: {
|
||||
unsigned base = nir_intrinsic_base(intrin);
|
||||
unsigned range = nir_intrinsic_range(intrin);
|
||||
@@ -132,7 +131,6 @@ anv_nir_compute_push_layout(nir_shader *nir,
|
||||
|
||||
nir_intrinsic_instr *intrin = nir_instr_as_intrinsic(instr);
|
||||
switch (intrin->intrinsic) {
|
||||
- case nir_intrinsic_load_uniform:
|
||||
case nir_intrinsic_load_push_constant: {
|
||||
/* With bindless shaders we load uniforms with SEND
|
||||
* messages. All the push constants are located after the
|
||||
@@ -141,6 +139,7 @@ anv_nir_compute_push_layout(nir_shader *nir,
|
||||
* elk_nir_lower_rt_intrinsics.c).
|
||||
*/
|
||||
unsigned base_offset = push_start;
|
||||
+ intrin->intrinsic = nir_intrinsic_load_uniform;
|
||||
nir_intrinsic_set_base(intrin,
|
||||
nir_intrinsic_base(intrin) -
|
||||
base_offset);
|
||||
--
|
||||
2.49.0
|
||||
|
||||
@ -1,46 +0,0 @@
|
||||
From 24f85c06c28736b73c14208a0ffa6657d2aee9cd Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jos=C3=A9=20Exp=C3=B3sito?= <jexposit@redhat.com>
|
||||
Date: Mon, 21 Apr 2025 13:52:14 +0200
|
||||
Subject: [PATCH] Revert "kopper: Explicitly choose zink"
|
||||
|
||||
On QEMU (virtio driver), without 3D acceleration enabled and without
|
||||
mesa-vulkan-drivers installed, this commit prevents Mutter to start.
|
||||
|
||||
This reverts commit c0bc957c5d8c7edd57626284b712dd6ea1e375fc.
|
||||
|
||||
Related: https://bugzilla.redhat.com/show_bug.cgi?id=2360851
|
||||
Related: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13009
|
||||
---
|
||||
.pick_status.json | 2 +-
|
||||
src/gallium/frontends/dri/kopper.c | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/.pick_status.json b/.pick_status.json
|
||||
index 99df2fb30c2..cdf3965678c 100644
|
||||
--- a/.pick_status.json
|
||||
+++ b/.pick_status.json
|
||||
@@ -16204,7 +16204,7 @@
|
||||
"description": "kopper: Explicitly choose zink",
|
||||
"nominated": false,
|
||||
"nomination_type": 0,
|
||||
- "resolution": 1,
|
||||
+ "resolution": 4,
|
||||
"main_sha": null,
|
||||
"because_sha": null,
|
||||
"notes": null
|
||||
diff --git a/src/gallium/frontends/dri/kopper.c b/src/gallium/frontends/dri/kopper.c
|
||||
index a1d7dcb79b4..3bdb56022a9 100644
|
||||
--- a/src/gallium/frontends/dri/kopper.c
|
||||
+++ b/src/gallium/frontends/dri/kopper.c
|
||||
@@ -73,7 +73,7 @@ kopper_init_screen(struct dri_screen *screen, bool driver_name_is_inferred)
|
||||
bool success;
|
||||
#ifdef HAVE_LIBDRM
|
||||
if (screen->fd != -1)
|
||||
- success = pipe_loader_drm_probe_fd(&screen->dev, screen->fd, true);
|
||||
+ success = pipe_loader_drm_probe_fd(&screen->dev, screen->fd, false);
|
||||
else
|
||||
success = pipe_loader_vk_probe_dri(&screen->dev);
|
||||
#else
|
||||
--
|
||||
2.49.0
|
||||
|
||||
149
0001-device-select-add-a-layer-setting-to-disable-device-.patch
Normal file
149
0001-device-select-add-a-layer-setting-to-disable-device-.patch
Normal file
@ -0,0 +1,149 @@
|
||||
From b0158d174d297276397b21a6657ea0ef14652183 Mon Sep 17 00:00:00 2001
|
||||
From: Dave Airlie <airlied@redhat.com>
|
||||
Date: Wed, 5 Nov 2025 11:01:05 +1000
|
||||
Subject: [PATCH 1/2] device-select: add a layer setting to disable device
|
||||
selection logic
|
||||
|
||||
There are cases like zink where we have a file descriptors we are searching
|
||||
for devices for, so we don't need device selecting reordering, we just want
|
||||
the fastest path to get the devices so we can match them.
|
||||
|
||||
This also helps avoid some cases of deadlock inside compositors where
|
||||
zink/vulkan initialises later and tries to connect to the compositor.
|
||||
|
||||
This uses a VK_EXT_layer_setting to add a bypass setting.
|
||||
---
|
||||
.../VkLayer_MESA_device_select.json.in | 6 +++
|
||||
.../device-select-layer/device_select_layer.c | 53 +++++++++++++++----
|
||||
2 files changed, 48 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/src/vulkan/device-select-layer/VkLayer_MESA_device_select.json.in b/src/vulkan/device-select-layer/VkLayer_MESA_device_select.json.in
|
||||
index 40d6ea8cd8b..1623381a81a 100644
|
||||
--- a/src/vulkan/device-select-layer/VkLayer_MESA_device_select.json.in
|
||||
+++ b/src/vulkan/device-select-layer/VkLayer_MESA_device_select.json.in
|
||||
@@ -7,6 +7,12 @@
|
||||
"api_version": "1.4.303",
|
||||
"implementation_version": "1",
|
||||
"description": "Linux device selection layer",
|
||||
+ "instance_extensions": [
|
||||
+ {
|
||||
+ "name": "VK_EXT_layer_settings",
|
||||
+ "spec_version": "2"
|
||||
+ }
|
||||
+ ],
|
||||
"functions": {
|
||||
"vkNegotiateLoaderLayerInterfaceVersion": "vkNegotiateLoaderLayerInterfaceVersion"
|
||||
},
|
||||
diff --git a/src/vulkan/device-select-layer/device_select_layer.c b/src/vulkan/device-select-layer/device_select_layer.c
|
||||
index 19cfc556f54..c03938b82c0 100644
|
||||
--- a/src/vulkan/device-select-layer/device_select_layer.c
|
||||
+++ b/src/vulkan/device-select-layer/device_select_layer.c
|
||||
@@ -54,7 +54,9 @@ struct instance_info {
|
||||
PFN_vkGetPhysicalDeviceProperties2 GetPhysicalDeviceProperties2;
|
||||
bool has_pci_bus, has_vulkan11;
|
||||
bool has_wayland, has_xcb;
|
||||
- bool zink, xwayland, xserver;
|
||||
+ bool xserver;
|
||||
+ /* don't do device selection */
|
||||
+ bool bypass_device_select;
|
||||
};
|
||||
|
||||
static struct hash_table *device_select_instance_ht = NULL;
|
||||
@@ -118,10 +120,34 @@ static VkResult device_select_CreateInstance(const VkInstanceCreateInfo *pCreate
|
||||
const VkAllocationCallbacks *pAllocator,
|
||||
VkInstance *pInstance)
|
||||
{
|
||||
- VkLayerInstanceCreateInfo *chain_info;
|
||||
- for(chain_info = (VkLayerInstanceCreateInfo*)pCreateInfo->pNext; chain_info; chain_info = (VkLayerInstanceCreateInfo*)chain_info->pNext)
|
||||
- if(chain_info->sType == VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO && chain_info->function == VK_LAYER_LINK_INFO)
|
||||
+ VkLayerInstanceCreateInfo *chain_info = NULL;
|
||||
+ bool bypass_device_select = false;
|
||||
+ vk_foreach_struct_const(s, pCreateInfo->pNext) {
|
||||
+ switch (s->sType) {
|
||||
+ case VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO: {
|
||||
+ const VkLayerInstanceCreateInfo *this_info = (const void *)s;
|
||||
+ if (this_info->function == VK_LAYER_LINK_INFO)
|
||||
+ chain_info = (VkLayerInstanceCreateInfo *)this_info; /* loses const */
|
||||
break;
|
||||
+ }
|
||||
+ case VK_STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT: {
|
||||
+ const VkLayerSettingsCreateInfoEXT *lsci = (const void *)s;
|
||||
+ for (unsigned i = 0; i < lsci->settingCount; i++) {
|
||||
+ const VkLayerSettingEXT *ls = &lsci->pSettings[i];
|
||||
+ if (!strcmp(ls->pLayerName, "MESA_device_select")) {
|
||||
+ if (!strcmp(ls->pSettingName, "no_device_select")) {
|
||||
+ assert(ls->type == VK_LAYER_SETTING_TYPE_BOOL32_EXT);
|
||||
+ uint32_t *values = (uint32_t *)ls->pValues;
|
||||
+ bypass_device_select = values[0];
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ break;
|
||||
+ }
|
||||
+ default:
|
||||
+ break;
|
||||
+ }
|
||||
+ }
|
||||
|
||||
assert(chain_info->u.pLayerInfo);
|
||||
|
||||
@@ -140,10 +166,10 @@ static VkResult device_select_CreateInstance(const VkInstanceCreateInfo *pCreate
|
||||
return result;
|
||||
}
|
||||
|
||||
+ bool zink = !strcmp(engineName, "mesa zink");
|
||||
+ bool xwayland = !strcmp(applicationName, "Xwayland");
|
||||
struct instance_info *info = (struct instance_info *)calloc(1, sizeof(struct instance_info));
|
||||
info->GetInstanceProcAddr = GetInstanceProcAddr;
|
||||
- info->zink = !strcmp(engineName, "mesa zink");
|
||||
- info->xwayland = !strcmp(applicationName, "Xwayland");
|
||||
info->xserver = !strcmp(applicationName, "Xorg") || !strcmp(applicationName, "Xephyr");
|
||||
|
||||
bool has_wayland = getenv("WAYLAND_DISPLAY") || getenv("WAYLAND_SOCKET");
|
||||
@@ -155,16 +181,20 @@ static VkResult device_select_CreateInstance(const VkInstanceCreateInfo *pCreate
|
||||
info->has_wayland = true;
|
||||
#endif
|
||||
#ifdef VK_USE_PLATFORM_XCB_KHR
|
||||
- if (!strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_KHR_XCB_SURFACE_EXTENSION_NAME) && has_xcb)
|
||||
- info->has_xcb = !info->xserver || !info->zink;
|
||||
+ if (!strcmp(pCreateInfo->ppEnabledExtensionNames[i], VK_KHR_XCB_SURFACE_EXTENSION_NAME) &&
|
||||
+ has_xcb)
|
||||
+ info->has_xcb = !info->xserver || !zink;
|
||||
#endif
|
||||
}
|
||||
|
||||
+ if (zink && xwayland)
|
||||
+ bypass_device_select = true;
|
||||
/*
|
||||
* The loader is currently not able to handle GetPhysicalDeviceProperties2KHR calls in
|
||||
* EnumeratePhysicalDevices when there are other layers present. To avoid mysterious crashes
|
||||
* for users just use only the vulkan version for now.
|
||||
*/
|
||||
+ info->bypass_device_select = bypass_device_select;
|
||||
info->has_vulkan11 = pCreateInfo->pApplicationInfo &&
|
||||
pCreateInfo->pApplicationInfo->apiVersion >= VK_MAKE_VERSION(1, 1, 0);
|
||||
|
||||
@@ -558,7 +588,7 @@ static VkResult device_select_EnumeratePhysicalDevices(VkInstance instance,
|
||||
uint32_t selected_physical_device_count = 0;
|
||||
const char* selection = getenv("MESA_VK_DEVICE_SELECT");
|
||||
bool expose_only_one_dev = false;
|
||||
- if (info->zink && info->xwayland)
|
||||
+ if (info->bypass_device_select)
|
||||
return info->EnumeratePhysicalDevices(instance, pPhysicalDeviceCount, pPhysicalDevices);
|
||||
VkResult result = info->EnumeratePhysicalDevices(instance, &physical_device_count, NULL);
|
||||
VK_OUTARRAY_MAKE_TYPED(VkPhysicalDevice, out, pPhysicalDevices, pPhysicalDeviceCount);
|
||||
@@ -643,8 +673,9 @@ static VkResult device_select_EnumeratePhysicalDeviceGroups(VkInstance instance,
|
||||
struct instance_info *info = device_select_layer_get_instance(instance);
|
||||
uint32_t physical_device_group_count = 0;
|
||||
uint32_t selected_physical_device_group_count = 0;
|
||||
- if (info->zink && info->xwayland)
|
||||
- return info->EnumeratePhysicalDeviceGroups(instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroups);
|
||||
+ if (info->bypass_device_select)
|
||||
+ return info->EnumeratePhysicalDeviceGroups(instance, pPhysicalDeviceGroupCount,
|
||||
+ pPhysicalDeviceGroups);
|
||||
VkResult result = info->EnumeratePhysicalDeviceGroups(instance, &physical_device_group_count, NULL);
|
||||
VK_OUTARRAY_MAKE_TYPED(VkPhysicalDeviceGroupProperties, out, pPhysicalDeviceGroups, pPhysicalDeviceGroupCount);
|
||||
|
||||
--
|
||||
2.51.1
|
||||
|
||||
36
0001-gallivm-handle-u16-correct-on-const-loads.patch
Normal file
36
0001-gallivm-handle-u16-correct-on-const-loads.patch
Normal file
@ -0,0 +1,36 @@
|
||||
From c016346b50e9085b531f9bcbd7cfd63d3806a3e1 Mon Sep 17 00:00:00 2001
|
||||
From: Dave Airlie <airlied@redhat.com>
|
||||
Date: Wed, 11 Feb 2026 05:47:57 +1000
|
||||
Subject: [PATCH] gallivm: handle u16 correct on const loads.
|
||||
|
||||
I somehow screwed this up on my previous attempt at fixing this bug,
|
||||
|
||||
This should fix the loop limiter bug on big endian properly.
|
||||
|
||||
Reviewed-by: Georg Lehmann <dadschoorse@gmail.com>
|
||||
Cc: mesa-stable
|
||||
Fixes: e28cfb2bada2 ("gallivm: handle u8/u16 const loads properly on big-endian.")
|
||||
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39813>
|
||||
---
|
||||
src/gallium/auxiliary/gallivm/lp_bld_nir_soa.c | 5 +----
|
||||
1 file changed, 1 insertion(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/gallium/auxiliary/gallivm/lp_bld_nir_soa.c b/src/gallium/auxiliary/gallivm/lp_bld_nir_soa.c
|
||||
index 770f1cc6592..e755225dce9 100644
|
||||
--- a/src/gallium/auxiliary/gallivm/lp_bld_nir_soa.c
|
||||
+++ b/src/gallium/auxiliary/gallivm/lp_bld_nir_soa.c
|
||||
@@ -1269,10 +1269,7 @@ emit_load_const(struct lp_build_nir_soa_context *bld,
|
||||
|
||||
for (unsigned i = 0; i < instr->def.num_components; i++) {
|
||||
outval[i] = lp_build_const_int_vec(bld->base.gallivm, int_bld->type,
|
||||
- bits == 8 ? instr->value[i].u8 :
|
||||
- bits == 16 ? instr->value[i].u32 :
|
||||
- bits == 32 ? instr->value[i].u32 :
|
||||
- instr->value[i].u64);
|
||||
+ nir_const_value_as_uint(instr->value[i], bits));
|
||||
}
|
||||
for (unsigned i = instr->def.num_components; i < NIR_MAX_VEC_COMPONENTS; i++) {
|
||||
outval[i] = NULL;
|
||||
--
|
||||
2.53.0
|
||||
|
||||
@ -1,16 +0,0 @@
|
||||
diff -up mesa-25.0.7/src/gallium/auxiliary/gallivm/lp_bld_nir_soa.c.dma mesa-25.0.7/src/gallium/auxiliary/gallivm/lp_bld_nir_soa.c
|
||||
--- mesa-25.0.7/src/gallium/auxiliary/gallivm/lp_bld_nir_soa.c.dma 2025-05-29 01:20:23.000000000 +1000
|
||||
+++ mesa-25.0.7/src/gallium/auxiliary/gallivm/lp_bld_nir_soa.c 2025-09-26 12:32:52.240568901 +1000
|
||||
@@ -1321,8 +1321,10 @@ emit_load_const(struct lp_build_nir_cont
|
||||
|
||||
for (unsigned i = 0; i < instr->def.num_components; i++) {
|
||||
outval[i] = lp_build_const_int_vec(bld_base->base.gallivm, int_bld->type,
|
||||
- bits == 32 ? instr->value[i].u32
|
||||
- : instr->value[i].u64);
|
||||
+ bits == 8 ? instr->value[i].u8 :
|
||||
+ bits == 16 ? instr->value[i].u16 :
|
||||
+ bits == 32 ? instr->value[i].u32 :
|
||||
+ instr->value[i].u64);
|
||||
}
|
||||
for (unsigned i = instr->def.num_components; i < NIR_MAX_VEC_COMPONENTS; i++) {
|
||||
outval[i] = NULL;
|
||||
106
0002-zink-use-device-select-layer-settings-to-disable-dev.patch
Normal file
106
0002-zink-use-device-select-layer-settings-to-disable-dev.patch
Normal file
@ -0,0 +1,106 @@
|
||||
From 30c754624ab73b180c66658701814ec5e3d12a31 Mon Sep 17 00:00:00 2001
|
||||
From: Dave Airlie <airlied@redhat.com>
|
||||
Date: Wed, 5 Nov 2025 11:02:26 +1000
|
||||
Subject: [PATCH 2/2] zink: use device select layer settings to disable device
|
||||
selection
|
||||
|
||||
In the case where we have a device that we want to choose after
|
||||
probing, there is no point in asking the device select layer to do
|
||||
any reordering at all.
|
||||
|
||||
This helps avoid a deadlock inside compositors where we don't need
|
||||
device selection anyways.
|
||||
---
|
||||
src/gallium/drivers/zink/zink_instance.py | 18 ++++++++++++++++++
|
||||
src/gallium/drivers/zink/zink_screen.c | 9 ++++++++-
|
||||
2 files changed, 26 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/gallium/drivers/zink/zink_instance.py b/src/gallium/drivers/zink/zink_instance.py
|
||||
index 1ab36bee2ca..c0e813be164 100644
|
||||
--- a/src/gallium/drivers/zink/zink_instance.py
|
||||
+++ b/src/gallium/drivers/zink/zink_instance.py
|
||||
@@ -37,6 +37,7 @@ import platform
|
||||
# - nonstandard: Disables validation (cross-checking with vk.xml) if True.
|
||||
EXTENSIONS = [
|
||||
Extension("VK_EXT_debug_utils"),
|
||||
+ Extension("VK_EXT_layer_settings"),
|
||||
Extension("VK_KHR_get_physical_device_properties2"),
|
||||
Extension("VK_KHR_external_memory_capabilities"),
|
||||
Extension("VK_KHR_external_semaphore_capabilities"),
|
||||
@@ -62,8 +63,10 @@ LAYERS = [
|
||||
conditions=["zink_debug & ZINK_DEBUG_VALIDATION"]),
|
||||
Layer("VK_LAYER_LUNARG_standard_validation",
|
||||
conditions=["zink_debug & ZINK_DEBUG_VALIDATION", "!have_layer_KHRONOS_validation"]),
|
||||
+ Layer("VK_LAYER_MESA_device_select")
|
||||
]
|
||||
|
||||
+
|
||||
REPLACEMENTS = {
|
||||
"VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES2_EXTENSION_NAME" : "VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME"
|
||||
}
|
||||
@@ -87,6 +90,7 @@ struct zink_screen;
|
||||
|
||||
struct zink_instance_info {
|
||||
uint32_t loader_version;
|
||||
+ bool no_device_select;
|
||||
|
||||
%for ext in extensions:
|
||||
bool have_${ext.name_with_vendor()};
|
||||
@@ -261,6 +265,20 @@ zink_create_instance(struct zink_screen *screen, struct zink_instance_info *inst
|
||||
ici.ppEnabledLayerNames = layers;
|
||||
ici.enabledLayerCount = num_layers;
|
||||
|
||||
+ VkLayerSettingEXT ds_layer = {0};
|
||||
+ VkLayerSettingsCreateInfoEXT lsci = {0};
|
||||
+ uint32_t no_device_select_value = instance_info->no_device_select;
|
||||
+ if (have_EXT_layer_settings && have_layer_MESA_device_select) {
|
||||
+ ds_layer.pLayerName = "MESA_device_select";
|
||||
+ ds_layer.pSettingName = "no_device_select";
|
||||
+ ds_layer.type = VK_LAYER_SETTING_TYPE_BOOL32_EXT;
|
||||
+ ds_layer.valueCount = 1;
|
||||
+ ds_layer.pValues = &no_device_select_value;
|
||||
+ lsci.sType = VK_STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT;
|
||||
+ lsci.settingCount = 1;
|
||||
+ lsci.pSettings = &ds_layer;
|
||||
+ ici.pNext = &lsci;
|
||||
+ }
|
||||
GET_PROC_ADDR_INSTANCE_LOCAL(screen, NULL, CreateInstance);
|
||||
assert(vk_CreateInstance);
|
||||
|
||||
diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c
|
||||
index 7ec86d0090a..34eee2ba113 100644
|
||||
--- a/src/gallium/drivers/zink/zink_screen.c
|
||||
+++ b/src/gallium/drivers/zink/zink_screen.c
|
||||
@@ -1576,6 +1576,12 @@ zink_destroy_screen(struct pipe_screen *pscreen)
|
||||
glsl_type_singleton_decref();
|
||||
}
|
||||
|
||||
+static bool
|
||||
+zink_picks_device(int dev_major, uint64_t adapter_luid)
|
||||
+{
|
||||
+ return (dev_major > 0 && dev_major < 255) || adapter_luid;
|
||||
+}
|
||||
+
|
||||
static int
|
||||
zink_get_display_device(const struct zink_screen *screen, uint32_t pdev_count,
|
||||
const VkPhysicalDevice *pdevs, int64_t dev_major,
|
||||
@@ -1647,7 +1653,7 @@ choose_pdev(struct zink_screen *screen, int64_t dev_major, int64_t dev_minor, ui
|
||||
bool cpu = debug_get_bool_option("LIBGL_ALWAYS_SOFTWARE", false) ||
|
||||
debug_get_bool_option("D3D_ALWAYS_SOFTWARE", false);
|
||||
|
||||
- if (cpu || (dev_major > 0 && dev_major < 255) || adapter_luid) {
|
||||
+ if (cpu || zink_picks_device(dev_major, adapter_luid)) {
|
||||
uint32_t pdev_count;
|
||||
int idx;
|
||||
VkPhysicalDevice *pdevs;
|
||||
@@ -3309,6 +3315,7 @@ zink_internal_create_screen(const struct pipe_screen_config *config, int64_t dev
|
||||
simple_mtx_lock(&instance_lock);
|
||||
if (++instance_refcount == 1) {
|
||||
instance_info.loader_version = zink_get_loader_version(screen);
|
||||
+ instance_info.no_device_select = zink_picks_device(dev_major, adapter_luid);
|
||||
instance = zink_create_instance(screen, &instance_info);
|
||||
}
|
||||
if (!instance) {
|
||||
--
|
||||
2.51.1
|
||||
|
||||
88
32886.patch
88
32886.patch
@ -1,88 +0,0 @@
|
||||
From 023db569e8f7bf325fba86a1fa4ba984026a532c Mon Sep 17 00:00:00 2001
|
||||
From: Benjamin ROBIN <dev@benjarobin.fr>
|
||||
Date: Sun, 5 Jan 2025 17:03:52 +0100
|
||||
Subject: [PATCH 2/2] docs: Update MESA_SHADER_CACHE_DIR env variable behavior
|
||||
|
||||
Update documentation to match implementation of
|
||||
disk_cache_generate_cache_dir().
|
||||
|
||||
Signed-off-by: Benjamin ROBIN <dev@benjarobin.fr>
|
||||
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32886>
|
||||
---
|
||||
docs/envvars.rst | 21 ++++++++++++---------
|
||||
src/util/disk_cache_os.c | 13 +++++++++----
|
||||
2 files changed, 21 insertions(+), 13 deletions(-)
|
||||
|
||||
diff --git a/docs/envvars.rst b/docs/envvars.rst
|
||||
index 7247158cc5073..e812b9280777a 100644
|
||||
--- a/docs/envvars.rst
|
||||
+++ b/docs/envvars.rst
|
||||
@@ -200,10 +200,11 @@ Core Mesa environment variables
|
||||
.. envvar:: MESA_SHADER_CACHE_DIR
|
||||
|
||||
if set, determines the directory to be used for the on-disk cache of
|
||||
- compiled shader programs. If this variable is not set, then the cache
|
||||
- will be stored in ``$XDG_CACHE_HOME/mesa_shader_cache_db`` (if that
|
||||
- variable is set), or else within ``.cache/mesa_shader_cache_db`` within
|
||||
- the user's home directory.
|
||||
+ compiled shader programs. If set then the cache will be stored in
|
||||
+ ``$MESA_SHADER_CACHE_DIR/mesa_shader_cache_db``. If this variable is not
|
||||
+ set, then the cache will be stored in
|
||||
+ ``$XDG_CACHE_HOME/mesa_shader_cache_db`` (if that variable is set), or else
|
||||
+ within ``.cache/mesa_shader_cache_db`` within the user's home directory.
|
||||
|
||||
.. envvar:: MESA_SHADER_CACHE_SHOW_STATS
|
||||
|
||||
@@ -218,9 +219,10 @@ Core Mesa environment variables
|
||||
cache DBs via :envvar:`MESA_DISK_CACHE_READ_ONLY_FOZ_DBS` or
|
||||
:envvar:`MESA_DISK_CACHE_READ_ONLY_FOZ_DBS_DYNAMIC_LIST`. This
|
||||
implementation does not support cache size limits via
|
||||
- :envvar:`MESA_SHADER_CACHE_MAX_SIZE`. If
|
||||
- :envvar:`MESA_SHADER_CACHE_DIR` is not set, the cache will be stored
|
||||
- in ``$XDG_CACHE_HOME/mesa_shader_cache_sf`` (if that variable is set)
|
||||
+ :envvar:`MESA_SHADER_CACHE_MAX_SIZE`. If :envvar:`MESA_SHADER_CACHE_DIR`
|
||||
+ is set, the cache will be stored in
|
||||
+ ``$MESA_SHADER_CACHE_DIR/mesa_shader_cache_sf``, or else within
|
||||
+ ``$XDG_CACHE_HOME/mesa_shader_cache_sf`` (if that variable is set)
|
||||
or else within ``.cache/mesa_shader_cache_sf`` within the user's home
|
||||
directory.
|
||||
|
||||
@@ -229,8 +231,9 @@ Core Mesa environment variables
|
||||
if set to 1, enables the multi file on-disk shader cache implementation
|
||||
instead of the default Mesa-DB cache implementation.
|
||||
This implementation increases the overall disk usage.
|
||||
- If :envvar:`MESA_SHADER_CACHE_DIR` is not set, the cache will be stored
|
||||
- in ``$XDG_CACHE_HOME/mesa_shader_cache`` (if that variable is set)
|
||||
+ If :envvar:`MESA_SHADER_CACHE_DIR` is set, the cache will be stored in
|
||||
+ ``$MESA_SHADER_CACHE_DIR/mesa_shader_cache``, or else within
|
||||
+ ``$XDG_CACHE_HOME/mesa_shader_cache`` (if that variable is set)
|
||||
or else within ``.cache/mesa_shader_cache`` within the user's home
|
||||
directory.
|
||||
|
||||
diff --git a/src/util/disk_cache_os.c b/src/util/disk_cache_os.c
|
||||
index 8d6ce428c1823..09051491d332f 100644
|
||||
--- a/src/util/disk_cache_os.c
|
||||
+++ b/src/util/disk_cache_os.c
|
||||
@@ -873,10 +873,15 @@ disk_cache_write_item_to_disk(struct disk_cache_put_job *dc_job,
|
||||
|
||||
/* Determine path for cache based on the first defined name as follows:
|
||||
*
|
||||
- * $MESA_SHADER_CACHE_DIR
|
||||
- * $XDG_CACHE_HOME/mesa_shader_cache
|
||||
- * $HOME/.cache/mesa_shader_cache
|
||||
- * <pwd.pw_dir>/.cache/mesa_shader_cache
|
||||
+ * $MESA_SHADER_CACHE_DIR/mesa_shader_cache*
|
||||
+ * $XDG_CACHE_HOME/mesa_shader_cache*
|
||||
+ * $HOME/.cache/mesa_shader_cache*
|
||||
+ * <pwd.pw_dir>/.cache/mesa_shader_cache*
|
||||
+ *
|
||||
+ * The directory 'mesa_shader_cache*' is named depending of cache type:
|
||||
+ * - For DISK_CACHE_MULTI_FILE: mesa_shader_cache
|
||||
+ * - For DISK_CACHE_SINGLE_FILE: mesa_shader_cache_sf
|
||||
+ * - For DISK_CACHE_DATABASE: mesa_shader_cache_db
|
||||
*/
|
||||
char *
|
||||
disk_cache_generate_cache_dir(void *mem_ctx, const char *gpu_name,
|
||||
--
|
||||
GitLab
|
||||
|
||||
@ -1,144 +0,0 @@
|
||||
From e4eb5e80c316c0af3fff310ca89e1175d81556c1 Mon Sep 17 00:00:00 2001
|
||||
From: Nikita Popov <npopov@redhat.com>
|
||||
Date: Thu, 27 Feb 2025 15:44:27 +0100
|
||||
Subject: [PATCH] clover: Don't include libclc headers
|
||||
|
||||
Per https://github.com/llvm/llvm-project/issues/119967 these
|
||||
headers are internal implementation details of libclc and were
|
||||
never supposed to be installed. They are not available anymore
|
||||
since LLVM 20. Instead opencl-c.h should be used.
|
||||
|
||||
There already ise a code path for including opencl-c.h, so always
|
||||
use it.
|
||||
|
||||
This didn't work for me out of the box, because the build system
|
||||
currently hardcodes the clang resource directory, which is incorrect
|
||||
for Fedora at least. Fix this by using GetResourcePath +
|
||||
CLANG_RESOURCE_DIR provided by clang instead. This is basically
|
||||
the same as what is done in clc_helper.c
|
||||
|
||||
I've still retained the old behavior as a fallback just in case
|
||||
(e.g. if clang is linked statically?)
|
||||
|
||||
Reviewed-by: Karol Herbst <kherbst@redhat.com>
|
||||
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33805>
|
||||
---
|
||||
.../frontends/clover/llvm/invocation.cpp | 53 +++++++++++++------
|
||||
src/gallium/frontends/clover/meson.build | 5 +-
|
||||
2 files changed, 39 insertions(+), 19 deletions(-)
|
||||
|
||||
diff --git a/src/gallium/frontends/clover/llvm/invocation.cpp b/src/gallium/frontends/clover/llvm/invocation.cpp
|
||||
index 3cbb05baecf67..ca030b404d791 100644
|
||||
--- a/src/gallium/frontends/clover/llvm/invocation.cpp
|
||||
+++ b/src/gallium/frontends/clover/llvm/invocation.cpp
|
||||
@@ -24,6 +24,8 @@
|
||||
// OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
|
||||
+#include <dlfcn.h>
|
||||
+
|
||||
#include <llvm/IR/DiagnosticPrinter.h>
|
||||
#include <llvm/IR/DiagnosticInfo.h>
|
||||
#include <llvm/IR/LLVMContext.h>
|
||||
@@ -39,6 +41,8 @@
|
||||
#include <clang/Frontend/TextDiagnosticBuffer.h>
|
||||
#include <clang/Frontend/TextDiagnosticPrinter.h>
|
||||
#include <clang/Basic/TargetInfo.h>
|
||||
+#include <clang/Config/config.h>
|
||||
+#include <clang/Driver/Driver.h>
|
||||
|
||||
#if LLVM_VERSION_MAJOR >= 20
|
||||
#include <llvm/Support/VirtualFileSystem.h>
|
||||
@@ -323,6 +327,30 @@ namespace {
|
||||
return c;
|
||||
}
|
||||
|
||||
+ std::string getResourceDirectory() {
|
||||
+ Dl_info info;
|
||||
+ if (dladdr((void *)clang::CompilerInvocation::CreateFromArgs, &info) == 0) {
|
||||
+ return FALLBACK_CLANG_RESOURCE_DIR;
|
||||
+ }
|
||||
+
|
||||
+ char *libclang_path = realpath(info.dli_fname, NULL);
|
||||
+ if (libclang_path == nullptr) {
|
||||
+ return FALLBACK_CLANG_RESOURCE_DIR;
|
||||
+ }
|
||||
+
|
||||
+ // GetResourcePath is a way to retrieve the actual libclang resource dir based on a given
|
||||
+ // binary or library.
|
||||
+ std::string clang_resource_dir =
|
||||
+#if LLVM_VERSION_MAJOR >= 20
|
||||
+ clang::driver::Driver::GetResourcesPath(std::string(libclang_path));
|
||||
+#else
|
||||
+ clang::driver::Driver::GetResourcesPath(std::string(libclang_path), CLANG_RESOURCE_DIR);
|
||||
+#endif
|
||||
+ free(libclang_path);
|
||||
+
|
||||
+ return clang_resource_dir;
|
||||
+ }
|
||||
+
|
||||
std::unique_ptr<Module>
|
||||
compile(LLVMContext &ctx, clang::CompilerInstance &c,
|
||||
const std::string &name, const std::string &source,
|
||||
@@ -331,25 +359,18 @@ namespace {
|
||||
c.getFrontendOpts().ProgramAction = clang::frontend::EmitLLVMOnly;
|
||||
c.getHeaderSearchOpts().UseBuiltinIncludes = true;
|
||||
c.getHeaderSearchOpts().UseStandardSystemIncludes = true;
|
||||
- c.getHeaderSearchOpts().ResourceDir = CLANG_RESOURCE_DIR;
|
||||
|
||||
- if (use_libclc) {
|
||||
- // Add libclc generic search path
|
||||
- c.getHeaderSearchOpts().AddPath(LIBCLC_INCLUDEDIR,
|
||||
- clang::frontend::Angled,
|
||||
- false, false);
|
||||
+ std::string clang_resource_dir = getResourceDirectory();
|
||||
+ c.getHeaderSearchOpts().ResourceDir = clang_resource_dir;
|
||||
|
||||
- // Add libclc include
|
||||
- c.getPreprocessorOpts().Includes.push_back("clc/clc.h");
|
||||
- } else {
|
||||
- // Add opencl-c generic search path
|
||||
- c.getHeaderSearchOpts().AddPath(CLANG_RESOURCE_DIR,
|
||||
- clang::frontend::Angled,
|
||||
- false, false);
|
||||
+ // Add opencl-c generic search path
|
||||
+ std::string clang_include_path = clang_resource_dir + "/include";
|
||||
+ c.getHeaderSearchOpts().AddPath(clang_include_path,
|
||||
+ clang::frontend::Angled,
|
||||
+ false, false);
|
||||
|
||||
- // Add opencl include
|
||||
- c.getPreprocessorOpts().Includes.push_back("opencl-c.h");
|
||||
- }
|
||||
+ // Add opencl include
|
||||
+ c.getPreprocessorOpts().Includes.push_back("opencl-c.h");
|
||||
|
||||
// Add definition for the OpenCL version
|
||||
const auto dev_version = dev.device_version();
|
||||
diff --git a/src/gallium/frontends/clover/meson.build b/src/gallium/frontends/clover/meson.build
|
||||
index e569b86a1bea7..56a9894f0dbb1 100644
|
||||
--- a/src/gallium/frontends/clover/meson.build
|
||||
+++ b/src/gallium/frontends/clover/meson.build
|
||||
@@ -10,7 +10,6 @@ clover_opencl_cpp_args = [
|
||||
'-DCL_USE_DEPRECATED_OPENCL_2_0_APIS',
|
||||
'-DCL_USE_DEPRECATED_OPENCL_2_1_APIS',
|
||||
'-DCL_USE_DEPRECATED_OPENCL_2_2_APIS',
|
||||
- '-DLIBCLC_INCLUDEDIR="@0@/"'.format(dep_clc.get_variable(pkgconfig : 'includedir')),
|
||||
'-DLIBCLC_LIBEXECDIR="@0@/"'.format(dep_clc.get_variable(pkgconfig : 'libexecdir'))
|
||||
]
|
||||
clover_incs = [inc_include, inc_src, inc_gallium, inc_gallium_aux]
|
||||
@@ -43,9 +42,9 @@ libclllvm = static_library(
|
||||
cpp_args : [
|
||||
clover_cpp_args,
|
||||
clover_opencl_cpp_args,
|
||||
- '-DCLANG_RESOURCE_DIR="@0@"'.format(join_paths(
|
||||
+ '-DFALLBACK_CLANG_RESOURCE_DIR="@0@"'.format(join_paths(
|
||||
dep_llvm.get_variable(cmake : 'LLVM_LIBRARY_DIR', configtool: 'libdir'), 'clang',
|
||||
- dep_llvm.version(), 'include',
|
||||
+ dep_llvm.version()
|
||||
)),
|
||||
],
|
||||
gnu_symbol_visibility : 'hidden',
|
||||
--
|
||||
GitLab
|
||||
|
||||
@ -1,11 +0,0 @@
|
||||
diff -up mesa-22.3.0-rc4/src/util/00-mesa-defaults.conf.dma mesa-22.3.0-rc4/src/util/00-mesa-defaults.conf
|
||||
--- mesa-22.3.0-rc4/src/util/00-mesa-defaults.conf.dma 2022-11-25 10:32:32.175879868 +1000
|
||||
+++ mesa-22.3.0-rc4/src/util/00-mesa-defaults.conf 2022-11-25 10:32:43.743067470 +1000
|
||||
@@ -653,6 +653,7 @@ TODO: document the other workarounds.
|
||||
<application name="gnome-shell" executable="gnome-shell">
|
||||
<option name="adaptive_sync" value="false" />
|
||||
<option name="v3d_nonmsaa_texture_size_limit" value="true" />
|
||||
+ <option name="mesa_glthread" value="false"/>
|
||||
</application>
|
||||
<application name="Desktop — Plasma" executable="plasmashell">
|
||||
<option name="adaptive_sync" value="false" />
|
||||
409
mesa.spec
409
mesa.spec
@ -1,8 +1,8 @@
|
||||
## START: Set by rpmautospec
|
||||
## (rpmautospec version 0.6.5)
|
||||
## (rpmautospec version 0.8.3)
|
||||
## RPMAUTOSPEC: autorelease, autochangelog
|
||||
%define autorelease(e:s:pb:n) %{?-p:0.}%{lua:
|
||||
release_number = 6;
|
||||
release_number = 4;
|
||||
base_release_number = tonumber(rpm.expand("%{?-b*}%{!?-b:1}"));
|
||||
print(release_number + base_release_number - 1);
|
||||
}%{?-e:.%{-e*}}%{?-s:.%{-s*}}%{!?-n:%{?dist}}
|
||||
@ -14,15 +14,14 @@
|
||||
%global with_vmware 1
|
||||
%global with_vulkan_hw 1
|
||||
%global with_vdpau 1
|
||||
%global with_va 1
|
||||
%if !0%{?rhel}
|
||||
%global with_r300 1
|
||||
%global with_r600 1
|
||||
%global with_nine 1
|
||||
%if 0%{?with_vulkan_hw}
|
||||
%global with_nvk %{with_vulkan_hw}
|
||||
%endif
|
||||
%global with_opencl 1
|
||||
%global with_va 1
|
||||
%endif
|
||||
%if !0%{?rhel} || 0%{?rhel} >= 10
|
||||
%global with_nvk %{with_vulkan_hw}
|
||||
%endif
|
||||
%global base_vulkan %{?with_vulkan_hw:,amd}%{!?with_vulkan_hw:%{nil}}
|
||||
%endif
|
||||
@ -34,11 +33,12 @@
|
||||
%endif
|
||||
|
||||
%ifarch %{ix86} x86_64
|
||||
%global with_iris 1
|
||||
%global with_crocus 1
|
||||
%global with_xa 1
|
||||
%global with_intel_clc 1
|
||||
%global with_iris 1
|
||||
%global intel_platform_vulkan %{?with_vulkan_hw:,intel,intel_hasvk}%{!?with_vulkan_hw:%{nil}}
|
||||
%if !0%{?rhel}
|
||||
%global with_i915 1
|
||||
%endif
|
||||
%endif
|
||||
%ifarch x86_64
|
||||
%if !0%{?with_vulkan_hw}
|
||||
@ -48,6 +48,8 @@
|
||||
|
||||
%ifarch aarch64 x86_64 %{ix86}
|
||||
%if !0%{?rhel}
|
||||
%global with_asahi 1
|
||||
%global with_d3d12 1
|
||||
%global with_etnaviv 1
|
||||
%global with_lima 1
|
||||
%global with_tegra 1
|
||||
@ -57,13 +59,16 @@
|
||||
%global with_freedreno 1
|
||||
%global with_kmsro 1
|
||||
%global with_panfrost 1
|
||||
%global with_xa 1
|
||||
%if 0%{?with_asahi}
|
||||
%global asahi_platform_vulkan %{?with_vulkan_hw:,asahi}%{!?with_vulkan_hw:%{nil}}
|
||||
%endif
|
||||
%global extra_platform_vulkan %{?with_vulkan_hw:,broadcom,freedreno,panfrost,imagination-experimental}%{!?with_vulkan_hw:%{nil}}
|
||||
%endif
|
||||
|
||||
%if !0%{?rhel}
|
||||
%global with_libunwind 1
|
||||
%global with_lmsensors 1
|
||||
%global with_virtio 1
|
||||
%endif
|
||||
|
||||
%ifarch %{valgrind_arches}
|
||||
@ -72,12 +77,21 @@
|
||||
%bcond_with valgrind
|
||||
%endif
|
||||
|
||||
%global vulkan_drivers swrast%{?base_vulkan}%{?intel_platform_vulkan}%{?extra_platform_vulkan}%{?with_nvk:,nouveau}
|
||||
%global vulkan_drivers swrast%{?base_vulkan}%{?intel_platform_vulkan}%{?asahi_platform_vulkan}%{?extra_platform_vulkan}%{?with_nvk:,nouveau}%{?with_virtio:,virtio}%{?with_d3d12:,microsoft-experimental}
|
||||
|
||||
%if 0%{?with_nvk} && 0%{?rhel}
|
||||
%global vendor_nvk_crates 1
|
||||
%endif
|
||||
|
||||
# We've gotten a report that enabling LTO for mesa breaks some games. See
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1862771 for details.
|
||||
# Disable LTO for now
|
||||
%global _lto_cflags %nil
|
||||
|
||||
Name: mesa
|
||||
Summary: Mesa graphics libraries
|
||||
%global ver 25.0.7
|
||||
Version: %{lua:ver = string.gsub(rpm.expand("%{ver}"), "-", "~"); print(ver)}
|
||||
%global ver 25.2.7
|
||||
Version: %{gsub %ver - ~}
|
||||
Release: %autorelease
|
||||
License: MIT AND BSD-3-Clause AND SGI-B-2.0
|
||||
URL: http://www.mesa3d.org
|
||||
@ -88,9 +102,14 @@ Source0: https://archive.mesa3d.org/mesa-%{ver}.tar.xz
|
||||
# Fedora opts to ignore the optional part of clause 2 and treat that code as 2 clause BSD.
|
||||
Source1: Mesa-MLAA-License-Clarification-Email.txt
|
||||
|
||||
# meson >= 1.7.0 is required
|
||||
%global meson_ver 1.7.0
|
||||
Source2: https://github.com/mesonbuild/meson/releases/download/%{meson_ver}/meson-%{meson_ver}.tar.gz
|
||||
|
||||
|
||||
# libclc is not available in RHEL but it is required for Intel drivers since
|
||||
# mesa >= 24.1.0
|
||||
%global libclc_version 20.1.3
|
||||
%global libclc_version 21.1.3
|
||||
Source3: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{libclc_version}/libclc-%{libclc_version}.src.tar.xz
|
||||
BuildRequires: libedit-devel
|
||||
BuildRequires: clang-devel >= %{libclc_version}
|
||||
@ -98,8 +117,8 @@ BuildRequires: clang-devel >= %{libclc_version}
|
||||
# BuildRequires: spirv-llvm-translator-tools
|
||||
|
||||
# spirv-llvm-translator is a dependency of libclc
|
||||
%global spirv_llvm_trans_ver 20.1.0
|
||||
%global spirv_llvm_trans_commit 834db1a1985ac36d5a3e1b4b34dc1ca3f919ad5b
|
||||
%global spirv_llvm_trans_ver 21.1.2
|
||||
%global spirv_llvm_trans_commit a37544fc0bb90b4e8b8d755580119c018891dfa4
|
||||
%global spirv_llvm_trans_shortcommit %(c=%{spirv_llvm_trans_commit}; echo ${c:0:7})
|
||||
Source4: https://github.com/KhronosGroup/SPIRV-LLVM-Translator/archive/%{spirv_llvm_trans_commit}/spirv-llvm-translator-%{spirv_llvm_trans_shortcommit}.tar.gz
|
||||
BuildRequires: cmake
|
||||
@ -109,27 +128,32 @@ BuildRequires: spirv-headers-devel
|
||||
BuildRequires: spirv-tools-devel
|
||||
BuildRequires: zlib-devel
|
||||
|
||||
Patch10: gnome-shell-glthread-disable.patch
|
||||
# In CentOS/RHEL, Rust crates required to build NVK are vendored.
|
||||
# The minimum target versions are obtained from the .wrap files
|
||||
# https://gitlab.freedesktop.org/mesa/mesa/-/tree/main/subprojects
|
||||
# but we generally want the latest compatible versions
|
||||
%global rust_paste_ver 1.0.15
|
||||
%global rust_proc_macro2_ver 1.0.101
|
||||
%global rust_quote_ver 1.0.40
|
||||
%global rust_syn_ver 2.0.106
|
||||
%global rust_unicode_ident_ver 1.0.18
|
||||
%global rustc_hash_ver 2.1.1
|
||||
Source10: https://crates.io/api/v1/crates/paste/%{rust_paste_ver}/download#/paste-%{rust_paste_ver}.tar.gz
|
||||
Source11: https://crates.io/api/v1/crates/proc-macro2/%{rust_proc_macro2_ver}/download#/proc-macro2-%{rust_proc_macro2_ver}.tar.gz
|
||||
Source12: https://crates.io/api/v1/crates/quote/%{rust_quote_ver}/download#/quote-%{rust_quote_ver}.tar.gz
|
||||
Source13: https://crates.io/api/v1/crates/syn/%{rust_syn_ver}/download#/syn-%{rust_syn_ver}.tar.gz
|
||||
Source14: https://crates.io/api/v1/crates/unicode-ident/%{rust_unicode_ident_ver}/download#/unicode-ident-%{rust_unicode_ident_ver}.tar.gz
|
||||
Source15: https://crates.io/api/v1/crates/rustc-hash/%{rustc_hash_ver}/download#/rustc-hash-%{rustc_hash_ver}.tar.gz
|
||||
|
||||
# Backport of https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33805
|
||||
# to fix clover with libclc from LLVM 20.
|
||||
Patch20: e4eb5e80c316c0af3fff310ca89e1175d81556c1.patch
|
||||
|
||||
# This patch makes Fedora CI fail and causes issues in QEMU. Revert it until
|
||||
# we find a fix.
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=2360851
|
||||
# https://gitlab.freedesktop.org/mesa/mesa/-/issues/13009
|
||||
Patch40: 0001-Revert-kopper-Explicitly-choose-zink.patch
|
||||
# fix zink/device-select bug
|
||||
Patch11: 0001-device-select-add-a-layer-setting-to-disable-device-.patch
|
||||
Patch12: 0002-zink-use-device-select-layer-settings-to-disable-dev.patch
|
||||
|
||||
# Upstream revert for gtk corruption on haswell
|
||||
Patch50: 0001-Revert-hasvk-elk-stop-turning-load_push_constants-in.patch
|
||||
|
||||
# Backport of https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32886
|
||||
# to fix firefox browser issue with NV dGFX driver
|
||||
Patch60: 32886.patch
|
||||
|
||||
# Fix s390 loop counters
|
||||
Patch70: 0001-gallivm-handle-u8-u16-const-loads-properly-on-big-en.patch
|
||||
# Fix s390x regressions:
|
||||
# https://issues.redhat.com/browse/RHEL-144813
|
||||
Patch13: 0001-gallivm-handle-u16-correct-on-const-loads.patch
|
||||
Patch14: 0001-Revert-dri-fix-__DRI_IMAGE_FORMAT-to-PIPE_FORMAT-map.patch
|
||||
|
||||
BuildRequires: meson
|
||||
BuildRequires: gcc
|
||||
@ -137,6 +161,7 @@ BuildRequires: gcc-c++
|
||||
BuildRequires: gettext
|
||||
%if 0%{?with_hardware}
|
||||
BuildRequires: kernel-headers
|
||||
BuildRequires: systemd-devel
|
||||
%endif
|
||||
# We only check for the minimum version of pkgconfig(libdrm) needed so that the
|
||||
# SRPMs for each arch still have the same build dependencies. See:
|
||||
@ -148,7 +173,6 @@ BuildRequires: pkgconfig(libunwind)
|
||||
BuildRequires: pkgconfig(expat)
|
||||
BuildRequires: pkgconfig(zlib) >= 1.2.3
|
||||
BuildRequires: pkgconfig(libzstd)
|
||||
BuildRequires: pkgconfig(libselinux)
|
||||
BuildRequires: pkgconfig(wayland-scanner)
|
||||
BuildRequires: pkgconfig(wayland-protocols) >= 1.34
|
||||
BuildRequires: pkgconfig(wayland-client) >= 1.11
|
||||
@ -191,7 +215,7 @@ BuildRequires: flatbuffers-devel
|
||||
BuildRequires: flatbuffers-compiler
|
||||
BuildRequires: xtensor-devel
|
||||
%endif
|
||||
%if 0%{?with_opencl} || 0%{?with_nvk} || 0%{?with_intel_clc}
|
||||
%if 0%{?with_opencl} || 0%{?with_nvk} || 0%{?with_asahi} || 0%{?with_panfrost}
|
||||
BuildRequires: clang-devel
|
||||
# Build our own version
|
||||
# BuildRequires: pkgconfig(libclc)
|
||||
@ -200,24 +224,20 @@ BuildRequires: pkgconfig(SPIRV-Tools)
|
||||
%endif
|
||||
%if 0%{?with_opencl} || 0%{?with_nvk}
|
||||
BuildRequires: bindgen
|
||||
BuildRequires: rust-packaging
|
||||
%if 0%{?rhel}
|
||||
BuildRequires: rust-toolset
|
||||
%else
|
||||
BuildRequires: cargo-rpm-macros
|
||||
%endif
|
||||
%endif
|
||||
%if 0%{?with_nvk}
|
||||
BuildRequires: cbindgen
|
||||
BuildRequires: (crate(paste) >= 1.0.14 with crate(paste) < 2)
|
||||
BuildRequires: (crate(proc-macro2) >= 1.0.56 with crate(proc-macro2) < 2)
|
||||
BuildRequires: (crate(quote) >= 1.0.25 with crate(quote) < 2)
|
||||
BuildRequires: (crate(syn/clone-impls) >= 2.0.15 with crate(syn/clone-impls) < 3)
|
||||
BuildRequires: (crate(unicode-ident) >= 1.0.6 with crate(unicode-ident) < 2)
|
||||
%endif
|
||||
%if %{with valgrind}
|
||||
BuildRequires: pkgconfig(valgrind)
|
||||
%endif
|
||||
BuildRequires: python3-devel
|
||||
BuildRequires: python3-mako
|
||||
%if 0%{?with_intel_clc}
|
||||
BuildRequires: python3-ply
|
||||
%endif
|
||||
BuildRequires: python3-pycparser
|
||||
BuildRequires: python3-pyyaml
|
||||
BuildRequires: vulkan-headers
|
||||
@ -225,6 +245,9 @@ BuildRequires: glslang
|
||||
%if 0%{?with_vulkan_hw}
|
||||
BuildRequires: pkgconfig(vulkan)
|
||||
%endif
|
||||
%if 0%{?with_d3d12}
|
||||
BuildRequires: pkgconfig(DirectX-Headers) >= 1.614.1
|
||||
%endif
|
||||
|
||||
%description
|
||||
%{summary}.
|
||||
@ -233,6 +256,8 @@ BuildRequires: pkgconfig(vulkan)
|
||||
Summary: Mesa driver filesystem
|
||||
Provides: mesa-dri-filesystem = %{?epoch:%{epoch}:}%{version}-%{release}
|
||||
Obsoletes: mesa-omx-drivers < %{?epoch:%{epoch}:}%{version}-%{release}
|
||||
Obsoletes: mesa-libd3d < %{?epoch:%{epoch}:}%{version}-%{release}
|
||||
Obsoletes: mesa-libd3d-devel < %{?epoch:%{epoch}:}%{version}-%{release}
|
||||
|
||||
%description filesystem
|
||||
%{summary}.
|
||||
@ -241,6 +266,7 @@ Obsoletes: mesa-omx-drivers < %{?epoch:%{epoch}:}%{version}-%{release}
|
||||
Summary: Mesa libGL runtime libraries
|
||||
Requires: libglvnd-glx%{?_isa} >= 1:1.3.2
|
||||
Requires: %{name}-dri-drivers%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
|
||||
Obsoletes: %{name}-libOSMesa < 25.1.0~rc2-1
|
||||
|
||||
%description libGL
|
||||
%{summary}.
|
||||
@ -252,6 +278,7 @@ Requires: libglvnd-devel%{?_isa} >= 1:1.3.2
|
||||
Provides: libGL-devel
|
||||
Provides: libGL-devel%{?_isa}
|
||||
Recommends: gl-manpages
|
||||
Obsoletes: %{name}-libOSMesa-devel < 25.1.0~rc2-1
|
||||
|
||||
%description libGL-devel
|
||||
%{summary}.
|
||||
@ -307,21 +334,6 @@ Requires: %{name}-filesystem%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{rel
|
||||
%{summary}.
|
||||
%endif
|
||||
|
||||
%package libOSMesa
|
||||
Summary: Mesa offscreen rendering libraries
|
||||
Provides: libOSMesa
|
||||
Provides: libOSMesa%{?_isa}
|
||||
|
||||
%description libOSMesa
|
||||
%{summary}.
|
||||
|
||||
%package libOSMesa-devel
|
||||
Summary: Mesa offscreen rendering development package
|
||||
Requires: %{name}-libOSMesa%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
|
||||
|
||||
%description libOSMesa-devel
|
||||
%{summary}.
|
||||
|
||||
%package libgbm
|
||||
Summary: Mesa gbm runtime library
|
||||
Provides: libgbm
|
||||
@ -344,25 +356,6 @@ Provides: libgbm-devel%{?_isa}
|
||||
%description libgbm-devel
|
||||
%{summary}.
|
||||
|
||||
%if 0%{?with_xa}
|
||||
%package libxatracker
|
||||
Summary: Mesa XA state tracker
|
||||
Provides: libxatracker
|
||||
Provides: libxatracker%{?_isa}
|
||||
|
||||
%description libxatracker
|
||||
%{summary}.
|
||||
|
||||
%package libxatracker-devel
|
||||
Summary: Mesa XA state tracker development package
|
||||
Requires: %{name}-libxatracker%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
|
||||
Provides: libxatracker-devel
|
||||
Provides: libxatracker-devel%{?_isa}
|
||||
|
||||
%description libxatracker-devel
|
||||
%{summary}.
|
||||
%endif
|
||||
|
||||
%if 0%{?with_opencl}
|
||||
%package libOpenCL
|
||||
Summary: Mesa OpenCL runtime library
|
||||
@ -390,19 +383,13 @@ Summary: Mesa TensorFlow Lite delegate
|
||||
%{summary}.
|
||||
%endif
|
||||
|
||||
%if 0%{?with_nine}
|
||||
%package libd3d
|
||||
Summary: Mesa Direct3D9 state tracker
|
||||
%if 0%{?with_d3d12}
|
||||
%package dxil-devel
|
||||
Summary: Mesa SPIR-V to DXIL binary
|
||||
Requires: %{name}-filesystem%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
|
||||
|
||||
%description libd3d
|
||||
%{summary}.
|
||||
|
||||
%package libd3d-devel
|
||||
Summary: Mesa Direct3D9 state tracker development package
|
||||
Requires: %{name}-libd3d%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
|
||||
|
||||
%description libd3d-devel
|
||||
%{summary}.
|
||||
%description dxil-devel
|
||||
Development tools for translating SPIR-V shader code to DXIL for Direct3D 12
|
||||
%endif
|
||||
|
||||
%package vulkan-drivers
|
||||
@ -418,13 +405,67 @@ The drivers with support for the Vulkan API.
|
||||
%autosetup -n %{name}-%{ver} -p1
|
||||
cp %{SOURCE1} docs/
|
||||
|
||||
# Extract meson
|
||||
tar -xvf %{SOURCE2}
|
||||
|
||||
# Extract libclc
|
||||
tar -xvf %{SOURCE3}
|
||||
|
||||
# Extract spirv-llvm-translator
|
||||
tar -xvf %{SOURCE4}
|
||||
|
||||
# Extract Rust crates meson cache directory
|
||||
%if 0%{?vendor_nvk_crates}
|
||||
mkdir subprojects/packagecache/
|
||||
tar -xvf %{SOURCE10} -C subprojects/packagecache/
|
||||
tar -xvf %{SOURCE11} -C subprojects/packagecache/
|
||||
tar -xvf %{SOURCE12} -C subprojects/packagecache/
|
||||
tar -xvf %{SOURCE13} -C subprojects/packagecache/
|
||||
tar -xvf %{SOURCE14} -C subprojects/packagecache/
|
||||
tar -xvf %{SOURCE15} -C subprojects/packagecache/
|
||||
for d in subprojects/packagecache/*-*; do
|
||||
echo '{"files":{}}' > $d/.cargo-checksum.json
|
||||
done
|
||||
%endif
|
||||
|
||||
%if 0%{?with_nvk}
|
||||
cat > Cargo.toml <<_EOF
|
||||
[package]
|
||||
name = "mesa"
|
||||
version = "%{version}"
|
||||
edition = "2021"
|
||||
|
||||
[lib]
|
||||
path = "src/nouveau/nil/lib.rs"
|
||||
|
||||
# only direct dependencies need to be listed here
|
||||
[dependencies]
|
||||
paste = "$(grep ^directory subprojects/paste.wrap | sed 's|.*-||')"
|
||||
syn = { version = "$(grep ^directory subprojects/syn.wrap | sed 's|.*-||')", features = ["clone-impls"] }
|
||||
rustc-hash = "$(grep ^directory subprojects/rustc-hash.wrap | sed 's|.*-||')"
|
||||
_EOF
|
||||
%if 0%{?vendor_nvk_crates}
|
||||
%cargo_prep -v subprojects/packagecache
|
||||
%else
|
||||
%cargo_prep
|
||||
|
||||
%generate_buildrequires
|
||||
%cargo_generate_buildrequires
|
||||
%endif
|
||||
%endif
|
||||
|
||||
|
||||
%build
|
||||
|
||||
# Build meson
|
||||
cd meson-%{meson_ver}
|
||||
%py3_build
|
||||
%py3_install
|
||||
%global __meson %{buildroot}%{_bindir}/meson
|
||||
export PYTHONPATH=%{buildroot}%{python3_sitelib}:%{python3_sitelib}
|
||||
cd -
|
||||
|
||||
|
||||
# Build spirv-llvm-translator
|
||||
cd SPIRV-LLVM-Translator-%{spirv_llvm_trans_commit}
|
||||
%cmake -GNinja \
|
||||
@ -462,47 +503,43 @@ export CFLAGS="%{build_cflags} -D__extern_always_inline=inline"
|
||||
cd -
|
||||
sed -e "s!libexecdir=!libexecdir=\/%{buildroot}!" -i %{buildroot}%{_libdir}/pkgconfig/libclc.pc
|
||||
|
||||
|
||||
# ensure standard Rust compiler flags are set
|
||||
export RUSTFLAGS="%build_rustflags"
|
||||
|
||||
%if 0%{?with_nvk}
|
||||
export MESON_PACKAGE_CACHE_DIR="%{cargo_registry}/"
|
||||
# So... Meson can't actually find them without tweaks
|
||||
%define inst_crate_nameversion() %(basename %{cargo_registry}/%{1}-*)
|
||||
%define rewrite_wrap_file() sed -e "/source.*/d" -e "s/%{1}-.*/%{inst_crate_nameversion %{1}}/" -i subprojects/%{1}.wrap
|
||||
|
||||
%rewrite_wrap_file proc-macro2
|
||||
%rewrite_wrap_file quote
|
||||
%rewrite_wrap_file syn
|
||||
%rewrite_wrap_file unicode-ident
|
||||
%rewrite_wrap_file paste
|
||||
%if !0%{?vendor_nvk_crates}
|
||||
export MESON_PACKAGE_CACHE_DIR="%{cargo_registry}/"
|
||||
%endif
|
||||
rewrite_wrap_file() {
|
||||
sed -e "/source.*/d" -e "s/${1}-.*/$(basename ${MESON_PACKAGE_CACHE_DIR:-subprojects/packagecache}/${1}-*)/" -i subprojects/${1}.wrap
|
||||
}
|
||||
|
||||
# We've gotten a report that enabling LTO for mesa breaks some games. See
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1862771 for details.
|
||||
# Disable LTO for now
|
||||
%define _lto_cflags %{nil}
|
||||
rewrite_wrap_file proc-macro2
|
||||
rewrite_wrap_file quote
|
||||
rewrite_wrap_file syn
|
||||
rewrite_wrap_file unicode-ident
|
||||
rewrite_wrap_file paste
|
||||
rewrite_wrap_file rustc-hash
|
||||
%endif
|
||||
|
||||
%meson \
|
||||
-Dplatforms=x11,wayland \
|
||||
-Dosmesa=true \
|
||||
%if 0%{?with_hardware}
|
||||
-Dgallium-drivers=llvmpipe,virgl,nouveau%{?with_r300:,r300}%{?with_crocus:,crocus}%{?with_i915:,i915}%{?with_iris:,iris}%{?with_vmware:,svga}%{?with_radeonsi:,radeonsi}%{?with_r600:,r600}%{?with_freedreno:,freedreno}%{?with_etnaviv:,etnaviv}%{?with_tegra:,tegra}%{?with_vc4:,vc4}%{?with_v3d:,v3d}%{?with_lima:,lima}%{?with_panfrost:,panfrost}%{?with_vulkan_hw:,zink} \
|
||||
-Dgallium-drivers=llvmpipe,virgl,nouveau%{?with_r300:,r300}%{?with_crocus:,crocus}%{?with_i915:,i915}%{?with_iris:,iris}%{?with_vmware:,svga}%{?with_radeonsi:,radeonsi}%{?with_r600:,r600}%{?with_asahi:,asahi}%{?with_freedreno:,freedreno}%{?with_etnaviv:,etnaviv}%{?with_tegra:,tegra}%{?with_vc4:,vc4}%{?with_v3d:,v3d}%{?with_lima:,lima}%{?with_panfrost:,panfrost}%{?with_vulkan_hw:,zink}%{?with_d3d12:,d3d12} \
|
||||
%else
|
||||
-Dgallium-drivers=llvmpipe,virgl \
|
||||
%endif
|
||||
-Dgallium-vdpau=%{?with_vdpau:enabled}%{!?with_vdpau:disabled} \
|
||||
-Dgallium-va=%{?with_va:enabled}%{!?with_va:disabled} \
|
||||
-Dgallium-xa=%{?with_xa:enabled}%{!?with_xa:disabled} \
|
||||
-Dgallium-nine=%{?with_nine:true}%{!?with_nine:false} \
|
||||
-Dgallium-mediafoundation=disabled \
|
||||
-Dteflon=%{?with_teflon:true}%{!?with_teflon:false} \
|
||||
-Dgallium-opencl=%{?with_opencl:icd}%{!?with_opencl:disabled} \
|
||||
%if 0%{?with_opencl}
|
||||
-Dgallium-rusticl=true \
|
||||
%endif
|
||||
-Dvulkan-drivers=%{?vulkan_drivers} \
|
||||
-Dvulkan-layers=device-select \
|
||||
-Dshared-glapi=enabled \
|
||||
-Dgles1=enabled \
|
||||
-Dgles2=enabled \
|
||||
-Dopengl=true \
|
||||
@ -510,16 +547,12 @@ export MESON_PACKAGE_CACHE_DIR="%{cargo_registry}/"
|
||||
-Dglx=dri \
|
||||
-Degl=enabled \
|
||||
-Dglvnd=enabled \
|
||||
%if 0%{?with_intel_clc}
|
||||
-Dintel-clc=enabled \
|
||||
%endif
|
||||
-Dintel-rt=%{?with_intel_vk_rt:enabled}%{!?with_intel_vk_rt:disabled} \
|
||||
-Dmicrosoft-clc=disabled \
|
||||
-Dllvm=enabled \
|
||||
-Dshared-llvm=enabled \
|
||||
-Dvalgrind=%{?with_valgrind:enabled}%{!?with_valgrind:disabled} \
|
||||
-Dbuild-tests=false \
|
||||
-Dselinux=true \
|
||||
%if !0%{?with_libunwind}
|
||||
-Dlibunwind=disabled \
|
||||
%endif
|
||||
@ -533,8 +566,31 @@ export MESON_PACKAGE_CACHE_DIR="%{cargo_registry}/"
|
||||
%{nil}
|
||||
%meson_build
|
||||
|
||||
%if 0%{?with_nvk}
|
||||
%cargo_license_summary
|
||||
%{cargo_license} > LICENSE.dependencies
|
||||
%if 0%{?vendor_nvk_crates}
|
||||
%cargo_vendor_manifest
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%install
|
||||
cd meson-%{meson_ver}
|
||||
%py3_install
|
||||
%global __meson %{buildroot}%{_bindir}/meson
|
||||
export PYTHONPATH=%{buildroot}%{python3_sitelib}:%{python3_sitelib}
|
||||
cd -
|
||||
|
||||
%meson_install
|
||||
# Delete files installed by meson
|
||||
rm -f %{buildroot}%{_bindir}/meson
|
||||
rm -rf %{buildroot}%{_mandir}/man1/meson.1*
|
||||
rm -f %{buildroot}%{_datadir}/polkit-1/actions/com.mesonbuild.install.policy
|
||||
rm -f %{buildroot}%{_datadir}/bash-completion/completions/meson
|
||||
rm -f %{buildroot}%{_datadir}/zsh/site-functions/_meson
|
||||
rm -rf %{buildroot}%{python3_sitelib}
|
||||
|
||||
|
||||
|
||||
# Delete files installed by libclc
|
||||
rm -fr %{buildroot}%{_libdir}/clc
|
||||
@ -549,19 +605,26 @@ rm -f %{buildroot}%{_libdir}/pkgconfig/LLVMSPIRVLib.pc
|
||||
|
||||
# libvdpau opens the versioned name, don't bother including the unversioned
|
||||
rm -vf %{buildroot}%{_libdir}/vdpau/*.so
|
||||
|
||||
# likewise glvnd
|
||||
rm -vf %{buildroot}%{_libdir}/libGLX_mesa.so
|
||||
rm -vf %{buildroot}%{_libdir}/libEGL_mesa.so
|
||||
# XXX can we just not build this
|
||||
rm -vf %{buildroot}%{_libdir}/libGLES*
|
||||
|
||||
%if ! 0%{?with_asahi}
|
||||
# This symlink is unconditionally created when any kmsro driver is enabled
|
||||
# We don't want this one so delete it
|
||||
rm -vf %{buildroot}%{_libdir}/dri/apple_dri.so
|
||||
%endif
|
||||
|
||||
# glvnd needs a default provider for indirect rendering where it cannot
|
||||
# determine the vendor
|
||||
ln -s %{_libdir}/libGLX_mesa.so.0 %{buildroot}%{_libdir}/libGLX_system.so.0
|
||||
|
||||
# this keeps breaking, check it early. note that the exit from eu-ftr is odd.
|
||||
pushd %{buildroot}%{_libdir}
|
||||
for i in libOSMesa*.so libGL.so ; do
|
||||
for i in libGL.so ; do
|
||||
eu-findtextrel $i && exit 1
|
||||
done
|
||||
popd
|
||||
@ -588,39 +651,15 @@ popd
|
||||
%{_includedir}/EGL/eglext_angle.h
|
||||
%{_includedir}/EGL/eglmesaext.h
|
||||
|
||||
%files libOSMesa
|
||||
%{_libdir}/libOSMesa.so.8*
|
||||
%files libOSMesa-devel
|
||||
%dir %{_includedir}/GL
|
||||
%{_includedir}/GL/osmesa.h
|
||||
%{_libdir}/libOSMesa.so
|
||||
%{_libdir}/pkgconfig/osmesa.pc
|
||||
|
||||
%files libgbm
|
||||
%{_libdir}/libgbm.so.1
|
||||
%{_libdir}/libgbm.so.1.*
|
||||
%files libgbm-devel
|
||||
%{_libdir}/libgbm.so
|
||||
%{_includedir}/gbm.h
|
||||
%{_includedir}/gbm_backend_abi.h
|
||||
%{_libdir}/pkgconfig/gbm.pc
|
||||
|
||||
%if 0%{?with_xa}
|
||||
%files libxatracker
|
||||
%if 0%{?with_hardware}
|
||||
%{_libdir}/libxatracker.so.2
|
||||
%{_libdir}/libxatracker.so.2.*
|
||||
%endif
|
||||
|
||||
%files libxatracker-devel
|
||||
%if 0%{?with_hardware}
|
||||
%{_libdir}/libxatracker.so
|
||||
%{_includedir}/xa_tracker.h
|
||||
%{_includedir}/xa_composite.h
|
||||
%{_includedir}/xa_context.h
|
||||
%{_libdir}/pkgconfig/xatracker.pc
|
||||
%endif
|
||||
%endif
|
||||
|
||||
%if 0%{?with_teflon}
|
||||
%files libTeflon
|
||||
%{_libdir}/libteflon.so
|
||||
@ -628,27 +667,13 @@ popd
|
||||
|
||||
%if 0%{?with_opencl}
|
||||
%files libOpenCL
|
||||
%{_libdir}/libMesaOpenCL.so.*
|
||||
%{_libdir}/libRusticlOpenCL.so.*
|
||||
%{_sysconfdir}/OpenCL/vendors/mesa.icd
|
||||
%{_sysconfdir}/OpenCL/vendors/rusticl.icd
|
||||
|
||||
%files libOpenCL-devel
|
||||
%{_libdir}/libMesaOpenCL.so
|
||||
%{_libdir}/libRusticlOpenCL.so
|
||||
%endif
|
||||
|
||||
%if 0%{?with_nine}
|
||||
%files libd3d
|
||||
%dir %{_libdir}/d3d/
|
||||
%{_libdir}/d3d/*.so.*
|
||||
|
||||
%files libd3d-devel
|
||||
%{_libdir}/pkgconfig/d3d.pc
|
||||
%{_includedir}/d3dadapter/
|
||||
%{_libdir}/d3d/*.so
|
||||
%endif
|
||||
|
||||
%files dri-drivers
|
||||
%{_datadir}/drirc.d/00-mesa-defaults.conf
|
||||
%{_libdir}/libgallium-*.so
|
||||
@ -671,8 +696,18 @@ popd
|
||||
%ifarch %{ix86} x86_64
|
||||
%{_libdir}/dri/crocus_dri.so
|
||||
%{_libdir}/dri/iris_dri.so
|
||||
%if 0%{?with_i915}
|
||||
%{_libdir}/dri/i915_dri.so
|
||||
%endif
|
||||
%endif
|
||||
%ifarch aarch64 x86_64 %{ix86}
|
||||
%if 0%{?with_asahi}
|
||||
%{_libdir}/dri/apple_dri.so
|
||||
%{_libdir}/dri/asahi_dri.so
|
||||
%endif
|
||||
%if 0%{?with_d3d12}
|
||||
%{_libdir}/dri/d3d12_dri.so
|
||||
%endif
|
||||
%{_libdir}/dri/ingenic-drm_dri.so
|
||||
%{_libdir}/dri/imx-drm_dri.so
|
||||
%{_libdir}/dri/imx-lcdif_dri.so
|
||||
@ -712,10 +747,6 @@ popd
|
||||
%{_libdir}/dri/vmwgfx_dri.so
|
||||
%endif
|
||||
%endif
|
||||
%if 0%{?with_opencl}
|
||||
%dir %{_libdir}/gallium-pipe
|
||||
%{_libdir}/gallium-pipe/*.so
|
||||
%endif
|
||||
%if 0%{?with_kmsro}
|
||||
%{_libdir}/dri/armada-drm_dri.so
|
||||
%{_libdir}/dri/exynos_dri.so
|
||||
@ -757,6 +788,9 @@ popd
|
||||
%if 0%{?with_radeonsi}
|
||||
%{_libdir}/dri/radeonsi_drv_video.so
|
||||
%endif
|
||||
%if 0%{?with_d3d12}
|
||||
%{_libdir}/dri/d3d12_drv_video.so
|
||||
%endif
|
||||
%{_libdir}/dri/virtio_gpu_drv_video.so
|
||||
%endif
|
||||
|
||||
@ -770,14 +804,34 @@ popd
|
||||
%if 0%{?with_radeonsi}
|
||||
%{_libdir}/vdpau/libvdpau_radeonsi.so.1*
|
||||
%endif
|
||||
%if 0%{?with_d3d12}
|
||||
%{_libdir}/vdpau/libvdpau_d3d12.so.1*
|
||||
%endif
|
||||
%{_libdir}/vdpau/libvdpau_virtio_gpu.so.1*
|
||||
%endif
|
||||
|
||||
%if 0%{?with_d3d12}
|
||||
%files dxil-devel
|
||||
%{_bindir}/spirv2dxil
|
||||
%{_libdir}/libspirv_to_dxil.a
|
||||
%{_libdir}/libspirv_to_dxil.so
|
||||
%endif
|
||||
|
||||
%files vulkan-drivers
|
||||
%if 0%{?with_nvk}
|
||||
%license LICENSE.dependencies
|
||||
%if 0%{?vendor_nvk_crates}
|
||||
%license cargo-vendor.txt
|
||||
%endif
|
||||
%endif
|
||||
%{_libdir}/libvulkan_lvp.so
|
||||
%{_datadir}/vulkan/icd.d/lvp_icd.*.json
|
||||
%{_libdir}/libVkLayer_MESA_device_select.so
|
||||
%{_datadir}/vulkan/implicit_layer.d/VkLayer_MESA_device_select.json
|
||||
%if 0%{?with_virtio}
|
||||
%{_libdir}/libvulkan_virtio.so
|
||||
%{_datadir}/vulkan/icd.d/virtio_icd.*.json
|
||||
%endif
|
||||
%if 0%{?with_vulkan_hw}
|
||||
%{_libdir}/libvulkan_radeon.so
|
||||
%{_datadir}/drirc.d/00-radv-defaults.conf
|
||||
@ -786,6 +840,10 @@ popd
|
||||
%{_libdir}/libvulkan_nouveau.so
|
||||
%{_datadir}/vulkan/icd.d/nouveau_icd.*.json
|
||||
%endif
|
||||
%if 0%{?with_d3d12}
|
||||
%{_libdir}/libvulkan_dzn.so
|
||||
%{_datadir}/vulkan/icd.d/dzn_icd.*.json
|
||||
%endif
|
||||
%ifarch %{ix86} x86_64
|
||||
%{_libdir}/libvulkan_intel.so
|
||||
%{_datadir}/vulkan/icd.d/intel_icd.*.json
|
||||
@ -793,6 +851,10 @@ popd
|
||||
%{_datadir}/vulkan/icd.d/intel_hasvk_icd.*.json
|
||||
%endif
|
||||
%ifarch aarch64 x86_64 %{ix86}
|
||||
%if 0%{?with_asahi}
|
||||
%{_libdir}/libvulkan_asahi.so
|
||||
%{_datadir}/vulkan/icd.d/asahi_icd.*.json
|
||||
%endif
|
||||
%{_libdir}/libvulkan_broadcom.so
|
||||
%{_datadir}/vulkan/icd.d/broadcom_icd.*.json
|
||||
%{_libdir}/libvulkan_freedreno.so
|
||||
@ -807,15 +869,33 @@ popd
|
||||
|
||||
%changelog
|
||||
## START: Generated by rpmautospec
|
||||
* Thu Oct 23 2025 José Expósito <jexposit@redhat.com> - 25.0.7-6
|
||||
- Rebuild for mesa-25.0.7-6.el10_1
|
||||
* Mon Feb 23 2026 José Expósito <jexposit@redhat.com> - 25.2.7-4
|
||||
- Fix s390x regressions
|
||||
|
||||
* Thu Oct 23 2025 José Expósito <jexposit@redhat.com> - 25.0.7-5
|
||||
- Rebuild for mesa-25.0.7-5.el10_1
|
||||
* Wed Jan 28 2026 José Expósito <jexposit@redhat.com> - 25.2.7-3
|
||||
- Enable va-driver only in Fedora
|
||||
|
||||
* Tue Oct 21 2025 Dave Airlie <airlied@redhat.com> - 25.0.7-4
|
||||
* Fri Jan 23 2026 José Expósito <jexposit@redhat.com> - 25.2.7-2
|
||||
- Rebuild mesa with LLVM 21
|
||||
|
||||
* Mon Dec 01 2025 Mika Penttilä <mika.penttila@redhat.com> - 25.2.7-1
|
||||
- Update to 25.2.7
|
||||
|
||||
* Thu Nov 20 2025 Pavel Raiskup <praiskup@redhat.com> - 25.2.5-3
|
||||
- Bump release after rpmautospec re-init
|
||||
|
||||
* Tue Nov 18 2025 José Expósito <jose.exposito@redhat.com> - 25.2.5-2
|
||||
- Disable LTO globally
|
||||
|
||||
* Tue Nov 04 2025 Mika Penttilä <mika.penttila@redhat.com> - 25.2.5-1
|
||||
- Update to 25.2.5
|
||||
|
||||
* Fri Sep 26 2025 Dave Airlie <airlied@redhat.com> - 25.0.7-5
|
||||
- fix llvmpipe constant loads on s390x
|
||||
|
||||
* Wed Aug 20 2025 José Expósito <jexposit@redhat.com> - 25.0.7-4
|
||||
- Enable NVK driver
|
||||
|
||||
* Thu Jul 17 2025 Tomas Pelka <tpelka@redhat.com> - 25.0.7-3
|
||||
- Rebuild for mesa-25.0.7-3.el10
|
||||
|
||||
@ -1978,4 +2058,5 @@ popd
|
||||
|
||||
* Tue May 01 2018 Peter Robinson <pbrobinson@gmail.com> - 18.0.2-2
|
||||
- RPMAUTOSPEC: unresolvable merge
|
||||
|
||||
## END: Generated by rpmautospec
|
||||
|
||||
13
sources
13
sources
@ -1,3 +1,10 @@
|
||||
SHA512 (libclc-20.1.3.src.tar.xz) = ab6fb0dd0250ab9087b84cf6ec253473cdbcf473e24b626509f1aca1893718608ba31902fa6925ec99f64b1b06d60d49fecb2138c72c8aec433c124c57efad57
|
||||
SHA512 (mesa-25.0.7.tar.xz) = 825bbd8bc5507de147488519786c0200afacf97dae621c80ead24b2c5dd55c5a442757ac8452698ae611e9344025465080795cf8f2dc4eb7ce07b5cc521b2b5c
|
||||
SHA512 (spirv-llvm-translator-834db1a.tar.gz) = 4fb522087728a76204d1db9fb782afbe9475e57135d56d4b694d111aa1092febebd829fe42007d2e15e2c9bd1222bab6c48e89181fc5bdae7f3628fdf7ad74ac
|
||||
SHA512 (libclc-21.1.3.src.tar.xz) = daf38b915bcc8065c56a581ccbca90ccc0d41a54489392a2ae6ec3e0a8782ea231bc6edb9624cd879d698074017ee3c1d2b038e388cb75ea08a80ee3e27a57d1
|
||||
SHA512 (mesa-25.2.7.tar.xz) = 87dd815e0d11d6ec0eb969ee93d3f376103bb899d90599e0b7902394e41c58139384df79f89633e132ca969348d3320f55308a74651d409b454d51f1bcda27bc
|
||||
SHA512 (meson-1.7.0.tar.gz) = a5d1f00b193ca37ae64f85c9dfc29a2661c167d82d9953b9acd1393b222b05fa5fc03ffdf00fd1ae7a2014da3a7366c35f70bf02e3204e929b74f7b00c17c840
|
||||
SHA512 (paste-1.0.15.tar.gz) = 5026d3ec7141ec4e2517a0b1283912d0801e9356f77b703d954b379439b8d85e3886d42fb28f7835edaeeac465582da14233564fb010c71425a59c9e1cbd46b4
|
||||
SHA512 (proc-macro2-1.0.101.tar.gz) = 3171c807d24371da2931f9c706fb3129bb9bf3ac40418e5d14cfc372baf96e5fee9ede72091163858e3ba0b4f88594efa1031b0bb7128ca68e7b847dead6856c
|
||||
SHA512 (quote-1.0.40.tar.gz) = 45a76e22a2b0bec47e4ba73c3b73cc41d821dfcce9876134c5d8eed514da214aee4ce7612e372c8709f888c0d8b9b7e5442f27adb7a59f3571f0339ed7e2ac99
|
||||
SHA512 (rustc-hash-2.1.1.tar.gz) = 87097d98d47f327d000041ab13acddc366f1500d9c3e5c82169c3358112c7a7c03701c9b3c2c81d9f9da65b7ebac1c479b179dfaf7c059cd0b929b4673e51084
|
||||
SHA512 (spirv-llvm-translator-a37544f.tar.gz) = 9e790322beead5fd2934140e8f4870978a860fe03aaffd042ff74578b76f7f404dcd0dbaea1d6ee2a408b477e5de9819910a5b86ce4ba8a018e21b7d60ed5e97
|
||||
SHA512 (syn-2.0.106.tar.gz) = e07e1058770fa3f1039eaf335340cefb597c0dd11bb90fec9fa777ca5815d0e0bb1711bb4db52cac77e205dd68fbe2bce0e1aa9895c2a52a1ea6d7758d13424c
|
||||
SHA512 (unicode-ident-1.0.18.tar.gz) = d11f89fb696f9e2953c96a40b5478832651b268c83b9c7a700b07e768e795d6e8dc346597d1226df21219d36866768d1f640bd8edb68db8bd3d5d437b2bfd324
|
||||
|
||||
Loading…
Reference in New Issue
Block a user