diff --git a/Mesa-drivers.changes b/Mesa-drivers.changes index f67fe0e..3389b60 100644 --- a/Mesa-drivers.changes +++ b/Mesa-drivers.changes @@ -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 diff --git a/Mesa-drivers.spec b/Mesa-drivers.spec index 5117d0b..a6ed15c 100644 --- a/Mesa-drivers.spec +++ b/Mesa-drivers.spec @@ -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 diff --git a/Mesa.changes b/Mesa.changes index f67fe0e..3389b60 100644 --- a/Mesa.changes +++ b/Mesa.changes @@ -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 diff --git a/Mesa.spec b/Mesa.spec index 6e37cc0..5341f9e 100644 --- a/Mesa.spec +++ b/Mesa.spec @@ -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 diff --git a/baselibs.conf b/baselibs.conf index 9d24653..7f07edd 100644 --- a/baselibs.conf +++ b/baselibs.conf @@ -106,6 +106,7 @@ libvdpau_r300 libvdpau_r600 libvdpau_radeonsi libwayland-egl1 +Mesa-dri-vc4 Mesa-dri-nouveau Mesa-dri supplements "Mesa- = " diff --git a/mesa-18.0.0-rc3.tar.xz b/mesa-18.0.0-rc3.tar.xz deleted file mode 100644 index 7d4d8a8..0000000 --- a/mesa-18.0.0-rc3.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:27c1ade098d9e0afaa7ecaa2d4ce7fe1e84f105b82c0d19926f9694087ea5758 -size 10964880 diff --git a/mesa-18.0.0-rc3.tar.xz.sig b/mesa-18.0.0-rc3.tar.xz.sig deleted file mode 100644 index 13161e5..0000000 Binary files a/mesa-18.0.0-rc3.tar.xz.sig and /dev/null differ diff --git a/mesa-18.0.0-rc4.tar.xz b/mesa-18.0.0-rc4.tar.xz new file mode 100644 index 0000000..6160a95 --- /dev/null +++ b/mesa-18.0.0-rc4.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ad575becea192f04403b6783492955f395dd8faad7e51cbcbad203be70eb9075 +size 11027596 diff --git a/mesa-18.0.0-rc4.tar.xz.sig b/mesa-18.0.0-rc4.tar.xz.sig new file mode 100644 index 0000000..c4124be Binary files /dev/null and b/mesa-18.0.0-rc4.tar.xz.sig differ diff --git a/u_glsl-linker-error.patch b/u_glsl-linker-error.patch new file mode 100644 index 0000000..a753642 --- /dev/null +++ b/u_glsl-linker-error.patch @@ -0,0 +1,115 @@ +From 4195eed961ccfe404ae81b9112189fc93a254ded Mon Sep 17 00:00:00 2001 +From: "Juan A. Suarez Romero" +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 +CC: "18.0" +Tested-by: Matteo Bruni +Reviewed-by: Tapani Pälli +Signed-off-by: Juan A. Suarez Romero +--- + 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 + diff --git a/u_mesa-st-shader_cache-restore-num_tgsi_tokens-when-loading.patch b/u_mesa-st-shader_cache-restore-num_tgsi_tokens-when-loading.patch deleted file mode 100644 index 7a6858c..0000000 --- a/u_mesa-st-shader_cache-restore-num_tgsi_tokens-when-loading.patch +++ /dev/null @@ -1,101 +0,0 @@ -Git-commit: 041b18cf23a0acf7b0eddf63cd7a2a10192432a1 -Author: Timothy Arceri -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 - -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 -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 -