Index: cc/resources/resource_provider.cc |
diff --git a/cc/resources/resource_provider.cc b/cc/resources/resource_provider.cc |
index 1f2f598a0c247987131b2adc5bd75cfdf13359ba..9431d6aaa783f9f0e4c523961f7521314198fdff 100644 |
--- a/cc/resources/resource_provider.cc |
+++ b/cc/resources/resource_provider.cc |
@@ -206,6 +206,7 @@ class QueryFence : public ResourceProvider::Fence { |
: gl_(gl), query_id_(query_id) {} |
// Overridden from ResourceProvider::Fence: |
+ virtual void Set() OVERRIDE {} |
virtual bool HasPassed() OVERRIDE { |
unsigned available = 1; |
gl_->GetQueryObjectuivEXT( |
@@ -241,7 +242,7 @@ ResourceProvider::Resource::Resource() |
pending_set_pixels(false), |
set_pixels_completion_forced(false), |
allocated(false), |
- enable_read_lock_fences(false), |
+ read_lock_fences_enabled(false), |
has_shared_bitmap_id(false), |
allow_overlay(false), |
read_lock_fence(NULL), |
@@ -257,7 +258,8 @@ ResourceProvider::Resource::Resource() |
hint(TextureUsageAny), |
type(InvalidType), |
format(RGBA_8888), |
- shared_bitmap(NULL) {} |
+ shared_bitmap(NULL) { |
+} |
ResourceProvider::Resource::~Resource() {} |
@@ -286,7 +288,7 @@ ResourceProvider::Resource::Resource(GLuint texture_id, |
pending_set_pixels(false), |
set_pixels_completion_forced(false), |
allocated(false), |
- enable_read_lock_fences(false), |
+ read_lock_fences_enabled(false), |
has_shared_bitmap_id(false), |
allow_overlay(false), |
read_lock_fence(NULL), |
@@ -329,7 +331,7 @@ ResourceProvider::Resource::Resource(uint8_t* pixels, |
pending_set_pixels(false), |
set_pixels_completion_forced(false), |
allocated(false), |
- enable_read_lock_fences(false), |
+ read_lock_fences_enabled(false), |
has_shared_bitmap_id(!!bitmap), |
allow_overlay(false), |
read_lock_fence(NULL), |
@@ -373,7 +375,7 @@ ResourceProvider::Resource::Resource(const SharedBitmapId& bitmap_id, |
pending_set_pixels(false), |
set_pixels_completion_forced(false), |
allocated(false), |
- enable_read_lock_fences(false), |
+ read_lock_fences_enabled(false), |
has_shared_bitmap_id(true), |
allow_overlay(false), |
read_lock_fence(NULL), |
@@ -1062,8 +1064,11 @@ const ResourceProvider::Resource* ResourceProvider::LockForRead(ResourceId id) { |
} |
resource->lock_for_read_count++; |
- if (resource->enable_read_lock_fences) |
+ if (resource->read_lock_fences_enabled) { |
+ if (current_read_lock_fence_) |
+ current_read_lock_fence_->Set(); |
resource->read_lock_fence = current_read_lock_fence_; |
+ } |
return resource; |
} |
@@ -1522,8 +1527,11 @@ void ResourceProvider::ReceiveReturnsFromParent( |
// Need to wait for the current read lock fence to pass before we can |
// recycle this resource. |
- if (resource->enable_read_lock_fences) |
+ if (resource->read_lock_fences_enabled) { |
+ if (current_read_lock_fence_) |
+ current_read_lock_fence_->Set(); |
resource->read_lock_fence = current_read_lock_fence_; |
+ } |
if (returned.sync_point) { |
DCHECK(!resource->has_shared_bitmap_id); |
@@ -2102,10 +2110,9 @@ void ResourceProvider::BindImageForSampling(Resource* resource) { |
resource->dirty_image = false; |
} |
-void ResourceProvider::EnableReadLockFences(ResourceProvider::ResourceId id, |
- bool enable) { |
+void ResourceProvider::EnableReadLockFences(ResourceProvider::ResourceId id) { |
Resource* resource = GetResource(id); |
- resource->enable_read_lock_fences = enable; |
+ resource->read_lock_fences_enabled = true; |
} |
void ResourceProvider::AcquireImage(Resource* resource) { |