[Mesa-dev] [PATCH] compiler: glsl: silence valgrind warning on write cache

Tapani Pälli tapani.palli at intel.com
Fri Mar 23 11:59:19 UTC 2018


No good to have random data in serialized nir;

Reviewed-by: Tapani Pälli <tapani.palli at intel.com>

On 23.03.2018 12:48, Lionel Landwerlin wrote:
> I don't think it actually fixes anything, but that's nice not to have valgrind warnings.
> It manifests itself when running the piglit test : glsl-fs-raytrace-bug27060
> 
> ==2058== Uninitialised byte(s) found during client check request
> ==2058==    at 0xC5BB040: blob_write_bytes (blob.c:152)
> ==2058==    by 0xC595359: write_variable (nir_serialize.c:144)
> ==2058==    by 0xC59560C: write_var_list (nir_serialize.c:192)
> ==2058==    by 0xC5982E4: nir_serialize (nir_serialize.c:1124)
> ==2058==    by 0xC0B729D: brw_program_serialize_nir (brw_program.c:835)
> ==2058==    by 0xC0AB2D6: brw_link_shader (brw_link.cpp:358)
> ==2058==    by 0xC32FE3F: _mesa_glsl_link_shader (ir_to_mesa.cpp:3169)
> ==2058==    by 0xC36C7ED: create_new_program(gl_context*, state_key*) (ff_fragment_shader.cpp:1127)
> ==2058==    by 0xC36C8A6: _mesa_get_fixed_func_fragment_program (ff_fragment_shader.cpp:1157)
> ==2058==    by 0xC1B50AF: update_program (state.c:134)
> ==2058==    by 0xC1B56DF: _mesa_update_state_locked (state.c:352)
> ==2058==    by 0xC1B579A: _mesa_update_state (state.c:386)
> ==2058==  Address 0xf1eab8a is 58 bytes inside a block of size 96 alloc'd
> ==2058==    at 0x4C2CB8F: malloc (vg_replace_malloc.c:299)
> ==2058==    by 0xC0FD306: ralloc_size (ralloc.c:121)
> ==2058==    by 0xC0FD5B1: ralloc_array_size (ralloc.c:208)
> ==2058==    by 0xC452B3B: (anonymous namespace)::nir_visitor::visit(ir_variable*) (glsl_to_nir.cpp:448)
> ==2058==    by 0xC45CE8B: ir_variable::accept(ir_visitor*) (ir.h:428)
> ==2058==    by 0xC46D0B5: visit_exec_list(exec_list*, ir_visitor*) (ir.cpp:1898)
> ==2058==    by 0xC451D2F: glsl_to_nir (glsl_to_nir.cpp:162)
> ==2058==    by 0xC0B5223: brw_create_nir (brw_program.c:79)
> ==2058==    by 0xC0AAB67: brw_link_shader (brw_link.cpp:257)
> ==2058==    by 0xC32FE3F: _mesa_glsl_link_shader (ir_to_mesa.cpp:3169)
> ==2058==    by 0xC36C7ED: create_new_program(gl_context*, state_key*) (ff_fragment_shader.cpp:1127)
> ==2058==    by 0xC36C8A6: _mesa_get_fixed_func_fragment_program (ff_fragment_shader.cpp:1157)
> 
> Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
> ---
>   src/compiler/glsl/glsl_to_nir.cpp | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/src/compiler/glsl/glsl_to_nir.cpp b/src/compiler/glsl/glsl_to_nir.cpp
> index be8cc33e067..fdacba36dd7 100644
> --- a/src/compiler/glsl/glsl_to_nir.cpp
> +++ b/src/compiler/glsl/glsl_to_nir.cpp
> @@ -445,8 +445,8 @@ nir_visitor::visit(ir_variable *ir)
>   
>      var->num_state_slots = ir->get_num_state_slots();
>      if (var->num_state_slots > 0) {
> -      var->state_slots = ralloc_array(var, nir_state_slot,
> -                                      var->num_state_slots);
> +      var->state_slots = rzalloc_array(var, nir_state_slot,
> +                                       var->num_state_slots);
>   
>         ir_state_slot *state_slots = ir->get_state_slots();
>         for (unsigned i = 0; i < var->num_state_slots; i++) {
> 


More information about the mesa-dev mailing list