Index: gpu/command_buffer/service/mailbox_manager_sync.cc |
diff --git a/gpu/command_buffer/service/mailbox_manager_sync.cc b/gpu/command_buffer/service/mailbox_manager_sync.cc |
index 4f24bd7e0b9bd00d57a7ec653cd04cf26e2eb851..4cdc80df64039e754e6fe5b0a299069ebdcdff97 100644 |
--- a/gpu/command_buffer/service/mailbox_manager_sync.cc |
+++ b/gpu/command_buffer/service/mailbox_manager_sync.cc |
@@ -22,18 +22,6 @@ namespace gles2 { |
namespace { |
-bool SkipTextureWorkarounds(const Texture* texture) { |
- // TODO(sievers): crbug.com/352274 |
- // Should probably only fail if it already *has* mipmaps, while allowing |
- // incomplete textures here. |
- bool needs_mips = |
- texture->min_filter() != GL_NEAREST && texture->min_filter() != GL_LINEAR; |
- if (texture->target() != GL_TEXTURE_2D || needs_mips || !texture->IsDefined()) |
- return true; |
- |
- return false; |
-} |
- |
base::LazyInstance<base::Lock> g_lock = LAZY_INSTANCE_INITIALIZER; |
typedef std::map<uint32, linked_ptr<gfx::GLFence>> SyncPointToFenceMap; |
@@ -196,6 +184,15 @@ MailboxManagerSync::~MailboxManagerSync() { |
DCHECK_EQ(0U, texture_to_group_.size()); |
} |
+// static |
+bool MailboxManagerSync::SkipTextureWorkarounds(const Texture* texture) { |
+ // Cannot support mips due to support mismatch between |
+ // EGL_KHR_gl_texture_2D_image and glEGLImageTargetTexture2DOES for |
+ // texture levels. |
+ bool has_mips = texture->NeedsMips() && texture->texture_complete(); |
+ return texture->target() != GL_TEXTURE_2D || has_mips; |
+} |
+ |
bool MailboxManagerSync::UsesSync() { |
return true; |
} |
@@ -294,6 +291,7 @@ void MailboxManagerSync::UpdateDefinitionLocked( |
if (definition.Matches(texture)) |
return; |
+ DCHECK_IMPLIES(gl_image, image_buffer.get()); |
if (gl_image && !image_buffer->IsClient(gl_image)) { |
LOG(ERROR) << "MailboxSync: Incompatible attachment"; |
return; |