SHA256
1
0
forked from pool/Mesa

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:
Dominique Leuenberger 2017-05-04 06:54:55 +00:00 committed by Git OBS Bridge
commit c2e81d853f
10 changed files with 192 additions and 148 deletions

View File

@ -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 Fri Apr 21 09:09:25 UTC 2017 - sndirsch@suse.com

View File

@ -49,3 +49,93 @@ kLK/gqBFGHh/TO5DEl6X/TP380DYdazZpa31S+Ixwt+RkP9ZkvOWGMIG7Nf+G+r+
Omj3BC4KcQ== Omj3BC4KcQ==
=XQbm =XQbm
-----END PGP PUBLIC KEY BLOCK----- -----END PGP PUBLIC KEY BLOCK-----
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
=ttHE
-----END PGP PUBLIC KEY BLOCK-----

View File

@ -22,7 +22,7 @@
%endif %endif
%define glamor 1 %define glamor 1
%define _name_archive mesa %define _name_archive mesa
%define _version 17.0.4 %define _version 17.0.5
%define with_opencl 0 %define with_opencl 0
%define with_vulkan 0 %define with_vulkan 0
%ifarch %ix86 x86_64 %arm aarch64 ppc ppc64 ppc64le s390x %ifarch %ix86 x86_64 %arm aarch64 ppc ppc64 ppc64le s390x
@ -44,7 +44,7 @@
%endif %endif
%if 0%{gallium_loader} && 0%{?suse_version} >= 1330 %if 0%{gallium_loader} && 0%{?suse_version} >= 1330
# llvm >= 3.9 not provided for <= 1330 # llvm >= 3.9 not provided for <= 1330
%ifnarch %arm %ifnarch %arm ppc
# TODO Drop ifnarch %%arm once llvm4 has built in Factory # TODO Drop ifnarch %%arm once llvm4 has built in Factory
%define with_opencl 1 %define with_opencl 1
%endif %endif
@ -54,7 +54,7 @@
%endif %endif
Name: Mesa Name: Mesa
Version: 17.0.4 Version: 17.0.5
Release: 0 Release: 0
Summary: System for rendering interactive 3-D graphics Summary: System for rendering interactive 3-D graphics
License: MIT 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 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 Patch34: archlinux_0002-fixup-EGL-Implement-the-libglvnd-interface-for-EGL-v.patch
Patch35: fedora_0001-glxglvnddispatch-Add-missing-dispatch-for-GetDriverC.patch Patch35: fedora_0001-glxglvnddispatch-Add-missing-dispatch-for-GetDriverC.patch
# reverse-apply this to fix OpenGL support on s390x (bsc#1032272) Patch40: u_gallivm-correct-channel-shift-logic-on-big-endian.patch
Patch40: U_draw-use-SoA-fetch-not-AoS-one.patch
BuildRequires: autoconf >= 2.60 BuildRequires: autoconf >= 2.60
BuildRequires: automake BuildRequires: automake
@ -663,10 +662,7 @@ rm -rf docs/README.{VMS,WIN32,OS2}
%patch35 -p1 %patch35 -p1
%endif %endif
# reverse-apply this patch to fix OpenGL support on s390x (bsc#1032272) %patch40 -p1
%ifarch s390x
%patch40 -R -p1
%endif
# Remove requires to libglvnd0/libglvnd-devel from baselibs.conf when # Remove requires to libglvnd0/libglvnd-devel from baselibs.conf when
# disabling libglvnd build; ugly ... # disabling libglvnd build; ugly ...

View File

@ -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

View File

@ -63,6 +63,7 @@ Mesa-libglapi-devel
requires "Mesa-libglapi0-<targettype> = <version>" requires "Mesa-libglapi0-<targettype> = <version>"
Mesa-libd3d Mesa-libd3d
provides "d3dadapter9.so.1" provides "d3dadapter9.so.1"
requires "libvulkan_intel-<targettype> = <version>"
Mesa-libd3d-devel Mesa-libd3d-devel
requires "Mesa-libd3d-<targettype> = <version>" requires "Mesa-libd3d-<targettype> = <version>"
arch aarch64 ppc64 ppc64le s390x x86_64 package libvulkan_intel arch aarch64 ppc64 ppc64le s390x x86_64 package libvulkan_intel

View File

@ -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
View 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

Binary file not shown.

View 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