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

Side by Side Diff: cc/resources/resource_provider.h

Issue 869433003: (not for commit) Simplified multi-threaded Ganesh with lock on Flush only. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase. Created 5 years, 10 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 unified diff | Download patch
« no previous file with comments | « cc/resources/prioritized_resource_unittest.cc ('k') | cc/resources/resource_provider.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CC_RESOURCES_RESOURCE_PROVIDER_H_ 5 #ifndef CC_RESOURCES_RESOURCE_PROVIDER_H_
6 #define CC_RESOURCES_RESOURCE_PROVIDER_H_ 6 #define CC_RESOURCES_RESOURCE_PROVIDER_H_
7 7
8 #include <deque> 8 #include <deque>
9 #include <set> 9 #include <set>
10 #include <string> 10 #include <string>
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 Bitmap, 79 Bitmap,
80 }; 80 };
81 81
82 static scoped_ptr<ResourceProvider> Create( 82 static scoped_ptr<ResourceProvider> Create(
83 OutputSurface* output_surface, 83 OutputSurface* output_surface,
84 SharedBitmapManager* shared_bitmap_manager, 84 SharedBitmapManager* shared_bitmap_manager,
85 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, 85 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager,
86 BlockingTaskRunner* blocking_main_thread_task_runner, 86 BlockingTaskRunner* blocking_main_thread_task_runner,
87 int highp_threshold_min, 87 int highp_threshold_min,
88 bool use_rgba_4444_texture_format, 88 bool use_rgba_4444_texture_format,
89 bool use_worker_context_for_gr,
89 size_t id_allocation_chunk_size); 90 size_t id_allocation_chunk_size);
90 virtual ~ResourceProvider(); 91 virtual ~ResourceProvider();
91 92
92 void InitializeSoftware(); 93 void InitializeSoftware();
93 void InitializeGL(); 94 void InitializeGL();
94 95
95 void DidLoseOutputSurface() { lost_output_surface_ = true; } 96 void DidLoseOutputSurface() { lost_output_surface_ = true; }
96 97
97 int max_texture_size() const { return max_texture_size_; } 98 int max_texture_size() const { return max_texture_size_; }
98 ResourceFormat memory_efficient_texture_format() const { 99 ResourceFormat memory_efficient_texture_format() const {
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after
325 gfx::Size size_; 326 gfx::Size size_;
326 ResourceFormat format_; 327 ResourceFormat format_;
327 base::ThreadChecker thread_checker_; 328 base::ThreadChecker thread_checker_;
328 329
329 DISALLOW_COPY_AND_ASSIGN(ScopedWriteLockGpuMemoryBuffer); 330 DISALLOW_COPY_AND_ASSIGN(ScopedWriteLockGpuMemoryBuffer);
330 }; 331 };
331 332
332 class CC_EXPORT ScopedWriteLockGr { 333 class CC_EXPORT ScopedWriteLockGr {
333 public: 334 public:
334 ScopedWriteLockGr(ResourceProvider* resource_provider, 335 ScopedWriteLockGr(ResourceProvider* resource_provider,
335 ResourceProvider::ResourceId resource_id, 336 ResourceProvider::ResourceId resource_id);
336 bool use_distance_field_text,
337 bool can_use_lcd_text,
338 int msaa_sample_count);
339 ~ScopedWriteLockGr(); 337 ~ScopedWriteLockGr();
340 338
341 SkSurface* get_sk_surface() { return sk_surface_.get(); } 339 SkSurface* GetSkSurface(bool use_distance_field_text,
340 bool can_use_lcd_text,
341 int msaa_sample_count);
342 342
343 private: 343 private:
344 ResourceProvider* resource_provider_; 344 ResourceProvider* resource_provider_;
345 ResourceProvider::Resource* resource_; 345 ResourceProvider::Resource* resource_;
346 base::ThreadChecker thread_checker_; 346 base::ThreadChecker thread_checker_;
347 skia::RefPtr<SkSurface> sk_surface_; 347 skia::RefPtr<SkSurface> sk_surface_;
348 348
349 DISALLOW_COPY_AND_ASSIGN(ScopedWriteLockGr); 349 DISALLOW_COPY_AND_ASSIGN(ScopedWriteLockGr);
350 }; 350 };
351 351
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
419 419
420 // Copy pixels from source to destination. 420 // Copy pixels from source to destination.
421 void CopyResource(ResourceId source_id, ResourceId dest_id); 421 void CopyResource(ResourceId source_id, ResourceId dest_id);
422 422
423 void WaitSyncPointIfNeeded(ResourceId id); 423 void WaitSyncPointIfNeeded(ResourceId id);
424 424
425 void WaitReadLockIfNeeded(ResourceId id); 425 void WaitReadLockIfNeeded(ResourceId id);
426 426
427 static GLint GetActiveTextureUnit(gpu::gles2::GLES2Interface* gl); 427 static GLint GetActiveTextureUnit(gpu::gles2::GLES2Interface* gl);
428 428
429 OutputSurface* output_surface() { return output_surface_; }
430
429 private: 431 private:
430 struct Resource { 432 struct Resource {
431 enum Origin { Internal, External, Delegated }; 433 enum Origin { Internal, External, Delegated };
432 434
433 Resource(); 435 Resource();
434 ~Resource(); 436 ~Resource();
435 Resource(unsigned texture_id, 437 Resource(unsigned texture_id,
436 const gfx::Size& size, 438 const gfx::Size& size,
437 Origin origin, 439 Origin origin,
438 GLenum target, 440 GLenum target,
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
517 return !resource->read_lock_fence.get() || 519 return !resource->read_lock_fence.get() ||
518 resource->read_lock_fence->HasPassed(); 520 resource->read_lock_fence->HasPassed();
519 } 521 }
520 522
521 ResourceProvider(OutputSurface* output_surface, 523 ResourceProvider(OutputSurface* output_surface,
522 SharedBitmapManager* shared_bitmap_manager, 524 SharedBitmapManager* shared_bitmap_manager,
523 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager, 525 gpu::GpuMemoryBufferManager* gpu_memory_buffer_manager,
524 BlockingTaskRunner* blocking_main_thread_task_runner, 526 BlockingTaskRunner* blocking_main_thread_task_runner,
525 int highp_threshold_min, 527 int highp_threshold_min,
526 bool use_rgba_4444_texture_format, 528 bool use_rgba_4444_texture_format,
529 bool use_worker_context_for_gr,
527 size_t id_allocation_chunk_size); 530 size_t id_allocation_chunk_size);
528 531
529 void CleanUpGLIfNeeded(); 532 void CleanUpGLIfNeeded();
530 533
531 Resource* GetResource(ResourceId id); 534 Resource* GetResource(ResourceId id);
532 const Resource* LockForRead(ResourceId id); 535 const Resource* LockForRead(ResourceId id);
533 void UnlockForRead(ResourceId id); 536 void UnlockForRead(ResourceId id);
534 Resource* LockForWrite(ResourceId id); 537 Resource* LockForWrite(ResourceId id);
535 void UnlockForWrite(Resource* resource); 538 void UnlockForWrite(Resource* resource);
536 539
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
580 bool use_compressed_texture_etc1_; 583 bool use_compressed_texture_etc1_;
581 ResourceFormat yuv_resource_format_; 584 ResourceFormat yuv_resource_format_;
582 scoped_ptr<TextureUploader> texture_uploader_; 585 scoped_ptr<TextureUploader> texture_uploader_;
583 int max_texture_size_; 586 int max_texture_size_;
584 ResourceFormat best_texture_format_; 587 ResourceFormat best_texture_format_;
585 588
586 base::ThreadChecker thread_checker_; 589 base::ThreadChecker thread_checker_;
587 590
588 scoped_refptr<Fence> current_read_lock_fence_; 591 scoped_refptr<Fence> current_read_lock_fence_;
589 bool use_rgba_4444_texture_format_; 592 bool use_rgba_4444_texture_format_;
593 bool use_worker_context_for_gr_;
590 594
591 const size_t id_allocation_chunk_size_; 595 const size_t id_allocation_chunk_size_;
592 scoped_ptr<IdAllocator> texture_id_allocator_; 596 scoped_ptr<IdAllocator> texture_id_allocator_;
593 scoped_ptr<IdAllocator> buffer_id_allocator_; 597 scoped_ptr<IdAllocator> buffer_id_allocator_;
594 598
595 bool use_sync_query_; 599 bool use_sync_query_;
596 // Fence used for CopyResource if CHROMIUM_sync_query is not supported. 600 // Fence used for CopyResource if CHROMIUM_sync_query is not supported.
597 scoped_refptr<SynchronousFence> synchronous_fence_; 601 scoped_refptr<SynchronousFence> synchronous_fence_;
598 602
599 DISALLOW_COPY_AND_ASSIGN(ResourceProvider); 603 DISALLOW_COPY_AND_ASSIGN(ResourceProvider);
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
650 return format_gl_data_format[format]; 654 return format_gl_data_format[format];
651 } 655 }
652 656
653 inline GLenum GLInternalFormat(ResourceFormat format) { 657 inline GLenum GLInternalFormat(ResourceFormat format) {
654 return GLDataFormat(format); 658 return GLDataFormat(format);
655 } 659 }
656 660
657 } // namespace cc 661 } // namespace cc
658 662
659 #endif // CC_RESOURCES_RESOURCE_PROVIDER_H_ 663 #endif // CC_RESOURCES_RESOURCE_PROVIDER_H_
OLDNEW
« no previous file with comments | « cc/resources/prioritized_resource_unittest.cc ('k') | cc/resources/resource_provider.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698