Index: gpu/command_buffer/service/texture_definition.cc |
diff --git a/gpu/command_buffer/service/texture_definition.cc b/gpu/command_buffer/service/texture_definition.cc |
index cf385d2bbd15f9148d6a11081c6704bc736c920c..abde56a35129c9e4d867ecd028bb1246a833a838 100644 |
--- a/gpu/command_buffer/service/texture_definition.cc |
+++ b/gpu/command_buffer/service/texture_definition.cc |
@@ -15,7 +15,6 @@ |
#include "ui/gl/scoped_binders.h" |
#if !defined(OS_MACOSX) |
-#include "ui/gl/gl_fence_egl.h" |
#include "ui/gl/gl_surface_egl.h" |
#endif |
@@ -88,23 +87,15 @@ bool GLImageSync::CopyTexImage(unsigned target) { |
} |
void GLImageSync::WillUseTexImage() { |
- if (buffer_.get()) |
- buffer_->WillRead(this); |
} |
void GLImageSync::DidUseTexImage() { |
- if (buffer_.get()) |
- buffer_->DidRead(this); |
} |
void GLImageSync::WillModifyTexImage() { |
- if (buffer_.get()) |
- buffer_->WillWrite(this); |
} |
void GLImageSync::DidModifyTexImage() { |
- if (buffer_.get()) |
- buffer_->DidWrite(this); |
} |
bool GLImageSync::ScheduleOverlayPlane(gfx::AcceleratedWidget widget, |
@@ -128,10 +119,6 @@ class NativeImageBufferEGL : public NativeImageBuffer { |
virtual void RemoveClient(gfx::GLImage* client) override; |
virtual bool IsClient(gfx::GLImage* client) override; |
virtual void BindToTexture(GLenum target) override; |
- virtual void WillRead(gfx::GLImage* client) override; |
- virtual void WillWrite(gfx::GLImage* client) override; |
- virtual void DidRead(gfx::GLImage* client) override; |
- virtual void DidWrite(gfx::GLImage* client) override; |
EGLDisplay egl_display_; |
EGLImageKHR egl_image_; |
@@ -144,10 +131,8 @@ class NativeImageBufferEGL : public NativeImageBuffer { |
gfx::GLImage* client; |
bool needs_wait_before_read; |
- linked_ptr<gfx::GLFence> read_fence; |
}; |
std::list<ClientInfo> client_infos_; |
- scoped_ptr<gfx::GLFence> write_fence_; |
gfx::GLImage* write_client_; |
DISALLOW_COPY_AND_ASSIGN(NativeImageBufferEGL); |
@@ -164,8 +149,7 @@ scoped_refptr<NativeImageBufferEGL> NativeImageBufferEGL::Create( |
DCHECK(gfx::g_driver_egl.ext.b_EGL_KHR_image_base && |
gfx::g_driver_egl.ext.b_EGL_KHR_gl_texture_2D_image && |
- gfx::g_driver_gl.ext.b_GL_OES_EGL_image && |
- gfx::g_driver_egl.ext.b_EGL_KHR_fence_sync); |
+ gfx::g_driver_gl.ext.b_GL_OES_EGL_image); |
const EGLint egl_attrib_list[] = { |
EGL_GL_TEXTURE_LEVEL_KHR, 0, EGL_IMAGE_PRESERVED_KHR, EGL_TRUE, EGL_NONE}; |
@@ -191,7 +175,6 @@ NativeImageBufferEGL::NativeImageBufferEGL(EGLDisplay display, |
: NativeImageBuffer(), |
egl_display_(display), |
egl_image_(image), |
- write_fence_(new gfx::GLFenceEGL(true)), |
write_client_(NULL) { |
DCHECK(egl_display_ != EGL_NO_DISPLAY); |
DCHECK(egl_image_ != EGL_NO_IMAGE_KHR); |
@@ -241,64 +224,6 @@ void NativeImageBufferEGL::BindToTexture(GLenum target) { |
DCHECK_EQ(static_cast<GLenum>(GL_NO_ERROR), glGetError()); |
} |
-void NativeImageBufferEGL::WillRead(gfx::GLImage* client) { |
- base::AutoLock lock(lock_); |
- if (!write_fence_.get() || write_client_ == client) |
- return; |
- |
- for (std::list<ClientInfo>::iterator it = client_infos_.begin(); |
- it != client_infos_.end(); |
- it++) { |
- if (it->client == client) { |
- if (it->needs_wait_before_read) { |
- it->needs_wait_before_read = false; |
- write_fence_->ServerWait(); |
- } |
- return; |
- } |
- } |
- NOTREACHED(); |
-} |
- |
-void NativeImageBufferEGL::WillWrite(gfx::GLImage* client) { |
- base::AutoLock lock(lock_); |
- if (write_client_ != client) |
- write_fence_->ServerWait(); |
- |
- for (std::list<ClientInfo>::iterator it = client_infos_.begin(); |
- it != client_infos_.end(); |
- it++) { |
- if (it->read_fence.get() && it->client != client) |
- it->read_fence->ServerWait(); |
- } |
-} |
- |
-void NativeImageBufferEGL::DidRead(gfx::GLImage* client) { |
- base::AutoLock lock(lock_); |
- for (std::list<ClientInfo>::iterator it = client_infos_.begin(); |
- it != client_infos_.end(); |
- it++) { |
- if (it->client == client) { |
- it->read_fence = make_linked_ptr(new gfx::GLFenceEGL(true)); |
- return; |
- } |
- } |
- NOTREACHED(); |
-} |
- |
-void NativeImageBufferEGL::DidWrite(gfx::GLImage* client) { |
- base::AutoLock lock(lock_); |
- // Sharing semantics require the client to flush in order to make changes |
- // visible to other clients. |
- write_fence_.reset(new gfx::GLFenceEGL(false)); |
- write_client_ = client; |
- for (std::list<ClientInfo>::iterator it = client_infos_.begin(); |
- it != client_infos_.end(); |
- it++) { |
- it->needs_wait_before_read = true; |
- } |
-} |
- |
#endif |
class NativeImageBufferStub : public NativeImageBuffer { |
@@ -311,10 +236,6 @@ class NativeImageBufferStub : public NativeImageBuffer { |
void RemoveClient(gfx::GLImage* client) override {} |
bool IsClient(gfx::GLImage* client) override { return true; } |
void BindToTexture(GLenum target) override {} |
- void WillRead(gfx::GLImage* client) override {} |
- void WillWrite(gfx::GLImage* client) override {} |
- void DidRead(gfx::GLImage* client) override {} |
- void DidWrite(gfx::GLImage* client) override {} |
DISALLOW_COPY_AND_ASSIGN(NativeImageBufferStub); |
}; |