Dominique Leuenberger 2018-02-19 11:59:37 +00:00 committed by Git OBS Bridge
commit cc55aa88d2
11 changed files with 231 additions and 118 deletions

View File

@ -1,3 +1,38 @@
-------------------------------------------------------------------
Fri Feb 16 14:59:04 UTC 2018 - mstaudt@suse.com
- Split Nouveau and VC4 from the main driver package on all systems
Fixes (boo#1081210).
-------------------------------------------------------------------
Thu Feb 15 09:25:16 UTC 2018 - mimi.vx@gmail.com
- remove %{release} based dependecies
Unfortuanetly Mesa and Mesa-drivers can have different release number
Release is Commit_Count.Build_Count and build count can be different
because both packages have different dependencies
-------------------------------------------------------------------
Wed Feb 14 09:48:41 UTC 2018 - mimi.vx@gmail.com
- add u_glsl-linker-error.patch
* Fix attaching multiple shader objects for the same stage to a
GLSL program triggers a linker error (fdo#104777, bnc#1080492)
* Fixes issue with wine applications.
-------------------------------------------------------------------
Mon Feb 12 12:31:05 UTC 2018 - joop.boonen@opensuse.org
- Added %{release} so the correct package release is used
when a package has been patched
-------------------------------------------------------------------
Fri Feb 9 13:45:16 UTC 2018 - sndirsch@suse.com
- Update to 18.0.0-rc4
- supersedes u_mesa-st-shader_cache-restore-num_tgsi_tokens-when-loading.patch
-------------------------------------------------------------------
Tue Feb 6 08:42:03 UTC 2018 - msrb@suse.com

View File

@ -43,7 +43,7 @@
%define glamor 1
%define _name_archive mesa
%define _version 18.0.0-rc3
%define _version 18.0.0-rc4
%define with_opencl 0
%define with_vulkan 0
%define with_llvm 0
@ -141,8 +141,8 @@ Patch31: archlinux_0001-Fix-linkage-against-shared-glapi.patch
Patch32: archlinux_glvnd-fix-gl-dot-pc.patch
# Upstream
Patch43: u_mesa-python3-only.patch
Patch44: u_mesa-st-shader_cache-restore-num_tgsi_tokens-when-loading.patch
Patch45: n_Disable-AMDGPU-GFX9-Vega-on-LLVM-lessthan-6.0.0.patch
Patch46: u_glsl-linker-error.patch
BuildRequires: autoconf >= 2.60
BuildRequires: automake
@ -467,8 +467,8 @@ applications using the OpenGL|ES 3.x APIs.
Summary: Mesa Off-screen rendering extension
# Wrongly named package shipped .so.8
Group: System/Libraries
Obsoletes: libOSMesa9 < %{version}-%{release}
Provides: libOSMesa9 = %{version}-%{release}
Obsoletes: libOSMesa9 < %{version}
Provides: libOSMesa9 = %{version}
%description -n libOSMesa8
OSmesa is a Mesa extension that allows programs to render to an
@ -533,6 +533,16 @@ This package contains nouveau_dri.so, which is necessary for
Nouveau's 3D acceleration to work. It is packaged separately
since it is still experimental.
%package -n Mesa-dri-vc4
Summary: Mesa DRI plug-in for 3D acceleration on Raspberry Pi
Group: System/Libraries
Requires: Mesa = %{version}
%description -n Mesa-dri-vc4
This package contains vc4_dri.so, which is necessary for 3D
acceleration on the Raspberry Pi to work. It is packaged separately
since it is still experimental.
%package -n Mesa-gallium
Summary: Mesa Gallium GPU drivers
Group: System/Libraries
@ -750,8 +760,8 @@ rm -rf docs/README.{VMS,WIN32,OS2}
%endif
%patch43 -p1
%patch44 -p1
%patch45 -p1
%patch46 -p1
# Remove requires to libglvnd/libglvnd-devel from baselibs.conf when
# disabling libglvnd build; ugly ...
@ -1170,11 +1180,12 @@ echo "The \"Mesa\" package does not have the ability to render, but is supplemen
%files -n Mesa-dri
%dir %{_libdir}/dri
%{_libdir}/dri/*_dri.so
%if 0%{?is_opensuse}
%ifarch %ix86 x86_64 aarch64 %arm ppc64 ppc64le
%exclude %{_libdir}/dri/nouveau_dri.so
%exclude %{_libdir}/dri/nouveau_vieux_dri.so
%endif
%ifarch %arm aarch64
%exclude %{_libdir}/dri/vc4_dri.so
%endif
%if 0%{with_opencl}
@ -1184,12 +1195,15 @@ echo "The \"Mesa\" package does not have the ability to render, but is supplemen
%{_libdir}/gallium-pipe/pipe_*.so
%endif
%if 0%{?is_opensuse}
%ifarch %ix86 x86_64 aarch64 %arm ppc64 ppc64le
%files -n Mesa-dri-nouveau
%{_libdir}/dri/nouveau_dri.so
%{_libdir}/dri/nouveau_vieux_dri.so
%endif
%ifarch aarch64 %arm
%files -n Mesa-dri-vc4
%{_libdir}/dri/vc4_dri.so
%endif
# drivers

View File

@ -1,3 +1,38 @@
-------------------------------------------------------------------
Fri Feb 16 14:59:04 UTC 2018 - mstaudt@suse.com
- Split Nouveau and VC4 from the main driver package on all systems
Fixes (boo#1081210).
-------------------------------------------------------------------
Thu Feb 15 09:25:16 UTC 2018 - mimi.vx@gmail.com
- remove %{release} based dependecies
Unfortuanetly Mesa and Mesa-drivers can have different release number
Release is Commit_Count.Build_Count and build count can be different
because both packages have different dependencies
-------------------------------------------------------------------
Wed Feb 14 09:48:41 UTC 2018 - mimi.vx@gmail.com
- add u_glsl-linker-error.patch
* Fix attaching multiple shader objects for the same stage to a
GLSL program triggers a linker error (fdo#104777, bnc#1080492)
* Fixes issue with wine applications.
-------------------------------------------------------------------
Mon Feb 12 12:31:05 UTC 2018 - joop.boonen@opensuse.org
- Added %{release} so the correct package release is used
when a package has been patched
-------------------------------------------------------------------
Fri Feb 9 13:45:16 UTC 2018 - sndirsch@suse.com
- Update to 18.0.0-rc4
- supersedes u_mesa-st-shader_cache-restore-num_tgsi_tokens-when-loading.patch
-------------------------------------------------------------------
Tue Feb 6 08:42:03 UTC 2018 - msrb@suse.com

View File

@ -42,7 +42,7 @@
%define glamor 1
%define _name_archive mesa
%define _version 18.0.0-rc3
%define _version 18.0.0-rc4
%define with_opencl 0
%define with_vulkan 0
%define with_llvm 0
@ -140,8 +140,8 @@ Patch31: archlinux_0001-Fix-linkage-against-shared-glapi.patch
Patch32: archlinux_glvnd-fix-gl-dot-pc.patch
# Upstream
Patch43: u_mesa-python3-only.patch
Patch44: u_mesa-st-shader_cache-restore-num_tgsi_tokens-when-loading.patch
Patch45: n_Disable-AMDGPU-GFX9-Vega-on-LLVM-lessthan-6.0.0.patch
Patch46: u_glsl-linker-error.patch
BuildRequires: autoconf >= 2.60
BuildRequires: automake
@ -466,8 +466,8 @@ applications using the OpenGL|ES 3.x APIs.
Summary: Mesa Off-screen rendering extension
# Wrongly named package shipped .so.8
Group: System/Libraries
Obsoletes: libOSMesa9 < %{version}-%{release}
Provides: libOSMesa9 = %{version}-%{release}
Obsoletes: libOSMesa9 < %{version}
Provides: libOSMesa9 = %{version}
%description -n libOSMesa8
OSmesa is a Mesa extension that allows programs to render to an
@ -532,6 +532,16 @@ This package contains nouveau_dri.so, which is necessary for
Nouveau's 3D acceleration to work. It is packaged separately
since it is still experimental.
%package -n Mesa-dri-vc4
Summary: Mesa DRI plug-in for 3D acceleration on Raspberry Pi
Group: System/Libraries
Requires: Mesa = %{version}
%description -n Mesa-dri-vc4
This package contains vc4_dri.so, which is necessary for 3D
acceleration on the Raspberry Pi to work. It is packaged separately
since it is still experimental.
%package -n Mesa-gallium
Summary: Mesa Gallium GPU drivers
Group: System/Libraries
@ -749,8 +759,8 @@ rm -rf docs/README.{VMS,WIN32,OS2}
%endif
%patch43 -p1
%patch44 -p1
%patch45 -p1
%patch46 -p1
# Remove requires to libglvnd/libglvnd-devel from baselibs.conf when
# disabling libglvnd build; ugly ...
@ -1169,11 +1179,12 @@ echo "The \"Mesa\" package does not have the ability to render, but is supplemen
%files -n Mesa-dri
%dir %{_libdir}/dri
%{_libdir}/dri/*_dri.so
%if 0%{?is_opensuse}
%ifarch %ix86 x86_64 aarch64 %arm ppc64 ppc64le
%exclude %{_libdir}/dri/nouveau_dri.so
%exclude %{_libdir}/dri/nouveau_vieux_dri.so
%endif
%ifarch %arm aarch64
%exclude %{_libdir}/dri/vc4_dri.so
%endif
%if 0%{with_opencl}
@ -1183,12 +1194,15 @@ echo "The \"Mesa\" package does not have the ability to render, but is supplemen
%{_libdir}/gallium-pipe/pipe_*.so
%endif
%if 0%{?is_opensuse}
%ifarch %ix86 x86_64 aarch64 %arm ppc64 ppc64le
%files -n Mesa-dri-nouveau
%{_libdir}/dri/nouveau_dri.so
%{_libdir}/dri/nouveau_vieux_dri.so
%endif
%ifarch aarch64 %arm
%files -n Mesa-dri-vc4
%{_libdir}/dri/vc4_dri.so
%endif
# drivers

View File

@ -106,6 +106,7 @@ libvdpau_r300
libvdpau_r600
libvdpau_radeonsi
libwayland-egl1
Mesa-dri-vc4
Mesa-dri-nouveau
Mesa-dri
supplements "Mesa-<targettype> = <version>"

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:27c1ade098d9e0afaa7ecaa2d4ce7fe1e84f105b82c0d19926f9694087ea5758
size 10964880

Binary file not shown.

3
mesa-18.0.0-rc4.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ad575becea192f04403b6783492955f395dd8faad7e51cbcbad203be70eb9075
size 11027596

BIN
mesa-18.0.0-rc4.tar.xz.sig Normal file

Binary file not shown.

115
u_glsl-linker-error.patch Normal file
View File

@ -0,0 +1,115 @@
From 4195eed961ccfe404ae81b9112189fc93a254ded Mon Sep 17 00:00:00 2001
From: "Juan A. Suarez Romero" <jasuarez@igalia.com>
Date: Mon, 5 Feb 2018 17:38:39 +0100
Subject: glsl/linker: check same name is not used in block and outside
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
According with OpenGL GLSL 3.20 spec, section 4.3.9:
"It is a link-time error if any particular shader interface
contains:
- two different blocks, each having no instance name, and each
having a member of the same name, or
- a variable outside a block, and a block with no instance name,
where the variable has the same name as a member in the block."
This fixes a previous commit 9b894c8 ("glsl/linker: link-error using the
same name in unnamed block and outside") that covered this case, but
did not take in account that precision qualifiers are ignored when
comparing blocks with no instance name.
With this commit, the original tests
KHR-GL*.shaders.uniform_block.common.name_matching keep fixed, and also
dEQP-GLES31.functional.shaders.linkage.uniform.block.differing_precision
regression is fixed, which was broken by previous commit.
v2: use helper varibles (Matteo Bruni)
Fixes: 9b894c8 ("glsl/linker: link-error using the same name in unnamed block and outside")
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104668
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104777
CC: Mark Janes <mark.a.janes@intel.com>
CC: "18.0" <mesa-stable@lists.freedesktop.org>
Tested-by: Matteo Bruni <matteo.mystral@gmail.com>
Reviewed-by: Tapani Pälli <tapani.palli@intel.com>
Signed-off-by: Juan A. Suarez Romero <jasuarez@igalia.com>
---
src/compiler/glsl/linker.cpp | 53 +++++++++++++++++++++++++-------------------
1 file changed, 30 insertions(+), 23 deletions(-)
diff --git a/src/compiler/glsl/linker.cpp b/src/compiler/glsl/linker.cpp
index ce10193..d3d18c2 100644
--- a/src/compiler/glsl/linker.cpp
+++ b/src/compiler/glsl/linker.cpp
@@ -1111,29 +1111,6 @@ cross_validate_globals(struct gl_shader_program *prog,
return;
}
- /* In OpenGL GLSL 4.20 spec, section 4.3.9, page 57:
- *
- * "It is a link-time error if any particular shader interface
- * contains:
- *
- * - two different blocks, each having no instance name, and each
- * having a member of the same name, or
- *
- * - a variable outside a block, and a block with no instance name,
- * where the variable has the same name as a member in the block."
- */
- if (var->data.mode == existing->data.mode &&
- var->get_interface_type() != existing->get_interface_type()) {
- linker_error(prog, "declarations for %s `%s` are in "
- "%s and %s\n",
- mode_string(var), var->name,
- existing->get_interface_type() ?
- existing->get_interface_type()->name : "outside a block",
- var->get_interface_type() ?
- var->get_interface_type()->name : "outside a block");
-
- return;
- }
/* Only in GLSL ES 3.10, the precision qualifier should not match
* between block members defined in matched block names within a
* shader interface.
@@ -1155,6 +1132,36 @@ cross_validate_globals(struct gl_shader_program *prog,
mode_string(var), var->name);
}
}
+
+ /* In OpenGL GLSL 3.20 spec, section 4.3.9:
+ *
+ * "It is a link-time error if any particular shader interface
+ * contains:
+ *
+ * - two different blocks, each having no instance name, and each
+ * having a member of the same name, or
+ *
+ * - a variable outside a block, and a block with no instance name,
+ * where the variable has the same name as a member in the block."
+ */
+ const glsl_type *var_itype = var->get_interface_type();
+ const glsl_type *existing_itype = existing->get_interface_type();
+ if (var_itype != existing_itype) {
+ if (!var_itype || !existing_itype) {
+ linker_error(prog, "declarations for %s `%s` are inside block "
+ "`%s` and outside a block",
+ mode_string(var), var->name,
+ var_itype ? var_itype->name : existing_itype->name);
+ return;
+ } else if (strcmp(var_itype->name, existing_itype->name) != 0) {
+ linker_error(prog, "declarations for %s `%s` are inside blocks "
+ "`%s` and `%s`",
+ mode_string(var), var->name,
+ existing_itype->name,
+ var_itype->name);
+ return;
+ }
+ }
} else
variables->add_variable(var);
}
--
cgit v1.1

