OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "modules/canvas2d/CanvasRenderingContext2D.h" | 5 #include "modules/canvas2d/CanvasRenderingContext2D.h" |
6 | 6 |
7 #include "core/dom/Document.h" | 7 #include "core/dom/Document.h" |
8 #include "core/fetch/MemoryCache.h" | 8 #include "core/fetch/MemoryCache.h" |
9 #include "core/frame/FrameView.h" | 9 #include "core/frame/FrameView.h" |
10 #include "core/frame/ImageBitmap.h" | 10 #include "core/frame/ImageBitmap.h" |
(...skipping 989 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1000 EXPECT_TRUE(canvasElement().buffer()->isAccelerated()); | 1000 EXPECT_TRUE(canvasElement().buffer()->isAccelerated()); |
1001 EXPECT_EQ(1u, getGlobalAcceleratedImageBufferCount()); | 1001 EXPECT_EQ(1u, getGlobalAcceleratedImageBufferCount()); |
1002 EXPECT_EQ(720000, getGlobalGPUMemoryUsage()); | 1002 EXPECT_EQ(720000, getGlobalGPUMemoryUsage()); |
1003 } | 1003 } |
1004 | 1004 |
1005 // Restore global state to prevent side-effects on other tests | 1005 // Restore global state to prevent side-effects on other tests |
1006 RuntimeEnabledFeatures::setCanvas2dFixedRenderingModeEnabled( | 1006 RuntimeEnabledFeatures::setCanvas2dFixedRenderingModeEnabled( |
1007 savedFixedRenderingMode); | 1007 savedFixedRenderingMode); |
1008 } | 1008 } |
1009 | 1009 |
1010 TEST_F(CanvasRenderingContext2DTest, | |
1011 PreferNoAccelerationHintDisablesAcceleration) { | |
1012 bool savedFixedRenderingMode = | |
1013 RuntimeEnabledFeatures::canvas2dFixedRenderingModeEnabled(); | |
1014 RuntimeEnabledFeatures::setCanvas2dFixedRenderingModeEnabled(false); | |
1015 | |
1016 createContext(NonOpaque); | |
1017 FakeGLES2Interface gl; | |
1018 std::unique_ptr<FakeWebGraphicsContext3DProvider> contextProvider( | |
1019 new FakeWebGraphicsContext3DProvider(&gl)); | |
1020 IntSize size(300, 300); | |
1021 RefPtr<Canvas2DLayerBridge> bridge = | |
1022 makeBridge(std::move(contextProvider), size, | |
1023 Canvas2DLayerBridge::EnableAcceleration); | |
1024 std::unique_ptr<Canvas2DImageBufferSurface> surface( | |
1025 new Canvas2DImageBufferSurface(bridge, size)); | |
1026 canvasElement().createImageBufferUsingSurfaceForTesting(std::move(surface)); | |
1027 | |
1028 EXPECT_TRUE(canvasElement().buffer()->isAccelerated()); | |
1029 SourceImageStatus status = InvalidSourceImageStatus; | |
1030 canvasElement().getSourceImageForCanvas( | |
1031 &status, PreferNoAcceleration, SnapshotReasonUnitTests, FloatSize(size)); | |
1032 EXPECT_EQ(NormalSourceImageStatus, status); | |
1033 if (ExpensiveCanvasHeuristicParameters::DisableAccelerationToAvoidReadbacks) { | |
1034 EXPECT_FALSE(canvasElement().buffer()->isAccelerated()); | |
1035 EXPECT_EQ(0u, getGlobalAcceleratedImageBufferCount()); | |
1036 EXPECT_EQ(0, getGlobalGPUMemoryUsage()); | |
1037 } else { | |
1038 EXPECT_TRUE(canvasElement().buffer()->isAccelerated()); | |
1039 EXPECT_EQ(1u, getGlobalAcceleratedImageBufferCount()); | |
1040 EXPECT_EQ(720000, getGlobalGPUMemoryUsage()); | |
1041 } | |
1042 | |
1043 // Restore global state to prevent side-effects on other tests | |
1044 RuntimeEnabledFeatures::setCanvas2dFixedRenderingModeEnabled( | |
1045 savedFixedRenderingMode); | |
1046 } | |
1047 | |
1048 TEST_F(CanvasRenderingContext2DTest, TextureUploadHeuristics) { | 1010 TEST_F(CanvasRenderingContext2DTest, TextureUploadHeuristics) { |
1049 bool savedFixedRenderingMode = | 1011 bool savedFixedRenderingMode = |
1050 RuntimeEnabledFeatures::canvas2dFixedRenderingModeEnabled(); | 1012 RuntimeEnabledFeatures::canvas2dFixedRenderingModeEnabled(); |
1051 RuntimeEnabledFeatures::setCanvas2dFixedRenderingModeEnabled(false); | 1013 RuntimeEnabledFeatures::setCanvas2dFixedRenderingModeEnabled(false); |
1052 | 1014 |
1053 enum TestVariants { | 1015 enum TestVariants { |
1054 LargeTextureDisablesAcceleration = 0, | 1016 LargeTextureDisablesAcceleration = 0, |
1055 SmallTextureDoesNotDisableAcceleration = 1, | 1017 SmallTextureDoesNotDisableAcceleration = 1, |
1056 | 1018 |
1057 TestVariantCount = 2, | 1019 TestVariantCount = 2, |
(...skipping 345 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1403 | 1365 |
1404 RuntimeEnabledFeatures::setExperimentalCanvasFeaturesEnabled( | 1366 RuntimeEnabledFeatures::setExperimentalCanvasFeaturesEnabled( |
1405 experimentalCanvasFeaturesRuntimeFlag); | 1367 experimentalCanvasFeaturesRuntimeFlag); |
1406 RuntimeEnabledFeatures::setColorCorrectRenderingEnabled( | 1368 RuntimeEnabledFeatures::setColorCorrectRenderingEnabled( |
1407 colorCorrectRenderingRuntimeFlag); | 1369 colorCorrectRenderingRuntimeFlag); |
1408 RuntimeEnabledFeatures::setColorCorrectRenderingDefaultModeEnabled( | 1370 RuntimeEnabledFeatures::setColorCorrectRenderingDefaultModeEnabled( |
1409 colorCorrectRenderingDefaultModeRuntimeFlag); | 1371 colorCorrectRenderingDefaultModeRuntimeFlag); |
1410 } | 1372 } |
1411 | 1373 |
1412 } // namespace blink | 1374 } // namespace blink |
OLD | NEW |