2fb8dac598
The SkVMDebugInfo now includes an skvm::Coord that the caller is responsible for filling in before converting the program. If it is set, the value indicates the device coordinates that should be traced. If it is unset, debug traces will not be emitted at all. Within the SkVMCodeGenerator, we now have a new traceMask() call which combines the current execution mask with the trace mask. Tracing opcodes now pass the result of traceMask() instead of mask(). This will limit trace data to the selected pixel, instead of tracing the entire draw. Bug: skia:12614 Change-Id: I1f8ce7d18a31aa60a139a4a7335c2a285d6aee60 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/472798 Commit-Queue: John Stiles <johnstiles@google.com> Auto-Submit: John Stiles <johnstiles@google.com> Reviewed-by: Brian Osman <brianosman@google.com>
324 lines
11 KiB
Plaintext
324 lines
11 KiB
Plaintext
$0 = colorGreen (float4 : slot 1/4, L3)
|
|
$1 = colorGreen (float4 : slot 2/4, L3)
|
|
$2 = colorGreen (float4 : slot 3/4, L3)
|
|
$3 = colorGreen (float4 : slot 4/4, L3)
|
|
$4 = colorRed (float4 : slot 1/4, L3)
|
|
$5 = colorRed (float4 : slot 2/4, L3)
|
|
$6 = colorRed (float4 : slot 3/4, L3)
|
|
$7 = colorRed (float4 : slot 4/4, L3)
|
|
$8 = coords (float2 : slot 1/2, L57)
|
|
$9 = coords (float2 : slot 2/2, L57)
|
|
$10 = zero (float4 : slot 1/4, L58)
|
|
$11 = zero (float4 : slot 2/4, L58)
|
|
$12 = zero (float4 : slot 3/4, L58)
|
|
$13 = zero (float4 : slot 4/4, L58)
|
|
$14 = one (float4 : slot 1/4, L59)
|
|
$15 = one (float4 : slot 2/4, L59)
|
|
$16 = one (float4 : slot 3/4, L59)
|
|
$17 = one (float4 : slot 4/4, L59)
|
|
$18 = green (float4 : slot 1/4, L60)
|
|
$19 = green (float4 : slot 2/4, L60)
|
|
$20 = green (float4 : slot 3/4, L60)
|
|
$21 = green (float4 : slot 4/4, L60)
|
|
$22 = red (float4 : slot 1/4, L63)
|
|
$23 = red (float4 : slot 2/4, L63)
|
|
$24 = red (float4 : slot 3/4, L63)
|
|
$25 = red (float4 : slot 4/4, L63)
|
|
$26 = mp (float, L6)
|
|
$27 = hp (float, L7)
|
|
$28 = ihp (int, L8)
|
|
$29 = imp (int, L9)
|
|
$30 = mp2 (float2 : slot 1/2, L15)
|
|
$31 = mp2 (float2 : slot 2/2, L15)
|
|
$32 = hp2 (float2 : slot 1/2, L16)
|
|
$33 = hp2 (float2 : slot 2/2, L16)
|
|
$34 = mp3 (float3 : slot 1/3, L17)
|
|
$35 = mp3 (float3 : slot 2/3, L17)
|
|
$36 = mp3 (float3 : slot 3/3, L17)
|
|
$37 = hp3 (float3 : slot 1/3, L18)
|
|
$38 = hp3 (float3 : slot 2/3, L18)
|
|
$39 = hp3 (float3 : slot 3/3, L18)
|
|
$40 = mp4 (float4 : slot 1/4, L19)
|
|
$41 = mp4 (float4 : slot 2/4, L19)
|
|
$42 = mp4 (float4 : slot 3/4, L19)
|
|
$43 = mp4 (float4 : slot 4/4, L19)
|
|
$44 = hp4 (float4 : slot 1/4, L20)
|
|
$45 = hp4 (float4 : slot 2/4, L20)
|
|
$46 = hp4 (float4 : slot 3/4, L20)
|
|
$47 = hp4 (float4 : slot 4/4, L20)
|
|
$48 = ihp2 (int2 : slot 1/2, L22)
|
|
$49 = ihp2 (int2 : slot 2/2, L22)
|
|
$50 = imp2 (int2 : slot 1/2, L23)
|
|
$51 = imp2 (int2 : slot 2/2, L23)
|
|
$52 = ihp3 (int3 : slot 1/3, L24)
|
|
$53 = ihp3 (int3 : slot 2/3, L24)
|
|
$54 = ihp3 (int3 : slot 3/3, L24)
|
|
$55 = imp3 (int3 : slot 1/3, L25)
|
|
$56 = imp3 (int3 : slot 2/3, L25)
|
|
$57 = imp3 (int3 : slot 3/3, L25)
|
|
$58 = ihp4 (int4 : slot 1/4, L26)
|
|
$59 = ihp4 (int4 : slot 2/4, L26)
|
|
$60 = ihp4 (int4 : slot 3/4, L26)
|
|
$61 = ihp4 (int4 : slot 4/4, L26)
|
|
$62 = imp4 (int4 : slot 1/4, L27)
|
|
$63 = imp4 (int4 : slot 2/4, L27)
|
|
$64 = imp4 (int4 : slot 3/4, L27)
|
|
$65 = imp4 (int4 : slot 4/4, L27)
|
|
$66 = mp2 (float2x2 : slot 1/4, L34)
|
|
$67 = mp2 (float2x2 : slot 2/4, L34)
|
|
$68 = mp2 (float2x2 : slot 3/4, L34)
|
|
$69 = mp2 (float2x2 : slot 4/4, L34)
|
|
$70 = hp2 (float2x2 : slot 1/4, L35)
|
|
$71 = hp2 (float2x2 : slot 2/4, L35)
|
|
$72 = hp2 (float2x2 : slot 3/4, L35)
|
|
$73 = hp2 (float2x2 : slot 4/4, L35)
|
|
$74 = mp3 (float3x3 : slot 1/9, L36)
|
|
$75 = mp3 (float3x3 : slot 2/9, L36)
|
|
$76 = mp3 (float3x3 : slot 3/9, L36)
|
|
$77 = mp3 (float3x3 : slot 4/9, L36)
|
|
$78 = mp3 (float3x3 : slot 5/9, L36)
|
|
$79 = mp3 (float3x3 : slot 6/9, L36)
|
|
$80 = mp3 (float3x3 : slot 7/9, L36)
|
|
$81 = mp3 (float3x3 : slot 8/9, L36)
|
|
$82 = mp3 (float3x3 : slot 9/9, L36)
|
|
$83 = hp3 (float3x3 : slot 1/9, L37)
|
|
$84 = hp3 (float3x3 : slot 2/9, L37)
|
|
$85 = hp3 (float3x3 : slot 3/9, L37)
|
|
$86 = hp3 (float3x3 : slot 4/9, L37)
|
|
$87 = hp3 (float3x3 : slot 5/9, L37)
|
|
$88 = hp3 (float3x3 : slot 6/9, L37)
|
|
$89 = hp3 (float3x3 : slot 7/9, L37)
|
|
$90 = hp3 (float3x3 : slot 8/9, L37)
|
|
$91 = hp3 (float3x3 : slot 9/9, L37)
|
|
$92 = mp4 (float4x4 : slot 1/16, L38)
|
|
$93 = mp4 (float4x4 : slot 2/16, L38)
|
|
$94 = mp4 (float4x4 : slot 3/16, L38)
|
|
$95 = mp4 (float4x4 : slot 4/16, L38)
|
|
$96 = mp4 (float4x4 : slot 5/16, L38)
|
|
$97 = mp4 (float4x4 : slot 6/16, L38)
|
|
$98 = mp4 (float4x4 : slot 7/16, L38)
|
|
$99 = mp4 (float4x4 : slot 8/16, L38)
|
|
$100 = mp4 (float4x4 : slot 9/16, L38)
|
|
$101 = mp4 (float4x4 : slot 10/16, L38)
|
|
$102 = mp4 (float4x4 : slot 11/16, L38)
|
|
$103 = mp4 (float4x4 : slot 12/16, L38)
|
|
$104 = mp4 (float4x4 : slot 13/16, L38)
|
|
$105 = mp4 (float4x4 : slot 14/16, L38)
|
|
$106 = mp4 (float4x4 : slot 15/16, L38)
|
|
$107 = mp4 (float4x4 : slot 16/16, L38)
|
|
$108 = hp4 (float4x4 : slot 1/16, L39)
|
|
$109 = hp4 (float4x4 : slot 2/16, L39)
|
|
$110 = hp4 (float4x4 : slot 3/16, L39)
|
|
$111 = hp4 (float4x4 : slot 4/16, L39)
|
|
$112 = hp4 (float4x4 : slot 5/16, L39)
|
|
$113 = hp4 (float4x4 : slot 6/16, L39)
|
|
$114 = hp4 (float4x4 : slot 7/16, L39)
|
|
$115 = hp4 (float4x4 : slot 8/16, L39)
|
|
$116 = hp4 (float4x4 : slot 9/16, L39)
|
|
$117 = hp4 (float4x4 : slot 10/16, L39)
|
|
$118 = hp4 (float4x4 : slot 11/16, L39)
|
|
$119 = hp4 (float4x4 : slot 12/16, L39)
|
|
$120 = hp4 (float4x4 : slot 13/16, L39)
|
|
$121 = hp4 (float4x4 : slot 14/16, L39)
|
|
$122 = hp4 (float4x4 : slot 15/16, L39)
|
|
$123 = hp4 (float4x4 : slot 16/16, L39)
|
|
$124 = mf[0] (float, L45)
|
|
$125 = hf[0] (float, L46)
|
|
$126 = mv[0] (float2 : slot 1/2, L47)
|
|
$127 = mv[0] (float2 : slot 2/2, L47)
|
|
$128 = mv[1] (float2 : slot 1/2, L47)
|
|
$129 = mv[1] (float2 : slot 2/2, L47)
|
|
$130 = hv[0] (float2 : slot 1/2, L48)
|
|
$131 = hv[0] (float2 : slot 2/2, L48)
|
|
$132 = hv[1] (float2 : slot 1/2, L48)
|
|
$133 = hv[1] (float2 : slot 2/2, L48)
|
|
$134 = value (float, L53)
|
|
$135 = value (float, L54)
|
|
$136 = value (float, L55)
|
|
F0 = float4 main(float2 coords)
|
|
F1 = bool test_scalar()
|
|
F2 = bool test_vector()
|
|
F3 = bool test_matrix()
|
|
F4 = bool test_array()
|
|
F5 = bool highp_param(float value)
|
|
F6 = bool mediump_param(half value)
|
|
F7 = bool lowp_param(half value)
|
|
|
|
21 registers, 175 instructions:
|
|
0 r0 = splat 3F000000 (0.5)
|
|
1 r1 = splat 42C90000 (100.5)
|
|
2 r2 = uniform32 ptr0 0
|
|
3 r3 = uniform32 ptr0 4
|
|
4 r4 = uniform32 ptr0 8
|
|
5 r5 = uniform32 ptr0 C
|
|
6 r6 = uniform32 ptr0 10
|
|
7 r7 = uniform32 ptr0 14
|
|
8 r8 = uniform32 ptr0 18
|
|
9 r9 = uniform32 ptr0 1C
|
|
10 r10 = uniform32 ptr0 20
|
|
11 r11 = eq_f32 r2 r1
|
|
12 r12 = splat 3F800000 (1)
|
|
13 r13 = splat 2 (2.8025969e-45)
|
|
14 r14 = splat 40000000 (2)
|
|
15 r15 = splat 40400000 (3)
|
|
16 r16 = splat 40800000 (4)
|
|
17 r17 = splat 3 (4.2038954e-45)
|
|
18 r18 = splat 4 (5.6051939e-45)
|
|
loop:
|
|
19 r19 = index
|
|
20 r20 = eq_f32 r19 r1
|
|
21 r20 = bit_and r20 r11
|
|
22 trace_var r20 $0 = r3 (F32)
|
|
23 trace_var r20 $1 = r4 (F32)
|
|
24 trace_var r20 $2 = r5 (F32)
|
|
25 trace_var r20 $3 = r6 (F32)
|
|
26 trace_var r20 $4 = r7 (F32)
|
|
27 trace_var r20 $5 = r8 (F32)
|
|
28 trace_var r20 $6 = r9 (F32)
|
|
29 trace_var r20 $7 = r10 (F32)
|
|
30 trace_call r20 F0 (enter)
|
|
31 trace_var r20 $8 = r19 (F32)
|
|
32 trace_var r20 $9 = r2 (F32)
|
|
33 trace_line r20 L58
|
|
34 trace_line r20 L59
|
|
35 trace_var r20 $14 = r12 (F32)
|
|
36 trace_var r20 $15 = r12 (F32)
|
|
37 trace_var r20 $16 = r12 (F32)
|
|
38 trace_var r20 $17 = r12 (F32)
|
|
39 trace_line r20 L60
|
|
40 trace_var r20 $18 = r3 (F32)
|
|
41 trace_var r20 $19 = r4 (F32)
|
|
42 trace_var r20 $20 = r5 (F32)
|
|
43 trace_var r20 $21 = r6 (F32)
|
|
44 trace_line r20 L61
|
|
45 trace_line r20 L63
|
|
46 trace_var r20 $22 = r7 (F32)
|
|
47 trace_var r20 $23 = r8 (F32)
|
|
48 trace_var r20 $24 = r9 (F32)
|
|
49 trace_var r20 $25 = r10 (F32)
|
|
50 trace_line r20 L64
|
|
51 trace_line r20 L66
|
|
52 trace_call r20 F1 (enter)
|
|
53 trace_line r20 L6
|
|
54 trace_var r20 $26 = r0 (F32)
|
|
55 trace_line r20 L7
|
|
56 trace_var r20 $27 = r0 (F32)
|
|
57 trace_line r20 L8
|
|
58 trace_var r20 $28 = r13 (I32)
|
|
59 trace_line r20 L9
|
|
60 trace_var r20 $29 = r13 (I32)
|
|
61 trace_line r20 L11
|
|
62 trace_call r20 F1 (exit)
|
|
63 trace_call r20 F2 (enter)
|
|
64 trace_line r20 L15
|
|
65 trace_var r20 $30 = r14 (F32)
|
|
66 trace_var r20 $31 = r14 (F32)
|
|
67 trace_line r20 L16
|
|
68 trace_var r20 $32 = r14 (F32)
|
|
69 trace_var r20 $33 = r14 (F32)
|
|
70 trace_line r20 L17
|
|
71 trace_var r20 $34 = r15 (F32)
|
|
72 trace_var r20 $35 = r15 (F32)
|
|
73 trace_var r20 $36 = r15 (F32)
|
|
74 trace_line r20 L18
|
|
75 trace_var r20 $37 = r15 (F32)
|
|
76 trace_var r20 $38 = r15 (F32)
|
|
77 trace_var r20 $39 = r15 (F32)
|
|
78 trace_line r20 L19
|
|
79 trace_var r20 $40 = r16 (F32)
|
|
80 trace_var r20 $41 = r16 (F32)
|
|
81 trace_var r20 $42 = r16 (F32)
|
|
82 trace_var r20 $43 = r16 (F32)
|
|
83 trace_line r20 L20
|
|
84 trace_var r20 $44 = r16 (F32)
|
|
85 trace_var r20 $45 = r16 (F32)
|
|
86 trace_var r20 $46 = r16 (F32)
|
|
87 trace_var r20 $47 = r16 (F32)
|
|
88 trace_line r20 L22
|
|
89 trace_var r20 $48 = r13 (I32)
|
|
90 trace_var r20 $49 = r13 (I32)
|
|
91 trace_line r20 L23
|
|
92 trace_var r20 $50 = r13 (I32)
|
|
93 trace_var r20 $51 = r13 (I32)
|
|
94 trace_line r20 L24
|
|
95 trace_var r20 $52 = r17 (I32)
|
|
96 trace_var r20 $53 = r17 (I32)
|
|
97 trace_var r20 $54 = r17 (I32)
|
|
98 trace_line r20 L25
|
|
99 trace_var r20 $55 = r17 (I32)
|
|
100 trace_var r20 $56 = r17 (I32)
|
|
101 trace_var r20 $57 = r17 (I32)
|
|
102 trace_line r20 L26
|
|
103 trace_var r20 $58 = r18 (I32)
|
|
104 trace_var r20 $59 = r18 (I32)
|
|
105 trace_var r20 $60 = r18 (I32)
|
|
106 trace_var r20 $61 = r18 (I32)
|
|
107 trace_line r20 L27
|
|
108 trace_var r20 $62 = r18 (I32)
|
|
109 trace_var r20 $63 = r18 (I32)
|
|
110 trace_var r20 $64 = r18 (I32)
|
|
111 trace_var r20 $65 = r18 (I32)
|
|
112 trace_line r20 L29
|
|
113 trace_call r20 F2 (exit)
|
|
114 trace_call r20 F3 (enter)
|
|
115 trace_line r20 L34
|
|
116 trace_var r20 $66 = r14 (F32)
|
|
117 trace_var r20 $69 = r14 (F32)
|
|
118 trace_line r20 L35
|
|
119 trace_var r20 $70 = r14 (F32)
|
|
120 trace_var r20 $73 = r14 (F32)
|
|
121 trace_line r20 L36
|
|
122 trace_var r20 $74 = r15 (F32)
|
|
123 trace_var r20 $78 = r15 (F32)
|
|
124 trace_var r20 $82 = r15 (F32)
|
|
125 trace_line r20 L37
|
|
126 trace_var r20 $83 = r15 (F32)
|
|
127 trace_var r20 $87 = r15 (F32)
|
|
128 trace_var r20 $91 = r15 (F32)
|
|
129 trace_line r20 L38
|
|
130 trace_var r20 $92 = r16 (F32)
|
|
131 trace_var r20 $97 = r16 (F32)
|
|
132 trace_var r20 $102 = r16 (F32)
|
|
133 trace_var r20 $107 = r16 (F32)
|
|
134 trace_line r20 L39
|
|
135 trace_var r20 $108 = r16 (F32)
|
|
136 trace_var r20 $113 = r16 (F32)
|
|
137 trace_var r20 $118 = r16 (F32)
|
|
138 trace_var r20 $123 = r16 (F32)
|
|
139 trace_line r20 L41
|
|
140 trace_call r20 F3 (exit)
|
|
141 trace_call r20 F4 (enter)
|
|
142 trace_line r20 L45
|
|
143 trace_var r20 $124 = r12 (F32)
|
|
144 trace_line r20 L46
|
|
145 trace_var r20 $125 = r12 (F32)
|
|
146 trace_line r20 L47
|
|
147 trace_var r20 $127 = r12 (F32)
|
|
148 trace_line r20 L47
|
|
149 trace_var r20 $128 = r14 (F32)
|
|
150 trace_var r20 $129 = r15 (F32)
|
|
151 trace_line r20 L48
|
|
152 trace_var r20 $131 = r12 (F32)
|
|
153 trace_line r20 L48
|
|
154 trace_var r20 $132 = r14 (F32)
|
|
155 trace_var r20 $133 = r15 (F32)
|
|
156 trace_line r20 L50
|
|
157 trace_call r20 F4 (exit)
|
|
158 trace_call r20 F5 (enter)
|
|
159 trace_var r20 $134 = r12 (F32)
|
|
160 trace_line r20 L53
|
|
161 trace_call r20 F5 (exit)
|
|
162 trace_call r20 F6 (enter)
|
|
163 trace_var r20 $135 = r14 (F32)
|
|
164 trace_line r20 L54
|
|
165 trace_call r20 F6 (exit)
|
|
166 trace_call r20 F7 (enter)
|
|
167 trace_var r20 $136 = r15 (F32)
|
|
168 trace_line r20 L55
|
|
169 trace_call r20 F7 (exit)
|
|
170 trace_call r20 F0 (exit)
|
|
171 store32 ptr1 r3
|
|
172 store32 ptr2 r4
|
|
173 store32 ptr3 r5
|
|
174 store32 ptr4 r6
|