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

Side by Side Diff: gpu/command_buffer/client/gles2_implementation.h

Issue 116863003: gpu: Reuse transfer buffers more aggresively (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: [RFC] gpu: Reuse transfer buffers more aggressively Created 6 years, 11 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 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 GPU_COMMAND_BUFFER_CLIENT_GLES2_IMPLEMENTATION_H_ 5 #ifndef GPU_COMMAND_BUFFER_CLIENT_GLES2_IMPLEMENTATION_H_
6 #define GPU_COMMAND_BUFFER_CLIENT_GLES2_IMPLEMENTATION_H_ 6 #define GPU_COMMAND_BUFFER_CLIENT_GLES2_IMPLEMENTATION_H_
7 7
8 #include <GLES2/gl2.h> 8 #include <GLES2/gl2.h>
9 9
10 #include <map> 10 #include <map>
(...skipping 573 matching lines...) Expand 10 before | Expand all | Expand 10 after
584 584
585 // Asserts that the context is lost. 585 // Asserts that the context is lost.
586 // NOTE: This is an expensive call and should only be called 586 // NOTE: This is an expensive call and should only be called
587 // for error checking. 587 // for error checking.
588 bool MustBeContextLost(); 588 bool MustBeContextLost();
589 589
590 void RunIfContextNotLost(const base::Closure& callback); 590 void RunIfContextNotLost(const base::Closure& callback);
591 591
592 void OnSwapBuffersComplete(); 592 void OnSwapBuffersComplete();
593 593
594 // Free transfer buffer if unused token already passed, or free pending
595 // the unused token if not.
596 void FreeTransferBuffer(BufferTracker::Buffer* buffer);
597
598 // Free and remove buffer if no async upload in progress. If in progress,
599 // unmanage the buffer and free and destroy when upload completed.
600 void DisposeTransferBuffer(BufferTracker::Buffer* buffer);
601
602 // Used for keeping track of async upload buffers.
603 void CheckBuffersPendingAsyncComplete();
604
605 // Internal async upload query.
606 void BeginQueryAsyncPixelUnpackCompleted(BufferTracker::Buffer *buffer);
607 void EndQueryAsyncPixelUnpackCompleted();
608
594 bool GetBoundPixelTransferBuffer( 609 bool GetBoundPixelTransferBuffer(
595 GLenum target, const char* function_name, GLuint* buffer_id); 610 GLenum target, const char* function_name, GLuint* buffer_id);
596 BufferTracker::Buffer* GetBoundPixelUnpackTransferBufferIfValid( 611 BufferTracker::Buffer* GetBoundPixelUnpackTransferBufferIfValid(
597 GLuint buffer_id, 612 GLuint buffer_id,
598 const char* function_name, GLuint offset, GLsizei size); 613 const char* function_name, GLuint offset, GLsizei size);
599 614
600 const std::string& GetLogPrefix() const; 615 const std::string& GetLogPrefix() const;
601 616
602 #if defined(GL_CLIENT_FAIL_GL_ERRORS) 617 #if defined(GL_CLIENT_FAIL_GL_ERRORS)
603 void CheckGLError(); 618 void CheckGLError();
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
692 707
693 typedef std::map<const void*, MappedTexture> MappedTextureMap; 708 typedef std::map<const void*, MappedTexture> MappedTextureMap;
694 MappedTextureMap mapped_textures_; 709 MappedTextureMap mapped_textures_;
695 710
696 scoped_ptr<MappedMemoryManager> mapped_memory_; 711 scoped_ptr<MappedMemoryManager> mapped_memory_;
697 712
698 scoped_refptr<ShareGroup> share_group_; 713 scoped_refptr<ShareGroup> share_group_;
699 714
700 scoped_ptr<QueryTracker> query_tracker_; 715 scoped_ptr<QueryTracker> query_tracker_;
701 QueryTracker::Query* current_query_; 716 QueryTracker::Query* current_query_;
717 QueryTracker::Query* current_private_unpack_query_;
702 718
703 scoped_ptr<BufferTracker> buffer_tracker_; 719 scoped_ptr<BufferTracker> buffer_tracker_;
720 typedef std::list<BufferTracker::Buffer*> BufferList;
721 BufferList released_buffers_pending_async_complete_;
704 722
705 scoped_ptr<GpuMemoryBufferTracker> gpu_memory_buffer_tracker_; 723 scoped_ptr<GpuMemoryBufferTracker> gpu_memory_buffer_tracker_;
706 724
707 ErrorMessageCallback* error_message_callback_; 725 ErrorMessageCallback* error_message_callback_;
708 726
709 scoped_ptr<std::string> current_trace_name_; 727 scoped_ptr<std::string> current_trace_name_;
710 728
711 GpuControl* gpu_control_; 729 GpuControl* gpu_control_;
712 730
713 bool surface_visible_; 731 bool surface_visible_;
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
753 771
754 inline bool GLES2Implementation::GetTexParameterivHelper( 772 inline bool GLES2Implementation::GetTexParameterivHelper(
755 GLenum /* target */, GLenum /* pname */, GLint* /* params */) { 773 GLenum /* target */, GLenum /* pname */, GLint* /* params */) {
756 return false; 774 return false;
757 } 775 }
758 776
759 } // namespace gles2 777 } // namespace gles2
760 } // namespace gpu 778 } // namespace gpu
761 779
762 #endif // GPU_COMMAND_BUFFER_CLIENT_GLES2_IMPLEMENTATION_H_ 780 #endif // GPU_COMMAND_BUFFER_CLIENT_GLES2_IMPLEMENTATION_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698