| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 #ifndef ExpensiveCanvasHeuristicParameters_h | 5 #ifndef ExpensiveCanvasHeuristicParameters_h |
| 6 #define ExpensiveCanvasHeuristicParameters_h | 6 #define ExpensiveCanvasHeuristicParameters_h |
| 7 | 7 |
| 8 namespace blink { | 8 namespace blink { |
| 9 | 9 |
| 10 namespace ExpensiveCanvasHeuristicParameters { | 10 namespace ExpensiveCanvasHeuristicParameters { |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 60 // lists. Rationale: The allocation of large textures for canvas | 60 // lists. Rationale: The allocation of large textures for canvas |
| 61 // tends to starve the compositor, and increase the probability of | 61 // tends to starve the compositor, and increase the probability of |
| 62 // failure of subsequent allocations required for double buffering. | 62 // failure of subsequent allocations required for double buffering. |
| 63 PreferDisplayListOverGpuSizeThreshold = 4096 * 4096, | 63 PreferDisplayListOverGpuSizeThreshold = 4096 * 4096, |
| 64 | 64 |
| 65 // Disable Acceleration heuristic parameters | 65 // Disable Acceleration heuristic parameters |
| 66 //=========================================== | 66 //=========================================== |
| 67 | 67 |
| 68 GetImageDataForcesNoAcceleration = 1, | 68 GetImageDataForcesNoAcceleration = 1, |
| 69 | 69 |
| 70 // When drawing very large images to canvases, there is a point where |
| 71 // GPU acceleration becomes inefficient due to texture upload overhead, |
| 72 // especially when the image is large enough that it is likely to |
| 73 // monopolize the texture cache, and when it is being downsized to the |
| 74 // point that few of the upload texels are actually sampled. When both |
| 75 // of these conditions are met, we disable acceleration. |
| 76 DrawImageTextureUploadSoftSizeLimit = 4096 * 4096, |
| 77 DrawImageTextureUploadSoftSizeLimitScaleThreshold = 4, |
| 78 DrawImageTextureUploadHardSizeLimit = 8192 * 8192, |
| 79 |
| 70 }; // enum | 80 }; // enum |
| 71 | 81 |
| 72 | 82 |
| 73 // Constants and Coefficients for 2D Canvas Dynamic Rendering Mode Switching | 83 // Constants and Coefficients for 2D Canvas Dynamic Rendering Mode Switching |
| 74 // ========================================================================= | 84 // ========================================================================= |
| 75 | 85 |
| 76 // Approximate relative costs of different types of operations for the | 86 // Approximate relative costs of different types of operations for the |
| 77 // accelerated rendering pipeline and the recording rendering pipeline. | 87 // accelerated rendering pipeline and the recording rendering pipeline. |
| 78 // These costs were estimated experimentally using the tools located in the | 88 // These costs were estimated experimentally using the tools located in the |
| 79 // third_party/WebKit/Source/modules/canvas2d/performance_analysis directory. | 89 // third_party/WebKit/Source/modules/canvas2d/performance_analysis directory. |
| (...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 139 // before the rendering pipeline may be switched. Having this set | 149 // before the rendering pipeline may be switched. Having this set |
| 140 // to more than 1 increases the sample size of usage data before a | 150 // to more than 1 increases the sample size of usage data before a |
| 141 // decision is made, improving the accuracy of heuristics. | 151 // decision is made, improving the accuracy of heuristics. |
| 142 const int MinFramesBeforeSwitch = 3; | 152 const int MinFramesBeforeSwitch = 3; |
| 143 | 153 |
| 144 } // namespace ExpensiveCanvasHeuristicParameters | 154 } // namespace ExpensiveCanvasHeuristicParameters |
| 145 | 155 |
| 146 } // namespace blink | 156 } // namespace blink |
| 147 | 157 |
| 148 #endif | 158 #endif |
| OLD | NEW |