View File

@ -1,101 +0,0 @@
Git-commit: 041b18cf23a0acf7b0eddf63cd7a2a10192432a1
Author: Timothy Arceri <tarceri@itsqueeze.com>
Subject: st/shader_cache: restore num_tgsi_tokens when loading from cache
References: bnc#1079465 fdo#104762
Patch-Mainline: Upstream
Signed-off-by: Michal Srb <msrb@suse.com>
Without this we will fail to correctly serialise programs when
using glGetProgramBinary() if the program was retrieved from
the disk cache rather than freshly compiled.
Fixes: c69b0dd6817b "st/glsl_to_tgsi: store num_tgsi_tokens in st_*_program"
Reviewed-by: Gert Wollny <gw.fossdev@gmail.com>
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=104762
---
src/mesa/state_tracker/st_shader_cache.c | 25 ++++++++++++++++---------
1 file changed, 16 insertions(+), 9 deletions(-)
diff --git a/src/mesa/state_tracker/st_shader_cache.c b/src/mesa/state_tracker/st_shader_cache.c
index b1b9d275f8..12d73965bf 100644
--- a/src/mesa/state_tracker/st_shader_cache.c
+++ b/src/mesa/state_tracker/st_shader_cache.c
@@ -142,10 +142,11 @@ read_stream_out_from_cache(struct blob_reader *blob_reader,
static void
read_tgsi_from_cache(struct blob_reader *blob_reader,
- const struct tgsi_token **tokens)
+ const struct tgsi_token **tokens,
+ unsigned *num_tokens)
{
- uint32_t num_tokens = blob_read_uint32(blob_reader);
- unsigned tokens_size = num_tokens * sizeof(struct tgsi_token);
+ *num_tokens = blob_read_uint32(blob_reader);
+ unsigned tokens_size = *num_tokens * sizeof(struct tgsi_token);
*tokens = (const struct tgsi_token*) MALLOC(tokens_size);
blob_copy_bytes(blob_reader, (uint8_t *) *tokens, tokens_size);
}
@@ -175,7 +176,8 @@ st_deserialise_tgsi_program(struct gl_context *ctx,
sizeof(stvp->result_to_output));
read_stream_out_from_cache(&blob_reader, &stvp->tgsi);
- read_tgsi_from_cache(&blob_reader, &stvp->tgsi.tokens);
+ read_tgsi_from_cache(&blob_reader, &stvp->tgsi.tokens,
+ &stvp->num_tgsi_tokens);
if (st->vp == stvp)
st->dirty |= ST_NEW_VERTEX_PROGRAM(st, stvp);
@@ -189,7 +191,8 @@ st_deserialise_tgsi_program(struct gl_context *ctx,
&sttcp->variants, &sttcp->tgsi);
read_stream_out_from_cache(&blob_reader, &sttcp->tgsi);
- read_tgsi_from_cache(&blob_reader, &sttcp->tgsi.tokens);
+ read_tgsi_from_cache(&blob_reader, &sttcp->tgsi.tokens,
+ &sttcp->num_tgsi_tokens);
if (st->tcp == sttcp)
st->dirty |= sttcp->affected_states;
@@ -203,7 +206,8 @@ st_deserialise_tgsi_program(struct gl_context *ctx,
&sttep->variants, &sttep->tgsi);
read_stream_out_from_cache(&blob_reader, &sttep->tgsi);
- read_tgsi_from_cache(&blob_reader, &sttep->tgsi.tokens);
+ read_tgsi_from_cache(&blob_reader, &sttep->tgsi.tokens,
+ &sttep->num_tgsi_tokens);
if (st->tep == sttep)
st->dirty |= sttep->affected_states;
@@ -217,7 +221,8 @@ st_deserialise_tgsi_program(struct gl_context *ctx,
&stgp->tgsi);
read_stream_out_from_cache(&blob_reader, &stgp->tgsi);
- read_tgsi_from_cache(&blob_reader, &stgp->tgsi.tokens);
+ read_tgsi_from_cache(&blob_reader, &stgp->tgsi.tokens,
+ &stgp->num_tgsi_tokens);
if (st->gp == stgp)
st->dirty |= stgp->affected_states;
@@ -229,7 +234,8 @@ st_deserialise_tgsi_program(struct gl_context *ctx,
st_release_fp_variants(st, stfp);
- read_tgsi_from_cache(&blob_reader, &stfp->tgsi.tokens);
+ read_tgsi_from_cache(&blob_reader, &stfp->tgsi.tokens,
+ &stfp->num_tgsi_tokens);
if (st->fp == stfp)
st->dirty |= stfp->affected_states;
@@ -242,7 +248,8 @@ st_deserialise_tgsi_program(struct gl_context *ctx,
st_release_cp_variants(st, stcp);
read_tgsi_from_cache(&blob_reader,
- (const struct tgsi_token**) &stcp->tgsi.prog);
+ (const struct tgsi_token**) &stcp->tgsi.prog,
+ &stcp->num_tgsi_tokens);
stcp->tgsi.req_local_mem = stcp->Base.info.cs.shared_size;
stcp->tgsi.req_private_mem = 0;
--
2.13.6