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

Unified Diff: gpu/ipc/service/image_transport_surface_overlay_mac.mm

Issue 2085173002: Don't check IOSurfaceIsInUse for IOSurfaces wrapped in a CVPixelBuffer. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 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 side-by-side diff with in-line comments
Download patch
Index: gpu/ipc/service/image_transport_surface_overlay_mac.mm
diff --git a/gpu/ipc/service/image_transport_surface_overlay_mac.mm b/gpu/ipc/service/image_transport_surface_overlay_mac.mm
index 6175a48147d549b7ac01cd3cfadd238578f26719..1173fcd9e3f23b5156fa8a13b95d3bf092c70105 100644
--- a/gpu/ipc/service/image_transport_surface_overlay_mac.mm
+++ b/gpu/ipc/service/image_transport_surface_overlay_mac.mm
@@ -159,14 +159,20 @@ void ImageTransportSurfaceOverlayMac::SendAcceleratedSurfaceBuffersSwapped(
params.latency_info = std::move(latency_info);
params.result = gfx::SwapResult::SWAP_ACK;
- for (auto& query : io_surface_in_use_queries_) {
+ for (auto& query : ca_layer_in_use_queries_) {
gpu::TextureInUseResponse response;
response.texture = query.texture;
- response.in_use =
- query.io_surface.get() && IOSurfaceIsInUse(query.io_surface.get());
+ bool in_use = false;
+ if (query.image) {
+ gl::GLImageIOSurface* io_surface_image =
+ static_cast<gl::GLImageIOSurface*>(query.image.get());
+ in_use = io_surface_image->CanCheckIOSurfaceIsInUse() &&
+ IOSurfaceIsInUse(io_surface_image->io_surface());
+ }
+ response.in_use = in_use;
params.in_use_responses.push_back(std::move(response));
}
- io_surface_in_use_queries_.clear();
+ ca_layer_in_use_queries_.clear();
stub_->SendSwapBuffersCompleted(params);
}
@@ -348,16 +354,7 @@ bool ImageTransportSurfaceOverlayMac::ScheduleCALayer(
void ImageTransportSurfaceOverlayMac::ScheduleCALayerInUseQuery(
std::vector<CALayerInUseQuery> queries) {
- for (auto& query : queries) {
- IOSurfaceInUseQuery io_surface_query;
- io_surface_query.texture = query.texture;
- if (query.image) {
- gl::GLImageIOSurface* io_surface_image =
- static_cast<gl::GLImageIOSurface*>(query.image.get());
- io_surface_query.io_surface = io_surface_image->io_surface();
- }
- io_surface_in_use_queries_.push_back(std::move(io_surface_query));
- }
+ ca_layer_in_use_queries_.swap(queries);
}
bool ImageTransportSurfaceOverlayMac::IsSurfaceless() const {
@@ -395,13 +392,4 @@ void ImageTransportSurfaceOverlayMac::OnGpuSwitched() {
FROM_HERE, base::Bind(&IOSurfaceContextNoOp, context_on_new_gpu));
}
-ImageTransportSurfaceOverlayMac::IOSurfaceInUseQuery::IOSurfaceInUseQuery() =
- default;
-ImageTransportSurfaceOverlayMac::IOSurfaceInUseQuery::IOSurfaceInUseQuery(
- const IOSurfaceInUseQuery&) = default;
-ImageTransportSurfaceOverlayMac::IOSurfaceInUseQuery::IOSurfaceInUseQuery(
- IOSurfaceInUseQuery&&) = default;
-ImageTransportSurfaceOverlayMac::IOSurfaceInUseQuery::~IOSurfaceInUseQuery() =
- default;
-
} // namespace gpu

Powered by Google App Engine
This is Rietveld 408576698