diff --git a/testing/impeller_golden_tests_output.txt b/testing/impeller_golden_tests_output.txt new file mode 100644 index 0000000000000..aa6c8488c8049 --- /dev/null +++ b/testing/impeller_golden_tests_output.txt @@ -0,0 +1,599 @@ +digest.json +impeller_GoldenTests_ConicalGradient.png +impeller_Play_AiksTest_BlendModeClear_Metal.png +impeller_Play_AiksTest_BlendModeClear_OpenGLES.png +impeller_Play_AiksTest_BlendModeClear_Vulkan.png +impeller_Play_AiksTest_BlendModeColorBurn_Metal.png +impeller_Play_AiksTest_BlendModeColorBurn_OpenGLES.png +impeller_Play_AiksTest_BlendModeColorBurn_Vulkan.png +impeller_Play_AiksTest_BlendModeColorDodge_Metal.png +impeller_Play_AiksTest_BlendModeColorDodge_OpenGLES.png +impeller_Play_AiksTest_BlendModeColorDodge_Vulkan.png +impeller_Play_AiksTest_BlendModeColor_Metal.png +impeller_Play_AiksTest_BlendModeColor_OpenGLES.png +impeller_Play_AiksTest_BlendModeColor_Vulkan.png +impeller_Play_AiksTest_BlendModeDarken_Metal.png +impeller_Play_AiksTest_BlendModeDarken_OpenGLES.png +impeller_Play_AiksTest_BlendModeDarken_Vulkan.png +impeller_Play_AiksTest_BlendModeDestinationATop_Metal.png +impeller_Play_AiksTest_BlendModeDestinationATop_OpenGLES.png +impeller_Play_AiksTest_BlendModeDestinationATop_Vulkan.png +impeller_Play_AiksTest_BlendModeDestinationIn_Metal.png +impeller_Play_AiksTest_BlendModeDestinationIn_OpenGLES.png +impeller_Play_AiksTest_BlendModeDestinationIn_Vulkan.png +impeller_Play_AiksTest_BlendModeDestinationOut_Metal.png +impeller_Play_AiksTest_BlendModeDestinationOut_OpenGLES.png +impeller_Play_AiksTest_BlendModeDestinationOut_Vulkan.png +impeller_Play_AiksTest_BlendModeDestinationOver_Metal.png +impeller_Play_AiksTest_BlendModeDestinationOver_OpenGLES.png +impeller_Play_AiksTest_BlendModeDestinationOver_Vulkan.png +impeller_Play_AiksTest_BlendModeDestination_Metal.png +impeller_Play_AiksTest_BlendModeDestination_OpenGLES.png +impeller_Play_AiksTest_BlendModeDestination_Vulkan.png +impeller_Play_AiksTest_BlendModeDifference_Metal.png +impeller_Play_AiksTest_BlendModeDifference_OpenGLES.png +impeller_Play_AiksTest_BlendModeDifference_Vulkan.png +impeller_Play_AiksTest_BlendModeExclusion_Metal.png +impeller_Play_AiksTest_BlendModeExclusion_OpenGLES.png +impeller_Play_AiksTest_BlendModeExclusion_Vulkan.png +impeller_Play_AiksTest_BlendModeHardLight_Metal.png +impeller_Play_AiksTest_BlendModeHardLight_OpenGLES.png +impeller_Play_AiksTest_BlendModeHardLight_Vulkan.png +impeller_Play_AiksTest_BlendModeHue_Metal.png +impeller_Play_AiksTest_BlendModeHue_OpenGLES.png +impeller_Play_AiksTest_BlendModeHue_Vulkan.png +impeller_Play_AiksTest_BlendModeLighten_Metal.png +impeller_Play_AiksTest_BlendModeLighten_OpenGLES.png +impeller_Play_AiksTest_BlendModeLighten_Vulkan.png +impeller_Play_AiksTest_BlendModeLuminosity_Metal.png +impeller_Play_AiksTest_BlendModeLuminosity_OpenGLES.png +impeller_Play_AiksTest_BlendModeLuminosity_Vulkan.png +impeller_Play_AiksTest_BlendModeModulate_Metal.png +impeller_Play_AiksTest_BlendModeModulate_OpenGLES.png +impeller_Play_AiksTest_BlendModeModulate_Vulkan.png +impeller_Play_AiksTest_BlendModeMultiply_Metal.png +impeller_Play_AiksTest_BlendModeMultiply_OpenGLES.png +impeller_Play_AiksTest_BlendModeMultiply_Vulkan.png +impeller_Play_AiksTest_BlendModeOverlay_Metal.png +impeller_Play_AiksTest_BlendModeOverlay_OpenGLES.png +impeller_Play_AiksTest_BlendModeOverlay_Vulkan.png +impeller_Play_AiksTest_BlendModePlus_Metal.png +impeller_Play_AiksTest_BlendModePlus_OpenGLES.png +impeller_Play_AiksTest_BlendModePlus_Vulkan.png +impeller_Play_AiksTest_BlendModeSaturation_Metal.png +impeller_Play_AiksTest_BlendModeSaturation_OpenGLES.png +impeller_Play_AiksTest_BlendModeSaturation_Vulkan.png +impeller_Play_AiksTest_BlendModeScreen_Metal.png +impeller_Play_AiksTest_BlendModeScreen_OpenGLES.png +impeller_Play_AiksTest_BlendModeScreen_Vulkan.png +impeller_Play_AiksTest_BlendModeShouldCoverWholeScreen_Metal.png +impeller_Play_AiksTest_BlendModeShouldCoverWholeScreen_OpenGLES.png +impeller_Play_AiksTest_BlendModeShouldCoverWholeScreen_Vulkan.png +impeller_Play_AiksTest_BlendModeSoftLight_Metal.png +impeller_Play_AiksTest_BlendModeSoftLight_OpenGLES.png +impeller_Play_AiksTest_BlendModeSoftLight_Vulkan.png +impeller_Play_AiksTest_BlendModeSourceATop_Metal.png +impeller_Play_AiksTest_BlendModeSourceATop_OpenGLES.png +impeller_Play_AiksTest_BlendModeSourceATop_Vulkan.png +impeller_Play_AiksTest_BlendModeSourceIn_Metal.png +impeller_Play_AiksTest_BlendModeSourceIn_OpenGLES.png +impeller_Play_AiksTest_BlendModeSourceIn_Vulkan.png +impeller_Play_AiksTest_BlendModeSourceOut_Metal.png +impeller_Play_AiksTest_BlendModeSourceOut_OpenGLES.png +impeller_Play_AiksTest_BlendModeSourceOut_Vulkan.png +impeller_Play_AiksTest_BlendModeSourceOver_Metal.png +impeller_Play_AiksTest_BlendModeSourceOver_OpenGLES.png +impeller_Play_AiksTest_BlendModeSourceOver_Vulkan.png +impeller_Play_AiksTest_BlendModeSource_Metal.png +impeller_Play_AiksTest_BlendModeSource_OpenGLES.png +impeller_Play_AiksTest_BlendModeSource_Vulkan.png +impeller_Play_AiksTest_BlendModeXor_Metal.png +impeller_Play_AiksTest_BlendModeXor_OpenGLES.png +impeller_Play_AiksTest_BlendModeXor_Vulkan.png +impeller_Play_AiksTest_BlurHasNoEdge_Metal.png +impeller_Play_AiksTest_BlurHasNoEdge_OpenGLES.png +impeller_Play_AiksTest_BlurHasNoEdge_Vulkan.png +impeller_Play_AiksTest_BlurredRectangleWithShader_Metal.png +impeller_Play_AiksTest_BlurredRectangleWithShader_OpenGLES.png +impeller_Play_AiksTest_BlurredRectangleWithShader_Vulkan.png +impeller_Play_AiksTest_CanDrawAnOpenPathThatIsntARect_Metal.png +impeller_Play_AiksTest_CanDrawAnOpenPathThatIsntARect_OpenGLES.png +impeller_Play_AiksTest_CanDrawAnOpenPathThatIsntARect_Vulkan.png +impeller_Play_AiksTest_CanDrawAnOpenPath_Metal.png +impeller_Play_AiksTest_CanDrawAnOpenPath_OpenGLES.png +impeller_Play_AiksTest_CanDrawAnOpenPath_Vulkan.png +impeller_Play_AiksTest_CanDrawMultiContourConvexPath_Metal.png +impeller_Play_AiksTest_CanDrawMultiContourConvexPath_OpenGLES.png +impeller_Play_AiksTest_CanDrawMultiContourConvexPath_Vulkan.png +impeller_Play_AiksTest_CanDrawPaintMultipleTimesInteractive_Metal.png +impeller_Play_AiksTest_CanDrawPaintMultipleTimesInteractive_OpenGLES.png +impeller_Play_AiksTest_CanDrawPaintMultipleTimesInteractive_Vulkan.png +impeller_Play_AiksTest_CanDrawPaintMultipleTimes_Metal.png +impeller_Play_AiksTest_CanDrawPaintMultipleTimes_OpenGLES.png +impeller_Play_AiksTest_CanDrawPaintMultipleTimes_Vulkan.png +impeller_Play_AiksTest_CanDrawPaintWithAdvancedBlend_Metal.png +impeller_Play_AiksTest_CanDrawPaintWithAdvancedBlend_OpenGLES.png +impeller_Play_AiksTest_CanDrawPaintWithAdvancedBlend_Vulkan.png +impeller_Play_AiksTest_CanDrawPaint_Metal.png +impeller_Play_AiksTest_CanDrawPaint_OpenGLES.png +impeller_Play_AiksTest_CanDrawPaint_Vulkan.png +impeller_Play_AiksTest_CanDrawPointsWithTextureMap_Metal.png +impeller_Play_AiksTest_CanDrawPointsWithTextureMap_OpenGLES.png +impeller_Play_AiksTest_CanDrawPointsWithTextureMap_Vulkan.png +impeller_Play_AiksTest_CanDrawPoints_Metal.png +impeller_Play_AiksTest_CanDrawPoints_OpenGLES.png +impeller_Play_AiksTest_CanDrawPoints_Vulkan.png +impeller_Play_AiksTest_CanEmptyPictureConvertToImage_Metal.png +impeller_Play_AiksTest_CanEmptyPictureConvertToImage_OpenGLES.png +impeller_Play_AiksTest_CanEmptyPictureConvertToImage_Vulkan.png +impeller_Play_AiksTest_CanPerformFullScreenMSAA_Metal.png +impeller_Play_AiksTest_CanPerformFullScreenMSAA_OpenGLES.png +impeller_Play_AiksTest_CanPerformFullScreenMSAA_Vulkan.png +impeller_Play_AiksTest_CanPerformSaveLayerWithBoundsAndLargerIntermediateIsNotAllocated_Metal.png +impeller_Play_AiksTest_CanPerformSaveLayerWithBoundsAndLargerIntermediateIsNotAllocated_OpenGLES.png +impeller_Play_AiksTest_CanPerformSaveLayerWithBoundsAndLargerIntermediateIsNotAllocated_Vulkan.png +impeller_Play_AiksTest_CanPerformSaveLayerWithBounds_Metal.png +impeller_Play_AiksTest_CanPerformSaveLayerWithBounds_OpenGLES.png +impeller_Play_AiksTest_CanPerformSaveLayerWithBounds_Vulkan.png +impeller_Play_AiksTest_CanPerformSkew_Metal.png +impeller_Play_AiksTest_CanPerformSkew_OpenGLES.png +impeller_Play_AiksTest_CanPerformSkew_Vulkan.png +impeller_Play_AiksTest_CanPictureConvertToImage_Metal.png +impeller_Play_AiksTest_CanPictureConvertToImage_OpenGLES.png +impeller_Play_AiksTest_CanPictureConvertToImage_Vulkan.png +impeller_Play_AiksTest_CanRenderAdvancedBlendColorFilterWithSaveLayer_Metal.png +impeller_Play_AiksTest_CanRenderAdvancedBlendColorFilterWithSaveLayer_OpenGLES.png +impeller_Play_AiksTest_CanRenderAdvancedBlendColorFilterWithSaveLayer_Vulkan.png +impeller_Play_AiksTest_CanRenderBackdropBlurHugeSigma_Metal.png +impeller_Play_AiksTest_CanRenderBackdropBlurHugeSigma_OpenGLES.png +impeller_Play_AiksTest_CanRenderBackdropBlurHugeSigma_Vulkan.png +impeller_Play_AiksTest_CanRenderBackdropBlurInteractive_Metal.png +impeller_Play_AiksTest_CanRenderBackdropBlurInteractive_OpenGLES.png +impeller_Play_AiksTest_CanRenderBackdropBlurInteractive_Vulkan.png +impeller_Play_AiksTest_CanRenderBackdropBlur_Metal.png +impeller_Play_AiksTest_CanRenderBackdropBlur_OpenGLES.png +impeller_Play_AiksTest_CanRenderBackdropBlur_Vulkan.png +impeller_Play_AiksTest_CanRenderClippedBlur_Metal.png +impeller_Play_AiksTest_CanRenderClippedBlur_OpenGLES.png +impeller_Play_AiksTest_CanRenderClippedBlur_Vulkan.png +impeller_Play_AiksTest_CanRenderClippedLayers_Metal.png +impeller_Play_AiksTest_CanRenderClippedLayers_OpenGLES.png +impeller_Play_AiksTest_CanRenderClippedLayers_Vulkan.png +impeller_Play_AiksTest_CanRenderClippedRuntimeEffects_Metal.png +impeller_Play_AiksTest_CanRenderClippedRuntimeEffects_OpenGLES.png +impeller_Play_AiksTest_CanRenderClips_Metal.png +impeller_Play_AiksTest_CanRenderClips_OpenGLES.png +impeller_Play_AiksTest_CanRenderClips_Vulkan.png +impeller_Play_AiksTest_CanRenderColorFilterWithInvertColorsDrawPaint_Metal.png +impeller_Play_AiksTest_CanRenderColorFilterWithInvertColorsDrawPaint_OpenGLES.png +impeller_Play_AiksTest_CanRenderColorFilterWithInvertColorsDrawPaint_Vulkan.png +impeller_Play_AiksTest_CanRenderColorFilterWithInvertColors_Metal.png +impeller_Play_AiksTest_CanRenderColorFilterWithInvertColors_OpenGLES.png +impeller_Play_AiksTest_CanRenderColorFilterWithInvertColors_Vulkan.png +impeller_Play_AiksTest_CanRenderColoredRect_Metal.png +impeller_Play_AiksTest_CanRenderColoredRect_OpenGLES.png +impeller_Play_AiksTest_CanRenderColoredRect_Vulkan.png +impeller_Play_AiksTest_CanRenderConicalGradientWithDitheringDisabled_Metal.png +impeller_Play_AiksTest_CanRenderConicalGradientWithDitheringDisabled_OpenGLES.png +impeller_Play_AiksTest_CanRenderConicalGradientWithDitheringDisabled_Vulkan.png +impeller_Play_AiksTest_CanRenderConicalGradientWithDitheringEnabled_Metal.png +impeller_Play_AiksTest_CanRenderConicalGradientWithDitheringEnabled_OpenGLES.png +impeller_Play_AiksTest_CanRenderConicalGradientWithDitheringEnabled_Vulkan.png +impeller_Play_AiksTest_CanRenderConicalGradient_Metal.png +impeller_Play_AiksTest_CanRenderConicalGradient_OpenGLES.png +impeller_Play_AiksTest_CanRenderConicalGradient_Vulkan.png +impeller_Play_AiksTest_CanRenderCurvedStrokes_Metal.png +impeller_Play_AiksTest_CanRenderCurvedStrokes_OpenGLES.png +impeller_Play_AiksTest_CanRenderCurvedStrokes_Vulkan.png +impeller_Play_AiksTest_CanRenderDestructiveSaveLayer_Metal.png +impeller_Play_AiksTest_CanRenderDestructiveSaveLayer_OpenGLES.png +impeller_Play_AiksTest_CanRenderDestructiveSaveLayer_Vulkan.png +impeller_Play_AiksTest_CanRenderDifferenceClips_Metal.png +impeller_Play_AiksTest_CanRenderDifferenceClips_OpenGLES.png +impeller_Play_AiksTest_CanRenderDifferenceClips_Vulkan.png +impeller_Play_AiksTest_CanRenderDifferencePaths_Metal.png +impeller_Play_AiksTest_CanRenderDifferencePaths_OpenGLES.png +impeller_Play_AiksTest_CanRenderDifferencePaths_Vulkan.png +impeller_Play_AiksTest_CanRenderDifferentShapesWithSameColorSource_Metal.png +impeller_Play_AiksTest_CanRenderDifferentShapesWithSameColorSource_OpenGLES.png +impeller_Play_AiksTest_CanRenderDifferentShapesWithSameColorSource_Vulkan.png +impeller_Play_AiksTest_CanRenderEmojiTextFrameWithAlpha_Metal.png +impeller_Play_AiksTest_CanRenderEmojiTextFrameWithAlpha_OpenGLES.png +impeller_Play_AiksTest_CanRenderEmojiTextFrameWithAlpha_Vulkan.png +impeller_Play_AiksTest_CanRenderEmojiTextFrameWithBlur_Metal.png +impeller_Play_AiksTest_CanRenderEmojiTextFrameWithBlur_OpenGLES.png +impeller_Play_AiksTest_CanRenderEmojiTextFrameWithBlur_Vulkan.png +impeller_Play_AiksTest_CanRenderEmojiTextFrame_Metal.png +impeller_Play_AiksTest_CanRenderEmojiTextFrame_OpenGLES.png +impeller_Play_AiksTest_CanRenderEmojiTextFrame_Vulkan.png +impeller_Play_AiksTest_CanRenderForegroundAdvancedBlendWithMaskBlur_Metal.png +impeller_Play_AiksTest_CanRenderForegroundAdvancedBlendWithMaskBlur_OpenGLES.png +impeller_Play_AiksTest_CanRenderForegroundAdvancedBlendWithMaskBlur_Vulkan.png +impeller_Play_AiksTest_CanRenderForegroundBlendWithMaskBlur_Metal.png +impeller_Play_AiksTest_CanRenderForegroundBlendWithMaskBlur_OpenGLES.png +impeller_Play_AiksTest_CanRenderForegroundBlendWithMaskBlur_Vulkan.png +impeller_Play_AiksTest_CanRenderGradientDecalWithBackground_Metal.png +impeller_Play_AiksTest_CanRenderGradientDecalWithBackground_OpenGLES.png +impeller_Play_AiksTest_CanRenderGradientDecalWithBackground_Vulkan.png +impeller_Play_AiksTest_CanRenderGroupOpacity_Metal.png +impeller_Play_AiksTest_CanRenderGroupOpacity_OpenGLES.png +impeller_Play_AiksTest_CanRenderGroupOpacity_Vulkan.png +impeller_Play_AiksTest_CanRenderImageRect_Metal.png +impeller_Play_AiksTest_CanRenderImageRect_OpenGLES.png +impeller_Play_AiksTest_CanRenderImageRect_Vulkan.png +impeller_Play_AiksTest_CanRenderImage_Metal.png +impeller_Play_AiksTest_CanRenderImage_OpenGLES.png +impeller_Play_AiksTest_CanRenderImage_Vulkan.png +impeller_Play_AiksTest_CanRenderInvertedImageWithColorFilter_Metal.png +impeller_Play_AiksTest_CanRenderInvertedImageWithColorFilter_OpenGLES.png +impeller_Play_AiksTest_CanRenderInvertedImageWithColorFilter_Vulkan.png +impeller_Play_AiksTest_CanRenderItalicizedText_Metal.png +impeller_Play_AiksTest_CanRenderItalicizedText_OpenGLES.png +impeller_Play_AiksTest_CanRenderItalicizedText_Vulkan.png +impeller_Play_AiksTest_CanRenderLinearGradientClamp_Metal.png +impeller_Play_AiksTest_CanRenderLinearGradientClamp_OpenGLES.png +impeller_Play_AiksTest_CanRenderLinearGradientClamp_Vulkan.png +impeller_Play_AiksTest_CanRenderLinearGradientDecalWithColorFilter_Metal.png +impeller_Play_AiksTest_CanRenderLinearGradientDecalWithColorFilter_OpenGLES.png +impeller_Play_AiksTest_CanRenderLinearGradientDecalWithColorFilter_Vulkan.png +impeller_Play_AiksTest_CanRenderLinearGradientDecal_Metal.png +impeller_Play_AiksTest_CanRenderLinearGradientDecal_OpenGLES.png +impeller_Play_AiksTest_CanRenderLinearGradientDecal_Vulkan.png +impeller_Play_AiksTest_CanRenderLinearGradientManyColorsClamp_Metal.png +impeller_Play_AiksTest_CanRenderLinearGradientManyColorsClamp_OpenGLES.png +impeller_Play_AiksTest_CanRenderLinearGradientManyColorsClamp_Vulkan.png +impeller_Play_AiksTest_CanRenderLinearGradientManyColorsDecal_Metal.png +impeller_Play_AiksTest_CanRenderLinearGradientManyColorsDecal_OpenGLES.png +impeller_Play_AiksTest_CanRenderLinearGradientManyColorsDecal_Vulkan.png +impeller_Play_AiksTest_CanRenderLinearGradientManyColorsMirror_Metal.png +impeller_Play_AiksTest_CanRenderLinearGradientManyColorsMirror_OpenGLES.png +impeller_Play_AiksTest_CanRenderLinearGradientManyColorsMirror_Vulkan.png +impeller_Play_AiksTest_CanRenderLinearGradientManyColorsRepeat_Metal.png +impeller_Play_AiksTest_CanRenderLinearGradientManyColorsRepeat_OpenGLES.png +impeller_Play_AiksTest_CanRenderLinearGradientManyColorsRepeat_Vulkan.png +impeller_Play_AiksTest_CanRenderLinearGradientManyColorsUnevenStops_Metal.png +impeller_Play_AiksTest_CanRenderLinearGradientManyColorsUnevenStops_OpenGLES.png +impeller_Play_AiksTest_CanRenderLinearGradientManyColorsUnevenStops_Vulkan.png +impeller_Play_AiksTest_CanRenderLinearGradientMaskBlur_Metal.png +impeller_Play_AiksTest_CanRenderLinearGradientMaskBlur_OpenGLES.png +impeller_Play_AiksTest_CanRenderLinearGradientMaskBlur_Vulkan.png +impeller_Play_AiksTest_CanRenderLinearGradientMirror_Metal.png +impeller_Play_AiksTest_CanRenderLinearGradientMirror_OpenGLES.png +impeller_Play_AiksTest_CanRenderLinearGradientMirror_Vulkan.png +impeller_Play_AiksTest_CanRenderLinearGradientRepeat_Metal.png +impeller_Play_AiksTest_CanRenderLinearGradientRepeat_OpenGLES.png +impeller_Play_AiksTest_CanRenderLinearGradientRepeat_Vulkan.png +impeller_Play_AiksTest_CanRenderLinearGradientWayManyColorsClamp_Metal.png +impeller_Play_AiksTest_CanRenderLinearGradientWayManyColorsClamp_OpenGLES.png +impeller_Play_AiksTest_CanRenderLinearGradientWayManyColorsClamp_Vulkan.png +impeller_Play_AiksTest_CanRenderLinearGradientWithDitheringDisabled_Metal.png +impeller_Play_AiksTest_CanRenderLinearGradientWithDitheringDisabled_OpenGLES.png +impeller_Play_AiksTest_CanRenderLinearGradientWithDitheringDisabled_Vulkan.png +impeller_Play_AiksTest_CanRenderLinearGradientWithDitheringEnabled_Metal.png +impeller_Play_AiksTest_CanRenderLinearGradientWithDitheringEnabled_OpenGLES.png +impeller_Play_AiksTest_CanRenderLinearGradientWithDitheringEnabled_Vulkan.png +impeller_Play_AiksTest_CanRenderLinearGradientWithOverlappingStopsClamp_Metal.png +impeller_Play_AiksTest_CanRenderLinearGradientWithOverlappingStopsClamp_OpenGLES.png +impeller_Play_AiksTest_CanRenderLinearGradientWithOverlappingStopsClamp_Vulkan.png +impeller_Play_AiksTest_CanRenderMaskBlurHugeSigma_Metal.png +impeller_Play_AiksTest_CanRenderMaskBlurHugeSigma_OpenGLES.png +impeller_Play_AiksTest_CanRenderMaskBlurHugeSigma_Vulkan.png +impeller_Play_AiksTest_CanRenderNestedClips_Metal.png +impeller_Play_AiksTest_CanRenderNestedClips_OpenGLES.png +impeller_Play_AiksTest_CanRenderNestedClips_Vulkan.png +impeller_Play_AiksTest_CanRenderOffscreenCheckerboard_Metal.png +impeller_Play_AiksTest_CanRenderOffscreenCheckerboard_OpenGLES.png +impeller_Play_AiksTest_CanRenderOffscreenCheckerboard_Vulkan.png +impeller_Play_AiksTest_CanRenderRadialGradientManyColors_Metal.png +impeller_Play_AiksTest_CanRenderRadialGradientManyColors_OpenGLES.png +impeller_Play_AiksTest_CanRenderRadialGradientManyColors_Vulkan.png +impeller_Play_AiksTest_CanRenderRadialGradientWithDitheringDisabled_Metal.png +impeller_Play_AiksTest_CanRenderRadialGradientWithDitheringDisabled_OpenGLES.png +impeller_Play_AiksTest_CanRenderRadialGradientWithDitheringDisabled_Vulkan.png +impeller_Play_AiksTest_CanRenderRadialGradientWithDitheringEnabled_Metal.png +impeller_Play_AiksTest_CanRenderRadialGradientWithDitheringEnabled_OpenGLES.png +impeller_Play_AiksTest_CanRenderRadialGradientWithDitheringEnabled_Vulkan.png +impeller_Play_AiksTest_CanRenderRadialGradient_Metal.png +impeller_Play_AiksTest_CanRenderRadialGradient_OpenGLES.png +impeller_Play_AiksTest_CanRenderRadialGradient_Vulkan.png +impeller_Play_AiksTest_CanRenderRoundedRectWithNonUniformRadii_Metal.png +impeller_Play_AiksTest_CanRenderRoundedRectWithNonUniformRadii_OpenGLES.png +impeller_Play_AiksTest_CanRenderRoundedRectWithNonUniformRadii_Vulkan.png +impeller_Play_AiksTest_CanRenderSimpleClips_Metal.png +impeller_Play_AiksTest_CanRenderSimpleClips_OpenGLES.png +impeller_Play_AiksTest_CanRenderSimpleClips_Vulkan.png +impeller_Play_AiksTest_CanRenderStrokePathThatEndsAtSharpTurn_Metal.png +impeller_Play_AiksTest_CanRenderStrokePathThatEndsAtSharpTurn_OpenGLES.png +impeller_Play_AiksTest_CanRenderStrokePathThatEndsAtSharpTurn_Vulkan.png +impeller_Play_AiksTest_CanRenderStrokePathWithCubicLine_Metal.png +impeller_Play_AiksTest_CanRenderStrokePathWithCubicLine_OpenGLES.png +impeller_Play_AiksTest_CanRenderStrokePathWithCubicLine_Vulkan.png +impeller_Play_AiksTest_CanRenderStrokes_Metal.png +impeller_Play_AiksTest_CanRenderStrokes_OpenGLES.png +impeller_Play_AiksTest_CanRenderStrokes_Vulkan.png +impeller_Play_AiksTest_CanRenderSweepGradientClamp_Metal.png +impeller_Play_AiksTest_CanRenderSweepGradientClamp_OpenGLES.png +impeller_Play_AiksTest_CanRenderSweepGradientClamp_Vulkan.png +impeller_Play_AiksTest_CanRenderSweepGradientDecal_Metal.png +impeller_Play_AiksTest_CanRenderSweepGradientDecal_OpenGLES.png +impeller_Play_AiksTest_CanRenderSweepGradientDecal_Vulkan.png +impeller_Play_AiksTest_CanRenderSweepGradientManyColorsClamp_Metal.png +impeller_Play_AiksTest_CanRenderSweepGradientManyColorsClamp_OpenGLES.png +impeller_Play_AiksTest_CanRenderSweepGradientManyColorsClamp_Vulkan.png +impeller_Play_AiksTest_CanRenderSweepGradientManyColorsDecal_Metal.png +impeller_Play_AiksTest_CanRenderSweepGradientManyColorsDecal_OpenGLES.png +impeller_Play_AiksTest_CanRenderSweepGradientManyColorsDecal_Vulkan.png +impeller_Play_AiksTest_CanRenderSweepGradientManyColorsMirror_Metal.png +impeller_Play_AiksTest_CanRenderSweepGradientManyColorsMirror_OpenGLES.png +impeller_Play_AiksTest_CanRenderSweepGradientManyColorsMirror_Vulkan.png +impeller_Play_AiksTest_CanRenderSweepGradientManyColorsRepeat_Metal.png +impeller_Play_AiksTest_CanRenderSweepGradientManyColorsRepeat_OpenGLES.png +impeller_Play_AiksTest_CanRenderSweepGradientManyColorsRepeat_Vulkan.png +impeller_Play_AiksTest_CanRenderSweepGradientMirror_Metal.png +impeller_Play_AiksTest_CanRenderSweepGradientMirror_OpenGLES.png +impeller_Play_AiksTest_CanRenderSweepGradientMirror_Vulkan.png +impeller_Play_AiksTest_CanRenderSweepGradientRepeat_Metal.png +impeller_Play_AiksTest_CanRenderSweepGradientRepeat_OpenGLES.png +impeller_Play_AiksTest_CanRenderSweepGradientRepeat_Vulkan.png +impeller_Play_AiksTest_CanRenderSweepGradientWithDitheringDisabled_Metal.png +impeller_Play_AiksTest_CanRenderSweepGradientWithDitheringDisabled_OpenGLES.png +impeller_Play_AiksTest_CanRenderSweepGradientWithDitheringDisabled_Vulkan.png +impeller_Play_AiksTest_CanRenderSweepGradientWithDitheringEnabled_Metal.png +impeller_Play_AiksTest_CanRenderSweepGradientWithDitheringEnabled_OpenGLES.png +impeller_Play_AiksTest_CanRenderSweepGradientWithDitheringEnabled_Vulkan.png +impeller_Play_AiksTest_CanRenderTextFrameSTB_Metal.png +impeller_Play_AiksTest_CanRenderTextFrameSTB_OpenGLES.png +impeller_Play_AiksTest_CanRenderTextFrameSTB_Vulkan.png +impeller_Play_AiksTest_CanRenderTextFrame_Metal.png +impeller_Play_AiksTest_CanRenderTextFrame_OpenGLES.png +impeller_Play_AiksTest_CanRenderTextFrame_Vulkan.png +impeller_Play_AiksTest_CanRenderTextInSaveLayer_Metal.png +impeller_Play_AiksTest_CanRenderTextInSaveLayer_OpenGLES.png +impeller_Play_AiksTest_CanRenderTextInSaveLayer_Vulkan.png +impeller_Play_AiksTest_CanRenderTextOutsideBoundaries_Metal.png +impeller_Play_AiksTest_CanRenderTextOutsideBoundaries_OpenGLES.png +impeller_Play_AiksTest_CanRenderTextOutsideBoundaries_Vulkan.png +impeller_Play_AiksTest_CanRenderThickCurvedStrokes_Metal.png +impeller_Play_AiksTest_CanRenderThickCurvedStrokes_OpenGLES.png +impeller_Play_AiksTest_CanRenderThickCurvedStrokes_Vulkan.png +impeller_Play_AiksTest_CanRenderTiledTextureClampWithTranslate_Metal.png +impeller_Play_AiksTest_CanRenderTiledTextureClampWithTranslate_OpenGLES.png +impeller_Play_AiksTest_CanRenderTiledTextureClampWithTranslate_Vulkan.png +impeller_Play_AiksTest_CanRenderTiledTextureClamp_Metal.png +impeller_Play_AiksTest_CanRenderTiledTextureClamp_OpenGLES.png +impeller_Play_AiksTest_CanRenderTiledTextureClamp_Vulkan.png +impeller_Play_AiksTest_CanRenderTiledTextureDecal_Metal.png +impeller_Play_AiksTest_CanRenderTiledTextureDecal_OpenGLES.png +impeller_Play_AiksTest_CanRenderTiledTextureDecal_Vulkan.png +impeller_Play_AiksTest_CanRenderTiledTextureMirror_Metal.png +impeller_Play_AiksTest_CanRenderTiledTextureMirror_OpenGLES.png +impeller_Play_AiksTest_CanRenderTiledTextureMirror_Vulkan.png +impeller_Play_AiksTest_CanRenderTiledTextureRepeat_Metal.png +impeller_Play_AiksTest_CanRenderTiledTextureRepeat_OpenGLES.png +impeller_Play_AiksTest_CanRenderTiledTextureRepeat_Vulkan.png +impeller_Play_AiksTest_CanRenderTinyOverlappingSubpasses_Metal.png +impeller_Play_AiksTest_CanRenderTinyOverlappingSubpasses_OpenGLES.png +impeller_Play_AiksTest_CanRenderTinyOverlappingSubpasses_Vulkan.png +impeller_Play_AiksTest_CanRenderWithContiguousClipRestores_Metal.png +impeller_Play_AiksTest_CanRenderWithContiguousClipRestores_OpenGLES.png +impeller_Play_AiksTest_CanRenderWithContiguousClipRestores_Vulkan.png +impeller_Play_AiksTest_CanSaveLayerStandalone_Metal.png +impeller_Play_AiksTest_CanSaveLayerStandalone_OpenGLES.png +impeller_Play_AiksTest_CanSaveLayerStandalone_Vulkan.png +impeller_Play_AiksTest_CaptureContext_Metal.png +impeller_Play_AiksTest_CaptureContext_OpenGLES.png +impeller_Play_AiksTest_CaptureContext_Vulkan.png +impeller_Play_AiksTest_ClearBlendWithBlur_Metal.png +impeller_Play_AiksTest_ClearBlendWithBlur_OpenGLES.png +impeller_Play_AiksTest_ClearBlendWithBlur_Vulkan.png +impeller_Play_AiksTest_ClearColorOptimizationWhenSubpassIsBiggerThanParentPass_Metal.png +impeller_Play_AiksTest_ClearColorOptimizationWhenSubpassIsBiggerThanParentPass_OpenGLES.png +impeller_Play_AiksTest_ClearColorOptimizationWhenSubpassIsBiggerThanParentPass_Vulkan.png +impeller_Play_AiksTest_ClippedBlurFilterRendersCorrectlyInteractive_Metal.png +impeller_Play_AiksTest_ClippedBlurFilterRendersCorrectlyInteractive_OpenGLES.png +impeller_Play_AiksTest_ClippedBlurFilterRendersCorrectlyInteractive_Vulkan.png +impeller_Play_AiksTest_ClippedBlurFilterRendersCorrectly_Metal.png +impeller_Play_AiksTest_ClippedBlurFilterRendersCorrectly_OpenGLES.png +impeller_Play_AiksTest_ClippedBlurFilterRendersCorrectly_Vulkan.png +impeller_Play_AiksTest_ClipsUseCurrentTransform_Metal.png +impeller_Play_AiksTest_ClipsUseCurrentTransform_OpenGLES.png +impeller_Play_AiksTest_ClipsUseCurrentTransform_Vulkan.png +impeller_Play_AiksTest_CollapsedDrawPaintInSubpassBackdropFilter_Metal.png +impeller_Play_AiksTest_CollapsedDrawPaintInSubpassBackdropFilter_OpenGLES.png +impeller_Play_AiksTest_CollapsedDrawPaintInSubpassBackdropFilter_Vulkan.png +impeller_Play_AiksTest_CollapsedDrawPaintInSubpass_Metal.png +impeller_Play_AiksTest_CollapsedDrawPaintInSubpass_OpenGLES.png +impeller_Play_AiksTest_CollapsedDrawPaintInSubpass_Vulkan.png +impeller_Play_AiksTest_ColorMatrixFilterSubpassCollapseOptimization_Metal.png +impeller_Play_AiksTest_ColorMatrixFilterSubpassCollapseOptimization_OpenGLES.png +impeller_Play_AiksTest_ColorMatrixFilterSubpassCollapseOptimization_Vulkan.png +impeller_Play_AiksTest_ColorWheel_Metal.png +impeller_Play_AiksTest_ColorWheel_OpenGLES.png +impeller_Play_AiksTest_ColorWheel_Vulkan.png +impeller_Play_AiksTest_CoordinateConversionsAreCorrect_Metal.png +impeller_Play_AiksTest_CoordinateConversionsAreCorrect_OpenGLES.png +impeller_Play_AiksTest_CoordinateConversionsAreCorrect_Vulkan.png +impeller_Play_AiksTest_CoverageOriginShouldBeAccountedForInSubpasses_Metal.png +impeller_Play_AiksTest_CoverageOriginShouldBeAccountedForInSubpasses_OpenGLES.png +impeller_Play_AiksTest_CoverageOriginShouldBeAccountedForInSubpasses_Vulkan.png +impeller_Play_AiksTest_DrawAdvancedBlendPartlyOffscreen_Metal.png +impeller_Play_AiksTest_DrawAdvancedBlendPartlyOffscreen_OpenGLES.png +impeller_Play_AiksTest_DrawAdvancedBlendPartlyOffscreen_Vulkan.png +impeller_Play_AiksTest_DrawAtlasAdvancedAndTransform_Metal.png +impeller_Play_AiksTest_DrawAtlasAdvancedAndTransform_OpenGLES.png +impeller_Play_AiksTest_DrawAtlasAdvancedAndTransform_Vulkan.png +impeller_Play_AiksTest_DrawAtlasWithColorAdvancedAndTransform_Metal.png +impeller_Play_AiksTest_DrawAtlasWithColorAdvancedAndTransform_OpenGLES.png +impeller_Play_AiksTest_DrawAtlasWithColorAdvancedAndTransform_Vulkan.png +impeller_Play_AiksTest_DrawLinesRenderCorrectly_Metal.png +impeller_Play_AiksTest_DrawLinesRenderCorrectly_OpenGLES.png +impeller_Play_AiksTest_DrawLinesRenderCorrectly_Vulkan.png +impeller_Play_AiksTest_DrawPaintTransformsBounds_Metal.png +impeller_Play_AiksTest_DrawPaintTransformsBounds_OpenGLES.png +impeller_Play_AiksTest_DrawPaintTransformsBounds_Vulkan.png +impeller_Play_AiksTest_DrawPaintWithAdvancedBlendOverFilter_Metal.png +impeller_Play_AiksTest_DrawPaintWithAdvancedBlendOverFilter_OpenGLES.png +impeller_Play_AiksTest_DrawPaintWithAdvancedBlendOverFilter_Vulkan.png +impeller_Play_AiksTest_DrawRectStrokesRenderCorrectly_Metal.png +impeller_Play_AiksTest_DrawRectStrokesRenderCorrectly_OpenGLES.png +impeller_Play_AiksTest_DrawRectStrokesRenderCorrectly_Vulkan.png +impeller_Play_AiksTest_DrawRectStrokesWithBevelJoinRenderCorrectly_Metal.png +impeller_Play_AiksTest_DrawRectStrokesWithBevelJoinRenderCorrectly_OpenGLES.png +impeller_Play_AiksTest_DrawRectStrokesWithBevelJoinRenderCorrectly_Vulkan.png +impeller_Play_AiksTest_DrawScaledTextWithPerspectiveNoSaveLayer_Metal.png +impeller_Play_AiksTest_DrawScaledTextWithPerspectiveNoSaveLayer_OpenGLES.png +impeller_Play_AiksTest_DrawScaledTextWithPerspectiveNoSaveLayer_Vulkan.png +impeller_Play_AiksTest_EmptySaveLayerIgnoresPaint_Metal.png +impeller_Play_AiksTest_EmptySaveLayerIgnoresPaint_OpenGLES.png +impeller_Play_AiksTest_EmptySaveLayerIgnoresPaint_Vulkan.png +impeller_Play_AiksTest_EmptySaveLayerRendersWithClear_Metal.png +impeller_Play_AiksTest_EmptySaveLayerRendersWithClear_OpenGLES.png +impeller_Play_AiksTest_EmptySaveLayerRendersWithClear_Vulkan.png +impeller_Play_AiksTest_FilledCirclesRenderCorrectly_Metal.png +impeller_Play_AiksTest_FilledCirclesRenderCorrectly_OpenGLES.png +impeller_Play_AiksTest_FilledCirclesRenderCorrectly_Vulkan.png +impeller_Play_AiksTest_FilledEllipsesRenderCorrectly_Metal.png +impeller_Play_AiksTest_FilledEllipsesRenderCorrectly_OpenGLES.png +impeller_Play_AiksTest_FilledEllipsesRenderCorrectly_Vulkan.png +impeller_Play_AiksTest_FilledRoundRectPathsRenderCorrectly_Metal.png +impeller_Play_AiksTest_FilledRoundRectPathsRenderCorrectly_OpenGLES.png +impeller_Play_AiksTest_FilledRoundRectPathsRenderCorrectly_Vulkan.png +impeller_Play_AiksTest_FilledRoundRectsRenderCorrectly_Metal.png +impeller_Play_AiksTest_FilledRoundRectsRenderCorrectly_OpenGLES.png +impeller_Play_AiksTest_FilledRoundRectsRenderCorrectly_Vulkan.png +impeller_Play_AiksTest_ForegroundBlendSubpassCollapseOptimization_Metal.png +impeller_Play_AiksTest_ForegroundBlendSubpassCollapseOptimization_OpenGLES.png +impeller_Play_AiksTest_ForegroundBlendSubpassCollapseOptimization_Vulkan.png +impeller_Play_AiksTest_GaussianBlurAnimatedBackdrop_Metal.png +impeller_Play_AiksTest_GaussianBlurAnimatedBackdrop_OpenGLES.png +impeller_Play_AiksTest_GaussianBlurAnimatedBackdrop_Vulkan.png +impeller_Play_AiksTest_GaussianBlurAtPeripheryHorizontal_Metal.png +impeller_Play_AiksTest_GaussianBlurAtPeripheryHorizontal_OpenGLES.png +impeller_Play_AiksTest_GaussianBlurAtPeripheryHorizontal_Vulkan.png +impeller_Play_AiksTest_GaussianBlurAtPeripheryVertical_Metal.png +impeller_Play_AiksTest_GaussianBlurAtPeripheryVertical_OpenGLES.png +impeller_Play_AiksTest_GaussianBlurAtPeripheryVertical_Vulkan.png +impeller_Play_AiksTest_GaussianBlurOneDimension_Metal.png +impeller_Play_AiksTest_GaussianBlurOneDimension_OpenGLES.png +impeller_Play_AiksTest_GaussianBlurOneDimension_Vulkan.png +impeller_Play_AiksTest_GaussianBlurRotatedAndClippedInteractive_Metal.png +impeller_Play_AiksTest_GaussianBlurRotatedAndClippedInteractive_OpenGLES.png +impeller_Play_AiksTest_GaussianBlurRotatedAndClippedInteractive_Vulkan.png +impeller_Play_AiksTest_GaussianBlurRotatedAndClipped_Metal.png +impeller_Play_AiksTest_GaussianBlurRotatedAndClipped_OpenGLES.png +impeller_Play_AiksTest_GaussianBlurRotatedAndClipped_Vulkan.png +impeller_Play_AiksTest_GaussianBlurScaledAndClipped_Metal.png +impeller_Play_AiksTest_GaussianBlurScaledAndClipped_OpenGLES.png +impeller_Play_AiksTest_GaussianBlurScaledAndClipped_Vulkan.png +impeller_Play_AiksTest_GaussianBlurWithoutDecalSupport_Metal.png +impeller_Play_AiksTest_GradientStrokesRenderCorrectly_Metal.png +impeller_Play_AiksTest_GradientStrokesRenderCorrectly_OpenGLES.png +impeller_Play_AiksTest_GradientStrokesRenderCorrectly_Vulkan.png +impeller_Play_AiksTest_GuassianBlurUpdatesMipmapContents_Metal.png +impeller_Play_AiksTest_GuassianBlurUpdatesMipmapContents_OpenGLES.png +impeller_Play_AiksTest_GuassianBlurUpdatesMipmapContents_Vulkan.png +impeller_Play_AiksTest_ImageColorSourceEffectTransform_Metal.png +impeller_Play_AiksTest_ImageColorSourceEffectTransform_OpenGLES.png +impeller_Play_AiksTest_ImageColorSourceEffectTransform_Vulkan.png +impeller_Play_AiksTest_ImageFilteredSaveLayerWithUnboundedContents_Metal.png +impeller_Play_AiksTest_ImageFilteredSaveLayerWithUnboundedContents_OpenGLES.png +impeller_Play_AiksTest_ImageFilteredSaveLayerWithUnboundedContents_Vulkan.png +impeller_Play_AiksTest_ImageFilteredUnboundedSaveLayerWithUnboundedContents_Metal.png +impeller_Play_AiksTest_ImageFilteredUnboundedSaveLayerWithUnboundedContents_OpenGLES.png +impeller_Play_AiksTest_ImageFilteredUnboundedSaveLayerWithUnboundedContents_Vulkan.png +impeller_Play_AiksTest_LinearToSrgbFilterSubpassCollapseOptimization_Metal.png +impeller_Play_AiksTest_LinearToSrgbFilterSubpassCollapseOptimization_OpenGLES.png +impeller_Play_AiksTest_LinearToSrgbFilterSubpassCollapseOptimization_Vulkan.png +impeller_Play_AiksTest_MaskBlurWithZeroSigmaIsSkipped_Metal.png +impeller_Play_AiksTest_MaskBlurWithZeroSigmaIsSkipped_OpenGLES.png +impeller_Play_AiksTest_MaskBlurWithZeroSigmaIsSkipped_Vulkan.png +impeller_Play_AiksTest_MatrixBackdropFilter_Metal.png +impeller_Play_AiksTest_MatrixBackdropFilter_OpenGLES.png +impeller_Play_AiksTest_MatrixBackdropFilter_Vulkan.png +impeller_Play_AiksTest_MatrixImageFilterDoesntCullWhenScaledAndTranslatedFromOffscreen_Metal.png +impeller_Play_AiksTest_MatrixImageFilterDoesntCullWhenScaledAndTranslatedFromOffscreen_OpenGLES.png +impeller_Play_AiksTest_MatrixImageFilterDoesntCullWhenScaledAndTranslatedFromOffscreen_Vulkan.png +impeller_Play_AiksTest_MatrixImageFilterDoesntCullWhenTranslatedFromOffscreen_Metal.png +impeller_Play_AiksTest_MatrixImageFilterDoesntCullWhenTranslatedFromOffscreen_OpenGLES.png +impeller_Play_AiksTest_MatrixImageFilterDoesntCullWhenTranslatedFromOffscreen_Vulkan.png +impeller_Play_AiksTest_MatrixImageFilterMagnify_Metal.png +impeller_Play_AiksTest_MatrixImageFilterMagnify_OpenGLES.png +impeller_Play_AiksTest_MatrixImageFilterMagnify_Vulkan.png +impeller_Play_AiksTest_MatrixSaveLayerFilter_Metal.png +impeller_Play_AiksTest_MatrixSaveLayerFilter_OpenGLES.png +impeller_Play_AiksTest_MatrixSaveLayerFilter_Vulkan.png +impeller_Play_AiksTest_PaintBlendModeIsRespected_Metal.png +impeller_Play_AiksTest_PaintBlendModeIsRespected_OpenGLES.png +impeller_Play_AiksTest_PaintBlendModeIsRespected_Vulkan.png +impeller_Play_AiksTest_PipelineBlendSingleParameter_Metal.png +impeller_Play_AiksTest_PipelineBlendSingleParameter_OpenGLES.png +impeller_Play_AiksTest_PipelineBlendSingleParameter_Vulkan.png +impeller_Play_AiksTest_ReleasesTextureOnTeardown_Metal.png +impeller_Play_AiksTest_ReleasesTextureOnTeardown_OpenGLES.png +impeller_Play_AiksTest_ReleasesTextureOnTeardown_Vulkan.png +impeller_Play_AiksTest_RotateColorFilteredPath_Metal.png +impeller_Play_AiksTest_RotateColorFilteredPath_OpenGLES.png +impeller_Play_AiksTest_RotateColorFilteredPath_Vulkan.png +impeller_Play_AiksTest_SaveLayerDrawsBehindSubsequentEntities_Metal.png +impeller_Play_AiksTest_SaveLayerDrawsBehindSubsequentEntities_OpenGLES.png +impeller_Play_AiksTest_SaveLayerDrawsBehindSubsequentEntities_Vulkan.png +impeller_Play_AiksTest_SaveLayerFiltersScaleWithTransform_Metal.png +impeller_Play_AiksTest_SaveLayerFiltersScaleWithTransform_OpenGLES.png +impeller_Play_AiksTest_SaveLayerFiltersScaleWithTransform_Vulkan.png +impeller_Play_AiksTest_SiblingSaveLayerBoundsAreRespected_Metal.png +impeller_Play_AiksTest_SiblingSaveLayerBoundsAreRespected_OpenGLES.png +impeller_Play_AiksTest_SiblingSaveLayerBoundsAreRespected_Vulkan.png +impeller_Play_AiksTest_SolidColorCirclesOvalsRRectsMaskBlurCorrectly_Metal.png +impeller_Play_AiksTest_SolidColorCirclesOvalsRRectsMaskBlurCorrectly_OpenGLES.png +impeller_Play_AiksTest_SolidColorCirclesOvalsRRectsMaskBlurCorrectly_Vulkan.png +impeller_Play_AiksTest_SolidStrokesRenderCorrectly_Metal.png +impeller_Play_AiksTest_SolidStrokesRenderCorrectly_OpenGLES.png +impeller_Play_AiksTest_SolidStrokesRenderCorrectly_Vulkan.png +impeller_Play_AiksTest_SrgbToLinearFilterSubpassCollapseOptimization_Metal.png +impeller_Play_AiksTest_SrgbToLinearFilterSubpassCollapseOptimization_OpenGLES.png +impeller_Play_AiksTest_SrgbToLinearFilterSubpassCollapseOptimization_Vulkan.png +impeller_Play_AiksTest_StrokedCirclesRenderCorrectly_Metal.png +impeller_Play_AiksTest_StrokedCirclesRenderCorrectly_OpenGLES.png +impeller_Play_AiksTest_StrokedCirclesRenderCorrectly_Vulkan.png +impeller_Play_AiksTest_SubpassWithClearColorOptimization_Metal.png +impeller_Play_AiksTest_SubpassWithClearColorOptimization_OpenGLES.png +impeller_Play_AiksTest_SubpassWithClearColorOptimization_Vulkan.png +impeller_Play_AiksTest_TextForegroundShaderWithTransform_Metal.png +impeller_Play_AiksTest_TextForegroundShaderWithTransform_OpenGLES.png +impeller_Play_AiksTest_TextForegroundShaderWithTransform_Vulkan.png +impeller_Play_AiksTest_TextFrameSubpixelAlignment_Metal.png +impeller_Play_AiksTest_TextFrameSubpixelAlignment_OpenGLES.png +impeller_Play_AiksTest_TextFrameSubpixelAlignment_Vulkan.png +impeller_Play_AiksTest_TranslucentSaveLayerDrawsCorrectly_Metal.png +impeller_Play_AiksTest_TranslucentSaveLayerDrawsCorrectly_OpenGLES.png +impeller_Play_AiksTest_TranslucentSaveLayerDrawsCorrectly_Vulkan.png +impeller_Play_AiksTest_TranslucentSaveLayerImageDrawsCorrectly_Metal.png +impeller_Play_AiksTest_TranslucentSaveLayerImageDrawsCorrectly_OpenGLES.png +impeller_Play_AiksTest_TranslucentSaveLayerImageDrawsCorrectly_Vulkan.png +impeller_Play_AiksTest_TranslucentSaveLayerWithAdvancedBlendModeDrawsCorrectly_Metal.png +impeller_Play_AiksTest_TranslucentSaveLayerWithAdvancedBlendModeDrawsCorrectly_OpenGLES.png +impeller_Play_AiksTest_TranslucentSaveLayerWithAdvancedBlendModeDrawsCorrectly_Vulkan.png +impeller_Play_AiksTest_TranslucentSaveLayerWithBlendColorFilterDrawsCorrectly_Metal.png +impeller_Play_AiksTest_TranslucentSaveLayerWithBlendColorFilterDrawsCorrectly_OpenGLES.png +impeller_Play_AiksTest_TranslucentSaveLayerWithBlendColorFilterDrawsCorrectly_Vulkan.png +impeller_Play_AiksTest_TranslucentSaveLayerWithBlendImageFilterDrawsCorrectly_Metal.png +impeller_Play_AiksTest_TranslucentSaveLayerWithBlendImageFilterDrawsCorrectly_OpenGLES.png +impeller_Play_AiksTest_TranslucentSaveLayerWithBlendImageFilterDrawsCorrectly_Vulkan.png +impeller_Play_AiksTest_TranslucentSaveLayerWithColorAndImageFilterDrawsCorrectly_Metal.png +impeller_Play_AiksTest_TranslucentSaveLayerWithColorAndImageFilterDrawsCorrectly_OpenGLES.png +impeller_Play_AiksTest_TranslucentSaveLayerWithColorAndImageFilterDrawsCorrectly_Vulkan.png +impeller_Play_AiksTest_TranslucentSaveLayerWithColorFilterAndImageFilterDrawsCorrectly_Metal.png +impeller_Play_AiksTest_TranslucentSaveLayerWithColorFilterAndImageFilterDrawsCorrectly_OpenGLES.png +impeller_Play_AiksTest_TranslucentSaveLayerWithColorFilterAndImageFilterDrawsCorrectly_Vulkan.png +impeller_Play_AiksTest_TranslucentSaveLayerWithColorMatrixColorFilterDrawsCorrectly_Metal.png +impeller_Play_AiksTest_TranslucentSaveLayerWithColorMatrixColorFilterDrawsCorrectly_OpenGLES.png +impeller_Play_AiksTest_TranslucentSaveLayerWithColorMatrixColorFilterDrawsCorrectly_Vulkan.png +impeller_Play_AiksTest_TranslucentSaveLayerWithColorMatrixImageFilterDrawsCorrectly_Metal.png +impeller_Play_AiksTest_TranslucentSaveLayerWithColorMatrixImageFilterDrawsCorrectly_OpenGLES.png +impeller_Play_AiksTest_TranslucentSaveLayerWithColorMatrixImageFilterDrawsCorrectly_Vulkan.png +impeller_Play_AiksTest_VerticesGeometryUVPositionDataWithTranslate_Metal.png +impeller_Play_AiksTest_VerticesGeometryUVPositionDataWithTranslate_OpenGLES.png +impeller_Play_AiksTest_VerticesGeometryUVPositionDataWithTranslate_Vulkan.png +impeller_Play_AiksTest_VerticesGeometryUVPositionData_Metal.png +impeller_Play_AiksTest_VerticesGeometryUVPositionData_OpenGLES.png +impeller_Play_AiksTest_VerticesGeometryUVPositionData_Vulkan.png \ No newline at end of file diff --git a/testing/run_tests.py b/testing/run_tests.py index 5dbbae7d246a2..904790d9a7f9c 100755 --- a/testing/run_tests.py +++ b/testing/run_tests.py @@ -12,6 +12,7 @@ import argparse import errno +from functools import reduce import glob import logging import logging.handlers @@ -39,9 +40,6 @@ ENCODING = 'UTF-8' -# This number must be updated when adding new golden tests to impeller. -_NUM_EXPECTED_GENERATED_IMPELLER_GOLDEN_FILES = 599 - logger = logging.getLogger(__name__) logger_handler = logging.StreamHandler() @@ -1012,6 +1010,27 @@ def __exit__(self, exception_type, exception_value, exception_traceback): os.chdir(self.old_cwd) +def generate_dir_listing(dir_path: str) -> str: + listing = os.listdir(dir_path) + listing.sort() + return reduce(lambda a, b: a + '\n' + b, listing) + + +def str_replace_range(instr: str, start: int, end: int, replacement: str) -> str: + return instr[:start] + replacement + instr[end:] + + +def redirect_patch(patch: str) -> str: + 'Makes a diff point its output file to its input file.' + input_path = re.search(r'^--- a(.*)', patch, re.MULTILINE) + output_path = re.search(r'^\+\+\+ b(.*)', patch, re.MULTILINE) + return str_replace_range( + patch, + output_path.span(1)[0], + output_path.span(1)[1], input_path.group(1) + ) + + def run_impeller_golden_tests(build_dir: str): """ Executes the impeller golden image tests from in the `variant` build. @@ -1026,14 +1045,24 @@ def run_impeller_golden_tests(build_dir: str): ).joinpath('golden_tests_harvester') with tempfile.TemporaryDirectory(prefix='impeller_golden') as temp_dir: run_cmd([tests_path, '--working_dir=%s' % temp_dir], cwd=build_dir) - num_generated_files = len(os.listdir(temp_dir)) - if num_generated_files != _NUM_EXPECTED_GENERATED_IMPELLER_GOLDEN_FILES: - raise Exception( - '`impeller_golden_tests` was expected to generate ' - f'{_NUM_EXPECTED_GENERATED_IMPELLER_GOLDEN_FILES} files, ' - f'{num_generated_files} were generated. If this is expected, update ' - '_NUM_EXPECTED_GENERATED_IMPELLER_GOLDEN_FILES.' + with tempfile.NamedTemporaryFile(mode='w', + prefix='impeller_golden_tests_output') as dir_listing_file: + dir_listing = generate_dir_listing(temp_dir) + dir_listing_file.write(dir_listing) + golden_path = os.path.join('testing', 'impeller_golden_tests_output.txt') + diff_result = subprocess.run( + f'git diff -p {golden_path} {dir_listing_file.name}', + check=False, + shell=True, + stdout=subprocess.PIPE, + cwd=os.path.join(BUILDROOT_DIR, 'flutter') ) + if diff_result.returncode != 0: + print_divider('<') + print(f'Unexpected diff in {golden_path}, use `git apply` with the following patch.') + print('') + print(redirect_patch(diff_result.stdout.decode())) + raise RuntimeError('impeller_golden_tests diff failure') with DirectoryChange(harvester_path): run_cmd(['dart', 'pub', 'get'])