1
0
forked from rpms/mesa

import mesa-22.3.0-2.el8

This commit is contained in:
CentOS Sources 2023-05-16 06:07:52 +00:00 committed by root
parent bc7168da44
commit f9b2a21c37
10 changed files with 86 additions and 429 deletions

2
.gitignore vendored
View File

@ -1 +1 @@
SOURCES/mesa-22.1.5.tar.xz SOURCES/mesa-22.3.0.tar.xz

View File

@ -1 +1 @@
cb065a8f49cab1c765943fc3c83502e5798e8cd0 SOURCES/mesa-22.1.5.tar.xz 331db7d4590f10c99b79e801bb40fa6de491d572 SOURCES/mesa-22.3.0.tar.xz

View File

@ -0,0 +1,27 @@
From 808c054a42fd24a1aaefaeb1d95195fea9fb6e84 Mon Sep 17 00:00:00 2001
From: Dave Airlie <airlied@redhat.com>
Date: Wed, 7 Dec 2022 05:11:47 +1000
Subject: [PATCH] glx: fix xshm check to init xshm_opcode.
Found and proposed by Ray Strode (halfline)
Fixes: 68e89401140d ("glx/drisw: use xcb instead of X to query connection")
---
src/glx/drisw_glx.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/glx/drisw_glx.c b/src/glx/drisw_glx.c
index c0d1e85fdc4..d7658eaf7c1 100644
--- a/src/glx/drisw_glx.c
+++ b/src/glx/drisw_glx.c
@@ -874,6 +874,7 @@ check_xshm(Display *dpy)
shm_cookie = xcb_query_extension(c, 7, "MIT-SHM");
shm_reply = xcb_query_extension_reply(c, shm_cookie, NULL);
+ xshm_opcode = shm_reply->major_opcode;
has_mit_shm = shm_reply->present;
free(shm_reply);
--
2.38.1

View File

@ -1,39 +0,0 @@
From 0db29ee48d4f4fd0858bcf7def39926e2ee19d63 Mon Sep 17 00:00:00 2001
From: Dave Airlie <airlied@redhat.com>
Date: Thu, 1 Sep 2022 11:37:27 +1000
Subject: [PATCH] llvmpipe: finish rendering before flushing frontbuffer
resources.
Fixes misrendering on front with mesa demos
---
src/gallium/drivers/llvmpipe/lp_screen.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/gallium/drivers/llvmpipe/lp_screen.c b/src/gallium/drivers/llvmpipe/lp_screen.c
index 333d7695ee7..0fcbcccedd2 100644
--- a/src/gallium/drivers/llvmpipe/lp_screen.c
+++ b/src/gallium/drivers/llvmpipe/lp_screen.c
@@ -51,6 +51,7 @@
#include "lp_limits.h"
#include "lp_rast.h"
#include "lp_cs_tpool.h"
+#include "lp_flush.h"
#include "frontend/sw_winsys.h"
@@ -835,8 +836,11 @@ llvmpipe_flush_frontbuffer(struct pipe_screen *_screen,
struct llvmpipe_resource *texture = llvmpipe_resource(resource);
assert(texture->dt);
- if (texture->dt)
+
+ if (texture->dt) {
+ llvmpipe_flush_resource(_pipe, resource, 0, true, true, false, "frontbuffer");
winsys->displaytarget_display(winsys, texture->dt, context_private, sub_box);
+ }
}
static void
--
2.31.1

View File

