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

Unified Diff: components/exo/surface.h

Issue 2452523002: exo: Add zcr_linux_explicit_synchronization_v1
Patch Set: Created 4 years, 2 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
« no previous file with comments | « components/exo/display_unittest.cc ('k') | components/exo/surface.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/exo/surface.h
diff --git a/components/exo/surface.h b/components/exo/surface.h
index a3706787e488021f0d164a800f35417e2bcdaa6f..14b4e6eb7da26c84ac1a7c34e54b2ab890b1dfe1 100644
--- a/components/exo/surface.h
+++ b/components/exo/surface.h
@@ -35,6 +35,7 @@ class SurfaceFactory;
}
namespace gfx {
+class GpuFence;
class Path;
}
@@ -109,6 +110,10 @@ class Surface : public ui::LayerOwnerDelegate,
// to one surface at a time.
void Attach(Buffer* buffer);
+ // Provide an acquire-fence for the next surface commit. A buffer must be
+ // attached in the same transaction as applying a fence.
+ void SetAcquireFence(std::unique_ptr<gfx::GpuFence> fence);
+
// Describe the regions where the pending buffer is different from the
// current surface contents, and where the surface therefore needs to be
// repainted.
@@ -333,6 +338,10 @@ class Surface : public ui::LayerOwnerDelegate,
// The buffer that will become the content of surface when Commit() is called.
BufferAttachment pending_buffer_;
+ // The fence which will be used to wait before sourcing from
+ // |pending_buffer_|, on next Commit().
+ std::unique_ptr<gfx::GpuFence> pending_fence_;
+
cc::SurfaceManager* surface_manager_;
scoped_refptr<SurfaceFactoryOwner> factory_owner_;
@@ -372,6 +381,10 @@ class Surface : public ui::LayerOwnerDelegate,
// The buffer that is currently set as content of surface.
BufferAttachment current_buffer_;
+ // The fence which will be used to wait before sourcing from
+ // |current_buffer_|.
+ std::unique_ptr<gfx::GpuFence> fence_;
+
// The last resource that was sent to a surface.
cc::TransferableResource current_resource_;
« no previous file with comments | « components/exo/display_unittest.cc ('k') | components/exo/surface.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698