a9741ee25a
Exactly enough implemented to run fm --skvm -b cpu -s runtime_shader -w foo This shader 0: 0077 load2 0 10: 00a2 pushimmediate 998277249(0.0039215688593685627) 22: 0070 dup 31: 0094 multiplyf2 40: 0080 loaduniform 2 50: 00a2 pushimmediate 1065353216(1.0) 62: 00c1 store4 2 71: 00b4 return 0 becomes this blitter, including matrix, blending, asserts, etc: 17 registers, 57 instructions: 0 r0 = uniform32 arg(0) 4 1 r0 = to_f32 r0 2 r1 = splat 3F000000 (0.5) 3 r0 = add_f32 r0 r1 4 r2 = uniform32 arg(0) 2C 5 r3 = uniform32 arg(0) 28 6 r2 = fma_f32 r0 r3 r2 7 r3 = uniform32 arg(0) 0 8 r4 = uniform32 arg(0) 24 9 r5 = splat 3F800000 (1) 10 r6 = uniform32 arg(0) 38 11 r6 = min_f32 r6 r5 12 r7 = splat 0 (0) 13 r6 = max_f32 r7 r6 14 r8 = splat 437F0000 (255) 15 r9 = mul_f32 r6 r8 16 r9 = round r9 17 r10 = splat FF (3.5733111e-43) 18 r10 = pack r9 r10 8 19 r9 = splat 3B808081 (0.0039215689) 20 r11 = uniform32 arg(0) 20 21 r12 = uniform32 arg(0) 1C 22 r11 = fma_f32 r0 r12 r11 23 r12 = uniform32 arg(0) 18 24 r0 = splat 3F800001 (1.0000001) 25 r13 = min_f32 r6 r0 26 r14 = splat B4000000 (-1.1920929e-07) 27 r13 = max_f32 r14 r13 28 r13 = eq_f32 r6 r13 29 assert_true r13 r6 loop: 30 r6 = index 31 r6 = sub_i32 r3 r6 32 r6 = to_f32 r6 33 r6 = add_f32 r6 r1 34 r13 = fma_f32 r6 r4 r2 35 r13 = mul_f32 r9 r13 36 r6 = fma_f32 r6 r12 r11 37 r13 = min_f32 r13 r5 38 r13 = max_f32 r7 r13 39 r15 = mul_f32 r13 r8 40 r15 = round r15 41 r6 = mul_f32 r9 r6 42 r6 = min_f32 r6 r5 43 r6 = max_f32 r7 r6 44 r16 = mul_f32 r6 r8 45 r16 = round r16 46 r15 = pack r16 r15 8 47 r15 = pack r15 r10 16 48 store32 arg(1) r15 49 r15 = min_f32 r13 r0 50 r15 = max_f32 r14 r15 51 r15 = eq_f32 r13 r15 52 assert_true r15 r13 53 r13 = min_f32 r6 r0 54 r13 = max_f32 r14 r13 55 r13 = eq_f32 r6 r13 56 assert_true r13 r6 And that JITs using 11 ymm registers. Change-Id: Ib45b5fa6aee427f290b77d8900f10d433ad81133 Reviewed-on: https://skia-review.googlesource.com/c/skia/+/281746 Reviewed-by: Brian Osman <brianosman@google.com> Commit-Queue: Mike Klein <mtklein@google.com> |
||
---|---|---|
.. | ||
Sk1DPathEffect.h | ||
Sk2DPathEffect.h | ||
SkAlphaThresholdFilter.h | ||
SkArithmeticImageFilter.h | ||
SkBlurDrawLooper.h | ||
SkBlurImageFilter.h | ||
SkBlurMaskFilter.h | ||
SkColorFilterImageFilter.h | ||
SkColorMatrix.h | ||
SkColorMatrixFilter.h | ||
SkComposeImageFilter.h | ||
SkCornerPathEffect.h | ||
SkDashPathEffect.h | ||
SkDiscretePathEffect.h | ||
SkDisplacementMapEffect.h | ||
SkDropShadowImageFilter.h | ||
SkGradientShader.h | ||
SkHighContrastFilter.h | ||
SkImageFilters.h | ||
SkImageSource.h | ||
SkLayerDrawLooper.h | ||
SkLightingImageFilter.h | ||
SkLumaColorFilter.h | ||
SkMagnifierImageFilter.h | ||
SkMatrixConvolutionImageFilter.h | ||
SkMergeImageFilter.h | ||
SkMorphologyImageFilter.h | ||
SkOffsetImageFilter.h | ||
SkOpPathEffect.h | ||
SkOverdrawColorFilter.h | ||
SkPaintImageFilter.h | ||
SkPerlinNoiseShader.h | ||
SkPictureImageFilter.h | ||
SkRuntimeEffect.h | ||
SkShaderMaskFilter.h | ||
SkTableColorFilter.h | ||
SkTableMaskFilter.h | ||
SkTileImageFilter.h | ||
SkTrimPathEffect.h | ||
SkXfermodeImageFilter.h |