Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(120)

Side by Side Diff: third_party/WebKit/Source/core/html/HTMLCanvasElement.cpp

Issue 2815103003: Disables software to accelerated canvas update on Linux AMD GPUs (Closed)
Patch Set: merge Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2004, 2006, 2007 Apple Inc. All rights reserved. 2 * Copyright (C) 2004, 2006, 2007 Apple Inc. All rights reserved.
3 * Copyright (C) 2007 Alp Toker <alp@atoker.com> 3 * Copyright (C) 2007 Alp Toker <alp@atoker.com>
4 * Copyright (C) 2010 Torch Mobile (Beijing) Co. Ltd. All rights reserved. 4 * Copyright (C) 2010 Torch Mobile (Beijing) Co. Ltd. All rights reserved.
5 * 5 *
6 * Redistribution and use in source and binary forms, with or without 6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions 7 * modification, are permitted provided that the following conditions
8 * are met: 8 * are met:
9 * 1. Redistributions of source code must retain the above copyright 9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
67 #include "platform/Histogram.h" 67 #include "platform/Histogram.h"
68 #include "platform/RuntimeEnabledFeatures.h" 68 #include "platform/RuntimeEnabledFeatures.h"
69 #include "platform/graphics/Canvas2DImageBufferSurface.h" 69 #include "platform/graphics/Canvas2DImageBufferSurface.h"
70 #include "platform/graphics/CanvasMetrics.h" 70 #include "platform/graphics/CanvasMetrics.h"
71 #include "platform/graphics/ExpensiveCanvasHeuristicParameters.h" 71 #include "platform/graphics/ExpensiveCanvasHeuristicParameters.h"
72 #include "platform/graphics/ImageBuffer.h" 72 #include "platform/graphics/ImageBuffer.h"
73 #include "platform/graphics/RecordingImageBufferSurface.h" 73 #include "platform/graphics/RecordingImageBufferSurface.h"
74 #include "platform/graphics/StaticBitmapImage.h" 74 #include "platform/graphics/StaticBitmapImage.h"
75 #include "platform/graphics/UnacceleratedImageBufferSurface.h" 75 #include "platform/graphics/UnacceleratedImageBufferSurface.h"
76 #include "platform/graphics/gpu/AcceleratedImageBufferSurface.h" 76 #include "platform/graphics/gpu/AcceleratedImageBufferSurface.h"
77 #include "platform/graphics/gpu/SharedGpuContext.h"
77 #include "platform/graphics/paint/PaintCanvas.h" 78 #include "platform/graphics/paint/PaintCanvas.h"
78 #include "platform/image-encoders/ImageEncoderUtils.h" 79 #include "platform/image-encoders/ImageEncoderUtils.h"
79 #include "platform/transforms/AffineTransform.h" 80 #include "platform/transforms/AffineTransform.h"
80 #include "platform/wtf/CheckedNumeric.h" 81 #include "platform/wtf/CheckedNumeric.h"
81 #include "platform/wtf/PtrUtil.h" 82 #include "platform/wtf/PtrUtil.h"
82 #include "public/platform/Platform.h" 83 #include "public/platform/Platform.h"
83 #include "public/platform/WebTraceLocation.h" 84 #include "public/platform/WebTraceLocation.h"
84 #include "v8/include/v8.h" 85 #include "v8/include/v8.h"
85 86
86 namespace blink { 87 namespace blink {
(...skipping 1146 matching lines...) Expand 10 before | Expand all | Expand 10 after
1233 } 1234 }
1234 1235
1235 void HTMLCanvasElement::DidMoveToNewDocument(Document& old_document) { 1236 void HTMLCanvasElement::DidMoveToNewDocument(Document& old_document) {
1236 ContextLifecycleObserver::SetContext(&GetDocument()); 1237 ContextLifecycleObserver::SetContext(&GetDocument());
1237 PageVisibilityObserver::SetContext(GetDocument().GetPage()); 1238 PageVisibilityObserver::SetContext(GetDocument().GetPage());
1238 HTMLElement::DidMoveToNewDocument(old_document); 1239 HTMLElement::DidMoveToNewDocument(old_document);
1239 } 1240 }
1240 1241
1241 void HTMLCanvasElement::WillDrawImageTo2DContext(CanvasImageSource* source) { 1242 void HTMLCanvasElement::WillDrawImageTo2DContext(CanvasImageSource* source) {
1242 if (ExpensiveCanvasHeuristicParameters::kEnableAccelerationToAvoidReadbacks && 1243 if (ExpensiveCanvasHeuristicParameters::kEnableAccelerationToAvoidReadbacks &&
1244 SharedGpuContext::AllowSoftwareToAcceleratedCanvasUpgrade() &&
1243 source->IsAccelerated() && !Buffer()->IsAccelerated() && 1245 source->IsAccelerated() && !Buffer()->IsAccelerated() &&
1244 ShouldAccelerate(kIgnoreResourceLimitCriteria)) { 1246 ShouldAccelerate(kIgnoreResourceLimitCriteria)) {
1245 OpacityMode opacity_mode = 1247 OpacityMode opacity_mode =
1246 context_->CreationAttributes().alpha() ? kNonOpaque : kOpaque; 1248 context_->CreationAttributes().alpha() ? kNonOpaque : kOpaque;
1247 int msaa_sample_count = 0; 1249 int msaa_sample_count = 0;
1248 std::unique_ptr<ImageBufferSurface> surface = 1250 std::unique_ptr<ImageBufferSurface> surface =
1249 CreateAcceleratedImageBufferSurface(opacity_mode, &msaa_sample_count); 1251 CreateAcceleratedImageBufferSurface(opacity_mode, &msaa_sample_count);
1250 if (surface) { 1252 if (surface) {
1251 Buffer()->SetSurface(std::move(surface)); 1253 Buffer()->SetSurface(std::move(surface));
1252 SetNeedsCompositingUpdate(); 1254 SetNeedsCompositingUpdate();
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after
1477 // Creates a placeholder layer first before Surface is created. 1479 // Creates a placeholder layer first before Surface is created.
1478 surface_layer_bridge_->CreateSolidColorLayer(); 1480 surface_layer_bridge_->CreateSolidColorLayer();
1479 } 1481 }
1480 } 1482 }
1481 1483
1482 void HTMLCanvasElement::OnWebLayerReplaced() { 1484 void HTMLCanvasElement::OnWebLayerReplaced() {
1483 SetNeedsCompositingUpdate(); 1485 SetNeedsCompositingUpdate();
1484 } 1486 }
1485 1487
1486 } // namespace blink 1488 } // namespace blink
OLDNEW
« no previous file with comments | « gpu/ipc/common/gpu_command_buffer_traits_multi.h ('k') | third_party/WebKit/Source/platform/graphics/gpu/SharedGpuContext.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698