Bug 40213 - [r300g] src/mesa/state_tracker/st_glsl_to_tgsi.cpp:3176:copy_propagate: Assertion `inst->dst.file != PROGRAM_TEMPORARY || inst->dst.index < this->next_temp' failed.
Summary: [r300g] src/mesa/state_tracker/st_glsl_to_tgsi.cpp:3176:copy_propagate: Asser...
Status: RESOLVED FIXED
Alias: None
Product: Mesa
Classification: Unclassified
Component: Drivers/Gallium/r300 (show other bugs)
Version: git
Hardware: x86 (IA32) Linux (All)
: medium critical
Assignee: Default DRI bug account
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-08-18 16:46 UTC by Vinson Lee
Modified: 2013-01-11 21:26 UTC (History)
1 user (show)

See Also:
i915 platform:
i915 features:


Attachments

Description Vinson Lee 2011-08-18 16:46:58 UTC
System environment:
-- chipset: ATI RV530
-- system architecture: i686
-- libdrm-dev: 2.4.26-1ubuntu1
-- mesa: ccecc08f79afc020c8c0acface04a8e53e3a7c32 (master)
-- kernel version: 3.0.0-8-generic
-- Linux distribution: Ubuntu 11.10 i386

Run piglit glsl-vs-varying-array test.

$ ./bin/shader_runner -auto tests/shaders/glsl-vs-varying-array.shader_test
r300: DRM version: 2.10.0, Name: ATI RV530, ID: 0x71c5, GB: 1, Z: 2
r300: GART size: 509 MB, VRAM size: 128 MB
r300: AA compression RAM: YES, Z compression RAM: YES, HiZ RAM: YES
src/mesa/state_tracker/st_glsl_to_tgsi.cpp:3176:copy_propagate: Assertion `inst->dst.file != PROGRAM_TEMPORARY || inst->dst.index < this->next_temp' failed.

(gdb) bt
#0  0x011be647 in _debug_assert_fail (
    expr=0x1c3ff34 "inst->dst.file != PROGRAM_TEMPORARY || inst->dst.index < this->next_temp", file=0x1c3f364 "src/mesa/state_tracker/st_glsl_to_tgsi.cpp", 
    line=3176, function=0x1c40730 "copy_propagate")
    at src/gallium/auxiliary/util/u_debug.c:282
#1  0x01aa9749 in glsl_to_tgsi_visitor::copy_propagate (this=0x842f140)
    at src/mesa/state_tracker/st_glsl_to_tgsi.cpp:3175
#2  0x01aae803 in get_mesa_program (ctx=0x8285980, shader_program=0x8497068, 
    shader=0x84b8088) at src/mesa/state_tracker/st_glsl_to_tgsi.cpp:4733
#3  0x01aaee49 in st_link_shader (ctx=0x8285980, prog=0x8497068)
    at src/mesa/state_tracker/st_glsl_to_tgsi.cpp:4891
#4  0x019bb101 in _mesa_glsl_link_shader (ctx=0x8285980, prog=0x8497068)
    at src/mesa/program/ir_to_mesa.cpp:3423
#5  0x0198307c in link_program (ctx=0x8285980, program=3)
    at src/mesa/main/shaderapi.c:877
#6  0x0198459c in _mesa_LinkProgramARB (programObj=3)
    at src/mesa/main/shaderapi.c:1461
#7  0x0806bea4 in link_and_use_shaders ()
#8  0x0806dfde in piglit_init ()
#9  0x0806ec71 in main ()
(gdb) frame 1
#1  0x01aa9749 in glsl_to_tgsi_visitor::copy_propagate (this=0x842f140)
    at src/mesa/state_tracker/st_glsl_to_tgsi.cpp:3175
3175	      assert(inst->dst.file != PROGRAM_TEMPORARY
(gdb) l
3170	   int level = 0;
3171	
3172	   foreach_iter(exec_list_iterator, iter, this->instructions) {
3173	      glsl_to_tgsi_instruction *inst = (glsl_to_tgsi_instruction *)iter.get();
3174	
3175	      assert(inst->dst.file != PROGRAM_TEMPORARY
3176	             || inst->dst.index < this->next_temp);
3177	
3178	      /* First, do any copy propagation possible into the src regs. */
3179	      for (int r = 0; r < 3; r++) {
(gdb) print inst->dst.file
$1 = PROGRAM_TEMPORARY
(gdb) print inst->dst.index
$2 = 3
(gdb) print this->next_temp
$3 = 3
Comment 1 Vinson Lee 2011-08-18 19:57:27 UTC
piglit glsl-vs-varying-array passes with softpipe and llvmpipe.
Comment 2 Fabio Pedretti 2012-12-08 22:51:21 UTC
Is this still an issue?


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.