Bug 29922

Summary: [llvmpipe] piglit valgrind uninitialised value lp_rast_shade_quads_mask (lp_rast.c:473)
Product: Mesa Reporter: Vinson Lee <vlee>
Component: OtherAssignee: Keith Whitwell <keithw>
Status: RESOLVED WONTFIX QA Contact:
Severity: normal    
Priority: medium CC: brianp, jfonseca
Version: git   
Hardware: Other   
OS: All   
Whiteboard:
i915 platform: i915 features:

Description Vinson Lee 2010-08-31 18:02:57 UTC
mesa: 9b075cb9fa9eb6a95d0816283ef01ae72dafa680 (master)

This is a common valgrind error with many of the piglit valgrind tests on llvmpipe.

$ valgrind --track-origins=yes ./bin/fbo-1d -auto

==17795== Conditional jump or move depends on uninitialised value(s)
==17795==    at 0x573F792: ???
==17795==    by 0x4171342: lp_rast_shade_quads_mask (lp_rast.c:473)
==17795==    by 0x4173EE9: do_block_4_3 (lp_rast_tri_tmp.h:61)
==17795==    by 0x4178087: lp_rast_triangle_3_16 (lp_rast_tri.c:229)
==17795==    by 0x4171913: rasterize_bin (lp_rast.c:667)
==17795==    by 0x4171ACE: rasterize_scene (lp_rast.c:766)
==17795==    by 0x4171BA4: lp_rast_queue_scene (lp_rast.c:791)
==17795==    by 0x4178EB4: lp_scene_rasterize (lp_scene.c:405)
==17795==    by 0x4179DF4: lp_setup_rasterize_scene (lp_setup.c:158)
==17795==    by 0x417A296: set_scene_state (lp_setup.c:260)
==17795==    by 0x417A39C: lp_setup_flush (lp_setup.c:295)
==17795==    by 0x416E756: llvmpipe_flush (lp_flush.c:56)
==17795==  Uninitialised value was created by a heap allocation
==17795==    at 0x4024106: memalign (vg_replace_malloc.c:581)
==17795==    by 0x4024163: posix_memalign (vg_replace_malloc.c:709)
==17795==    by 0x415383F: os_malloc_aligned (os_memory_stdc.h:58)
==17795==    by 0x4155904: alloc_image_data (lp_texture.c:962)
==17795==    by 0x4155B23: llvmpipe_get_texture_image (lp_texture.c:1038)
==17795==    by 0x41545A0: llvmpipe_resource_map (lp_texture.c:392)
==17795==    by 0x4155007: llvmpipe_transfer_map (lp_texture.c:668)
==17795==    by 0x42A79B8: pipe_transfer_map (u_inlines.h:366)
==17795==    by 0x42A7D69: st_texture_image_map (st_texture.c:152)
==17795==    by 0x4335BAB: st_TexImage (st_cb_texture.c:691)
==17795==    by 0x4336183: st_TexImage1D (st_cb_texture.c:823)
==17795==    by 0x4255599: _mesa_TexImage1D (teximage.c:2290)
Comment 1 Jose Fonseca 2010-10-17 11:00:18 UTC
The problem happens in the JIT code (the hint is the "???"), and not the C code. And it is common behavior to process more pixels than actually get renderered - the extra will get masked with zero at the end.

So if there's no test failure then we're good.

Out of bound access are however bad, regardless wherever they happen. So if you spot such kind of errors, even in jit code, then please do report.
Comment 2 John Firebaugh 2017-01-25 01:44:39 UTC
I filed bug #99527 as a follow up to this bug.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.