Accepting request 492016 from X11:XOrg
1 OBS-URL: https://build.opensuse.org/request/show/492016 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/Mesa?expand=0&rev=289
This commit is contained in:
commit
c2e81d853f
51
Mesa.changes
51
Mesa.changes
@ -1,3 +1,54 @@
|
||||
-------------------------------------------------------------------
|
||||
Sat Apr 29 06:36:50 UTC 2017 - mimi.vx@gmail.com
|
||||
|
||||
- update to 17.0.5
|
||||
* fdo#97524 - Samplers referring to the same texture unit with different
|
||||
types should raise GL_INVALID_OPERATION
|
||||
* nvc0/ir: Properly handle a "split form" of predicate destination
|
||||
* nir: Destination component count of shader_clock intrinsic is 2
|
||||
* winsys/sw/dri: don't use GNU void pointer arithmetic
|
||||
* st/clover: add space between < and ::
|
||||
* configure.ac: check require_basic_egl only if egl enabled
|
||||
* st/mesa: automake: honour the vdpau header install location
|
||||
* intel/fs: Use regs_written() in spilling cost heuristic for improved accuracy
|
||||
* intel/fs: Take into account amount of data read in spilling cost heuristic.
|
||||
* radv: report timestampPeriod correctly
|
||||
* anv/blorp: Flush the texture cache in UpdateBuffer
|
||||
* anv/cmd_buffer: Flush the VF cache at the top of all primaries
|
||||
* anv/cmd_buffer: Always set up a null surface state
|
||||
* anv/cmd_buffer: Use the null surface state for ATTACHMENT_UNUSED
|
||||
* anv/blorp: Properly handle VK_ATTACHMENT_UNUSED
|
||||
* i965/vec4: Avoid reswizzling MACH instructions in opt_register_coalesce()
|
||||
* st/mesa: invalidate the readpix cache in st_indirect_draw_vbo
|
||||
* anv/cmd_buffer: Disable CCS on BDW input attachments
|
||||
* mesa: fix remaining xfb prims check for GLES with multiple instances
|
||||
* mesa: validate sampler type across the whole program
|
||||
* vbo: fix gl_DrawID handling in glMultiDrawArrays
|
||||
* util/queue: don't hang at exit
|
||||
* mesa: fix remaining xfb prims check for GLES with multiple instances
|
||||
* mesa: extract need_xfb_remaining_prims_check
|
||||
* mesa: move glMultiDrawArrays to vbo and fix error handling
|
||||
+ update Mesa.keyring to both upstream release managers
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Apr 28 12:26:02 UTC 2017 - sndirsch@suse.com
|
||||
|
||||
- u_gallivm-correct-channel-shift-logic-on-big-endian.patch:
|
||||
* instead of reverse applying a change on s390x
|
||||
("U_draw-use-SoA-fetch-not-AoS-one.patch") address the
|
||||
issue by a real fix (bsc#1032272, fdo#100613)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Thu Apr 27 09:54:43 UTC 2017 - sndirsch@suse.com
|
||||
|
||||
- baselibs.conf: added libvulkan_intel-32bit as a requirement for
|
||||
Mesa-libd3d (boo#1036282)
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Tue Apr 25 11:13:30 UTC 2017 - schwab@linux-m68k.org
|
||||
|
||||
- No OpenCL on ppc
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Fri Apr 21 09:09:25 UTC 2017 - sndirsch@suse.com
|
||||
|
||||
|
90
Mesa.keyring
90
Mesa.keyring
@ -49,3 +49,93 @@ kLK/gqBFGHh/TO5DEl6X/TP380DYdazZpa31S+Ixwt+RkP9ZkvOWGMIG7Nf+G+r+
|
||||
Omj3BC4KcQ==
|
||||
=XQbm
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
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
|
||||
=ttHE
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
|
14
Mesa.spec
14
Mesa.spec
@ -22,7 +22,7 @@
|
||||
%endif
|
||||
%define glamor 1
|
||||
%define _name_archive mesa
|
||||
%define _version 17.0.4
|
||||
%define _version 17.0.5
|
||||
%define with_opencl 0
|
||||
%define with_vulkan 0
|
||||
%ifarch %ix86 x86_64 %arm aarch64 ppc ppc64 ppc64le s390x
|
||||
@ -44,7 +44,7 @@
|
||||
%endif
|
||||
%if 0%{gallium_loader} && 0%{?suse_version} >= 1330
|
||||
# llvm >= 3.9 not provided for <= 1330
|
||||
%ifnarch %arm
|
||||
%ifnarch %arm ppc
|
||||
# TODO Drop ifnarch %%arm once llvm4 has built in Factory
|
||||
%define with_opencl 1
|
||||
%endif
|
||||
@ -54,7 +54,7 @@
|
||||
%endif
|
||||
|
||||
Name: Mesa
|
||||
Version: 17.0.4
|
||||
Version: 17.0.5
|
||||
Release: 0
|
||||
Summary: System for rendering interactive 3-D graphics
|
||||
License: MIT
|
||||
@ -88,8 +88,7 @@ Patch32: archlinux_glvnd-fix-gl-dot-pc.patch
|
||||
Patch33: archlinux_0001-EGL-Implement-the-libglvnd-interface-for-EGL-v2.patch
|
||||
Patch34: archlinux_0002-fixup-EGL-Implement-the-libglvnd-interface-for-EGL-v.patch
|
||||
Patch35: fedora_0001-glxglvnddispatch-Add-missing-dispatch-for-GetDriverC.patch
|
||||
# reverse-apply this to fix OpenGL support on s390x (bsc#1032272)
|
||||
Patch40: U_draw-use-SoA-fetch-not-AoS-one.patch
|
||||
Patch40: u_gallivm-correct-channel-shift-logic-on-big-endian.patch
|
||||
|
||||
BuildRequires: autoconf >= 2.60
|
||||
BuildRequires: automake
|
||||
@ -663,10 +662,7 @@ rm -rf docs/README.{VMS,WIN32,OS2}
|
||||
%patch35 -p1
|
||||
%endif
|
||||
|
||||
# reverse-apply this patch to fix OpenGL support on s390x (bsc#1032272)
|
||||
%ifarch s390x
|
||||
%patch40 -R -p1
|
||||
%endif
|
||||
%patch40 -p1
|
||||
|
||||
# Remove requires to libglvnd0/libglvnd-devel from baselibs.conf when
|
||||
# disabling libglvnd build; ugly ...
|
||||
|
@ -1,136 +0,0 @@
|
||||
From e827d9175675aaa6cfc0b981e2a80685fb7b3a74 Mon Sep 17 00:00:00 2001
|
||||
From: Roland Scheidegger <sroland@vmware.com>
|
||||
Date: Wed, 21 Dec 2016 04:43:07 +0100
|
||||
Subject: [PATCH] draw: use SoA fetch, not AoS one
|
||||
|
||||
Now that there's some SoA fetch which never falls back, we should always get
|
||||
results which are better or at least not worse (something like rgba32f will
|
||||
stay the same).
|
||||
|
||||
For cases which get way better, think something like R16_UNORM with 8-wide
|
||||
vectors: this was 8 sign-extend fetches, 8 cvt, 8 muls, followed by
|
||||
a couple of shuffles to stitch things together (if it is smart enough,
|
||||
6 unpacks) and then a (8-wide) transpose (not sure if llvm could even
|
||||
optimize the shuffles + transpose, since the 16bit values were actually
|
||||
sign-extended to 128bit before being cast to a float vec, so that would be
|
||||
another 8 unpacks). Now that is just 8 fetches (directly inserted into
|
||||
vector, albeit there's one 128bit insert needed), 1 cvt, 1 mul.
|
||||
|
||||
v2: ditch the old AoS code instead of just disabling it.
|
||||
|
||||
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
|
||||
---
|
||||
src/gallium/auxiliary/draw/draw_llvm.c | 71 +++++++++++-----------------------
|
||||
1 file changed, 23 insertions(+), 48 deletions(-)
|
||||
|
||||
diff --git a/src/gallium/auxiliary/draw/draw_llvm.c b/src/gallium/auxiliary/draw/draw_llvm.c
|
||||
index 19b75a5003..8952dc8d3b 100644
|
||||
--- a/src/gallium/auxiliary/draw/draw_llvm.c
|
||||
+++ b/src/gallium/auxiliary/draw/draw_llvm.c
|
||||
@@ -713,39 +713,6 @@ fetch_instanced(struct gallivm_state *gallivm,
|
||||
|
||||
|
||||
static void
|
||||
-convert_to_soa(struct gallivm_state *gallivm,
|
||||
- LLVMValueRef src_aos[LP_MAX_VECTOR_WIDTH / 32],
|
||||
- LLVMValueRef dst_soa[TGSI_NUM_CHANNELS],
|
||||
- const struct lp_type soa_type)
|
||||
-{
|
||||
- unsigned j, k;
|
||||
- struct lp_type aos_channel_type = soa_type;
|
||||
-
|
||||
- LLVMValueRef aos_channels[TGSI_NUM_CHANNELS];
|
||||
- unsigned pixels_per_channel = soa_type.length / TGSI_NUM_CHANNELS;
|
||||
-
|
||||
- debug_assert(TGSI_NUM_CHANNELS == 4);
|
||||
- debug_assert((soa_type.length % TGSI_NUM_CHANNELS) == 0);
|
||||
-
|
||||
- aos_channel_type.length >>= 1;
|
||||
-
|
||||
- for (j = 0; j < TGSI_NUM_CHANNELS; ++j) {
|
||||
- LLVMValueRef channel[LP_MAX_VECTOR_LENGTH] = { 0 };
|
||||
-
|
||||
- assert(pixels_per_channel <= LP_MAX_VECTOR_LENGTH);
|
||||
-
|
||||
- for (k = 0; k < pixels_per_channel; ++k) {
|
||||
- channel[k] = src_aos[j + TGSI_NUM_CHANNELS * k];
|
||||
- }
|
||||
-
|
||||
- aos_channels[j] = lp_build_concat(gallivm, channel, aos_channel_type, pixels_per_channel);
|
||||
- }
|
||||
-
|
||||
- lp_build_transpose_aos(gallivm, soa_type, aos_channels, dst_soa);
|
||||
-}
|
||||
-
|
||||
-
|
||||
-static void
|
||||
fetch_vector(struct gallivm_state *gallivm,
|
||||
const struct util_format_description *format_desc,
|
||||
struct lp_type vs_type,
|
||||
@@ -755,11 +722,10 @@ fetch_vector(struct gallivm_state *gallivm,
|
||||
LLVMValueRef *inputs,
|
||||
LLVMValueRef indices)
|
||||
{
|
||||
- LLVMValueRef zero = LLVMConstNull(LLVMInt32TypeInContext(gallivm->context));
|
||||
LLVMBuilderRef builder = gallivm->builder;
|
||||
struct lp_build_context blduivec;
|
||||
+ struct lp_type fetch_type = vs_type;
|
||||
LLVMValueRef offset, valid_mask;
|
||||
- LLVMValueRef aos_fetch[LP_MAX_VECTOR_WIDTH / 32];
|
||||
unsigned i;
|
||||
|
||||
lp_build_context_init(&blduivec, gallivm, lp_uint_type(vs_type));
|
||||
@@ -783,28 +749,37 @@ fetch_vector(struct gallivm_state *gallivm,
|
||||
}
|
||||
|
||||
/*
|
||||
- * Note: we probably really want to use SoA fetch, not AoS one (albeit
|
||||
- * for most formats it will amount to the same as this isn't very
|
||||
- * optimized). But looks dangerous since it assumes alignment.
|
||||
+ * Unlike fetch_instanced, use SoA fetch instead of multiple AoS fetches.
|
||||
+ * This should always produce better code.
|
||||
*/
|
||||
- for (i = 0; i < vs_type.length; i++) {
|
||||
- LLVMValueRef offset1, elem;
|
||||
- elem = lp_build_const_int32(gallivm, i);
|
||||
- offset1 = LLVMBuildExtractElement(builder, offset, elem, "");
|
||||
|
||||
- aos_fetch[i] = lp_build_fetch_rgba_aos(gallivm, format_desc,
|
||||
- lp_float32_vec4_type(),
|
||||
- FALSE, map_ptr, offset1,
|
||||
- zero, zero, NULL);
|
||||
+ /* The type handling is annoying here... */
|
||||
+ if (format_desc->colorspace == UTIL_FORMAT_COLORSPACE_RGB &&
|
||||
+ format_desc->channel[0].pure_integer) {
|
||||
+ if (format_desc->channel[0].type == UTIL_FORMAT_TYPE_SIGNED) {
|
||||
+ fetch_type = lp_type_int_vec(vs_type.width, vs_type.width * vs_type.length);
|
||||
+ }
|
||||
+ else if (format_desc->channel[0].type == UTIL_FORMAT_TYPE_UNSIGNED) {
|
||||
+ fetch_type = lp_type_uint_vec(vs_type.width, vs_type.width * vs_type.length);
|
||||
+ }
|
||||
}
|
||||
- convert_to_soa(gallivm, aos_fetch, inputs, vs_type);
|
||||
+
|
||||
+ lp_build_fetch_rgba_soa(gallivm, format_desc,
|
||||
+ fetch_type, FALSE, map_ptr, offset,
|
||||
+ blduivec.zero, blduivec.zero,
|
||||
+ NULL, inputs);
|
||||
|
||||
for (i = 0; i < TGSI_NUM_CHANNELS; i++) {
|
||||
+ inputs[i] = LLVMBuildBitCast(builder, inputs[i],
|
||||
+ lp_build_vec_type(gallivm, vs_type), "");
|
||||
+ }
|
||||
+
|
||||
+ /* out-of-bound fetches return all zeros */
|
||||
+ for (i = 0; i < TGSI_NUM_CHANNELS; i++) {
|
||||
inputs[i] = LLVMBuildBitCast(builder, inputs[i], blduivec.vec_type, "");
|
||||
inputs[i] = LLVMBuildAnd(builder, inputs[i], valid_mask, "");
|
||||
inputs[i] = LLVMBuildBitCast(builder, inputs[i],
|
||||
lp_build_vec_type(gallivm, vs_type), "");
|
||||
-
|
||||
}
|
||||
}
|
||||
|
||||
--
|
||||
2.12.0
|
||||
|
@ -63,6 +63,7 @@ Mesa-libglapi-devel
|
||||
requires "Mesa-libglapi0-<targettype> = <version>"
|
||||
Mesa-libd3d
|
||||
provides "d3dadapter9.so.1"
|
||||
requires "libvulkan_intel-<targettype> = <version>"
|
||||
Mesa-libd3d-devel
|
||||
requires "Mesa-libd3d-<targettype> = <version>"
|
||||
arch aarch64 ppc64 ppc64le s390x x86_64 package libvulkan_intel
|
||||
|
@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:1269dc8545a193932a0779b2db5bce9be4a5f6813b98c38b93b372be8362a346
|
||||
size 9454976
|
Binary file not shown.
3
mesa-17.0.5.tar.xz
Normal file
3
mesa-17.0.5.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:668efa445d2f57a26e5c096b1965a685733a3b57d9c736f9d6460263847f9bfe
|
||||
size 9492760
|
BIN
mesa-17.0.5.tar.xz.sig
Normal file
BIN
mesa-17.0.5.tar.xz.sig
Normal file
Binary file not shown.
42
u_gallivm-correct-channel-shift-logic-on-big-endian.patch
Normal file
42
u_gallivm-correct-channel-shift-logic-on-big-endian.patch
Normal file
@ -0,0 +1,42 @@
|
||||
From ab0e1e38ab9e8b23602af21d1b43e98afbf80e45 Mon Sep 17 00:00:00 2001
|
||||
From: Ray Strode <rstrode@redhat.com>
|
||||
Date: Fri, 21 Apr 2017 15:22:14 -0400
|
||||
Subject: [PATCH] gallivm: correct channel shift logic on big endian
|
||||
|
||||
lp_build_fetch_rgba_soa fetches a texel from a texture.
|
||||
Part of that process involves first gathering the element
|
||||
together from memory into a packed format, and then breaking
|
||||
out the individual color channels into separate, parallel
|
||||
arrays.
|
||||
|
||||
The code fails to account for endianess when reading the packed
|
||||
values.
|
||||
|
||||
This commit attempts to correct the problem by reversing the order
|
||||
the packed values are read on big endian systems.
|
||||
---
|
||||
src/gallium/auxiliary/gallivm/lp_bld_format_soa.c | 8 +++++++-
|
||||
1 file changed, 7 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/gallium/auxiliary/gallivm/lp_bld_format_soa.c b/src/gallium/auxiliary/gallivm/lp_bld_format_soa.c
|
||||
index 98eb694..22c19b1 100644
|
||||
--- a/src/gallium/auxiliary/gallivm/lp_bld_format_soa.c
|
||||
+++ b/src/gallium/auxiliary/gallivm/lp_bld_format_soa.c
|
||||
@@ -650,7 +650,13 @@ lp_build_fetch_rgba_soa(struct gallivm_state *gallivm,
|
||||
for (i = 0; i < format_desc->nr_channels; i++) {
|
||||
struct util_format_channel_description chan_desc = format_desc->channel[i];
|
||||
unsigned blockbits = type.width;
|
||||
- unsigned vec_nr = chan_desc.shift / type.width;
|
||||
+ unsigned vec_nr;
|
||||
+
|
||||
+#ifdef PIPE_ARCH_BIG_ENDIAN
|
||||
+ vec_nr = (format_desc->block.bits - (chan_desc.shift + chan_desc.size)) / type.width;
|
||||
+#else
|
||||
+ vec_nr = chan_desc.shift / type.width;
|
||||
+#endif
|
||||
chan_desc.shift %= type.width;
|
||||
|
||||
output[i] = lp_build_extract_soa_chan(&bld,
|
||||
--
|
||||
1.8.3.1
|
||||
|
Loading…
Reference in New Issue
Block a user