Update to 21.2.4
This commit is contained in:
parent
ed8d2d1d13
commit
c50ef586c5
@ -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) {
|
|
@ -1,113 +0,0 @@
|
|||||||
From c1b4c64a28d9fc093229eab91a3a7fc4cb4fe29a Mon Sep 17 00:00:00 2001
|
|
||||||
From: =?UTF-8?q?Kai=20Wasserb=C3=A4ch?= <kai@dev.carbon-project.org>
|
|
||||||
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
|
|
||||||
<https://github.com/llvm/llvm-project/commit/3787ee457173c3612aac4c9b1a2b6d6ab0202616>.
|
|
||||||
|
|
||||||
Unfortunately Module::setOverrideStackAlignment() is not available
|
|
||||||
through the C API and we need to wrap it ourselves.
|
|
||||||
|
|
||||||
Signed-off-by: Kai Wasserbäch <kai@dev.carbon-project.org>
|
|
||||||
Reference: mesa/mesa#4906
|
|
||||||
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
|
|
||||||
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11940>
|
|
||||||
---
|
|
||||||
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?= <kai@dev.carbon-project.org>
|
|
||||||
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 <kai@dev.carbon-project.org>
|
|
||||||
Closes: mesa/mesa#4906
|
|
||||||
Reviewed-by: Roland Scheidegger <sroland@vmware.com>
|
|
||||||
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11940>
|
|
||||||
---
|
|
||||||
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
|
|
||||||
|
|
@ -57,7 +57,7 @@
|
|||||||
|
|
||||||
Name: mesa
|
Name: mesa
|
||||||
Summary: Mesa graphics libraries
|
Summary: Mesa graphics libraries
|
||||||
%global ver 21.2.3
|
%global ver 21.2.4
|
||||||
Version: %{lua:ver = string.gsub(rpm.expand("%{ver}"), "-", "~"); print(ver)}
|
Version: %{lua:ver = string.gsub(rpm.expand("%{ver}"), "-", "~"); print(ver)}
|
||||||
Release: %autorelease
|
Release: %autorelease
|
||||||
License: MIT
|
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.
|
# 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
|
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:
|
# Patches from Karol Herbst to make Tegra work again:
|
||||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1989726#c46
|
# https://bugzilla.redhat.com/show_bug.cgi?id=1989726#c46
|
||||||
# see also:
|
# see also:
|
||||||
|
2
sources
2
sources
@ -1 +1 @@
|
|||||||
SHA512 (mesa-21.2.3.tar.xz) = a5841c200416c19b60563a3823dd51592627e64f5f794c9fa3fba630e33a126048866e9b425739d88f2832770646a7ba8752a718a50d06266392b92d1a7370ea
|
SHA512 (mesa-21.2.4.tar.xz) = 245915260b1366beed15d4790e09d050352614daaea2ed052128d54f26dda202d7abf125b9fa5098ef77604b18977b0ce4209df51746d123871ebf8708f7425d
|
||||||
|
Loading…
Reference in New Issue
Block a user