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

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

Issue 9387014: Add AsyncFlush when transferbuffer is > a certain size (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 8 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 | Annotate | Revision Log
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_TRANSFER_BUFFER_H_ 5 #ifndef GPU_COMMAND_BUFFER_CLIENT_TRANSFER_BUFFER_H_
6 #define GPU_COMMAND_BUFFER_CLIENT_TRANSFER_BUFFER_H_ 6 #define GPU_COMMAND_BUFFER_CLIENT_TRANSFER_BUFFER_H_
7 7
8 #include "../common/buffer.h" 8 #include "../common/buffer.h"
9 #include "../common/compiler_specific.h" 9 #include "../common/compiler_specific.h"
10 #include "../common/gles2_cmd_utils.h" 10 #include "../common/gles2_cmd_utils.h"
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
53 class TransferBufferInterface { 53 class TransferBufferInterface {
54 public: 54 public:
55 TransferBufferInterface() { } 55 TransferBufferInterface() { }
56 virtual ~TransferBufferInterface() { } 56 virtual ~TransferBufferInterface() { }
57 57
58 virtual bool Initialize( 58 virtual bool Initialize(
59 unsigned int buffer_size, 59 unsigned int buffer_size,
60 unsigned int result_size, 60 unsigned int result_size,
61 unsigned int min_buffer_size, 61 unsigned int min_buffer_size,
62 unsigned int max_buffer_size, 62 unsigned int max_buffer_size,
63 unsigned int alignment) = 0; 63 unsigned int alignment,
64 unsigned int size_to_flush) = 0;
64 65
65 virtual int GetShmId() = 0; 66 virtual int GetShmId() = 0;
66 virtual void* GetResultBuffer() = 0; 67 virtual void* GetResultBuffer() = 0;
67 virtual int GetResultOffset() = 0; 68 virtual int GetResultOffset() = 0;
68 69
69 virtual void Free() = 0; 70 virtual void Free() = 0;
70 71
71 virtual bool HaveBuffer() const = 0; 72 virtual bool HaveBuffer() const = 0;
72 73
73 // Allocates up to size bytes. 74 // Allocates up to size bytes.
(...skipping 13 matching lines...) Expand all
87 public: 88 public:
88 TransferBuffer(CommandBufferHelper* helper); 89 TransferBuffer(CommandBufferHelper* helper);
89 virtual ~TransferBuffer(); 90 virtual ~TransferBuffer();
90 91
91 // Overridden from TransferBufferInterface. 92 // Overridden from TransferBufferInterface.
92 virtual bool Initialize( 93 virtual bool Initialize(
93 unsigned int buffer_size, 94 unsigned int buffer_size,
94 unsigned int result_size, 95 unsigned int result_size,
95 unsigned int min_buffer_size, 96 unsigned int min_buffer_size,
96 unsigned int max_buffer_size, 97 unsigned int max_buffer_size,
97 unsigned int alignment) OVERRIDE; 98 unsigned int alignment,
99 unsigned int size_to_flush) OVERRIDE;
98 virtual int GetShmId() OVERRIDE; 100 virtual int GetShmId() OVERRIDE;
99 virtual void* GetResultBuffer() OVERRIDE; 101 virtual void* GetResultBuffer() OVERRIDE;
100 virtual int GetResultOffset() OVERRIDE; 102 virtual int GetResultOffset() OVERRIDE;
101 virtual void Free() OVERRIDE; 103 virtual void Free() OVERRIDE;
102 virtual bool HaveBuffer() const OVERRIDE; 104 virtual bool HaveBuffer() const OVERRIDE;
103 virtual void* AllocUpTo( 105 virtual void* AllocUpTo(
104 unsigned int size, unsigned int* size_allocated) OVERRIDE; 106 unsigned int size, unsigned int* size_allocated) OVERRIDE;
105 virtual void* Alloc(unsigned int size) OVERRIDE; 107 virtual void* Alloc(unsigned int size) OVERRIDE;
106 virtual RingBuffer::Offset GetOffset(void* pointer) const OVERRIDE; 108 virtual RingBuffer::Offset GetOffset(void* pointer) const OVERRIDE;
107 virtual void FreePendingToken(void* p, unsigned int token) OVERRIDE; 109 virtual void FreePendingToken(void* p, unsigned int token) OVERRIDE;
(...skipping 16 matching lines...) Expand all
124 126
125 // min size we'll consider successful 127 // min size we'll consider successful
126 unsigned int min_buffer_size_; 128 unsigned int min_buffer_size_;
127 129
128 // max size we'll let the buffer grow 130 // max size we'll let the buffer grow
129 unsigned int max_buffer_size_; 131 unsigned int max_buffer_size_;
130 132
131 // alignment for allocations 133 // alignment for allocations
132 unsigned int alignment_; 134 unsigned int alignment_;
133 135
136 // Size at which to do an async flush. 0 = never.
137 unsigned int size_to_flush_;
138
139 // Number of bytes since we last flushed.
140 unsigned int bytes_since_last_flush_;
141
134 // the current buffer. 142 // the current buffer.
135 gpu::Buffer buffer_; 143 gpu::Buffer buffer_;
136 144
137 // id of buffer. -1 = no buffer 145 // id of buffer. -1 = no buffer
138 int32 buffer_id_; 146 int32 buffer_id_;
139 147
140 // address of result area 148 // address of result area
141 void* result_buffer_; 149 void* result_buffer_;
142 150
143 // offset to result area 151 // offset to result area
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
212 } 220 }
213 221
214 unsigned int num_elements() const { 222 unsigned int num_elements() const {
215 return size() / sizeof(T); 223 return size() / sizeof(T);
216 } 224 }
217 }; 225 };
218 226
219 } // namespace gpu 227 } // namespace gpu
220 228
221 #endif // GPU_COMMAND_BUFFER_CLIENT_TRANSFER_BUFFER_H_ 229 #endif // GPU_COMMAND_BUFFER_CLIENT_TRANSFER_BUFFER_H_
OLDNEW
« no previous file with comments | « gpu/command_buffer/client/gles2_implementation_unittest.cc ('k') | gpu/command_buffer/client/transfer_buffer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698