@ -1,229 +0,0 @@
From 64e7c42f1b68250d2280320e01da2f5a0c4b07eb Mon Sep 17 00:00:00 2001
From: Dave Airlie <airlied@redhat.com>
Date: Fri, 22 Jul 2022 11:12:58 +1000
Subject: [PATCH 1/2] llvmpipe: make last_fence a screen/rast object not a
context one.
When a flush happens the per-context setup is used to hold the fence
for the last scene sent to the rasterizer. However when multiple
contexts are in use, this fence won't get returned to be blocked on.
Instead move the last fence to the rasterizer object, and return
that instead as it should be valid across contexts.
Fixes gtk4 bugs on llvmpipe since overlapping vertex/fragment.
Fixes: 6bbbe15a783a ("Reinstate: llvmpipe: allow vertex processing and fragment processing in parallel")
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17702>
---
src/gallium/drivers/llvmpipe/lp_flush.c | 12 ++++++---
src/gallium/drivers/llvmpipe/lp_rast.c | 14 +++++++++-
src/gallium/drivers/llvmpipe/lp_rast.h | 3 ++-
src/gallium/drivers/llvmpipe/lp_rast_priv.h | 2 ++
src/gallium/drivers/llvmpipe/lp_setup.c | 26 +++++--------------
src/gallium/drivers/llvmpipe/lp_setup.h | 1 -
.../drivers/llvmpipe/lp_setup_context.h | 1 -
7 files changed, 33 insertions(+), 26 deletions(-)
diff --git a/src/gallium/drivers/llvmpipe/lp_flush.c b/src/gallium/drivers/llvmpipe/lp_flush.c
index c231f334eaf..c72944232e7 100644
--- a/src/gallium/drivers/llvmpipe/lp_flush.c
+++ b/src/gallium/drivers/llvmpipe/lp_flush.c
@@ -38,7 +38,9 @@
#include "lp_flush.h"
#include "lp_context.h"
#include "lp_setup.h"
-
+#include "lp_fence.h"
+#include "lp_screen.h"
+#include "lp_rast.h"
/**
* \param fence if non-null, returns pointer to a fence which can be waited on
@@ -49,11 +51,15 @@ llvmpipe_flush( struct pipe_context *pipe,
const char *reason)
{
struct llvmpipe_context *llvmpipe = llvmpipe_context(pipe);
-
+ struct llvmpipe_screen *screen = llvmpipe_screen(pipe->screen);
draw_flush(llvmpipe->draw);
/* ask the setup module to flush */
- lp_setup_flush(llvmpipe->setup, fence, reason);
+ lp_setup_flush(llvmpipe->setup, reason);
+
+ lp_rast_fence(screen->rast, (struct lp_fence **)fence);
+ if (fence && (!*fence))
+ *fence = (struct pipe_fence_handle *)lp_fence_create(0);
/* Enable to dump BMPs of the color/depth buffers each frame */
if (0) {
diff --git a/src/gallium/drivers/llvmpipe/lp_rast.c b/src/gallium/drivers/llvmpipe/lp_rast.c
index e27d78a3432..6cdaa51b62d 100644
--- a/src/gallium/drivers/llvmpipe/lp_rast.c
+++ b/src/gallium/drivers/llvmpipe/lp_rast.c
@@ -47,6 +47,7 @@
#include "gallivm/lp_bld_format.h"
#include "gallivm/lp_bld_debug.h"
#include "lp_scene.h"
+#include "lp_screen.h"
#include "lp_tex_sample.h"
@@ -1128,6 +1129,10 @@ lp_rast_queue_scene( struct lp_rasterizer *rast,
{
LP_DBG(DEBUG_SETUP, "%s\n", __FUNCTION__);
+ lp_fence_reference(&rast->last_fence, scene->fence);
+ if (rast->last_fence)
+ rast->last_fence->issued = TRUE;
+
if (rast->num_threads == 0) {
/* no threading */
unsigned fpstate = util_fpstate_get();
@@ -1384,6 +1389,8 @@ void lp_rast_destroy( struct lp_rasterizer *rast )
align_free(rast->tasks[i].thread_data.cache);
}
+ lp_fence_reference(&rast->last_fence, NULL);
+
/* for synchronizing rasterization threads */
if (rast->num_threads > 0) {
util_barrier_destroy( &rast->barrier );
@@ -1394,4 +1401,9 @@ void lp_rast_destroy( struct lp_rasterizer *rast )
FREE(rast);
}
-
+void lp_rast_fence(struct lp_rasterizer *rast,
+ struct lp_fence **fence)
+{
+ if (fence)
+ lp_fence_reference((struct lp_fence **)fence, rast->last_fence);
+}
diff --git a/src/gallium/drivers/llvmpipe/lp_rast.h b/src/gallium/drivers/llvmpipe/lp_rast.h
index 14a2710f7f5..1756345737f 100644
--- a/src/gallium/drivers/llvmpipe/lp_rast.h
+++ b/src/gallium/drivers/llvmpipe/lp_rast.h
@@ -388,5 +388,6 @@ lp_debug_draw_bins_by_cmd_length( struct lp_scene *scene );
void
lp_debug_draw_bins_by_coverage( struct lp_scene *scene );
-
+void lp_rast_fence(struct lp_rasterizer *rast,
+ struct lp_fence **fence);
#endif
diff --git a/src/gallium/drivers/llvmpipe/lp_rast_priv.h b/src/gallium/drivers/llvmpipe/lp_rast_priv.h
index c4da9cca2ff..8b28893aa22 100644
--- a/src/gallium/drivers/llvmpipe/lp_rast_priv.h
+++ b/src/gallium/drivers/llvmpipe/lp_rast_priv.h
@@ -129,6 +129,8 @@ struct lp_rasterizer
/** For synchronizing the rasterization threads */
util_barrier barrier;
+
+ struct lp_fence *last_fence;
};
void
diff --git a/src/gallium/drivers/llvmpipe/lp_setup.c b/src/gallium/drivers/llvmpipe/lp_setup.c
index ce681792683..ad92e2557c2 100644
--- a/src/gallium/drivers/llvmpipe/lp_setup.c
+++ b/src/gallium/drivers/llvmpipe/lp_setup.c
@@ -207,11 +207,6 @@ lp_setup_rasterize_scene( struct lp_setup_context *setup )
lp_scene_end_binning(scene);
- lp_fence_reference(&setup->last_fence, scene->fence);
-
- if (setup->last_fence)
- setup->last_fence->issued = TRUE;
-
mtx_lock(&screen->rast_mutex);
lp_rast_queue_scene(screen->rast, scene);
mtx_unlock(&screen->rast_mutex);
@@ -387,17 +382,10 @@ fail:
void
-lp_setup_flush( struct lp_setup_context *setup,
- struct pipe_fence_handle **fence,
- const char *reason)
+lp_setup_flush(struct lp_setup_context *setup,
+ const char *reason)
{
- set_scene_state( setup, SETUP_FLUSHED, reason );
-
- if (fence) {
- lp_fence_reference((struct lp_fence **)fence, setup->last_fence);
- if (!*fence)
- *fence = (struct pipe_fence_handle *)lp_fence_create(0);
- }
+ set_scene_state(setup, SETUP_FLUSHED, reason);
}
@@ -571,7 +559,7 @@ lp_setup_clear( struct lp_setup_context *setup,
if (flags & PIPE_CLEAR_DEPTHSTENCIL) {
unsigned flagszs = flags & PIPE_CLEAR_DEPTHSTENCIL;
if (!lp_setup_try_clear_zs(setup, depth, stencil, flagszs)) {
- lp_setup_flush(setup, NULL, __FUNCTION__);
+ set_scene_state( setup, SETUP_FLUSHED, __FUNCTION__ );
if (!lp_setup_try_clear_zs(setup, depth, stencil, flagszs))
assert(0);
@@ -583,7 +571,7 @@ lp_setup_clear( struct lp_setup_context *setup,
for (i = 0; i < setup->fb.nr_cbufs; i++) {
if ((flags & (1 << (2 + i))) && setup->fb.cbufs[i]) {
if (!lp_setup_try_clear_color_buffer(setup, color, i)) {
- lp_setup_flush(setup, NULL, __FUNCTION__);
+ set_scene_state( setup, SETUP_FLUSHED, __FUNCTION__ );
if (!lp_setup_try_clear_color_buffer(setup, color, i))
assert(0);
@@ -1589,7 +1577,6 @@ lp_setup_destroy( struct lp_setup_context *setup )
LP_DBG(DEBUG_SETUP, "number of scenes used: %d\n", setup->num_active_scenes);
slab_destroy(&setup->scene_slab);
- lp_fence_reference(&setup->last_fence, NULL);
FREE( setup );
}
@@ -1758,7 +1745,8 @@ lp_setup_end_query(struct lp_setup_context *setup, struct llvmpipe_query *pq)
}
}
else {
- lp_fence_reference(&pq->fence, setup->last_fence);
+ struct llvmpipe_screen *screen = llvmpipe_screen(setup->pipe->screen);
+ lp_rast_fence(screen->rast, &pq->fence);
}
fail:
diff --git a/src/gallium/drivers/llvmpipe/lp_setup.h b/src/gallium/drivers/llvmpipe/lp_setup.h
index 5ecef123417..fe360be63ca 100644
--- a/src/gallium/drivers/llvmpipe/lp_setup.h
+++ b/src/gallium/drivers/llvmpipe/lp_setup.h
@@ -64,7 +64,6 @@ lp_setup_clear(struct lp_setup_context *setup,
void
lp_setup_flush( struct lp_setup_context *setup,
- struct pipe_fence_handle **fence,
const char *reason);
diff --git a/src/gallium/drivers/llvmpipe/lp_setup_context.h b/src/gallium/drivers/llvmpipe/lp_setup_context.h
index 420b78e2f52..fac84fb56ec 100644
--- a/src/gallium/drivers/llvmpipe/lp_setup_context.h
+++ b/src/gallium/drivers/llvmpipe/lp_setup_context.h
@@ -96,7 +96,6 @@ struct lp_setup_context
struct lp_scene *scenes[MAX_SCENES]; /**< all the scenes */
struct lp_scene *scene; /**< current scene being built */
- struct lp_fence *last_fence;
struct llvmpipe_query *active_queries[LP_MAX_ACTIVE_BINNED_QUERIES];
unsigned active_binned_queries;
--
2.37.1

View File

@ -1,145 +0,0 @@
From af0e5160c4d81beed879b4669b7f3bb875056d1e Mon Sep 17 00:00:00 2001
From: Dave Airlie <airlied@redhat.com>
Date: Mon, 25 Jul 2022 13:28:08 +1000
Subject: [PATCH 2/2] llvmpipe: keep context list and use to track resource
usage.
Just check across all contexts if a resource is referenced.
Fixes: 6bbbe15a783a ("Reinstate: llvmpipe: allow vertex processing and fragment processing in parallel")
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17702>
---
src/gallium/drivers/llvmpipe/lp_context.c | 12 ++++++++++--
src/gallium/drivers/llvmpipe/lp_context.h | 2 ++
src/gallium/drivers/llvmpipe/lp_flush.c | 10 ++++++----
src/gallium/drivers/llvmpipe/lp_screen.c | 2 ++
src/gallium/drivers/llvmpipe/lp_screen.h | 4 ++++
5 files changed, 24 insertions(+), 6 deletions(-)
diff --git a/src/gallium/drivers/llvmpipe/lp_context.c b/src/gallium/drivers/llvmpipe/lp_context.c
index 8038e219015..3cce460f213 100644
--- a/src/gallium/drivers/llvmpipe/lp_context.c
+++ b/src/gallium/drivers/llvmpipe/lp_context.c
@@ -57,8 +57,12 @@
static void llvmpipe_destroy( struct pipe_context *pipe )
{
struct llvmpipe_context *llvmpipe = llvmpipe_context( pipe );
+ struct llvmpipe_screen *lp_screen = llvmpipe_screen(pipe->screen);
uint i;
+ mtx_lock(&lp_screen->ctx_mutex);
+ list_del(&llvmpipe->list);
+ mtx_unlock(&lp_screen->ctx_mutex);
lp_print_counters();
if (llvmpipe->csctx) {
@@ -189,8 +193,9 @@ llvmpipe_create_context(struct pipe_screen *screen, void *priv,
unsigned flags)
{
struct llvmpipe_context *llvmpipe;
+ struct llvmpipe_screen *lp_screen = llvmpipe_screen(screen);
- if (!llvmpipe_screen_late_init(llvmpipe_screen(screen)))
+ if (!llvmpipe_screen_late_init(lp_screen))
return NULL;
llvmpipe = align_malloc(sizeof(struct llvmpipe_context), 16);
@@ -254,7 +259,7 @@ llvmpipe_create_context(struct pipe_screen *screen, void *priv,
goto fail;
draw_set_disk_cache_callbacks(llvmpipe->draw,
- llvmpipe_screen(screen),
+ lp_screen,
lp_draw_disk_cache_find_shader,
lp_draw_disk_cache_insert_shader);
@@ -307,6 +312,9 @@ llvmpipe_create_context(struct pipe_screen *screen, void *priv,
*/
llvmpipe->dirty |= LP_NEW_SCISSOR;
+ mtx_lock(&lp_screen->ctx_mutex);
+ list_addtail(&llvmpipe->list, &lp_screen->ctx_list);
+ mtx_unlock(&lp_screen->ctx_mutex);
return &llvmpipe->pipe;
fail:
diff --git a/src/gallium/drivers/llvmpipe/lp_context.h b/src/gallium/drivers/llvmpipe/lp_context.h
index 1cabf98177f..f6b7719c6de 100644
--- a/src/gallium/drivers/llvmpipe/lp_context.h
+++ b/src/gallium/drivers/llvmpipe/lp_context.h
@@ -35,6 +35,7 @@
#include "draw/draw_vertex.h"
#include "util/u_blitter.h"
+#include "util/list.h"
#include "lp_tex_sample.h"
#include "lp_jit.h"
@@ -58,6 +59,7 @@ struct lp_velems_state;
struct llvmpipe_context {
struct pipe_context pipe; /**< base class */
+ struct list_head list;
/** Constant state objects */
const struct pipe_blend_state *blend;
struct pipe_sampler_state *samplers[PIPE_SHADER_TYPES][PIPE_MAX_SAMPLERS];
diff --git a/src/gallium/drivers/llvmpipe/lp_flush.c b/src/gallium/drivers/llvmpipe/lp_flush.c
index c72944232e7..c49836432a9 100644
--- a/src/gallium/drivers/llvmpipe/lp_flush.c
+++ b/src/gallium/drivers/llvmpipe/lp_flush.c
@@ -111,10 +111,12 @@ llvmpipe_flush_resource(struct pipe_context *pipe,
boolean do_not_block,
const char *reason)
{
- unsigned referenced;
-
- referenced = llvmpipe_is_resource_referenced(pipe, resource, level);
-
+ unsigned referenced = 0;
+ struct llvmpipe_screen *lp_screen = llvmpipe_screen(pipe->screen);
+ mtx_lock(&lp_screen->ctx_mutex);
+ list_for_each_entry(struct llvmpipe_context, ctx, &lp_screen->ctx_list, list)
+ referenced |= llvmpipe_is_resource_referenced((struct pipe_context *)ctx, resource, level);
+ mtx_unlock(&lp_screen->ctx_mutex);
if ((referenced & LP_REFERENCED_FOR_WRITE) ||
((referenced & LP_REFERENCED_FOR_READ) && !read_only)) {
diff --git a/src/gallium/drivers/llvmpipe/lp_screen.c b/src/gallium/drivers/llvmpipe/lp_screen.c
index 359c200279f..9c67d874c5f 100644
--- a/src/gallium/drivers/llvmpipe/lp_screen.c
+++ b/src/gallium/drivers/llvmpipe/lp_screen.c
@@ -1085,6 +1085,8 @@ llvmpipe_create_screen(struct sw_winsys *winsys)
snprintf(screen->renderer_string, sizeof(screen->renderer_string), "llvmpipe (LLVM " MESA_LLVM_VERSION_STRING ", %u bits)", lp_native_vector_width );
+ list_inithead(&screen->ctx_list);
+ (void) mtx_init(&screen->ctx_mutex, mtx_plain);
(void) mtx_init(&screen->cs_mutex, mtx_plain);
(void) mtx_init(&screen->rast_mutex, mtx_plain);
diff --git a/src/gallium/drivers/llvmpipe/lp_screen.h b/src/gallium/drivers/llvmpipe/lp_screen.h
index c72bf838acb..18635c687bc 100644
--- a/src/gallium/drivers/llvmpipe/lp_screen.h
+++ b/src/gallium/drivers/llvmpipe/lp_screen.h
@@ -37,6 +37,7 @@
#include "pipe/p_screen.h"
#include "pipe/p_defines.h"
#include "os/os_thread.h"
+#include "util/list.h"
#include "gallivm/lp_bld.h"
#include "gallivm/lp_bld_misc.h"
@@ -67,6 +68,9 @@ struct llvmpipe_screen
mtx_t late_mutex;
bool late_init_done;
+ mtx_t ctx_mutex;
+ struct list_head ctx_list;
+
char renderer_string[100];
struct disk_cache *disk_shader_cache;
--
2.37.1

View File

@ -1,4 +1,4 @@
VERSION ?= 22.1.5 VERSION ?= 22.3.0
SANITIZE ?= 1 SANITIZE ?= 1
DIRNAME = mesa-${VERSION} DIRNAME = mesa-${VERSION}

View File

@ -0,0 +1,11 @@
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" />

View File

@ -0,0 +1,11 @@
diff -up mesa-22.3.3/src/gallium/drivers/radeonsi/driinfo_radeonsi.h.dma mesa-22.3.3/src/gallium/drivers/radeonsi/driinfo_radeonsi.h
--- mesa-22.3.3/src/gallium/drivers/radeonsi/driinfo_radeonsi.h.dma 2023-01-25 06:17:54.993167334 +1000
+++ mesa-22.3.3/src/gallium/drivers/radeonsi/driinfo_radeonsi.h 2023-01-25 06:17:57.363203425 +1000
@@ -1,7 +1,6 @@
// DriConf options specific to radeonsi
DRI_CONF_SECTION_PERFORMANCE
DRI_CONF_ADAPTIVE_SYNC(true)
-DRI_CONF_MESA_GLTHREAD(true)
DRI_CONF_SECTION_END
DRI_CONF_SECTION_DEBUG

View File

@ -26,18 +26,18 @@
%endif %endif
%if 0%{?with_vulkan_hw} %if 0%{?with_vulkan_hw}
%define vulkan_drivers swrast,intel,amd %define vulkan_drivers swrast,intel,intel_hasvk,amd
%else %else
%define vulkan_drivers swrast %define vulkan_drivers swrast
%endif %endif
%global sanitize 0 %global sanitize 0
#global rctag rc2 #global rctag rc4
Name: mesa Name: mesa
Summary: Mesa graphics libraries Summary: Mesa graphics libraries
Version: 22.1.5 Version: 22.3.0
Release: 2%{?rctag:.%{rctag}}%{?dist} Release: 2%{?rctag:.%{rctag}}%{?dist}
License: MIT License: MIT
@ -54,9 +54,9 @@ Source4: Mesa-MLAA-License-Clarification-Email.txt
Patch0: lavapipe-disable-env-var.patch Patch0: lavapipe-disable-env-var.patch
Patch1: 0001-llvmpipe-make-last_fence-a-screen-rast-object-not-a-.patch Patch10: gnome-shell-glthread-disable.patch
Patch2: 0002-llvmpipe-keep-context-list-and-use-to-track-resource.patch Patch11: 0001-glx-fix-xshm-check-to-init-xshm_opcode.patch
Patch3: 0001-llvmpipe-finish-rendering-before-flushing-frontbuffe.patch Patch12: radeonsi-turn-off-glthread.patch
BuildRequires: gcc BuildRequires: gcc
BuildRequires: gcc-c++ BuildRequires: gcc-c++
@ -80,6 +80,7 @@ BuildRequires: libxshmfence-devel
BuildRequires: elfutils BuildRequires: elfutils
BuildRequires: python3-devel BuildRequires: python3-devel
BuildRequires: gettext BuildRequires: gettext
BuildRequires: glslang
BuildRequires: %{llvm_pkg_prefix}llvm-devel >= 3.4-7 BuildRequires: %{llvm_pkg_prefix}llvm-devel >= 3.4-7
%if 0%{?with_opencl} %if 0%{?with_opencl}
BuildRequires: %{llvm_pkg_prefix}clang-devel >= 3.0 BuildRequires: %{llvm_pkg_prefix}clang-devel >= 3.0
@ -87,7 +88,7 @@ BuildRequires: %{llvm_pkg_prefix}clang-devel >= 3.0
BuildRequires: elfutils-libelf-devel BuildRequires: elfutils-libelf-devel
BuildRequires: libudev-devel BuildRequires: libudev-devel
BuildRequires: bison flex BuildRequires: bison flex
BuildRequires: pkgconfig(wayland-client) BuildRequires: pkgconfig(wayland-client) >= 1.21.0
BuildRequires: pkgconfig(wayland-server) BuildRequires: pkgconfig(wayland-server)
BuildRequires: pkgconfig(wayland-protocols) BuildRequires: pkgconfig(wayland-protocols)
%if 0%{?with_vdpau} %if 0%{?with_vdpau}
@ -155,6 +156,7 @@ Requires: libglvnd-egl%{?_isa} >= 1:1.2.0-1
Summary: Mesa libEGL development package Summary: Mesa libEGL development package
Requires: %{name}-libEGL%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release} Requires: %{name}-libEGL%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
Requires: libglvnd-devel%{?_isa} >= 1:1.2.0-1 Requires: libglvnd-devel%{?_isa} >= 1:1.2.0-1
Requires: libwayland-client >= 1.21.0
Provides: libEGL-devel Provides: libEGL-devel
Provides: libEGL-devel%{?_isa} Provides: libEGL-devel%{?_isa}
@ -284,6 +286,7 @@ Requires: %{name}-libd3d%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release
%package vulkan-drivers %package vulkan-drivers
Summary: Mesa Vulkan drivers Summary: Mesa Vulkan drivers
Requires: vulkan%{_isa} Requires: vulkan%{_isa}
Requires: libwayland-client >= 1.21.0
%description vulkan-drivers %description vulkan-drivers
The drivers with support for the Vulkan API. The drivers with support for the Vulkan API.
@ -330,8 +333,7 @@ export ASFLAGS="--generate-missing-build-notes=yes"
%else %else
-Dgallium-drivers=swrast,virgl \ -Dgallium-drivers=swrast,virgl \
%endif %endif
-Dgallium-vdpau=%{?with_vdpau:true}%{!?with_vdpau:false} \ -Dgallium-vdpau=%{?with_vdpau:enabled}%{!?with_vdpau:disabled} \
-Dgallium-xvmc=false \
-Dgallium-omx=%{?with_omx:bellagio}%{!?with_omx:disabled} \ -Dgallium-omx=%{?with_omx:bellagio}%{!?with_omx:disabled} \
-Dgallium-va=%{?with_vaapi:true}%{!?with_vaapi:false} \ -Dgallium-va=%{?with_vaapi:true}%{!?with_vaapi:false} \
-Dgallium-xa=%{?with_xa:true}%{!?with_xa:false} \ -Dgallium-xa=%{?with_xa:true}%{!?with_xa:false} \
@ -345,7 +347,7 @@ export ASFLAGS="--generate-missing-build-notes=yes"
-Dopengl=true \ -Dopengl=true \
-Dgbm=enabled \ -Dgbm=enabled \
-Dglx=dri \ -Dglx=dri \
-Degl=true \ -Degl=enabled \
-Dglvnd=true \ -Dglvnd=true \
-Dmicrosoft-clc=disabled \ -Dmicrosoft-clc=disabled \
-Dllvm=true \ -Dllvm=true \
@ -411,7 +413,7 @@ done
%files libEGL-devel %files libEGL-devel
%dir %{_includedir}/EGL %dir %{_includedir}/EGL
%{_includedir}/EGL/eglmesaext.h %{_includedir}/EGL/eglmesaext.h
%{_includedir}/EGL/eglextchromium.h %{_includedir}/EGL/eglext_angle.h
%post libglapi -p /sbin/ldconfig %post libglapi -p /sbin/ldconfig
%postun libglapi -p /sbin/ldconfig %postun libglapi -p /sbin/ldconfig
@ -519,6 +521,7 @@ done
%endif %endif
%if 0%{?with_vdpau} %if 0%{?with_vdpau}
%files vdpau-drivers %files vdpau-drivers
%{_libdir}/vdpau/libvdpau_virtio_gpu.so.1*
%{_libdir}/vdpau/libvdpau_nouveau.so.1* %{_libdir}/vdpau/libvdpau_nouveau.so.1*
%{_libdir}/vdpau/libvdpau_r600.so.1* %{_libdir}/vdpau/libvdpau_r600.so.1*
%{_libdir}/vdpau/libvdpau_radeonsi.so.1* %{_libdir}/vdpau/libvdpau_radeonsi.so.1*
@ -528,13 +531,16 @@ done
%files vulkan-drivers %files vulkan-drivers
%if 0%{?with_vulkan_hw} %if 0%{?with_vulkan_hw}
%{_libdir}/libvulkan_intel.so %{_libdir}/libvulkan_intel.so
%{_libdir}/libvulkan_intel_hasvk.so
%{_libdir}/libvulkan_radeon.so %{_libdir}/libvulkan_radeon.so
%{_datadir}/drirc.d/00-radv-defaults.conf %{_datadir}/drirc.d/00-radv-defaults.conf
%ifarch x86_64 %ifarch x86_64
%{_datadir}/vulkan/icd.d/intel_icd.x86_64.json %{_datadir}/vulkan/icd.d/intel_icd.x86_64.json
%{_datadir}/vulkan/icd.d/intel_hasvk_icd.x86_64.json
%{_datadir}/vulkan/icd.d/radeon_icd.x86_64.json %{_datadir}/vulkan/icd.d/radeon_icd.x86_64.json
%else %else
%{_datadir}/vulkan/icd.d/intel_icd.i686.json %{_datadir}/vulkan/icd.d/intel_icd.i686.json
%{_datadir}/vulkan/icd.d/intel_hasvk_icd.i686.json
%{_datadir}/vulkan/icd.d/radeon_icd.i686.json %{_datadir}/vulkan/icd.d/radeon_icd.i686.json
%endif %endif
%endif %endif
@ -548,8 +554,23 @@ done
%endif %endif
%changelog %changelog
* Thu Sep 01 2022 Dave Airlie <airlied@redhat.com< - 22.1.5-2 * Fri Jan 27 2023 Dave Airlie <airlied@redhat.com> - 22.3.0-2
- Fix frontbuffer rendering regression - disable glthread for radeonsi (breaks totem)
* Wed Dec 07 2022 Dave Airlie <airlied@redhat.com> - 22.3.0-1
- Update to 22.3.0 final + fix mit-shm regression
* Fri Nov 25 2022 Dave Airlie <airlied@redhat.com> - 22.3.0-0.4
- Disable glthread for gnome-shell
* Thu Nov 24 2022 Dave Airlie <airlied@redhat.com> - 22.3.0-0.3
- Update to 22.3.0-rc4 + fix wayland dep version
* Wed Nov 23 2022 Dave Airlie <airlied@redhat.com> - 22.3.0-0.2
- Update to 22.3.0-rc3 + fix glthread regression fix
* Fri Nov 11 2022 Dave Airlie <airlied@redhat.com> - 22.3.0-0.1
- Update to 22.3.0-rc2
* Tue Aug 09 2022 Dave Airlie <airlied@redhat.com> - 22.1.5-1 * Tue Aug 09 2022 Dave Airlie <airlied@redhat.com> - 22.1.5-1
- Update to 22.1.5 - add some crocus and llvmpipe fixes - Update to 22.1.5 - add some crocus and llvmpipe fixes