diff --git a/crocus-fixes.diff b/crocus-fixes.diff deleted file mode 100644 index 44ed548..0000000 --- a/crocus-fixes.diff +++ /dev/null @@ -1,78 +0,0 @@ -diff --git a/src/gallium/drivers/crocus/crocus_draw.c b/src/gallium/drivers/crocus/crocus_draw.c -index cdfe6a63b26..b64bb0d46cb 100644 ---- a/src/gallium/drivers/crocus/crocus_draw.c -+++ b/src/gallium/drivers/crocus/crocus_draw.c -@@ -407,7 +407,7 @@ crocus_draw_vbo(struct pipe_context *ctx, - * write offsets, changing the behavior. - */ - if (unlikely(INTEL_DEBUG & DEBUG_REEMIT)) { -- ice->state.dirty |= CROCUS_ALL_DIRTY_FOR_RENDER & ~CROCUS_DIRTY_GEN7_SO_BUFFERS; -+ ice->state.dirty |= CROCUS_ALL_DIRTY_FOR_RENDER & ~(CROCUS_DIRTY_GEN7_SO_BUFFERS | CROCUS_DIRTY_GEN6_SVBI); - ice->state.stage_dirty |= CROCUS_ALL_STAGE_DIRTY_FOR_RENDER; - } - -diff --git a/src/gallium/drivers/crocus/crocus_program_cache.c b/src/gallium/drivers/crocus/crocus_program_cache.c -index d2d4b821754..52d8bbf0b4c 100644 ---- a/src/gallium/drivers/crocus/crocus_program_cache.c -+++ b/src/gallium/drivers/crocus/crocus_program_cache.c -@@ -155,10 +155,11 @@ crocus_cache_new_bo(struct crocus_context *ice, - ice->shaders.cache_bo = new_bo; - ice->shaders.cache_bo_map = map; - -- if (screen->devinfo.ver == 4) { -+ if (screen->devinfo.ver <= 5) { - /* reemit all shaders on GEN4 only. */ - ice->state.dirty |= CROCUS_DIRTY_CLIP | CROCUS_DIRTY_RASTER | - CROCUS_DIRTY_WM; -+ ice->state.stage_dirty |= CROCUS_STAGE_DIRTY_VS; - } - ice->batches[CROCUS_BATCH_RENDER].state_base_address_emitted = false; - ice->batches[CROCUS_BATCH_COMPUTE].state_base_address_emitted = false; -diff --git a/src/gallium/drivers/crocus/crocus_query.c b/src/gallium/drivers/crocus/crocus_query.c -index df3f3103647..6bc8aeeef14 100644 ---- a/src/gallium/drivers/crocus/crocus_query.c -+++ b/src/gallium/drivers/crocus/crocus_query.c -@@ -678,8 +678,12 @@ crocus_get_query_result(struct pipe_context *ctx, - } - assert(READ_ONCE(q->map->snapshots_landed)); - #else -- if (crocus_wait_syncobj(ctx->screen, q->syncobj, wait ? INT64_MAX : 0)) -+ if (crocus_wait_syncobj(ctx->screen, q->syncobj, wait ? INT64_MAX : 0)) { -+ /* if we've waited and timedout, just set the query to ready to avoid infinite loop */ -+ if (wait) -+ q->ready = true; - return false; -+ } - #endif - calculate_result_on_cpu(devinfo, q); - } -diff --git a/src/gallium/drivers/crocus/crocus_resource.c b/src/gallium/drivers/crocus/crocus_resource.c -index 2c8ea3a6529..56b517a28b6 100644 ---- a/src/gallium/drivers/crocus/crocus_resource.c -+++ b/src/gallium/drivers/crocus/crocus_resource.c -@@ -162,7 +162,7 @@ pipe_bind_to_isl_usage(unsigned bindings) - if (bindings & (PIPE_BIND_SHADER_IMAGE | PIPE_BIND_SHADER_BUFFER)) - usage |= ISL_SURF_USAGE_STORAGE_BIT; - -- if (bindings & PIPE_BIND_DISPLAY_TARGET) -+ if (bindings & PIPE_BIND_SCANOUT) - usage |= ISL_SURF_USAGE_DISPLAY_BIT; - return usage; - } -diff --git a/src/gallium/drivers/crocus/crocus_state.c b/src/gallium/drivers/crocus/crocus_state.c -index 9dbe0a49e2d..4160b6260c6 100644 ---- a/src/gallium/drivers/crocus/crocus_state.c -+++ b/src/gallium/drivers/crocus/crocus_state.c -@@ -5861,8 +5861,10 @@ crocus_upload_dirty_render_state(struct crocus_context *ice, - bool ret = crocus_calculate_urb_fence(batch, ice->curbe.total_size, - brw_vue_prog_data(ice->shaders.prog[MESA_SHADER_VERTEX]->prog_data)->urb_entry_size, - ((struct brw_sf_prog_data *)ice->shaders.sf_prog->prog_data)->urb_entry_size); -- if (ret) -- dirty |= CROCUS_DIRTY_GEN5_PIPELINED_POINTERS; -+ if (ret) { -+ dirty |= CROCUS_DIRTY_GEN5_PIPELINED_POINTERS | CROCUS_DIRTY_RASTER | CROCUS_DIRTY_CLIP; -+ stage_dirty |= CROCUS_STAGE_DIRTY_GS | CROCUS_STAGE_DIRTY_VS; -+ } - } - #endif - if (dirty & CROCUS_DIRTY_CC_VIEWPORT) { diff --git a/gallium-llvm13.patch b/gallium-llvm13.patch deleted file mode 100644 index 6d168a2..0000000 --- a/gallium-llvm13.patch +++ /dev/null @@ -1,113 +0,0 @@ -From c1b4c64a28d9fc093229eab91a3a7fc4cb4fe29a Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Kai=20Wasserb=C3=A4ch?= -Date: Thu, 22 Jul 2021 07:34:09 +0200 -Subject: [PATCH 1/2] gallivm: add new wrapper around - Module::setOverrideStackAlignment() -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -We need it in the next commit to replace setting the stack alignment on -i386 with LLVM >= 13 through the TargetOption::StackAlignmentOverride, -which was removed in the upstream commit -. - -Unfortunately Module::setOverrideStackAlignment() is not available -through the C API and we need to wrap it ourselves. - -Signed-off-by: Kai Wasserbäch -Reference: mesa/mesa#4906 -Reviewed-by: Roland Scheidegger -Part-of: ---- - src/gallium/auxiliary/gallivm/lp_bld_misc.cpp | 9 +++++++++ - src/gallium/auxiliary/gallivm/lp_bld_misc.h | 3 +++ - 2 files changed, 12 insertions(+) - -diff --git a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp -index 44d07fe69c6..5f52ed08fae 100644 ---- a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp -+++ b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp -@@ -615,3 +615,12 @@ lp_is_function(LLVMValueRef v) - { - return LLVMGetValueKind(v) == LLVMFunctionValueKind; - } -+ -+extern "C" void -+lp_set_module_stack_alignment_override(LLVMModuleRef MRef, unsigned align) -+{ -+#if LLVM_VERSION_MAJOR >= 13 -+ llvm::Module *M = llvm::unwrap(MRef); -+ M->setOverrideStackAlignment(align); -+#endif -+} -diff --git a/src/gallium/auxiliary/gallivm/lp_bld_misc.h b/src/gallium/auxiliary/gallivm/lp_bld_misc.h -index f2a15f19e47..fa0ce90162e 100644 ---- a/src/gallium/auxiliary/gallivm/lp_bld_misc.h -+++ b/src/gallium/auxiliary/gallivm/lp_bld_misc.h -@@ -91,6 +91,9 @@ lp_is_function(LLVMValueRef v); - - void - lp_free_objcache(void *objcache); -+ -+void -+lp_set_module_stack_alignment_override(LLVMModuleRef M, unsigned align); - #ifdef __cplusplus - } - #endif --- -GitLab - - -From 3a2d317b996f57647da23de7876142be4b9b71f3 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Kai=20Wasserb=C3=A4ch?= -Date: Thu, 22 Jul 2021 07:42:12 +0200 -Subject: [PATCH 2/2] gallivm: fix FTBFS on i386 with LLVM >= 13, - StackAlignmentOverride is gone -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Use the newly added wrapper lp_set_module_stack_alignment_override() to -achieve the same end result. - -Signed-off-by: Kai Wasserbäch -Closes: mesa/mesa#4906 -Reviewed-by: Roland Scheidegger -Part-of: ---- - src/gallium/auxiliary/gallivm/lp_bld_init.c | 4 ++++ - src/gallium/auxiliary/gallivm/lp_bld_misc.cpp | 2 +- - 2 files changed, 5 insertions(+), 1 deletion(-) - -diff --git a/src/gallium/auxiliary/gallivm/lp_bld_init.c b/src/gallium/auxiliary/gallivm/lp_bld_init.c -index 8e5fe6f24dc..d2d049ace5e 100644 ---- a/src/gallium/auxiliary/gallivm/lp_bld_init.c -+++ b/src/gallium/auxiliary/gallivm/lp_bld_init.c -@@ -347,6 +347,10 @@ init_gallivm_state(struct gallivm_state *gallivm, const char *name, - if (!gallivm->module) - goto fail; - -+#if defined(PIPE_ARCH_X86) -+ lp_set_module_stack_alignment_override(gallivm->module, 4); -+#endif -+ - gallivm->builder = LLVMCreateBuilderInContext(gallivm->context); - if (!gallivm->builder) - goto fail; -diff --git a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp -index 5f52ed08fae..be288ab02e2 100644 ---- a/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp -+++ b/src/gallium/auxiliary/gallivm/lp_bld_misc.cpp -@@ -350,7 +350,7 @@ lp_build_create_jit_compiler_for_module(LLVMExecutionEngineRef *OutJIT, - * friends for configuring code generation options, like stack alignment. - */ - TargetOptions options; --#if defined(PIPE_ARCH_X86) -+#if defined(PIPE_ARCH_X86) && LLVM_VERSION_MAJOR < 13 - options.StackAlignmentOverride = 4; - #endif - --- -GitLab - diff --git a/mesa.spec b/mesa.spec index 01a291d..f033052 100644 --- a/mesa.spec +++ b/mesa.spec @@ -57,7 +57,7 @@ Name: mesa Summary: Mesa graphics libraries -%global ver 21.2.3 +%global ver 21.2.4 Version: %{lua:ver = string.gsub(rpm.expand("%{ver}"), "-", "~"); print(ver)} Release: %autorelease License: MIT @@ -69,12 +69,6 @@ Source0: https://mesa.freedesktop.org/archive/%{name}-%{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 -# Backport of upstream patches from -# https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11940 -Patch0001: gallium-llvm13.patch - -Patch0002: crocus-fixes.diff - # Patches from Karol Herbst to make Tegra work again: # https://bugzilla.redhat.com/show_bug.cgi?id=1989726#c46 # see also: diff --git a/sources b/sources index e1e15d3..6559863 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (mesa-21.2.3.tar.xz) = a5841c200416c19b60563a3823dd51592627e64f5f794c9fa3fba630e33a126048866e9b425739d88f2832770646a7ba8752a718a50d06266392b92d1a7370ea +SHA512 (mesa-21.2.4.tar.xz) = 245915260b1366beed15d4790e09d050352614daaea2ed052128d54f26dda202d7abf125b9fa5098ef77604b18977b0ce4209df51746d123871ebf8708f7425d