[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 18:44:32 PDT 2014


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

--- Comment #5 from Ilia Mirkin <imirkin at alum.mit.edu> ---
Forcing break to not have prefixes doesn't fix things, btw, but _does_ improve
fps by like 10%+. Weird. Perhaps the prefixes aren't such a great win beyond a
certain number of instructions. Visually, the results are at least very
similar, if not identical.

This is the shader if OP_BREAK is added to the noPredList:

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: 40024003 00000000     breakaddr 0x120
00000028: 10008011 04348003   B mov b32 $r4 0x43480000
00000030: b00405fd 600187c8     set $c0 # ge f32 $r2 $r4
00000038: 1000b003 00000100     (e $c0) bra 0x58
00000040: 10008600              mov b32 $r0 $r3
00000044: 10008604              mov b32 $r1 $r3
00000048: 10000609 0403c780     mov b32 $r2 $r3
00000050: 50000003 00000780     break
00000058: 10000011 2400c780   B ld $r4 b32 c0[0x0]
00000060: b00405fd 600107c8     set $c0 # g f32 $r2 $r4
00000068: 10011003 00000100     (e $c0) bra 0x88
00000070: 10008600              mov b32 $r0 $r3
00000074: 10008604              mov b32 $r1 $r3
00000078: 10000609 0403c780     mov b32 $r2 $r3
00000080: 50000003 00000780     break
00000088: c0000211 04367003   B mul f32 $r4 $r1 0x43670000
00000090: b0000415 04204003     add f32 $r5 $r2 0x42040000
00000098: c0050811 00000780     mul rn f32 $r4 $r4 $r5
000000a0: 102e8015 0486563f     mov b32 $r5 0x486563ee
000000a8: e0050011 00010780     add f32 $r4 (mul $r0 $r5) $r4
000000b0: b00d0415 03f8cccf     add f32 $r5 $r2 0x3f8ccccd
000000b8: c0050811 00000780     mul rn f32 $r4 $r4 $r5
000000c0: b0000811 c0000780     presin f32 $r4 $r4
000000c8: 90000811 a0000780     cos f32 $r4 $r4
000000d0: 10088015 03f7ae17     mov b32 $r5 0x3f7ae148
000000d8: b00509fd 600107c8     set $c0 # g f32 $r4 $r5
000000e0: 10022003 00000100     (e $c0) bra 0x110
000000e8: 10008005 00000003     mov b32 $r1 0x0
000000f0: 1000800d 03f80003     mov b32 $r3 0x3f800000
000000f8: c00a0409 03ba3d73     mul f32 $r2 $r2 0x3ba3d70a
00000100: 10000201 0403c780     mov b32 $r0 $r1
00000108: 50000003 00000780     break
00000110: b0000409 03f80003   B add f32 $r2 $r2 0x3f800000
00000118: 10005003 00000780     bra 0x28
00000120: b00d0001 03dccccf   B add f32 $r0 $r0 0x3dcccccd
00000128: f0000001 e0000001     exit (never) nop

Next step is to see what the blob compiler does with this.

-- 
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/af089989/attachment.html>


More information about the Nouveau mailing list