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
