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

Side by Side Diff: ui/accelerated_widget_mac/accelerated_widget_mac.mm

Issue 1273563002: Mac Overlays: Add GPU back-pressure (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Use default fences Created 5 years, 4 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 // 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 "ui/accelerated_widget_mac/accelerated_widget_mac.h" 5 #include "ui/accelerated_widget_mac/accelerated_widget_mac.h"
6 6
7 #include <map> 7 #include <map>
8 8
9 #include "base/lazy_instance.h" 9 #include "base/lazy_instance.h"
10 #include "base/message_loop/message_loop.h" 10 #include "base/message_loop/message_loop.h"
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after
103 const gfx::Size& dip_size) const { 103 const gfx::Size& dip_size) const {
104 return last_swap_size_dip_ == dip_size; 104 return last_swap_size_dip_ == dip_size;
105 } 105 }
106 106
107 int AcceleratedWidgetMac::GetRendererID() const { 107 int AcceleratedWidgetMac::GetRendererID() const {
108 if (io_surface_layer_) 108 if (io_surface_layer_)
109 return [io_surface_layer_ rendererID]; 109 return [io_surface_layer_ rendererID];
110 return 0; 110 return 0;
111 } 111 }
112 112
113 uint32_t AcceleratedWidgetMac::GetDisplayIDForVSync() const {
114 if (view_)
115 return view_->AcceleratedWidgetGetDisplayIDForVSync();
116 return 0;
117 }
118
113 bool AcceleratedWidgetMac::IsRendererThrottlingDisabled() const { 119 bool AcceleratedWidgetMac::IsRendererThrottlingDisabled() const {
114 if (view_) 120 if (view_)
115 return view_->AcceleratedWidgetShouldIgnoreBackpressure(); 121 return view_->AcceleratedWidgetShouldIgnoreBackpressure();
116 return false; 122 return false;
117 } 123 }
118 124
119 void AcceleratedWidgetMac::BeginPumpingFrames() { 125 void AcceleratedWidgetMac::BeginPumpingFrames() {
120 [io_surface_layer_ beginPumpingFrames]; 126 [io_surface_layer_ beginPumpingFrames];
121 } 127 }
122 128
(...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after
358 view_->AcceleratedWidgetHitError(); 364 view_->AcceleratedWidgetHitError();
359 } 365 }
360 366
361 void AcceleratedWidgetMacGotAcceleratedFrame( 367 void AcceleratedWidgetMacGotAcceleratedFrame(
362 gfx::AcceleratedWidget widget, uint64 surface_handle, 368 gfx::AcceleratedWidget widget, uint64 surface_handle,
363 const std::vector<ui::LatencyInfo>& latency_info, 369 const std::vector<ui::LatencyInfo>& latency_info,
364 const gfx::Size& pixel_size, 370 const gfx::Size& pixel_size,
365 float scale_factor, 371 float scale_factor,
366 const gfx::Rect& pixel_damage_rect, 372 const gfx::Rect& pixel_damage_rect,
367 const base::Closure& drawn_callback, 373 const base::Closure& drawn_callback,
368 bool* disable_throttling, int* renderer_id) { 374 bool* disable_throttling, int* renderer_id, uint32_t* display_id) {
369 AcceleratedWidgetMac* accelerated_widget_mac = 375 AcceleratedWidgetMac* accelerated_widget_mac =
370 GetHelperFromAcceleratedWidget(widget); 376 GetHelperFromAcceleratedWidget(widget);
371 if (accelerated_widget_mac) { 377 if (accelerated_widget_mac) {
372 accelerated_widget_mac->GotAcceleratedFrame( 378 accelerated_widget_mac->GotAcceleratedFrame(
373 surface_handle, latency_info, pixel_size, scale_factor, 379 surface_handle, latency_info, pixel_size, scale_factor,
374 pixel_damage_rect, drawn_callback); 380 pixel_damage_rect, drawn_callback);
375 *disable_throttling = 381 *disable_throttling =
376 accelerated_widget_mac->IsRendererThrottlingDisabled(); 382 accelerated_widget_mac->IsRendererThrottlingDisabled();
377 *renderer_id = accelerated_widget_mac->GetRendererID(); 383 *renderer_id = accelerated_widget_mac->GetRendererID();
384 *display_id = accelerated_widget_mac->GetDisplayIDForVSync();
378 } else { 385 } else {
379 *disable_throttling = false; 386 *disable_throttling = false;
380 *renderer_id = 0; 387 *renderer_id = 0;
388 *display_id = 0;
381 } 389 }
382 } 390 }
383 391
384 void AcceleratedWidgetMacGotSoftwareFrame( 392 void AcceleratedWidgetMacGotSoftwareFrame(
385 gfx::AcceleratedWidget widget, float scale_factor, SkCanvas* canvas) { 393 gfx::AcceleratedWidget widget, float scale_factor, SkCanvas* canvas) {
386 AcceleratedWidgetMac* accelerated_widget_mac = 394 AcceleratedWidgetMac* accelerated_widget_mac =
387 GetHelperFromAcceleratedWidget(widget); 395 GetHelperFromAcceleratedWidget(widget);
388 if (accelerated_widget_mac) 396 if (accelerated_widget_mac)
389 accelerated_widget_mac->GotSoftwareFrame(scale_factor, canvas); 397 accelerated_widget_mac->GotSoftwareFrame(scale_factor, canvas);
390 } 398 }
391 399
392 } // namespace ui 400 } // namespace ui
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698