Hello community,

here is the log from the commit of package Mesa for openSUSE:Factory checked in 
at 2018-02-07 09:33:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/Mesa (Old)
 and      /work/SRC/openSUSE:Factory/.Mesa.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "Mesa"

Wed Feb  7 09:33:25 2018 rev:314 rq:573596 version:unknown

Changes:
--------
--- /work/SRC/openSUSE:Factory/Mesa/Mesa-drivers.changes        2018-02-03 
15:40:38.686577362 +0100
+++ /work/SRC/openSUSE:Factory/.Mesa.new/Mesa-drivers.changes   2018-02-07 
09:33:26.685495155 +0100
@@ -1,0 +2,6 @@
+Tue Feb  6 08:42:03 UTC 2018 - [email protected]
+
+- u_mesa-st-shader_cache-restore-num_tgsi_tokens-when-loading.patch
+  * Fix crash when loading shader. (bnc#1079465)
+
+-------------------------------------------------------------------
Mesa.changes: same change

New:
----
  u_mesa-st-shader_cache-restore-num_tgsi_tokens-when-loading.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ Mesa-drivers.spec ++++++
--- /var/tmp/diff_new_pack.1pghJB/_old  2018-02-07 09:33:28.469411864 +0100
+++ /var/tmp/diff_new_pack.1pghJB/_new  2018-02-07 09:33:28.473411677 +0100
@@ -141,6 +141,7 @@
 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
 
 BuildRequires:  autoconf >= 2.60
@@ -749,6 +750,7 @@
 %endif
 
 %patch43 -p1
+%patch44 -p1
 %patch45 -p1
 
 # Remove requires to libglvnd/libglvnd-devel from baselibs.conf when

Mesa.spec: same change


++++++ u_mesa-st-shader_cache-restore-num_tgsi_tokens-when-loading.patch ++++++
Git-commit: 041b18cf23a0acf7b0eddf63cd7a2a10192432a1
Author: Timothy Arceri <[email protected]>
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 <[email protected]>

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 <[email protected]>
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


Reply via email to