[Nouveau] [Bug 78161] [NV96] Artifacts in output of fragment program containing not unrolled loops with conditional break

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Thu May 1 19:40:50 PDT 2014


https://bugs.freedesktop.org/show_bug.cgi?id=78161

--- Comment #7 from Ilia Mirkin <imirkin at alum.mit.edu> ---
And for the record, getting rid of the prebreak/break thing and replacing it
with bra's doesn't fix things either:

--- a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nv50.cpp
+++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nv50.cpp
@@ -1266,8 +1266,10 @@ NV50LoweringPreSSA::visit(Instruction *i)
       return handleWRSV(i);
    case OP_CALL:
       return handleCALL(i);
+   case OP_PREBREAK:
    case OP_PRECONT:
       return handlePRECONT(i);
+   case OP_BREAK:
    case OP_CONT:
       return handleCONT(i);
    case OP_PFETCH:

results in identical-looking results (but slower), generated by:

00000000: 80000000              interp $r0 v[0x0]
00000004: 90000000              rcp f32 $r0 $r0
00000008: 1000800d 03f80003     mov b32 $r3 0x3f800000
00000010: 82010004              interp $r1 v[0x4] $r0
00000014: 82020000              interp $r0 v[0x8] $r0
00000018: 10008009 00000003     mov b32 $r2 0x0
00000020: 10008011 04348003   B mov b32 $r4 0x43480000
00000028: b00405fd 600187c8     set $c0 # ge f32 $r2 $r4
00000030: 10000601 0403c280     (lg $c0) mov b32 $r0 $r3
00000038: 10000605 0403c280     (lg $c0) mov b32 $r1 $r3
00000040: 10000609 0403c280     (lg $c0) mov b32 $r2 $r3
00000048: 10023003 00000280     (lg $c0) bra 0x118
00000050: 10000011 2400c780     ld $r4 b32 c0[0x0]
00000058: b00405fd 600107c8     set $c0 # g f32 $r2 $r4
00000060: 10000601 0403c280     (lg $c0) mov b32 $r0 $r3
00000068: 10000605 0403c280     (lg $c0) mov b32 $r1 $r3
00000070: 10000609 0403c280     (lg $c0) mov b32 $r2 $r3
00000078: 10023003 00000280     (lg $c0) bra 0x118
00000080: c0000211 04367003     mul f32 $r4 $r1 0x43670000
00000088: b0000415 04204003     add f32 $r5 $r2 0x42040000
00000090: c0050811 00000780     mul rn f32 $r4 $r4 $r5
00000098: 102e8015 0486563f     mov b32 $r5 0x486563ee
000000a0: e0050011 00010780     add f32 $r4 (mul $r0 $r5) $r4
000000a8: b00d0415 03f8cccf     add f32 $r5 $r2 0x3f8ccccd
000000b0: c0050811 00000780     mul rn f32 $r4 $r4 $r5
000000b8: b0000811 c0000780     presin f32 $r4 $r4
000000c0: 90000811 a0000780     cos f32 $r4 $r4
000000c8: 10088015 03f7ae17     mov b32 $r5 0x3f7ae148
000000d0: b00509fd 600107c8     set $c0 # g f32 $r4 $r5
000000d8: 10021003 00000100     (e $c0) bra 0x108
000000e0: 10008005 00000003     mov b32 $r1 0x0
000000e8: 1000800d 03f80003     mov b32 $r3 0x3f800000
000000f0: c00a0409 03ba3d73     mul f32 $r2 $r2 0x3ba3d70a
000000f8: 10000201 0403c780     mov b32 $r0 $r1
00000100: 10023003 00000780     bra 0x118
00000108: b0000409 03f80003   B add f32 $r2 $r2 0x3f800000
00000110: 10004003 00000780     bra 0x20
00000118: b00d0001 03dccccf   B add f32 $r0 $r0 0x3dcccccd
00000120: f0000001 e0000001     exit (never) nop

I guess it's time to look at this a little more carefully.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/nouveau/attachments/20140502/116ce9c4/attachment.html>


More information about the Nouveau mailing list