$ RADEON_DEBUG=fp LIBGL_DRIVERS_DIR=/opt/xorg/lib/dri/ LD_LIBRARY_PATH=/opt/compiz++/lib/ /opt/compiz++/bin/compiz --replace ccp Backend : ini Integration : true Profile : default Adding plugins Initializing core options...done Initializing composite options...done debug_get_option: GALLIUM_TRACE = (null) debug_get_bool_option: GALLIUM_RBUG = FALSE radeon: Successfully grabbed chipset info from kernel! radeon: DRM version: 2.3.0 ID: 0x4150 GB: 1 Z: 1 radeon: GART size: 125 MB VRAM size: 256 MB debug_get_flags_option: RADEON_DEBUG = 0x2 (fp) debug_get_bool_option: RADEON_NO_TCL = FALSE couldn't open libtxc_dxtn.so, software DXTn compression/decompression unavailable Mesa: CPU vendor: GenuineIntel Mesa: CPU name: Intel(R) Pentium(R) 4 CPU 2.80GHz Mesa: Mesa 7.9-devel DEBUG build Jun 18 2010 15:05:01 Mesa warning: couldn't open libtxc_dxtn.so, software DXTn compression/decompression unavailable debug_get_bool_option: MESA_MVP_DP4 = FALSE debug_get_flags_option: ST_DEBUG = 0x0 debug_get_bool_option: DRAW_FSE = FALSE debug_get_bool_option: DRAW_NO_FSE = FALSE debug_get_bool_option: GALLIUM_DUMP_VS = FALSE r300: Initial fragment program FRAG DCL IN[0], COLOR, LINEAR DCL OUT[0], COLOR 0: MOV OUT[0], IN[0] 1: END Fragment Program: before compilation # Radeon Compiler Program 0: MOV output[0], input[0]; Fragment Program: after emulate loops # Radeon Compiler Program 0: MOV output[0], input[0]; Fragment Program: after emulate branches # Radeon Compiler Program 0: MOV output[0], input[0]; Fragment Program: after native rewrite part 1 # Radeon Compiler Program 0: MOV output[0], input[0]; Fragment Program: after native rewrite part 2 # Radeon Compiler Program 0: MOV output[0], input[0]; Fragment Program: after deadcode # Radeon Compiler Program 0: MOV output[0], input[0]; Fragment Program: after dataflow optimize # Radeon Compiler Program 0: MOV output[0], input[0]; Fragment Program: after dataflow passes # Radeon Compiler Program 0: MOV output[0], input[0]; Fragment Program: after pair translate # Radeon Compiler Program 0: src0.xyz = input[0], src0.w = input[0] MAD color[0].xyz, src0.xyz, src0.111, src0.000 MAD color[0].w, src0.w, src0.1, src0.0 Fragment Program: after pair scheduling # Radeon Compiler Program 0: src0.xyz = input[0], src0.w = input[0] MAD color[0].xyz, src0.xyz, src0.111, src0.000 MAD color[0].w, src0.w, src0.1, src0.0 Fragment Program: after register allocation # Radeon Compiler Program 0: src0.xyz = temp[0], src0.w = temp[0] MAD color[0].xyz, src0.xyz, src0.111, src0.000 MAD color[0].w, src0.w, src0.1, src0.0 pc=0************************************* Hardware program ---------------- NODE 0: alu_offset: 0, tex_offset: 0, alu_end: 0, tex_end: 0 (code_addr: 00400000) 0: xyz: t0 t0 t0 -> o0.xyz (1c000000) w: t0 t0 t0 -> o0.w (01000000) xyz: t0.xyz 1.0 0.0 op: 00050a80 w: t0.w 1.0 0.0 op: 00040889 debug_get_bool_option: GALLIUM_NOSSE = FALSE Initializing opengl options...done Initializing imgjpeg options...done Initializing tile options...done /opt/compiz++/bin/compiz (decoration) - Warn: Property ignored because version is 20080529 and decoration plugin version is 20080901 /opt/compiz++/bin/compiz (decoration) - Warn: Property ignored because version is 20080529 and decoration plugin version is 20080901 /opt/compiz++/bin/compiz (decoration) - Warn: Property ignored because version is 20080529 and decoration plugin version is 20080901 /opt/compiz++/bin/compiz (decoration) - Warn: Property ignored because version is 20080529 and decoration plugin version is 20080901 Initializing decor options...done Initializing showrepaint options...done Initializing move options...done Initializing commands options...done inotify_add_watch: No such file or directory Initializing wallpaper options...done /opt/compiz++/bin/compiz (wallpaper) - Warn: Malformed option /opt/compiz++/bin/compiz (wallpaper) - Warn: Malformed option /opt/compiz++/bin/compiz (wallpaper) - Warn: Malformed option /opt/compiz++/bin/compiz (wallpaper) - Warn: Malformed option r300: Initial fragment program FRAG DCL IN[0], GENERIC[0], LINEAR DCL OUT[0], COLOR DCL SAMP[0] 0: TEX OUT[0], IN[0], SAMP[0], 2D 1: END Fragment Program: before compilation # Radeon Compiler Program 0: TEX output[0], input[0], 2D[0]; Fragment Program: after emulate loops # Radeon Compiler Program 0: TEX output[0], input[0], 2D[0]; Fragment Program: after emulate branches # Radeon Compiler Program 0: TEX output[0], input[0], 2D[0]; Fragment Program: after native rewrite part 1 # Radeon Compiler Program 0: TEX output[0], input[0], 2D[0]; Fragment Program: after native rewrite part 2 # Radeon Compiler Program 0: TEX temp[1], input[0], 2D[0]; 1: MOV output[0], temp[1]; Fragment Program: after deadcode # Radeon Compiler Program 0: TEX temp[1], input[0].xy__, 2D[0]; 1: MOV output[0], temp[1]; Fragment Program: after dataflow optimize # Radeon Compiler Program 0: TEX temp[1], input[0].xy__, 2D[0]; 1: MOV output[0], temp[1]; Fragment Program: after dataflow passes # Radeon Compiler Program 0: TEX temp[1], input[0].xy__, 2D[0]; 1: MOV output[0], temp[1]; Fragment Program: after pair translate # Radeon Compiler Program 0: TEX temp[1], input[0].xy__, 2D[0]; 1: src0.xyz = temp[1], src0.w = temp[1] MAD color[0].xyz, src0.xyz, src0.111, src0.000 MAD color[0].w, src0.w, src0.1, src0.0 Fragment Program: after pair scheduling # Radeon Compiler Program 0: BEGIN_TEX; 1: TEX temp[1], input[0].xy__, 2D[0]; 2: src0.xyz = temp[1], src0.w = temp[1] MAD color[0].xyz, src0.xyz, src0.111, src0.000 MAD color[0].w, src0.w, src0.1, src0.0 Fragment Program: after register allocation # Radeon Compiler Program 0: BEGIN_TEX; 1: TEX temp[0], temp[0].xy__, 2D[0]; 2: src0.xyz = temp[0], src0.w = temp[0] MAD color[0].xyz, src0.xyz, src0.111, src0.000 MAD color[0].w, src0.w, src0.1, src0.0 pc=1************************************* Hardware program ---------------- NODE 0: alu_offset: 0, tex_offset: 0, alu_end: 0, tex_end: 0 (code_addr: 00400000) TEX: TEX t0, t0, texture[0] (00008000) 0: xyz: t0 t0 t0 -> o0.xyz (1c000000) w: t0 t0 t0 -> o0.w (01000000) xyz: t0.xyz 1.0 0.0 op: 00050a80 w: t0.w 1.0 0.0 op: 00040889 Initializing imgsvg options...done Initializing grid options...done Initializing splash options...done Initializing mousepoll options...done Initializing firepaint options...done Initializing annotate options...done Initializing water options...done Initializing place options...done Initializing resize options...done Initializing vpswitch options...done Initializing screenshot options...done Initializing crashhandler options...done Initializing widget options...done Initializing notification options...done Initializing elements options...done Initializing wobbly options...done Initializing shift options...done Initializing blur options...done Initializing resizeinfo options...done Initializing neg options...done Initializing fade options...done Initializing obs options...done Initializing opacify options...done Initializing showdesktop options...done Initializing cube options...done /opt/compiz++/bin/compiz (core) - Warn: Value type is not yet set /opt/compiz++/bin/compiz (core) - Warn: Value type is not yet set Initializing scale options...done Initializing showmouse options...done Initializing rotate options...done Initializing td options...done Initializing expo options...done Initializing ezoom options...done Initializing staticswitcher options...done Initializing ring options...done Initializing bench options...done r300: Initial fragment program FRAG DCL IN[0], GENERIC[0], PERSPECTIVE DCL OUT[0], COLOR DCL SAMP[0] DCL CONST[0] DCL TEMP[0] 0: TXP TEMP[0], IN[0], SAMP[0], 2D 1: MUL OUT[0], TEMP[0], CONST[0] 2: END Fragment Program: before compilation # Radeon Compiler Program 0: TXP temp[0], input[0], 2D[0]; 1: MUL output[0], temp[0], const[0]; Fragment Program: after emulate loops # Radeon Compiler Program 0: TXP temp[0], input[0], 2D[0]; 1: MUL output[0], temp[0], const[0]; Fragment Program: after emulate branches # Radeon Compiler Program 0: TXP temp[0], input[0], 2D[0]; 1: MUL output[0], temp[0], const[0]; Fragment Program: after native rewrite part 1 # Radeon Compiler Program 0: TXP temp[0], input[0], 2D[0]; 1: MUL output[0], temp[0], const[0]; Fragment Program: after native rewrite part 2 # Radeon Compiler Program 0: TXP temp[0], input[0], 2D[0]; 1: MUL output[0], temp[0], const[0]; Fragment Program: after deadcode # Radeon Compiler Program 0: TXP temp[0], input[0].xy_w, 2D[0]; 1: MUL output[0], temp[0], const[0]; Fragment Program: after dataflow optimize # Radeon Compiler Program 0: TXP temp[0], input[0].xy_w, 2D[0]; 1: MUL output[0], temp[0], const[0]; Fragment Program: after dataflow passes # Radeon Compiler Program 0: TXP temp[0], input[0].xy_w, 2D[0]; 1: MUL output[0], temp[0], const[0]; Fragment Program: after pair translate # Radeon Compiler Program 0: TXP temp[0], input[0].xy_w, 2D[0]; 1: src0.xyz = temp[0], src0.w = temp[0], src1.xyz = const[0], src1.w = const[0] MAD color[0].xyz, src0.xyz, src1.xyz, src0.000 MAD color[0].w, src0.w, src1.w, src0.0 Fragment Program: after pair scheduling # Radeon Compiler Program 0: BEGIN_TEX; 1: TXP temp[0], input[0].xy_w, 2D[0]; 2: src0.xyz = temp[0], src0.w = temp[0], src1.xyz = const[0], src1.w = const[0] MAD color[0].xyz, src0.xyz, src1.xyz, src0.000 MAD color[0].w, src0.w, src1.w, src0.0 Fragment Program: after register allocation # Radeon Compiler Program 0: BEGIN_TEX; 1: TXP temp[0], temp[0].xy_w, 2D[0]; 2: src0.xyz = temp[0], src0.w = temp[0], src1.xyz = const[0], src1.w = const[0] MAD color[0].xyz, src0.xyz, src1.xyz, src0.000 MAD color[0].w, src0.w, src1.w, src0.0 pc=2************************************* Hardware program ---------------- NODE 0: alu_offset: 0, tex_offset: 0, alu_end: 0, tex_end: 0 (code_addr: 00400000) TEX: TXP t0, t0, texture[0] (00018000) 0: xyz: t0 c0 t0 -> o0.xyz (1c000800) w: t0 c0 t0 -> o0.w (01000800) xyz: t0.xyz c0.xyz 0.0 op: 00050200 w: t0.w c0.w 0.0 op: 00040509 r300: Initial fragment program FRAG DCL IN[0], COLOR, LINEAR DCL IN[1], GENERIC[0], PERSPECTIVE DCL OUT[0], COLOR DCL SAMP[0] DCL CONST[0] DCL TEMP[0..4] IMM FLT32 { 1.0000, 0.0000, 0.2500, 0.0000} 0: MUL TEMP[0], CONST[0], IMM[0].xxyy 1: MUL TEMP[1], CONST[0].zwww, IMM[0].xxyy 2: ADD TEMP[2], IN[1], TEMP[0] 3: TEX TEMP[3], TEMP[2], SAMP[0], 2D 4: MUL TEMP[4], TEMP[3], IMM[0].zzzz 5: ADD TEMP[2], IN[1], -TEMP[0] 6: TEX TEMP[3], TEMP[2], SAMP[0], 2D 7: MAD TEMP[4], TEMP[3], IMM[0].zzzz, TEMP[4] 8: ADD TEMP[2], IN[1], TEMP[1] 9: TEX TEMP[3], TEMP[2], SAMP[0], 2D 10: MAD TEMP[4], TEMP[3], IMM[0].zzzz, TEMP[4] 11: ADD TEMP[2], IN[1], -TEMP[1] 12: TEX TEMP[3], TEMP[2], SAMP[0], 2D 13: MAD TEMP[3], TEMP[3], IMM[0].zzzz, TEMP[4] 14: MUL OUT[0], IN[0], TEMP[3] 15: END Fragment Program: before compilation # Radeon Compiler Program 0: MUL temp[0], const[0], const[1].xxyy; 1: MUL temp[1], const[0].zwww, const[1].xxyy; 2: ADD temp[2], input[1], temp[0]; 3: TEX temp[3], temp[2], 2D[0]; 4: MUL temp[4], temp[3], const[1].zzzz; 5: ADD temp[2], input[1], -temp[0]; 6: TEX temp[3], temp[2], 2D[0]; 7: MAD temp[4], temp[3], const[1].zzzz, temp[4]; 8: ADD temp[2], input[1], temp[1]; 9: TEX temp[3], temp[2], 2D[0]; 10: MAD temp[4], temp[3], const[1].zzzz, temp[4]; 11: ADD temp[2], input[1], -temp[1]; 12: TEX temp[3], temp[2], 2D[0]; 13: MAD temp[3], temp[3], const[1].zzzz, temp[4]; 14: MUL output[0], input[0], temp[3]; Fragment Program: after emulate loops # Radeon Compiler Program 0: MUL temp[0], const[0], const[1].xxyy; 1: MUL temp[1], const[0].zwww, const[1].xxyy; 2: ADD temp[2], input[1], temp[0]; 3: TEX temp[3], temp[2], 2D[0]; 4: MUL temp[4], temp[3], const[1].zzzz; 5: ADD temp[2], input[1], -temp[0]; 6: TEX temp[3], temp[2], 2D[0]; 7: MAD temp[4], temp[3], const[1].zzzz, temp[4]; 8: ADD temp[2], input[1], temp[1]; 9: TEX temp[3], temp[2], 2D[0]; 10: MAD temp[4], temp[3], const[1].zzzz, temp[4]; 11: ADD temp[2], input[1], -temp[1]; 12: TEX temp[3], temp[2], 2D[0]; 13: MAD temp[3], temp[3], const[1].zzzz, temp[4]; 14: MUL output[0], input[0], temp[3]; Fragment Program: after emulate branches # Radeon Compiler Program 0: MUL temp[0], const[0], const[1].xxyy; 1: MUL temp[1], const[0].zwww, const[1].xxyy; 2: ADD temp[2], input[1], temp[0]; 3: TEX temp[3], temp[2], 2D[0]; 4: MUL temp[4], temp[3], const[1].zzzz; 5: ADD temp[2], input[1], -temp[0]; 6: TEX temp[3], temp[2], 2D[0]; 7: MAD temp[4], temp[3], const[1].zzzz, temp[4]; 8: ADD temp[2], input[1], temp[1]; 9: TEX temp[3], temp[2], 2D[0]; 10: MAD temp[4], temp[3], const[1].zzzz, temp[4]; 11: ADD temp[2], input[1], -temp[1]; 12: TEX temp[3], temp[2], 2D[0]; 13: MAD temp[3], temp[3], const[1].zzzz, temp[4]; 14: MUL output[0], input[0], temp[3]; Fragment Program: after native rewrite part 1 # Radeon Compiler Program 0: MUL temp[0], const[0], const[1].xxyy; 1: MUL temp[1], const[0].zwww, const[1].xxyy; 2: ADD temp[2], input[1], temp[0]; 3: TEX temp[3], temp[2], 2D[0]; 4: MUL temp[4], temp[3], const[1].zzzz; 5: ADD temp[2], input[1], -temp[0]; 6: TEX temp[3], temp[2], 2D[0]; 7: MAD temp[4], temp[3], const[1].zzzz, temp[4]; 8: ADD temp[2], input[1], temp[1]; 9: TEX temp[3], temp[2], 2D[0]; 10: MAD temp[4], temp[3], const[1].zzzz, temp[4]; 11: ADD temp[2], input[1], -temp[1]; 12: TEX temp[3], temp[2], 2D[0]; 13: MAD temp[3], temp[3], const[1].zzzz, temp[4]; 14: MUL output[0], input[0], temp[3]; Fragment Program: after native rewrite part 2 # Radeon Compiler Program 0: MUL temp[0], const[0], const[1].xxyy; 1: MUL temp[1], const[0].zwww, const[1].xxyy; 2: ADD temp[2], input[1], temp[0]; 3: TEX temp[3], temp[2], 2D[0]; 4: MUL temp[4], temp[3], const[1].zzzz; 5: ADD temp[2], input[1], -temp[0]; 6: TEX temp[3], temp[2], 2D[0]; 7: MAD temp[4], temp[3], const[1].zzzz, temp[4]; 8: ADD temp[2], input[1], temp[1]; 9: TEX temp[3], temp[2], 2D[0]; 10: MAD temp[4], temp[3], const[1].zzzz, temp[4]; 11: ADD temp[2], input[1], -temp[1]; 12: TEX temp[3], temp[2], 2D[0]; 13: MAD temp[3], temp[3], const[1].zzzz, temp[4]; 14: MUL output[0], input[0], temp[3]; Fragment Program: after deadcode # Radeon Compiler Program 0: MUL temp[0].xy, const[0].xy__, const[1].xx__; 1: MUL temp[1].xy, const[0].zw__, const[1].xx__; 2: ADD temp[2].xy, input[1].xy__, temp[0].xy__; 3: TEX temp[3], temp[2].xy__, 2D[0]; 4: MUL temp[4], temp[3], const[1].zzzz; 5: ADD temp[2].xy, input[1].xy__, -temp[0].xy__; 6: TEX temp[3], temp[2].xy__, 2D[0]; 7: MAD temp[4], temp[3], const[1].zzzz, temp[4]; 8: ADD temp[2].xy, input[1].xy__, temp[1].xy__; 9: TEX temp[3], temp[2].xy__, 2D[0]; 10: MAD temp[4], temp[3], const[1].zzzz, temp[4]; 11: ADD temp[2].xy, input[1].xy__, -temp[1].xy__; 12: TEX temp[3], temp[2].xy__, 2D[0]; 13: MAD temp[3], temp[3], const[1].zzzz, temp[4]; 14: MUL output[0], input[0], temp[3]; Fragment Program: after dataflow optimize # Radeon Compiler Program 0: ADD temp[2].xy, input[1].xy__, const[0].xy__; 1: TEX temp[3], temp[2].xy__, 2D[0]; 2: MUL temp[4], temp[3], const[1].zzzz; 3: ADD temp[2].xy, input[1].xy__, -const[0].xy__; 4: TEX temp[3], temp[2].xy__, 2D[0]; 5: MAD temp[4], temp[3], const[1].zzzz, temp[4]; 6: ADD temp[2].xy, input[1].xy__, const[0].zw__; 7: TEX temp[3], temp[2].xy__, 2D[0]; 8: MAD temp[4], temp[3], const[1].zzzz, temp[4]; 9: ADD temp[2].xy, input[1].xy__, -const[0].zw__; 10: TEX temp[3], temp[2].xy__, 2D[0]; 11: MAD temp[3], temp[3], const[1].zzzz, temp[4]; 12: MUL output[0], input[0], temp[3]; Fragment Program: after dataflow passes # Radeon Compiler Program 0: ADD temp[2].xy, input[1].xy__, const[0].xy__; 1: TEX temp[3], temp[2].xy__, 2D[0]; 2: MUL temp[4], temp[3], const[1].zzzz; 3: ADD temp[2].xy, input[1].xy__, -const[0].xy__; 4: TEX temp[3], temp[2].xy__, 2D[0]; 5: MAD temp[4], temp[3], const[1].zzzz, temp[4]; 6: MOV temp[0].x, const[0].z___; 7: MOV temp[0].y, const[0]._w__; 8: ADD temp[2].xy, input[1].xy__, temp[0].xy__; 9: TEX temp[3], temp[2].xy__, 2D[0]; 10: MAD temp[4], temp[3], const[1].zzzz, temp[4]; 11: MOV temp[1].x, -const[0].z___; 12: MOV temp[1].y, -const[0]._w__; 13: ADD temp[2].xy, input[1].xy__, temp[1].xy__; 14: TEX temp[3], temp[2].xy__, 2D[0]; 15: MAD temp[3], temp[3], const[1].zzzz, temp[4]; 16: MUL output[0], input[0], temp[3]; Fragment Program: after pair translate # Radeon Compiler Program 0: src0.xyz = input[1], src1.xyz = const[0] MAD temp[2].xy, src0.xy_, src0.111, src1.xy_ 1: TEX temp[3], temp[2].xy__, 2D[0]; 2: src0.xyz = temp[3], src0.w = temp[3], src1.xyz = const[1] MAD temp[4].xyz, src0.xyz, src1.zzz, src0.000 MAD temp[4].w, src0.w, src1.z, src0.0 3: src0.xyz = input[1], src1.xyz = const[0] MAD temp[2].xy, src0.xy_, src0.111, -src1.xy_ 4: TEX temp[3], temp[2].xy__, 2D[0]; 5: src0.xyz = temp[3], src0.w = temp[3], src1.xyz = const[1], src1.w = temp[4], src2.xyz = temp[4] MAD temp[4].xyz, src0.xyz, src1.zzz, src2.xyz MAD temp[4].w, src0.w, src1.z, src1.w 6: src0.xyz = const[0] MAD temp[0].x, src0.z__, src0.111, src0.000 7: src0.w = const[0] MAD temp[0].y, src0._w_, src0.111, src0.000 8: src0.xyz = input[1], src1.xyz = temp[0] MAD temp[2].xy, src0.xy_, src0.111, src1.xy_ 9: TEX temp[3], temp[2].xy__, 2D[0]; 10: src0.xyz = temp[3], src0.w = temp[3], src1.xyz = const[1], src1.w = temp[4], src2.xyz = temp[4] MAD temp[4].xyz, src0.xyz, src1.zzz, src2.xyz MAD temp[4].w, src0.w, src1.z, src1.w 11: src0.xyz = const[0] MAD temp[1].x, -src0.z__, src0.111, src0.000 12: src0.w = const[0] MAD temp[1].y, -src0._w_, src0.111, src0.000 13: src0.xyz = input[1], src1.xyz = temp[1] MAD temp[2].xy, src0.xy_, src0.111, src1.xy_ 14: TEX temp[3], temp[2].xy__, 2D[0]; 15: src0.xyz = temp[3], src0.w = temp[3], src1.xyz = const[1], src1.w = temp[4], src2.xyz = temp[4] MAD temp[3].xyz, src0.xyz, src1.zzz, src2.xyz MAD temp[3].w, src0.w, src1.z, src1.w 16: src0.xyz = input[0], src0.w = input[0], src1.xyz = temp[3], src1.w = temp[3] MAD color[0].xyz, src0.xyz, src1.xyz, src0.000 MAD color[0].w, src0.w, src1.w, src0.0 Fragment Program: after pair scheduling # Radeon Compiler Program 0: src0.w = const[0] MAD temp[1].y, -src0._w_, src0.111, src0.000 1: src0.xyz = const[0] MAD temp[1].x, -src0.z__, src0.111, src0.000 2: src0.w = const[0] MAD temp[0].y, src0._w_, src0.111, src0.000 3: src0.xyz = const[0] MAD temp[0].x, src0.z__, src0.111, src0.000 4: src0.xyz = input[1], src1.xyz = const[0] MAD temp[2].xy, src0.xy_, src0.111, src1.xy_ 5: BEGIN_TEX; 6: TEX temp[3], temp[2].xy__, 2D[0]; 7: src0.xyz = temp[3], src0.w = temp[3], src1.xyz = const[1] MAD temp[4].xyz, src0.xyz, src1.zzz, src0.000 MAD temp[4].w, src0.w, src1.z, src0.0 8: src0.xyz = input[1], src1.xyz = const[0] MAD temp[2].xy, src0.xy_, src0.111, -src1.xy_ 9: BEGIN_TEX; 10: TEX temp[3], temp[2].xy__, 2D[0]; 11: src0.xyz = temp[3], src0.w = temp[3], src1.xyz = const[1], src1.w = temp[4], src2.xyz = temp[4] MAD temp[4].xyz, src0.xyz, src1.zzz, src2.xyz MAD temp[4].w, src0.w, src1.z, src1.w 12: src0.xyz = input[1], src1.xyz = temp[0] MAD temp[2].xy, src0.xy_, src0.111, src1.xy_ 13: BEGIN_TEX; 14: TEX temp[3], temp[2].xy__, 2D[0]; 15: src0.xyz = temp[3], src0.w = temp[3], src1.xyz = const[1], src1.w = temp[4], src2.xyz = temp[4] MAD temp[4].xyz, src0.xyz, src1.zzz, src2.xyz MAD temp[4].w, src0.w, src1.z, src1.w 16: src0.xyz = input[1], src1.xyz = temp[1] MAD temp[2].xy, src0.xy_, src0.111, src1.xy_ 17: BEGIN_TEX; 18: TEX temp[3], temp[2].xy__, 2D[0]; 19: src0.xyz = temp[3], src0.w = temp[3], src1.xyz = const[1], src1.w = temp[4], src2.xyz = temp[4] MAD temp[3].xyz, src0.xyz, src1.zzz, src2.xyz MAD temp[3].w, src0.w, src1.z, src1.w 20: src0.xyz = input[0], src0.w = input[0], src1.xyz = temp[3], src1.w = temp[3] MAD color[0].xyz, src0.xyz, src1.xyz, src0.000 MAD color[0].w, src0.w, src1.w, src0.0 Fragment Program: after register allocation # Radeon Compiler Program 0: src0.w = const[0] MAD temp[3].y, -src0._w_, src0.111, src0.000 1: src0.xyz = const[0] MAD temp[3].x, -src0.z__, src0.111, src0.000 2: src0.w = const[0] MAD temp[2].y, src0._w_, src0.111, src0.000 3: src0.xyz = const[0] MAD temp[2].x, src0.z__, src0.111, src0.000 4: src0.xyz = temp[1], src1.xyz = const[0] MAD temp[4].xy, src0.xy_, src0.111, src1.xy_ 5: BEGIN_TEX; 6: TEX temp[5], temp[4].xy__, 2D[0]; 7: src0.xyz = temp[5], src0.w = temp[5], src1.xyz = const[1] MAD temp[6].xyz, src0.xyz, src1.zzz, src0.000 MAD temp[6].w, src0.w, src1.z, src0.0 8: src0.xyz = temp[1], src1.xyz = const[0] MAD temp[4].xy, src0.xy_, src0.111, -src1.xy_ 9: BEGIN_TEX; 10: TEX temp[5], temp[4].xy__, 2D[0]; 11: src0.xyz = temp[5], src0.w = temp[5], src1.xyz = const[1], src1.w = temp[6], src2.xyz = temp[6] MAD temp[6].xyz, src0.xyz, src1.zzz, src2.xyz MAD temp[6].w, src0.w, src1.z, src1.w 12: src0.xyz = temp[1], src1.xyz = temp[2] MAD temp[4].xy, src0.xy_, src0.111, src1.xy_ 13: BEGIN_TEX; 14: TEX temp[5], temp[4].xy__, 2D[0]; 15: src0.xyz = temp[5], src0.w = temp[5], src1.xyz = const[1], src1.w = temp[6], src2.xyz = temp[6] MAD temp[6].xyz, src0.xyz, src1.zzz, src2.xyz MAD temp[6].w, src0.w, src1.z, src1.w 16: src0.xyz = temp[1], src1.xyz = temp[3] MAD temp[4].xy, src0.xy_, src0.111, src1.xy_ 17: BEGIN_TEX; 18: TEX temp[5], temp[4].xy__, 2D[0]; 19: src0.xyz = temp[5], src0.w = temp[5], src1.xyz = const[1], src1.w = temp[6], src2.xyz = temp[6] MAD temp[5].xyz, src0.xyz, src1.zzz, src2.xyz MAD temp[5].w, src0.w, src1.z, src1.w 20: src0.xyz = temp[0], src0.w = temp[0], src1.xyz = temp[5], src1.w = temp[5] MAD color[0].xyz, src0.xyz, src1.xyz, src0.000 MAD color[0].w, src0.w, src1.w, src0.0 r300compiler error: r300_fragprog_emit.c::begin_tex(): Too many texture indirections pc=3************************************* Hardware program ---------------- NODE 0: alu_offset: 0, tex_offset: 0, alu_end: 0, tex_end: 0 (code_addr: 00000000) 0: xyz: t0 t0 t0 -> t3.y (010c0000) w: c0 t0 t0 -> (00000020) xyz: -c0.www 1.0 0.0 op: 00050aac w: t0.x t0.x t0.x op: 00000000 r300 FP: Compiler Error: r300_fragprog_emit.c::begin_tex(): Too many texture indirections Using a dummy shader instead. If there's an 'unknown opcode' message, please file a bug report and attach this log. r300: Initial fragment program FRAG DCL OUT[0], COLOR IMM FLT32 { 0.0000, 1.0000, 0.0000, 0.0000} 0: MOV OUT[0], IMM[0].xxxy 1: END Fragment Program: before compilation # Radeon Compiler Program 0: MOV output[0], temp[0].0001; Fragment Program: after emulate loops # Radeon Compiler Program 0: MOV output[0], temp[0].0001; Fragment Program: after emulate branches # Radeon Compiler Program 0: MOV output[0], temp[0].0001; Fragment Program: after native rewrite part 1 # Radeon Compiler Program 0: MOV output[0], temp[0].0001; Fragment Program: after native rewrite part 2 # Radeon Compiler Program 0: MOV output[0], temp[0].0001; Fragment Program: after deadcode # Radeon Compiler Program 0: MOV output[0], temp[0].0001; Fragment Program: after dataflow optimize # Radeon Compiler Program 0: MOV output[0], temp[0].0001; Fragment Program: after dataflow passes # Radeon Compiler Program 0: MOV output[0], temp[0].0001; Fragment Program: after pair translate # Radeon Compiler Program 0: MAD color[0].xyz, src0.000, src0.111, src0.000 MAD color[0].w, src0.1, src0.1, src0.0 Fragment Program: after pair scheduling # Radeon Compiler Program 0: MAD color[0].xyz, src0.000, src0.111, src0.000 MAD color[0].w, src0.1, src0.1, src0.0 Fragment Program: after register allocation # Radeon Compiler Program 0: MAD color[0].xyz, src0.000, src0.111, src0.000 MAD color[0].w, src0.1, src0.1, src0.0 pc=4************************************* Hardware program ---------------- NODE 0: alu_offset: 0, tex_offset: 0, alu_end: 0, tex_end: 0 (code_addr: 00400000) 0: xyz: t0 t0 t0 -> o0.xyz (1c000000) w: t0 t0 t0 -> o0.w (01000000) xyz: 0.0 1.0 0.0 op: 00050a94 w: 1.0 1.0 0.0 op: 00040891 r300: Initial fragment program FRAG DCL IN[0], GENERIC[0], PERSPECTIVE DCL OUT[0], COLOR DCL SAMP[0] DCL TEMP[0] 0: TXP TEMP[0], IN[0], SAMP[0], 2D 1: MOV OUT[0], TEMP[0] 2: END Fragment Program: before compilation # Radeon Compiler Program 0: TXP temp[0], input[0], 2D[0]; 1: MOV output[0], temp[0]; Fragment Program: after emulate loops # Radeon Compiler Program 0: TXP temp[0], input[0], 2D[0]; 1: MOV output[0], temp[0]; Fragment Program: after emulate branches # Radeon Compiler Program 0: TXP temp[0], input[0], 2D[0]; 1: MOV output[0], temp[0]; Fragment Program: after native rewrite part 1 # Radeon Compiler Program 0: TXP temp[0], input[0], 2D[0]; 1: MOV output[0], temp[0]; Fragment Program: after native rewrite part 2 # Radeon Compiler Program 0: TXP temp[0], input[0], 2D[0]; 1: MOV output[0], temp[0]; Fragment Program: after deadcode # Radeon Compiler Program 0: TXP temp[0], input[0].xy_w, 2D[0]; 1: MOV output[0], temp[0]; Fragment Program: after dataflow optimize # Radeon Compiler Program 0: TXP temp[0], input[0].xy_w, 2D[0]; 1: MOV output[0], temp[0]; Fragment Program: after dataflow passes # Radeon Compiler Program 0: TXP temp[0], input[0].xy_w, 2D[0]; 1: MOV output[0], temp[0]; Fragment Program: after pair translate # Radeon Compiler Program 0: TXP temp[0], input[0].xy_w, 2D[0]; 1: src0.xyz = temp[0], src0.w = temp[0] MAD color[0].xyz, src0.xyz, src0.111, src0.000 MAD color[0].w, src0.w, src0.1, src0.0 Fragment Program: after pair scheduling # Radeon Compiler Program 0: BEGIN_TEX; 1: TXP temp[0], input[0].xy_w, 2D[0]; 2: src0.xyz = temp[0], src0.w = temp[0] MAD color[0].xyz, src0.xyz, src0.111, src0.000 MAD color[0].w, src0.w, src0.1, src0.0 Fragment Program: after register allocation # Radeon Compiler Program 0: BEGIN_TEX; 1: TXP temp[0], temp[0].xy_w, 2D[0]; 2: src0.xyz = temp[0], src0.w = temp[0] MAD color[0].xyz, src0.xyz, src0.111, src0.000 MAD color[0].w, src0.w, src0.1, src0.0 pc=5************************************* Hardware program ---------------- NODE 0: alu_offset: 0, tex_offset: 0, alu_end: 0, tex_end: 0 (code_addr: 00400000) TEX: TXP t0, t0, texture[0] (00018000) 0: xyz: t0 t0 t0 -> o0.xyz (1c000000) w: t0 t0 t0 -> o0.w (01000000) xyz: t0.xyz 1.0 0.0 op: 00050a80 w: t0.w 1.0 0.0 op: 00040889 r300: Initial fragment program FRAG DCL IN[0], GENERIC[0], PERSPECTIVE DCL OUT[0], COLOR DCL SAMP[0] DCL CONST[0] DCL TEMP[0] 0: TXP TEMP[0], IN[0], SAMP[0], 2D 1: MOV OUT[0].xyz, TEMP[0] 2: MOV OUT[0].w, CONST[0] 3: END Fragment Program: before compilation # Radeon Compiler Program 0: TXP temp[0], input[0], 2D[0]; 1: MOV output[0].xyz, temp[0]; 2: MOV output[0].w, const[0]; Fragment Program: after emulate loops # Radeon Compiler Program 0: TXP temp[0], input[0], 2D[0]; 1: MOV output[0].xyz, temp[0]; 2: MOV output[0].w, const[0]; Fragment Program: after emulate branches # Radeon Compiler Program 0: TXP temp[0], input[0], 2D[0]; 1: MOV output[0].xyz, temp[0]; 2: MOV output[0].w, const[0]; Fragment Program: after native rewrite part 1 # Radeon Compiler Program 0: TXP temp[0], input[0], 2D[0]; 1: MOV output[0].xyz, temp[0]; 2: MOV output[0].w, const[0]; Fragment Program: after native rewrite part 2 # Radeon Compiler Program 0: TXP temp[0], input[0], 2D[0]; 1: MOV output[0].xyz, temp[0]; 2: MOV output[0].w, const[0]; Fragment Program: after deadcode # Radeon Compiler Program 0: TXP temp[0].xyz, input[0].xy_w, 2D[0]; 1: MOV output[0].xyz, temp[0].xyz_; 2: MOV output[0].w, const[0].___w; Fragment Program: after dataflow optimize # Radeon Compiler Program 0: TXP temp[0].xyz, input[0].xy_w, 2D[0]; 1: MOV output[0].xyz, temp[0].xyz_; 2: MOV output[0].w, const[0].___w; Fragment Program: after dataflow passes # Radeon Compiler Program 0: TXP temp[0].xyz, input[0].xy_w, 2D[0]; 1: MOV output[0].xyz, temp[0].xyz_; 2: MOV output[0].w, const[0].___w; Fragment Program: after pair translate # Radeon Compiler Program 0: TXP temp[0].xyz, input[0].xy_w, 2D[0]; 1: src0.xyz = temp[0] MAD color[0].xyz, src0.xyz, src0.111, src0.000 2: src0.w = const[0] MAD color[0].w, src0.w, src0.1, src0.0 Fragment Program: after pair scheduling # Radeon Compiler Program 0: BEGIN_TEX; 1: TXP temp[0].xyz, input[0].xy_w, 2D[0]; 2: src0.xyz = temp[0], src0.w = const[0] MAD color[0].xyz, src0.xyz, src0.111, src0.000 MAD color[0].w, src0.w, src0.1, src0.0 Fragment Program: after register allocation # Radeon Compiler Program 0: BEGIN_TEX; 1: TXP temp[0].xyz, temp[0].xy_w, 2D[0]; 2: src0.xyz = temp[0], src0.w = const[0] MAD color[0].xyz, src0.xyz, src0.111, src0.000 MAD color[0].w, src0.w, src0.1, src0.0 pc=6************************************* Hardware program ---------------- NODE 0: alu_offset: 0, tex_offset: 0, alu_end: 0, tex_end: 0 (code_addr: 00400000) TEX: TXP t0, t0, texture[0] (00018000) 0: xyz: t0 t0 t0 -> o0.xyz (1c000000) w: c0 t0 t0 -> o0.w (01000020) xyz: t0.xyz 1.0 0.0 op: 00050a80 w: c0.w 1.0 0.0 op: 00040889 Setting Update "detect_refresh_rate" Setting Update "refresh_rate" Setting Update "unredirect_fullscreen_windows" Setting Update "texture_filter" Setting Update "lighting" Setting Update "restore_key" Setting Update "square_key" Setting Update "even_key" Setting Update "horizontal_key" Setting Update "vertical_key" Setting Update "command" Setting Update "snapoff_maximized" Setting Update "command0" Setting Update "command1" Setting Update "command2" Setting Update "command3" Setting Update "command4" Setting Update "command5" Setting Update "command6" Setting Update "run_command0_key" Setting Update "run_command1_key" Setting Update "run_command2_key" Setting Update "run_command3_key" Setting Update "run_command4_key" Setting Update "run_command5_key" Setting Update "run_command6_key" Setting Update "bg_image" Setting Update "bg_image_pos" Setting Update "bg_fill_type" Setting Update "bg_color1" Setting Update "bg_color2" Setting Update "cycle_wallpapers" Setting Update "fade_duration" Setting Update "background" Setting Update "logo" Setting Update "fire_color" Setting Update "fire_mystical" Setting Update "fill_color" Setting Update "stroke_color" Setting Update "title_wave" Setting Update "mode" Setting Update "mode" Setting Update "initiate_button" Setting Update "directory" Setting Update "launch_app" Setting Update "start_wm" Setting Update "wm_cmd" Setting Update "next_element_key" Setting Update "prev_element_key" Setting Update "toggle_selected_key" Setting Update "update_delay" Setting Update "over_windows" Setting Update "element_cap" Setting Update "shiver" Setting Update "window_match" Setting Update "ground_color1" Setting Update "ground_color2" Setting Update "focus_blur" Setting Update "alpha_blur_match" Setting Update "alpha_blur" Setting Update "filter" Setting Update "independent_tex" Setting Update "gradient_1" Setting Update "gradient_2" Setting Update "gradient_3" Setting Update "window_toggle_key" Setting Update "screen_toggle_key" Setting Update "skydome" Setting Update "skydome_image" Setting Update "skydome_animated" Setting Update "active_opacity" Setting Update "color" Setting Update "edge_flip_window" Setting Update "snap_top" Setting Update "snap_bottom" Setting Update "zoom" Setting Update "initiate_button" Setting Update "rotate_left_key" Setting Update "rotate_right_key" Setting Update "rotate_left_window_key" Setting Update "rotate_right_window_key" Setting Update "deform" Setting Update "ground_color1" Setting Update "ground_color2" Setting Update "zoom_in_button" Setting Update "zoom_out_button" Setting Update "zoom_box_button" Setting Update "zoom_factor" Setting Update "next_key" Setting Update "prev_key" Setting Update "next_all_key" Setting Update "prev_all_key" Setting Update "next_key" Setting Update "prev_key" Setting Update "next_all_key" Setting Update "prev_all_key" r300: Initial fragment program FRAG DCL IN[0], GENERIC[0], PERSPECTIVE DCL OUT[0], COLOR DCL SAMP[0] DCL CONST[0..1] DCL CONST[4..5] DCL TEMP[0..4] IMM FLT32 { -1.0000, 2.0000, 0.0000, 0.0000} 0: TXP TEMP[0], IN[0], SAMP[0], 2D 1: LRP TEMP[1].xyz, CONST[0].wwww, TEMP[0], CONST[0] 2: MOV TEMP[1].w, TEMP[0] 3: MAD TEMP[2], IMM[0].yyyy, TEMP[1], IMM[0].xxxx 4: MAD TEMP[3], IMM[0].yyyy, CONST[1], IMM[0].xxxx 5: DP3_SAT TEMP[4].xyz, TEMP[2], TEMP[3] 6: MOV TEMP[4].w, TEMP[1] 7: LRP TEMP[2].xyz, CONST[4].wwww, TEMP[0], TEMP[4] 8: MOV TEMP[2].w, TEMP[4] 9: MUL OUT[0], TEMP[2], CONST[5] 10: END Fragment Program: before compilation # Radeon Compiler Program 0: TXP temp[0], input[0], 2D[0]; 1: LRP temp[1].xyz, const[0].wwww, temp[0], const[0]; 2: MOV temp[1].w, temp[0]; 3: MAD temp[2], const[6].yyyy, temp[1], const[6].xxxx; 4: MAD temp[3], const[6].yyyy, const[1], const[6].xxxx; 5: DP3_SAT temp[4].xyz, temp[2], temp[3]; 6: MOV temp[4].w, temp[1]; 7: LRP temp[2].xyz, const[4].wwww, temp[0], temp[4]; 8: MOV temp[2].w, temp[4]; 9: MUL output[0], temp[2], const[5]; Fragment Program: after emulate loops # Radeon Compiler Program 0: TXP temp[0], input[0], 2D[0]; 1: LRP temp[1].xyz, const[0].wwww, temp[0], const[0]; 2: MOV temp[1].w, temp[0]; 3: MAD temp[2], const[6].yyyy, temp[1], const[6].xxxx; 4: MAD temp[3], const[6].yyyy, const[1], const[6].xxxx; 5: DP3_SAT temp[4].xyz, temp[2], temp[3]; 6: MOV temp[4].w, temp[1]; 7: LRP temp[2].xyz, const[4].wwww, temp[0], temp[4]; 8: MOV temp[2].w, temp[4]; 9: MUL output[0], temp[2], const[5]; Fragment Program: after emulate branches # Radeon Compiler Program 0: TXP temp[0], input[0], 2D[0]; 1: LRP temp[1].xyz, const[0].wwww, temp[0], const[0]; 2: MOV temp[1].w, temp[0]; 3: MAD temp[2], const[6].yyyy, temp[1], const[6].xxxx; 4: MAD temp[3], const[6].yyyy, const[1], const[6].xxxx; 5: DP3_SAT temp[4].xyz, temp[2], temp[3]; 6: MOV temp[4].w, temp[1]; 7: LRP temp[2].xyz, const[4].wwww, temp[0], temp[4]; 8: MOV temp[2].w, temp[4]; 9: MUL output[0], temp[2], const[5]; Fragment Program: after native rewrite part 1 # Radeon Compiler Program 0: TXP temp[0], input[0], 2D[0]; 1: ADD temp[5], temp[0], -const[0]; 2: MAD temp[1].xyz, const[0].wwww, temp[5], const[0]; 3: MOV temp[1].w, temp[0]; 4: MAD temp[2], const[6].yyyy, temp[1], const[6].xxxx; 5: MAD temp[3], const[6].yyyy, const[1], const[6].xxxx; 6: DP3_SAT temp[4].xyz, temp[2], temp[3]; 7: MOV temp[4].w, temp[1]; 8: ADD temp[6], temp[0], -temp[4]; 9: MAD temp[2].xyz, const[4].wwww, temp[6], temp[4]; 10: MOV temp[2].w, temp[4]; 11: MUL output[0], temp[2], const[5]; Fragment Program: after native rewrite part 2 # Radeon Compiler Program 0: TXP temp[0], input[0], 2D[0]; 1: ADD temp[5], temp[0], -const[0]; 2: MAD temp[1].xyz, const[0].wwww, temp[5], const[0]; 3: MOV temp[1].w, temp[0]; 4: MAD temp[2], const[6].yyyy, temp[1], const[6].xxxx; 5: MAD temp[3], const[6].yyyy, const[1], const[6].xxxx; 6: DP3_SAT temp[4].xyz, temp[2], temp[3]; 7: MOV temp[4].w, temp[1]; 8: ADD temp[6], temp[0], -temp[4]; 9: MAD temp[2].xyz, const[4].wwww, temp[6], temp[4]; 10: MOV temp[2].w, temp[4]; 11: MUL output[0], temp[2], const[5]; Fragment Program: after deadcode # Radeon Compiler Program 0: TXP temp[0], input[0].xy_w, 2D[0]; 1: ADD temp[5].xyz, temp[0].xyz_, -const[0].xyz_; 2: MAD temp[1].xyz, const[0].www_, temp[5].xyz_, const[0].xyz_; 3: MOV temp[1].w, temp[0].___w; 4: MAD temp[2].xyz, const[6].yyy_, temp[1].xyz_, const[6].xxx_; 5: MAD temp[3].xyz, const[6].yyy_, const[1].xyz_, const[6].xxx_; 6: DP3_SAT temp[4].xyz, temp[2].xyz_, temp[3].xyz_; 7: MOV temp[4].w, temp[1].___w; 8: ADD temp[6].xyz, temp[0].xyz_, -temp[4].xyz_; 9: MAD temp[2].xyz, const[4].www_, temp[6].xyz_, temp[4].xyz_; 10: MOV temp[2].w, temp[4].___w; 11: MUL output[0], temp[2], const[5]; Fragment Program: after dataflow optimize # Radeon Compiler Program 0: TXP temp[0], input[0].xy_w, 2D[0]; 1: ADD temp[5].xyz, temp[0].xyz_, -const[0].xyz_; 2: MAD temp[1].xyz, const[0].www_, temp[5].xyz_, const[0].xyz_; 3: MAD temp[2].xyz, const[6].yyy_, temp[1].xyz_, none.-1-1-1_; 4: MAD temp[3].xyz, const[6].yyy_, const[1].xyz_, none.-1-1-1_; 5: DP3_SAT temp[4].xyz, temp[2].xyz_, temp[3].xyz_; 6: ADD temp[6].xyz, temp[0].xyz_, -temp[4].xyz_; 7: MAD temp[2].xyz, const[4].www_, temp[6].xyz_, temp[4].xyz_; 8: MOV temp[2].w, temp[0].___w; 9: MUL output[0], temp[2], const[5]; Fragment Program: after dataflow passes # Radeon Compiler Program 0: TXP temp[0], input[0].xy_w, 2D[0]; 1: ADD temp[5].xyz, temp[0].xyz_, -const[0].xyz_; 2: MAD temp[1].xyz, const[0].www_, temp[5].xyz_, const[0].xyz_; 3: MAD temp[2].xyz, const[6].yyy_, temp[1].xyz_, none.-1-1-1_; 4: MAD temp[3].xyz, const[6].yyy_, const[1].xyz_, none.-1-1-1_; 5: DP3_SAT temp[4].xyz, temp[2].xyz_, temp[3].xyz_; 6: ADD temp[6].xyz, temp[0].xyz_, -temp[4].xyz_; 7: MAD temp[2].xyz, const[4].www_, temp[6].xyz_, temp[4].xyz_; 8: MOV temp[2].w, temp[0].___w; 9: MUL output[0], temp[2], const[5]; Fragment Program: after pair translate # Radeon Compiler Program 0: TXP temp[0], input[0].xy_w, 2D[0]; 1: src0.xyz = temp[0], src1.xyz = const[0] MAD temp[5].xyz, src0.xyz, src0.111, -src1.xyz 2: src0.xyz = temp[5], src0.w = const[0], src1.xyz = const[0] MAD temp[1].xyz, src0.www, src0.xyz, src1.xyz 3: src0.xyz = const[6], src1.xyz = temp[1] MAD temp[2].xyz, src0.yyy, src1.xyz, -src0.111 4: src0.xyz = const[6], src1.xyz = const[1] MAD temp[3].xyz, src0.yyy, src1.xyz, -src0.111 5: src0.xyz = temp[2], src1.xyz = temp[3] DP3_SAT temp[4].xyz, src0.xyz, src1.xyz 6: src0.xyz = temp[0], src1.xyz = temp[4] MAD temp[6].xyz, src0.xyz, src0.111, -src1.xyz 7: src0.xyz = temp[6], src0.w = const[4], src1.xyz = temp[4] MAD temp[2].xyz, src0.www, src0.xyz, src1.xyz 8: src0.w = temp[0] MAD temp[2].w, src0.w, src0.1, src0.0 9: src0.xyz = temp[2], src0.w = temp[2], src1.xyz = const[5], src1.w = const[5] MAD color[0].xyz, src0.xyz, src1.xyz, src0.000 MAD color[0].w, src0.w, src1.w, src0.0 Fragment Program: after pair scheduling # Radeon Compiler Program 0: BEGIN_TEX; 1: TXP temp[0], input[0].xy_w, 2D[0]; 2: src0.xyz = temp[0], src0.w = temp[0], src1.xyz = const[0] MAD temp[5].xyz, src0.xyz, src0.111, -src1.xyz MAD temp[2].w, src0.w, src0.1, src0.0 3: src0.xyz = temp[5], src0.w = const[0], src1.xyz = const[0] MAD temp[1].xyz, src0.www, src0.xyz, src1.xyz 4: src0.xyz = const[6], src1.xyz = temp[1] MAD temp[2].xyz, src0.yyy, src1.xyz, -src0.111 5: src0.xyz = const[6], src1.xyz = const[1] MAD temp[3].xyz, src0.yyy, src1.xyz, -src0.111 6: src0.xyz = temp[2], src1.xyz = temp[3] DP3_SAT temp[4].xyz, src0.xyz, src1.xyz 7: src0.xyz = temp[0], src1.xyz = temp[4] MAD temp[6].xyz, src0.xyz, src0.111, -src1.xyz 8: src0.xyz = temp[6], src0.w = const[4], src1.xyz = temp[4] MAD temp[2].xyz, src0.www, src0.xyz, src1.xyz 9: src0.xyz = temp[2], src0.w = temp[2], src1.xyz = const[5], src1.w = const[5] MAD color[0].xyz, src0.xyz, src1.xyz, src0.000 MAD color[0].w, src0.w, src1.w, src0.0 Fragment Program: after register allocation # Radeon Compiler Program 0: BEGIN_TEX; 1: TXP temp[0], temp[0].xy_w, 2D[0]; 2: src0.xyz = temp[0], src0.w = temp[0], src1.xyz = const[0] MAD temp[1].xyz, src0.xyz, src0.111, -src1.xyz MAD temp[2].w, src0.w, src0.1, src0.0 3: src0.xyz = temp[1], src0.w = const[0], src1.xyz = const[0] MAD temp[1].xyz, src0.www, src0.xyz, src1.xyz 4: src0.xyz = const[6], src1.xyz = temp[1] MAD temp[2].xyz, src0.yyy, src1.xyz, -src0.111 5: src0.xyz = const[6], src1.xyz = const[1] MAD temp[1].xyz, src0.yyy, src1.xyz, -src0.111 6: src0.xyz = temp[2], src1.xyz = temp[1] DP3_SAT temp[1].xyz, src0.xyz, src1.xyz 7: src0.xyz = temp[0], src1.xyz = temp[1] MAD temp[0].xyz, src0.xyz, src0.111, -src1.xyz 8: src0.xyz = temp[0], src0.w = const[4], src1.xyz = temp[1] MAD temp[2].xyz, src0.www, src0.xyz, src1.xyz 9: src0.xyz = temp[2], src0.w = temp[2], src1.xyz = const[5], src1.w = const[5] MAD color[0].xyz, src0.xyz, src1.xyz, src0.000 MAD color[0].w, src0.w, src1.w, src0.0 pc=7************************************* Hardware program ---------------- NODE 0: alu_offset: 0, tex_offset: 0, alu_end: 7, tex_end: 0 (code_addr: 004001c0) TEX: TXP t0, t0, texture[0] (00018000) 0: xyz: t0 c0 t0 -> t1.xyz (03840800) w: t0 t0 t0 -> t2.w (00880000) xyz: t0.xyz 1.0 -c0.xyz op: 00090a80 w: t0.w 1.0 0.0 op: 00040889 1: xyz: t1 c0 t0 -> t1.xyz (03840801) w: c0 t0 t0 -> (00000020) xyz: c0.www t1.xyz c0.xyz op: 0001000c w: t1.x t1.x t1.x op: 00000000 2: xyz: c6 t1 t0 -> t2.xyz (03880066) w: t0 t0 t0 -> (00000000) xyz: c6.yyy t1.xyz -1.0 op: 000d4202 w: c6.x c6.x c6.x op: 00000000 3: xyz: c6 c1 t0 -> t1.xyz (03840866) w: t0 t0 t0 -> (00000000) xyz: c6.yyy c1.xyz -1.0 op: 000d4202 w: c6.x c6.x c6.x op: 00000000 4: xyz: t2 t1 t0 -> t1.xyz (03840042) w: t0 t0 t0 -> (00000000) xyz: t2.xyz t1.xyz t2.xxx op: 40804200 w: t2.x t2.x t2.x op: 00000000 5: xyz: t0 t1 t0 -> t0.xyz (03800040) w: t0 t0 t0 -> (00000000) xyz: t0.xyz 1.0 -t1.xyz op: 00090a80 w: t0.x t0.x t0.x op: 00000000 6: xyz: t0 t1 t0 -> t2.xyz (03880040) w: c4 t0 t0 -> (00000024) xyz: c4.www t0.xyz t1.xyz op: 0001000c w: t0.x t0.x t0.x op: 00000000 7: xyz: t2 c5 t0 -> o0.xyz (1c000942) w: t2 c5 t0 -> o0.w (01000942) xyz: t2.xyz c5.xyz 0.0 op: 00050200 w: t2.w c5.w 0.0 op: 00040509 r300: Initial fragment program FRAG DCL IN[0], COLOR, LINEAR DCL IN[1], GENERIC[0], PERSPECTIVE DCL OUT[0], COLOR DCL SAMP[0] DCL CONST[0] DCL CONST[3] DCL TEMP[0..5] IMM FLT32 { 1.0000, 0.0000, 0.2500, 0.0000} 0: MUL TEMP[0], CONST[0], IMM[0].xxyy 1: MUL TEMP[1], CONST[0].zwww, IMM[0].xxyy 2: ADD TEMP[2], IN[1], TEMP[0] 3: TEX TEMP[3], TEMP[2], SAMP[0], 2D 4: MUL TEMP[4], TEMP[3], IMM[0].zzzz 5: ADD TEMP[2], IN[1], -TEMP[0] 6: TEX TEMP[3], TEMP[2], SAMP[0], 2D 7: MAD TEMP[4], TEMP[3], IMM[0].zzzz, TEMP[4] 8: ADD TEMP[2], IN[1], TEMP[1] 9: TEX TEMP[3], TEMP[2], SAMP[0], 2D 10: MAD TEMP[4], TEMP[3], IMM[0].zzzz, TEMP[4] 11: ADD TEMP[2], IN[1], -TEMP[1] 12: TEX TEMP[3], TEMP[2], SAMP[0], 2D 13: MAD TEMP[3], TEMP[3], IMM[0].zzzz, TEMP[4] 14: MUL TEMP[3], IN[0], TEMP[3] 15: MUL TEMP[5], TEMP[3], IMM[0].xxxy 16: DP3 TEMP[5], TEMP[5], CONST[3] 17: LRP TEMP[3].xyz, CONST[3].wwww, TEMP[3], TEMP[5] 18: MOV OUT[0], TEMP[3] 19: END Fragment Program: before compilation # Radeon Compiler Program 0: MUL temp[0], const[0], const[4].xxyy; 1: MUL temp[1], const[0].zwww, const[4].xxyy; 2: ADD temp[2], input[1], temp[0]; 3: TEX temp[3], temp[2], 2D[0]; 4: MUL temp[4], temp[3], const[4].zzzz; 5: ADD temp[2], input[1], -temp[0]; 6: TEX temp[3], temp[2], 2D[0]; 7: MAD temp[4], temp[3], const[4].zzzz, temp[4]; 8: ADD temp[2], input[1], temp[1]; 9: TEX temp[3], temp[2], 2D[0]; 10: MAD temp[4], temp[3], const[4].zzzz, temp[4]; 11: ADD temp[2], input[1], -temp[1]; 12: TEX temp[3], temp[2], 2D[0]; 13: MAD temp[3], temp[3], const[4].zzzz, temp[4]; 14: MUL temp[3], input[0], temp[3]; 15: MUL temp[5], temp[3], const[4].xxxy; 16: DP3 temp[5], temp[5], const[3]; 17: LRP temp[3].xyz, const[3].wwww, temp[3], temp[5]; 18: MOV output[0], temp[3]; Fragment Program: after emulate loops # Radeon Compiler Program 0: MUL temp[0], const[0], const[4].xxyy; 1: MUL temp[1], const[0].zwww, const[4].xxyy; 2: ADD temp[2], input[1], temp[0]; 3: TEX temp[3], temp[2], 2D[0]; 4: MUL temp[4], temp[3], const[4].zzzz; 5: ADD temp[2], input[1], -temp[0]; 6: TEX temp[3], temp[2], 2D[0]; 7: MAD temp[4], temp[3], const[4].zzzz, temp[4]; 8: ADD temp[2], input[1], temp[1]; 9: TEX temp[3], temp[2], 2D[0]; 10: MAD temp[4], temp[3], const[4].zzzz, temp[4]; 11: ADD temp[2], input[1], -temp[1]; 12: TEX temp[3], temp[2], 2D[0]; 13: MAD temp[3], temp[3], const[4].zzzz, temp[4]; 14: MUL temp[3], input[0], temp[3]; 15: MUL temp[5], temp[3], const[4].xxxy; 16: DP3 temp[5], temp[5], const[3]; 17: LRP temp[3].xyz, const[3].wwww, temp[3], temp[5]; 18: MOV output[0], temp[3]; Fragment Program: after emulate branches # Radeon Compiler Program 0: MUL temp[0], const[0], const[4].xxyy; 1: MUL temp[1], const[0].zwww, const[4].xxyy; 2: ADD temp[2], input[1], temp[0]; 3: TEX temp[3], temp[2], 2D[0]; 4: MUL temp[4], temp[3], const[4].zzzz; 5: ADD temp[2], input[1], -temp[0]; 6: TEX temp[3], temp[2], 2D[0]; 7: MAD temp[4], temp[3], const[4].zzzz, temp[4]; 8: ADD temp[2], input[1], temp[1]; 9: TEX temp[3], temp[2], 2D[0]; 10: MAD temp[4], temp[3], const[4].zzzz, temp[4]; 11: ADD temp[2], input[1], -temp[1]; 12: TEX temp[3], temp[2], 2D[0]; 13: MAD temp[3], temp[3], const[4].zzzz, temp[4]; 14: MUL temp[3], input[0], temp[3]; 15: MUL temp[5], temp[3], const[4].xxxy; 16: DP3 temp[5], temp[5], const[3]; 17: LRP temp[3].xyz, const[3].wwww, temp[3], temp[5]; 18: MOV output[0], temp[3]; Fragment Program: after native rewrite part 1 # Radeon Compiler Program 0: MUL temp[0], const[0], const[4].xxyy; 1: MUL temp[1], const[0].zwww, const[4].xxyy; 2: ADD temp[2], input[1], temp[0]; 3: TEX temp[3], temp[2], 2D[0]; 4: MUL temp[4], temp[3], const[4].zzzz; 5: ADD temp[2], input[1], -temp[0]; 6: TEX temp[3], temp[2], 2D[0]; 7: MAD temp[4], temp[3], const[4].zzzz, temp[4]; 8: ADD temp[2], input[1], temp[1]; 9: TEX temp[3], temp[2], 2D[0]; 10: MAD temp[4], temp[3], const[4].zzzz, temp[4]; 11: ADD temp[2], input[1], -temp[1]; 12: TEX temp[3], temp[2], 2D[0]; 13: MAD temp[3], temp[3], const[4].zzzz, temp[4]; 14: MUL temp[3], input[0], temp[3]; 15: MUL temp[5], temp[3], const[4].xxxy; 16: DP3 temp[5], temp[5], const[3]; 17: ADD temp[6], temp[3], -temp[5]; 18: MAD temp[3].xyz, const[3].wwww, temp[6], temp[5]; 19: MOV output[0], temp[3]; Fragment Program: after native rewrite part 2 # Radeon Compiler Program 0: MUL temp[0], const[0], const[4].xxyy; 1: MUL temp[1], const[0].zwww, const[4].xxyy; 2: ADD temp[2], input[1], temp[0]; 3: TEX temp[3], temp[2], 2D[0]; 4: MUL temp[4], temp[3], const[4].zzzz; 5: ADD temp[2], input[1], -temp[0]; 6: TEX temp[3], temp[2], 2D[0]; 7: MAD temp[4], temp[3], const[4].zzzz, temp[4]; 8: ADD temp[2], input[1], temp[1]; 9: TEX temp[3], temp[2], 2D[0]; 10: MAD temp[4], temp[3], const[4].zzzz, temp[4]; 11: ADD temp[2], input[1], -temp[1]; 12: TEX temp[3], temp[2], 2D[0]; 13: MAD temp[3], temp[3], const[4].zzzz, temp[4]; 14: MUL temp[3], input[0], temp[3]; 15: MUL temp[5], temp[3], const[4].xxxy; 16: DP3 temp[5], temp[5], const[3]; 17: ADD temp[6], temp[3], -temp[5]; 18: MAD temp[3].xyz, const[3].wwww, temp[6], temp[5]; 19: MOV output[0], temp[3]; Fragment Program: after deadcode # Radeon Compiler Program 0: MUL temp[0].xy, const[0].xy__, const[4].xx__; 1: MUL temp[1].xy, const[0].zw__, const[4].xx__; 2: ADD temp[2].xy, input[1].xy__, temp[0].xy__; 3: TEX temp[3], temp[2].xy__, 2D[0]; 4: MUL temp[4], temp[3], const[4].zzzz; 5: ADD temp[2].xy, input[1].xy__, -temp[0].xy__; 6: TEX temp[3], temp[2].xy__, 2D[0]; 7: MAD temp[4], temp[3], const[4].zzzz, temp[4]; 8: ADD temp[2].xy, input[1].xy__, temp[1].xy__; 9: TEX temp[3], temp[2].xy__, 2D[0]; 10: MAD temp[4], temp[3], const[4].zzzz, temp[4]; 11: ADD temp[2].xy, input[1].xy__, -temp[1].xy__; 12: TEX temp[3], temp[2].xy__, 2D[0]; 13: MAD temp[3], temp[3], const[4].zzzz, temp[4]; 14: MUL temp[3], input[0], temp[3]; 15: MUL temp[5].xyz, temp[3].xyz_, const[4].xxx_; 16: DP3 temp[5].xyz, temp[5].xyz_, const[3].xyz_; 17: ADD temp[6].xyz, temp[3].xyz_, -temp[5].xyz_; 18: MAD temp[3].xyz, const[3].www_, temp[6].xyz_, temp[5].xyz_; 19: MOV output[0], temp[3]; Fragment Program: after dataflow optimize # Radeon Compiler Program 0: ADD temp[2].xy, input[1].xy__, const[0].xy__; 1: TEX temp[3], temp[2].xy__, 2D[0]; 2: MUL temp[4], temp[3], const[4].zzzz; 3: ADD temp[2].xy, input[1].xy__, -const[0].xy__; 4: TEX temp[3], temp[2].xy__, 2D[0]; 5: MAD temp[4], temp[3], const[4].zzzz, temp[4]; 6: ADD temp[2].xy, input[1].xy__, const[0].zw__; 7: TEX temp[3], temp[2].xy__, 2D[0]; 8: MAD temp[4], temp[3], const[4].zzzz, temp[4]; 9: ADD temp[2].xy, input[1].xy__, -const[0].zw__; 10: TEX temp[3], temp[2].xy__, 2D[0]; 11: MAD temp[3], temp[3], const[4].zzzz, temp[4]; 12: MUL temp[3], input[0], temp[3]; 13: DP3 temp[5].xyz, temp[3].xyz_, const[3].xyz_; 14: ADD temp[6].xyz, temp[3].xyz_, -temp[5].xyz_; 15: MAD temp[3].xyz, const[3].www_, temp[6].xyz_, temp[5].xyz_; 16: MOV output[0], temp[3]; Fragment Program: after dataflow passes # Radeon Compiler Program 0: ADD temp[2].xy, input[1].xy__, const[0].xy__; 1: TEX temp[3], temp[2].xy__, 2D[0]; 2: MUL temp[4], temp[3], const[4].zzzz; 3: ADD temp[2].xy, input[1].xy__, -const[0].xy__; 4: TEX temp[3], temp[2].xy__, 2D[0]; 5: MAD temp[4], temp[3], const[4].zzzz, temp[4]; 6: MOV temp[0].x, const[0].z___; 7: MOV temp[0].y, const[0]._w__; 8: ADD temp[2].xy, input[1].xy__, temp[0].xy__; 9: TEX temp[3], temp[2].xy__, 2D[0]; 10: MAD temp[4], temp[3], const[4].zzzz, temp[4]; 11: MOV temp[1].x, -const[0].z___; 12: MOV temp[1].y, -const[0]._w__; 13: ADD temp[2].xy, input[1].xy__, temp[1].xy__; 14: TEX temp[3], temp[2].xy__, 2D[0]; 15: MAD temp[3], temp[3], const[4].zzzz, temp[4]; 16: MUL temp[3], input[0], temp[3]; 17: DP3 temp[5].xyz, temp[3].xyz_, const[3].xyz_; 18: ADD temp[6].xyz, temp[3].xyz_, -temp[5].xyz_; 19: MAD temp[3].xyz, const[3].www_, temp[6].xyz_, temp[5].xyz_; 20: MOV output[0], temp[3]; Fragment Program: after pair translate # Radeon Compiler Program 0: src0.xyz = input[1], src1.xyz = const[0] MAD temp[2].xy, src0.xy_, src0.111, src1.xy_ 1: TEX temp[3], temp[2].xy__, 2D[0]; 2: src0.xyz = temp[3], src0.w = temp[3], src1.xyz = const[4] MAD temp[4].xyz, src0.xyz, src1.zzz, src0.000 MAD temp[4].w, src0.w, src1.z, src0.0 3: src0.xyz = input[1], src1.xyz = const[0] MAD temp[2].xy, src0.xy_, src0.111, -src1.xy_ 4: TEX temp[3], temp[2].xy__, 2D[0]; 5: src0.xyz = temp[3], src0.w = temp[3], src1.xyz = const[4], src1.w = temp[4], src2.xyz = temp[4] MAD temp[4].xyz, src0.xyz, src1.zzz, src2.xyz MAD temp[4].w, src0.w, src1.z, src1.w 6: src0.xyz = const[0] MAD temp[0].x, src0.z__, src0.111, src0.000 7: src0.w = const[0] MAD temp[0].y, src0._w_, src0.111, src0.000 8: src0.xyz = input[1], src1.xyz = temp[0] MAD temp[2].xy, src0.xy_, src0.111, src1.xy_ 9: TEX temp[3], temp[2].xy__, 2D[0]; 10: src0.xyz = temp[3], src0.w = temp[3], src1.xyz = const[4], src1.w = temp[4], src2.xyz = temp[4] MAD temp[4].xyz, src0.xyz, src1.zzz, src2.xyz MAD temp[4].w, src0.w, src1.z, src1.w 11: src0.xyz = const[0] MAD temp[1].x, -src0.z__, src0.111, src0.000 12: src0.w = const[0] MAD temp[1].y, -src0._w_, src0.111, src0.000 13: src0.xyz = input[1], src1.xyz = temp[1] MAD temp[2].xy, src0.xy_, src0.111, src1.xy_ 14: TEX temp[3], temp[2].xy__, 2D[0]; 15: src0.xyz = temp[3], src0.w = temp[3], src1.xyz = const[4], src1.w = temp[4], src2.xyz = temp[4] MAD temp[3].xyz, src0.xyz, src1.zzz, src2.xyz MAD temp[3].w, src0.w, src1.z, src1.w 16: src0.xyz = input[0], src0.w = input[0], src1.xyz = temp[3], src1.w = temp[3] MAD temp[3].xyz, src0.xyz, src1.xyz, src0.000 MAD temp[3].w, src0.w, src1.w, src0.0 17: src0.xyz = temp[3], src1.xyz = const[3] DP3 temp[5].xyz, src0.xyz, src1.xyz 18: src0.xyz = temp[3], src1.xyz = temp[5] MAD temp[6].xyz, src0.xyz, src0.111, -src1.xyz 19: src0.xyz = temp[6], src0.w = const[3], src1.xyz = temp[5] MAD temp[3].xyz, src0.www, src0.xyz, src1.xyz 20: src0.xyz = temp[3], src0.w = temp[3] MAD color[0].xyz, src0.xyz, src0.111, src0.000 MAD color[0].w, src0.w, src0.1, src0.0 Fragment Program: after pair scheduling # Radeon Compiler Program 0: src0.w = const[0] MAD temp[1].y, -src0._w_, src0.111, src0.000 1: src0.xyz = const[0] MAD temp[1].x, -src0.z__, src0.111, src0.000 2: src0.w = const[0] MAD temp[0].y, src0._w_, src0.111, src0.000 3: src0.xyz = const[0] MAD temp[0].x, src0.z__, src0.111, src0.000 4: src0.xyz = input[1], src1.xyz = const[0] MAD temp[2].xy, src0.xy_, src0.111, src1.xy_ 5: BEGIN_TEX; 6: TEX temp[3], temp[2].xy__, 2D[0]; 7: src0.xyz = temp[3], src0.w = temp[3], src1.xyz = const[4] MAD temp[4].xyz, src0.xyz, src1.zzz, src0.000 MAD temp[4].w, src0.w, src1.z, src0.0 8: src0.xyz = input[1], src1.xyz = const[0] MAD temp[2].xy, src0.xy_, src0.111, -src1.xy_ 9: BEGIN_TEX; 10: TEX temp[3], temp[2].xy__, 2D[0]; 11: src0.xyz = temp[3], src0.w = temp[3], src1.xyz = const[4], src1.w = temp[4], src2.xyz = temp[4] MAD temp[4].xyz, src0.xyz, src1.zzz, src2.xyz MAD temp[4].w, src0.w, src1.z, src1.w 12: src0.xyz = input[1], src1.xyz = temp[0] MAD temp[2].xy, src0.xy_, src0.111, src1.xy_ 13: BEGIN_TEX; 14: TEX temp[3], temp[2].xy__, 2D[0]; 15: src0.xyz = temp[3], src0.w = temp[3], src1.xyz = const[4], src1.w = temp[4], src2.xyz = temp[4] MAD temp[4].xyz, src0.xyz, src1.zzz, src2.xyz MAD temp[4].w, src0.w, src1.z, src1.w 16: src0.xyz = input[1], src1.xyz = temp[1] MAD temp[2].xy, src0.xy_, src0.111, src1.xy_ 17: BEGIN_TEX; 18: TEX temp[3], temp[2].xy__, 2D[0]; 19: src0.xyz = temp[3], src0.w = temp[3], src1.xyz = const[4], src1.w = temp[4], src2.xyz = temp[4] MAD temp[3].xyz, src0.xyz, src1.zzz, src2.xyz MAD temp[3].w, src0.w, src1.z, src1.w 20: src0.xyz = input[0], src0.w = input[0], src1.xyz = temp[3], src1.w = temp[3] MAD temp[3].xyz, src0.xyz, src1.xyz, src0.000 MAD temp[3].w, src0.w, src1.w, src0.0 21: src0.xyz = temp[3], src1.xyz = const[3] DP3 temp[5].xyz, src0.xyz, src1.xyz 22: src0.xyz = temp[3], src1.xyz = temp[5] MAD temp[6].xyz, src0.xyz, src0.111, -src1.xyz 23: src0.xyz = temp[6], src0.w = const[3], src1.xyz = temp[5] MAD temp[3].xyz, src0.www, src0.xyz, src1.xyz 24: src0.xyz = temp[3], src0.w = temp[3] MAD color[0].xyz, src0.xyz, src0.111, src0.000 MAD color[0].w, src0.w, src0.1, src0.0 Fragment Program: after register allocation # Radeon Compiler Program 0: src0.w = const[0] MAD temp[3].y, -src0._w_, src0.111, src0.000 1: src0.xyz = const[0] MAD temp[3].x, -src0.z__, src0.111, src0.000 2: src0.w = const[0] MAD temp[2].y, src0._w_, src0.111, src0.000 3: src0.xyz = const[0] MAD temp[2].x, src0.z__, src0.111, src0.000 4: src0.xyz = temp[1], src1.xyz = const[0] MAD temp[4].xy, src0.xy_, src0.111, src1.xy_ 5: BEGIN_TEX; 6: TEX temp[5], temp[4].xy__, 2D[0]; 7: src0.xyz = temp[5], src0.w = temp[5], src1.xyz = const[4] MAD temp[6].xyz, src0.xyz, src1.zzz, src0.000 MAD temp[6].w, src0.w, src1.z, src0.0 8: src0.xyz = temp[1], src1.xyz = const[0] MAD temp[4].xy, src0.xy_, src0.111, -src1.xy_ 9: BEGIN_TEX; 10: TEX temp[5], temp[4].xy__, 2D[0]; 11: src0.xyz = temp[5], src0.w = temp[5], src1.xyz = const[4], src1.w = temp[6], src2.xyz = temp[6] MAD temp[6].xyz, src0.xyz, src1.zzz, src2.xyz MAD temp[6].w, src0.w, src1.z, src1.w 12: src0.xyz = temp[1], src1.xyz = temp[2] MAD temp[4].xy, src0.xy_, src0.111, src1.xy_ 13: BEGIN_TEX; 14: TEX temp[5], temp[4].xy__, 2D[0]; 15: src0.xyz = temp[5], src0.w = temp[5], src1.xyz = const[4], src1.w = temp[6], src2.xyz = temp[6] MAD temp[6].xyz, src0.xyz, src1.zzz, src2.xyz MAD temp[6].w, src0.w, src1.z, src1.w 16: src0.xyz = temp[1], src1.xyz = temp[3] MAD temp[4].xy, src0.xy_, src0.111, src1.xy_ 17: BEGIN_TEX; 18: TEX temp[5], temp[4].xy__, 2D[0]; 19: src0.xyz = temp[5], src0.w = temp[5], src1.xyz = const[4], src1.w = temp[6], src2.xyz = temp[6] MAD temp[5].xyz, src0.xyz, src1.zzz, src2.xyz MAD temp[5].w, src0.w, src1.z, src1.w 20: src0.xyz = temp[0], src0.w = temp[0], src1.xyz = temp[5], src1.w = temp[5] MAD temp[5].xyz, src0.xyz, src1.xyz, src0.000 MAD temp[5].w, src0.w, src1.w, src0.0 21: src0.xyz = temp[5], src1.xyz = const[3] DP3 temp[0].xyz, src0.xyz, src1.xyz 22: src0.xyz = temp[5], src1.xyz = temp[0] MAD temp[1].xyz, src0.xyz, src0.111, -src1.xyz 23: src0.xyz = temp[1], src0.w = const[3], src1.xyz = temp[0] MAD temp[5].xyz, src0.www, src0.xyz, src1.xyz 24: src0.xyz = temp[5], src0.w = temp[5] MAD color[0].xyz, src0.xyz, src0.111, src0.000 MAD color[0].w, src0.w, src0.1, src0.0 r300compiler error: r300_fragprog_emit.c::begin_tex(): Too many texture indirections pc=8************************************* Hardware program ---------------- NODE 0: alu_offset: 0, tex_offset: 0, alu_end: 0, tex_end: 0 (code_addr: 00000000) 0: xyz: t0 t0 t0 -> t3.y (010c0000) w: c0 t0 t0 -> (00000020) xyz: -c0.www 1.0 0.0 op: 00050aac w: t0.x t0.x t0.x op: 00000000 r300 FP: Compiler Error: r300_fragprog_emit.c::begin_tex(): Too many texture indirections Using a dummy shader instead. If there's an 'unknown opcode' message, please file a bug report and attach this log. r300: Initial fragment program FRAG DCL OUT[0], COLOR IMM FLT32 { 0.0000, 1.0000, 0.0000, 0.0000} 0: MOV OUT[0], IMM[0].xxxy 1: END Fragment Program: before compilation # Radeon Compiler Program 0: MOV output[0], temp[0].0001; Fragment Program: after emulate loops # Radeon Compiler Program 0: MOV output[0], temp[0].0001; Fragment Program: after emulate branches # Radeon Compiler Program 0: MOV output[0], temp[0].0001; Fragment Program: after native rewrite part 1 # Radeon Compiler Program 0: MOV output[0], temp[0].0001; Fragment Program: after native rewrite part 2 # Radeon Compiler Program 0: MOV output[0], temp[0].0001; Fragment Program: after deadcode # Radeon Compiler Program 0: MOV output[0], temp[0].0001; Fragment Program: after dataflow optimize # Radeon Compiler Program 0: MOV output[0], temp[0].0001; Fragment Program: after dataflow passes # Radeon Compiler Program 0: MOV output[0], temp[0].0001; Fragment Program: after pair translate # Radeon Compiler Program 0: MAD color[0].xyz, src0.000, src0.111, src0.000 MAD color[0].w, src0.1, src0.1, src0.0 Fragment Program: after pair scheduling # Radeon Compiler Program 0: MAD color[0].xyz, src0.000, src0.111, src0.000 MAD color[0].w, src0.1, src0.1, src0.0 Fragment Program: after register allocation # Radeon Compiler Program 0: MAD color[0].xyz, src0.000, src0.111, src0.000 MAD color[0].w, src0.1, src0.1, src0.0 pc=9************************************* Hardware program ---------------- NODE 0: alu_offset: 0, tex_offset: 0, alu_end: 0, tex_end: 0 (code_addr: 00400000) 0: xyz: t0 t0 t0 -> o0.xyz (1c000000) w: t0 t0 t0 -> o0.w (01000000) xyz: 0.0 1.0 0.0 op: 00050a94 w: 1.0 1.0 0.0 op: 00040891 r300: Initial fragment program FRAG DCL OUT[0], COLOR DCL CONST[0] 0: MOV OUT[0], CONST[0] 1: END Fragment Program: before compilation # Radeon Compiler Program 0: MOV output[0], const[0]; Fragment Program: after emulate loops # Radeon Compiler Program 0: MOV output[0], const[0]; Fragment Program: after emulate branches # Radeon Compiler Program 0: MOV output[0], const[0]; Fragment Program: after native rewrite part 1 # Radeon Compiler Program 0: MOV output[0], const[0]; Fragment Program: after native rewrite part 2 # Radeon Compiler Program 0: MOV output[0], const[0]; Fragment Program: after deadcode # Radeon Compiler Program 0: MOV output[0], const[0]; Fragment Program: after dataflow optimize # Radeon Compiler Program 0: MOV output[0], const[0]; Fragment Program: after dataflow passes # Radeon Compiler Program 0: MOV output[0], const[0]; Fragment Program: after pair translate # Radeon Compiler Program 0: src0.xyz = const[0], src0.w = const[0] MAD color[0].xyz, src0.xyz, src0.111, src0.000 MAD color[0].w, src0.w, src0.1, src0.0 Fragment Program: after pair scheduling # Radeon Compiler Program 0: src0.xyz = const[0], src0.w = const[0] MAD color[0].xyz, src0.xyz, src0.111, src0.000 MAD color[0].w, src0.w, src0.1, src0.0 Fragment Program: after register allocation # Radeon Compiler Program 0: src0.xyz = const[0], src0.w = const[0] MAD color[0].xyz, src0.xyz, src0.111, src0.000 MAD color[0].w, src0.w, src0.1, src0.0 pc=10************************************* Hardware program ---------------- NODE 0: alu_offset: 0, tex_offset: 0, alu_end: 0, tex_end: 0 (code_addr: 00400000) 0: xyz: c0 t0 t0 -> o0.xyz (1c000020) w: c0 t0 t0 -> o0.w (01000020) xyz: c0.xyz 1.0 0.0 op: 00050a80 w: c0.w 1.0 0.0 op: 00040889