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

Unified Diff: cc/resources/resource_provider.cc

Issue 2440093003: WIP GPU scheduler + delayed activation / tile draw
Patch Set: SignalSyncToken -> IsFenceSyncReleased Created 4 years 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 | « cc/resources/resource_provider.h ('k') | cc/test/fake_raster_buffer_provider.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/resources/resource_provider.cc
diff --git a/cc/resources/resource_provider.cc b/cc/resources/resource_provider.cc
index 1be0b13564fc2774c44982e9f0bd6b967f5b2138..1fd797044fb0b4a3372e4ea078ec631a4c40fbc2 100644
--- a/cc/resources/resource_provider.cc
+++ b/cc/resources/resource_provider.cc
@@ -419,7 +419,8 @@ ResourceProvider::ResourceProvider(
id_allocation_chunk_size_(id_allocation_chunk_size),
use_sync_query_(false),
buffer_to_texture_target_map_(buffer_to_texture_target_map),
- tracing_id_(g_next_resource_provider_tracing_id.GetNext()) {
+ tracing_id_(g_next_resource_provider_tracing_id.GetNext()),
+ weak_ptr_factory_(this) {
DCHECK(id_allocation_chunk_size_);
DCHECK(thread_checker_.CalledOnValidThread());
@@ -944,6 +945,25 @@ void ResourceProvider::GenerateSyncTokenForResources(
}
}
+gpu::SyncToken ResourceProvider::GetSyncTokenForResource(
+ ResourceId resource_id) {
+ Resource* resource = GetResource(resource_id);
+ return resource->mailbox().sync_token();
+}
+
+gpu::SyncToken ResourceProvider::GetSyncTokenForResources(
+ const ResourceIdArray& resource_ids) {
+ gpu::SyncToken sync_token;
+ for (ResourceId id : resource_ids) {
+ Resource* resource = GetResource(id);
+ if (resource->mailbox().sync_token().release_count() >=
+ sync_token.release_count()) {
+ sync_token = resource->mailbox().sync_token();
+ }
+ }
+ return sync_token;
+}
+
ResourceProvider::Resource* ResourceProvider::InsertResource(
ResourceId id,
Resource resource) {
« no previous file with comments | « cc/resources/resource_provider.h ('k') | cc/test/fake_raster_buffer_provider.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698