| 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
|
|
|