Bug 29922 - [llvmpipe] piglit valgrind uninitialised value lp_rast_shade_quads_mask (lp_rast.c:473)
Summary: [llvmpipe] piglit valgrind uninitialised value lp_rast_shade_quads_mask (lp_r...
Status: RESOLVED WONTFIX
Alias: None
Product: Mesa
Classification: Unclassified
Component: Other (show other bugs)
Version: git
Hardware: Other All
: medium normal
Assignee: Keith Whitwell
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-08-31 18:02 UTC by Vinson Lee
Modified: 2017-01-25 01:44 UTC (History)
2 users (show)

See Also:
i915 platform:
i915 features:


Attachments

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.