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

Side by Side Diff: gpu/command_buffer/client/gles2_implementation_unittest.cc

Issue 1542513002: Switch to standard integer types in gpu/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix Created 5 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 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 // Tests for GLES2Implementation. 5 // Tests for GLES2Implementation.
6 6
7 #include "gpu/command_buffer/client/gles2_implementation.h" 7 #include "gpu/command_buffer/client/gles2_implementation.h"
8 8
9 #include <GLES2/gl2.h> 9 #include <GLES2/gl2.h>
10 #include <GLES2/gl2ext.h> 10 #include <GLES2/gl2ext.h>
11 #include <GLES2/gl2extchromium.h> 11 #include <GLES2/gl2extchromium.h>
12 #include <GLES3/gl3.h> 12 #include <GLES3/gl3.h>
13 #include <stddef.h>
14 #include <stdint.h>
13 #include "base/compiler_specific.h" 15 #include "base/compiler_specific.h"
14 #include "gpu/command_buffer/client/client_test_helper.h" 16 #include "gpu/command_buffer/client/client_test_helper.h"
15 #include "gpu/command_buffer/client/gles2_cmd_helper.h" 17 #include "gpu/command_buffer/client/gles2_cmd_helper.h"
16 #include "gpu/command_buffer/client/program_info_manager.h" 18 #include "gpu/command_buffer/client/program_info_manager.h"
17 #include "gpu/command_buffer/client/query_tracker.h" 19 #include "gpu/command_buffer/client/query_tracker.h"
18 #include "gpu/command_buffer/client/ring_buffer.h" 20 #include "gpu/command_buffer/client/ring_buffer.h"
19 #include "gpu/command_buffer/client/transfer_buffer.h" 21 #include "gpu/command_buffer/client/transfer_buffer.h"
20 #include "gpu/command_buffer/common/command_buffer.h" 22 #include "gpu/command_buffer/common/command_buffer.h"
21 #include "gpu/command_buffer/common/sync_token.h" 23 #include "gpu/command_buffer/common/sync_token.h"
24 #include "testing/gmock/include/gmock/gmock.h"
22 #include "testing/gtest/include/gtest/gtest.h" 25 #include "testing/gtest/include/gtest/gtest.h"
23 #include "testing/gmock/include/gmock/gmock.h"
24 26
25 #if !defined(GLES2_SUPPORT_CLIENT_SIDE_ARRAYS) 27 #if !defined(GLES2_SUPPORT_CLIENT_SIDE_ARRAYS)
26 #define GLES2_SUPPORT_CLIENT_SIDE_ARRAYS 28 #define GLES2_SUPPORT_CLIENT_SIDE_ARRAYS
27 #endif 29 #endif
28 30
29 using testing::_; 31 using testing::_;
30 using testing::AtLeast; 32 using testing::AtLeast;
31 using testing::AnyNumber; 33 using testing::AnyNumber;
32 using testing::DoAll; 34 using testing::DoAll;
33 using testing::InSequence; 35 using testing::InSequence;
(...skipping 18 matching lines...) Expand all
52 // Used to help set the transfer buffer result to SizedResult of a single value. 54 // Used to help set the transfer buffer result to SizedResult of a single value.
53 template <typename T> 55 template <typename T>
54 class SizedResultHelper { 56 class SizedResultHelper {
55 public: 57 public:
56 explicit SizedResultHelper(T result) 58 explicit SizedResultHelper(T result)
57 : size_(sizeof(result)) { 59 : size_(sizeof(result)) {
58 memcpy(result_, &result, sizeof(T)); 60 memcpy(result_, &result, sizeof(T));
59 } 61 }
60 62
61 private: 63 private:
62 uint32 size_; 64 uint32_t size_;
63 char result_[sizeof(T)]; 65 char result_[sizeof(T)];
64 }; 66 };
65 67
66 // Struct to make it easy to pass a vec4 worth of floats. 68 // Struct to make it easy to pass a vec4 worth of floats.
67 struct FourFloats { 69 struct FourFloats {
68 FourFloats(float _x, float _y, float _z, float _w) 70 FourFloats(float _x, float _y, float _z, float _w)
69 : x(_x), 71 : x(_x),
70 y(_y), 72 y(_y),
71 z(_z), 73 z(_z),
72 w(_w) { 74 w(_w) {
73 } 75 }
74 76
75 float x; 77 float x;
76 float y; 78 float y;
77 float z; 79 float z;
78 float w; 80 float w;
79 }; 81 };
80 82
81 #pragma pack(push, 1) 83 #pragma pack(push, 1)
82 // Struct that holds 7 characters. 84 // Struct that holds 7 characters.
83 struct Str7 { 85 struct Str7 {
84 char str[7]; 86 char str[7];
85 }; 87 };
86 #pragma pack(pop) 88 #pragma pack(pop)
87 89
88 class MockTransferBuffer : public TransferBufferInterface { 90 class MockTransferBuffer : public TransferBufferInterface {
89 public: 91 public:
90 struct ExpectedMemoryInfo { 92 struct ExpectedMemoryInfo {
91 uint32 offset; 93 uint32_t offset;
92 int32 id; 94 int32_t id;
93 uint8* ptr; 95 uint8_t* ptr;
94 }; 96 };
95 97
96 MockTransferBuffer( 98 MockTransferBuffer(
97 CommandBuffer* command_buffer, 99 CommandBuffer* command_buffer,
98 unsigned int size, 100 unsigned int size,
99 unsigned int result_size, 101 unsigned int result_size,
100 unsigned int alignment, 102 unsigned int alignment,
101 bool initialize_fail) 103 bool initialize_fail)
102 : command_buffer_(command_buffer), 104 : command_buffer_(command_buffer),
103 size_(size), 105 size_(size),
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
151 153
152 bool InSync() { 154 bool InSync() {
153 return expected_buffer_index_ == actual_buffer_index_ && 155 return expected_buffer_index_ == actual_buffer_index_ &&
154 expected_offset_ == actual_offset_; 156 expected_offset_ == actual_offset_;
155 } 157 }
156 158
157 ExpectedMemoryInfo GetExpectedMemory(size_t size) { 159 ExpectedMemoryInfo GetExpectedMemory(size_t size) {
158 ExpectedMemoryInfo mem; 160 ExpectedMemoryInfo mem;
159 mem.offset = AllocateExpectedTransferBuffer(size); 161 mem.offset = AllocateExpectedTransferBuffer(size);
160 mem.id = GetExpectedTransferBufferId(); 162 mem.id = GetExpectedTransferBufferId();
161 mem.ptr = static_cast<uint8*>( 163 mem.ptr = static_cast<uint8_t*>(
162 GetExpectedTransferAddressFromOffset(mem.offset, size)); 164 GetExpectedTransferAddressFromOffset(mem.offset, size));
163 return mem; 165 return mem;
164 } 166 }
165 167
166 ExpectedMemoryInfo GetExpectedResultMemory(size_t size) { 168 ExpectedMemoryInfo GetExpectedResultMemory(size_t size) {
167 ExpectedMemoryInfo mem; 169 ExpectedMemoryInfo mem;
168 mem.offset = GetExpectedResultBufferOffset(); 170 mem.offset = GetExpectedResultBufferOffset();
169 mem.id = GetExpectedResultBufferId(); 171 mem.id = GetExpectedResultBufferId();
170 mem.ptr = static_cast<uint8*>( 172 mem.ptr = static_cast<uint8_t*>(
171 GetExpectedTransferAddressFromOffset(mem.offset, size)); 173 GetExpectedTransferAddressFromOffset(mem.offset, size));
172 return mem; 174 return mem;
173 } 175 }
174 176
175 private: 177 private:
176 static const int kNumBuffers = 2; 178 static const int kNumBuffers = 2;
177 179
178 uint8* actual_buffer() const { 180 uint8_t* actual_buffer() const {
179 return static_cast<uint8*>(buffers_[actual_buffer_index_]->memory()); 181 return static_cast<uint8_t*>(buffers_[actual_buffer_index_]->memory());
180 } 182 }
181 183
182 uint8* expected_buffer() const { 184 uint8_t* expected_buffer() const {
183 return static_cast<uint8*>(buffers_[expected_buffer_index_]->memory()); 185 return static_cast<uint8_t*>(buffers_[expected_buffer_index_]->memory());
184 } 186 }
185 187
186 uint32 AllocateExpectedTransferBuffer(size_t size) { 188 uint32_t AllocateExpectedTransferBuffer(size_t size) {
187 EXPECT_LE(size, MaxTransferBufferSize()); 189 EXPECT_LE(size, MaxTransferBufferSize());
188 190
189 // Toggle which buffer we get each time to simulate the buffer being 191 // Toggle which buffer we get each time to simulate the buffer being
190 // reallocated. 192 // reallocated.
191 expected_buffer_index_ = (expected_buffer_index_ + 1) % kNumBuffers; 193 expected_buffer_index_ = (expected_buffer_index_ + 1) % kNumBuffers;
192 194
193 if (expected_offset_ + size > size_) { 195 if (expected_offset_ + size > size_) {
194 expected_offset_ = result_size_; 196 expected_offset_ = result_size_;
195 } 197 }
196 uint32 offset = expected_offset_; 198 uint32_t offset = expected_offset_;
197 expected_offset_ += RoundToAlignment(size); 199 expected_offset_ += RoundToAlignment(size);
198 200
199 // Make sure each buffer has a different offset. 201 // Make sure each buffer has a different offset.
200 return offset + expected_buffer_index_ * alignment_; 202 return offset + expected_buffer_index_ * alignment_;
201 } 203 }
202 204
203 void* GetExpectedTransferAddressFromOffset(uint32 offset, size_t size) { 205 void* GetExpectedTransferAddressFromOffset(uint32_t offset, size_t size) {
204 EXPECT_GE(offset, expected_buffer_index_ * alignment_); 206 EXPECT_GE(offset, expected_buffer_index_ * alignment_);
205 EXPECT_LE(offset + size, size_ + expected_buffer_index_ * alignment_); 207 EXPECT_LE(offset + size, size_ + expected_buffer_index_ * alignment_);
206 return expected_buffer() + offset; 208 return expected_buffer() + offset;
207 } 209 }
208 210
209 int GetExpectedResultBufferId() { 211 int GetExpectedResultBufferId() {
210 return buffer_ids_[expected_buffer_index_]; 212 return buffer_ids_[expected_buffer_index_];
211 } 213 }
212 214
213 uint32 GetExpectedResultBufferOffset() { 215 uint32_t GetExpectedResultBufferOffset() {
214 return expected_buffer_index_ * alignment_; 216 return expected_buffer_index_ * alignment_;
215 } 217 }
216 218
217 int GetExpectedTransferBufferId() { 219 int GetExpectedTransferBufferId() {
218 return buffer_ids_[expected_buffer_index_]; 220 return buffer_ids_[expected_buffer_index_];
219 } 221 }
220 222
221 CommandBuffer* command_buffer_; 223 CommandBuffer* command_buffer_;
222 size_t size_; 224 size_t size_;
223 size_t result_size_; 225 size_t result_size_;
224 uint32 alignment_; 226 uint32_t alignment_;
225 int buffer_ids_[kNumBuffers]; 227 int buffer_ids_[kNumBuffers];
226 scoped_refptr<Buffer> buffers_[kNumBuffers]; 228 scoped_refptr<Buffer> buffers_[kNumBuffers];
227 int actual_buffer_index_; 229 int actual_buffer_index_;
228 int expected_buffer_index_; 230 int expected_buffer_index_;
229 void* last_alloc_; 231 void* last_alloc_;
230 uint32 expected_offset_; 232 uint32_t expected_offset_;
231 uint32 actual_offset_; 233 uint32_t actual_offset_;
232 bool initialize_fail_; 234 bool initialize_fail_;
233 235
234 DISALLOW_COPY_AND_ASSIGN(MockTransferBuffer); 236 DISALLOW_COPY_AND_ASSIGN(MockTransferBuffer);
235 }; 237 };
236 238
237 bool MockTransferBuffer::Initialize( 239 bool MockTransferBuffer::Initialize(
238 unsigned int starting_buffer_size, 240 unsigned int starting_buffer_size,
239 unsigned int result_size, 241 unsigned int result_size,
240 unsigned int /* min_buffer_size */, 242 unsigned int /* min_buffer_size */,
241 unsigned int /* max_buffer_size */, 243 unsigned int /* max_buffer_size */,
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
273 EXPECT_TRUE(last_alloc_ == NULL); 275 EXPECT_TRUE(last_alloc_ == NULL);
274 276
275 // Toggle which buffer we get each time to simulate the buffer being 277 // Toggle which buffer we get each time to simulate the buffer being
276 // reallocated. 278 // reallocated.
277 actual_buffer_index_ = (actual_buffer_index_ + 1) % kNumBuffers; 279 actual_buffer_index_ = (actual_buffer_index_ + 1) % kNumBuffers;
278 280
279 size = std::min(static_cast<size_t>(size), MaxTransferBufferSize()); 281 size = std::min(static_cast<size_t>(size), MaxTransferBufferSize());
280 if (actual_offset_ + size > size_) { 282 if (actual_offset_ + size > size_) {
281 actual_offset_ = result_size_; 283 actual_offset_ = result_size_;
282 } 284 }
283 uint32 offset = actual_offset_; 285 uint32_t offset = actual_offset_;
284 actual_offset_ += RoundToAlignment(size); 286 actual_offset_ += RoundToAlignment(size);
285 *size_allocated = size; 287 *size_allocated = size;
286 288
287 // Make sure each buffer has a different offset. 289 // Make sure each buffer has a different offset.
288 last_alloc_ = actual_buffer() + offset + actual_buffer_index_ * alignment_; 290 last_alloc_ = actual_buffer() + offset + actual_buffer_index_ * alignment_;
289 return last_alloc_; 291 return last_alloc_;
290 } 292 }
291 293
292 void* MockTransferBuffer::Alloc(unsigned int size) { 294 void* MockTransferBuffer::Alloc(unsigned int size) {
293 EXPECT_LE(size, MaxTransferBufferSize()); 295 EXPECT_LE(size, MaxTransferBufferSize());
294 unsigned int temp = 0; 296 unsigned int temp = 0;
295 void* p = AllocUpTo(size, &temp); 297 void* p = AllocUpTo(size, &temp);
296 EXPECT_EQ(temp, size); 298 EXPECT_EQ(temp, size);
297 return p; 299 return p;
298 } 300 }
299 301
300 RingBuffer::Offset MockTransferBuffer::GetOffset(void* pointer) const { 302 RingBuffer::Offset MockTransferBuffer::GetOffset(void* pointer) const {
301 // Make sure each buffer has a different offset. 303 // Make sure each buffer has a different offset.
302 return static_cast<uint8*>(pointer) - actual_buffer(); 304 return static_cast<uint8_t*>(pointer) - actual_buffer();
303 } 305 }
304 306
305 void MockTransferBuffer::DiscardBlock(void* p) { 307 void MockTransferBuffer::DiscardBlock(void* p) {
306 EXPECT_EQ(last_alloc_, p); 308 EXPECT_EQ(last_alloc_, p);
307 last_alloc_ = NULL; 309 last_alloc_ = NULL;
308 } 310 }
309 311
310 void MockTransferBuffer::FreePendingToken(void* p, unsigned int /* token */) { 312 void MockTransferBuffer::FreePendingToken(void* p, unsigned int /* token */) {
311 EXPECT_EQ(last_alloc_, p); 313 EXPECT_EQ(last_alloc_, p);
312 last_alloc_ = NULL; 314 last_alloc_ = NULL;
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
372 static void Delete(GLES2Implementation* gl_impl, 374 static void Delete(GLES2Implementation* gl_impl,
373 GLsizei n, 375 GLsizei n,
374 const GLuint* ids) { 376 const GLuint* ids) {
375 gl_impl->DeleteTextures(n, ids); 377 gl_impl->DeleteTextures(n, ids);
376 } 378 }
377 }; 379 };
378 380
379 class GLES2ImplementationTest : public testing::Test { 381 class GLES2ImplementationTest : public testing::Test {
380 protected: 382 protected:
381 static const int kNumTestContexts = 2; 383 static const int kNumTestContexts = 2;
382 static const uint8 kInitialValue = 0xBD; 384 static const uint8_t kInitialValue = 0xBD;
383 static const int32 kNumCommandEntries = 500; 385 static const int32_t kNumCommandEntries = 500;
384 static const int32 kCommandBufferSizeBytes = 386 static const int32_t kCommandBufferSizeBytes =
385 kNumCommandEntries * sizeof(CommandBufferEntry); 387 kNumCommandEntries * sizeof(CommandBufferEntry);
386 static const size_t kTransferBufferSize = 512; 388 static const size_t kTransferBufferSize = 512;
387 389
388 static const GLint kMaxCombinedTextureImageUnits = 8; 390 static const GLint kMaxCombinedTextureImageUnits = 8;
389 static const GLint kMaxCubeMapTextureSize = 64; 391 static const GLint kMaxCubeMapTextureSize = 64;
390 static const GLint kMaxFragmentUniformVectors = 16; 392 static const GLint kMaxFragmentUniformVectors = 16;
391 static const GLint kMaxRenderbufferSize = 64; 393 static const GLint kMaxRenderbufferSize = 64;
392 static const GLint kMaxTextureImageUnits = 8; 394 static const GLint kMaxTextureImageUnits = 8;
393 static const GLint kMaxTextureSize = 128; 395 static const GLint kMaxTextureSize = 128;
394 static const GLint kMaxVaryingVectors = 8; 396 static const GLint kMaxVaryingVectors = 8;
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
534 int token_; 536 int token_;
535 }; 537 };
536 538
537 GLES2ImplementationTest() : commands_(NULL) {} 539 GLES2ImplementationTest() : commands_(NULL) {}
538 540
539 void SetUp() override; 541 void SetUp() override;
540 void TearDown() override; 542 void TearDown() override;
541 543
542 bool NoCommandsWritten() { 544 bool NoCommandsWritten() {
543 scoped_refptr<Buffer> ring_buffer = helper_->get_ring_buffer(); 545 scoped_refptr<Buffer> ring_buffer = helper_->get_ring_buffer();
544 const uint8* cmds = reinterpret_cast<const uint8*>(ring_buffer->memory()); 546 const uint8_t* cmds =
545 const uint8* end = cmds + ring_buffer->size(); 547 reinterpret_cast<const uint8_t*>(ring_buffer->memory());
548 const uint8_t* end = cmds + ring_buffer->size();
546 for (; cmds < end; ++cmds) { 549 for (; cmds < end; ++cmds) {
547 if (*cmds != kInitialValue) { 550 if (*cmds != kInitialValue) {
548 return false; 551 return false;
549 } 552 }
550 } 553 }
551 return true; 554 return true;
552 } 555 }
553 556
554 QueryTracker::Query* GetQuery(GLuint id) { 557 QueryTracker::Query* GetQuery(GLuint id) {
555 return gl_->query_tracker_->GetQuery(id); 558 return gl_->query_tracker_->GetQuery(id);
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
633 } 636 }
634 637
635 ExpectedMemoryInfo GetExpectedResultMemory(size_t size) { 638 ExpectedMemoryInfo GetExpectedResultMemory(size_t size) {
636 return transfer_buffer_->GetExpectedResultMemory(size); 639 return transfer_buffer_->GetExpectedResultMemory(size);
637 } 640 }
638 641
639 ExpectedMemoryInfo GetExpectedMappedMemory(size_t size) { 642 ExpectedMemoryInfo GetExpectedMappedMemory(size_t size) {
640 ExpectedMemoryInfo mem; 643 ExpectedMemoryInfo mem;
641 644
642 // Temporarily allocate memory and expect that memory block to be reused. 645 // Temporarily allocate memory and expect that memory block to be reused.
643 mem.ptr = static_cast<uint8*>(gl_->mapped_memory_->Alloc(size, 646 mem.ptr = static_cast<uint8_t*>(
644 &mem.id, 647 gl_->mapped_memory_->Alloc(size, &mem.id, &mem.offset));
645 &mem.offset));
646 gl_->mapped_memory_->Free(mem.ptr); 648 gl_->mapped_memory_->Free(mem.ptr);
647 649
648 return mem; 650 return mem;
649 } 651 }
650 652
651 // Sets the ProgramInfoManager. The manager will be owned 653 // Sets the ProgramInfoManager. The manager will be owned
652 // by the ShareGroup. 654 // by the ShareGroup.
653 void SetProgramInfoManager(ProgramInfoManager* manager) { 655 void SetProgramInfoManager(ProgramInfoManager* manager) {
654 gl_->share_group()->set_program_info_manager(manager); 656 gl_->share_group()->set_program_info_manager(manager);
655 } 657 }
656 658
657 int CheckError() { 659 int CheckError() {
658 ExpectedMemoryInfo result = 660 ExpectedMemoryInfo result =
659 GetExpectedResultMemory(sizeof(cmds::GetError::Result)); 661 GetExpectedResultMemory(sizeof(cmds::GetError::Result));
660 EXPECT_CALL(*command_buffer(), OnFlush()) 662 EXPECT_CALL(*command_buffer(), OnFlush())
661 .WillOnce(SetMemory(result.ptr, GLuint(GL_NO_ERROR))) 663 .WillOnce(SetMemory(result.ptr, GLuint(GL_NO_ERROR)))
662 .RetiresOnSaturation(); 664 .RetiresOnSaturation();
663 return gl_->GetError(); 665 return gl_->GetError();
664 } 666 }
665 667
666 const std::string& GetLastError() { 668 const std::string& GetLastError() {
667 return gl_->GetLastError(); 669 return gl_->GetLastError();
668 } 670 }
669 671
670 bool GetBucketContents(uint32 bucket_id, std::vector<int8>* data) { 672 bool GetBucketContents(uint32_t bucket_id, std::vector<int8_t>* data) {
671 return gl_->GetBucketContents(bucket_id, data); 673 return gl_->GetBucketContents(bucket_id, data);
672 } 674 }
673 675
674 bool AllowExtraTransferBufferSize() { 676 bool AllowExtraTransferBufferSize() {
675 return gl_->max_extra_transfer_buffer_size_ > 0; 677 return gl_->max_extra_transfer_buffer_size_ > 0;
676 } 678 }
677 679
678 TestContext test_contexts_[kNumTestContexts]; 680 TestContext test_contexts_[kNumTestContexts];
679 681
680 scoped_refptr<ShareGroup> share_group_; 682 scoped_refptr<ShareGroup> share_group_;
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
791 793
792 void GLES2ImplementationStrictSharedTest::SetUp() { 794 void GLES2ImplementationStrictSharedTest::SetUp() {
793 ContextInitOptions init_options; 795 ContextInitOptions init_options;
794 init_options.bind_generates_resource_client = false; 796 init_options.bind_generates_resource_client = false;
795 init_options.bind_generates_resource_service = false; 797 init_options.bind_generates_resource_service = false;
796 ASSERT_TRUE(Initialize(init_options)); 798 ASSERT_TRUE(Initialize(init_options));
797 } 799 }
798 800
799 // GCC requires these declarations, but MSVC requires they not be present 801 // GCC requires these declarations, but MSVC requires they not be present
800 #ifndef _MSC_VER 802 #ifndef _MSC_VER
801 const uint8 GLES2ImplementationTest::kInitialValue; 803 const uint8_t GLES2ImplementationTest::kInitialValue;
802 const int32 GLES2ImplementationTest::kNumCommandEntries; 804 const int32_t GLES2ImplementationTest::kNumCommandEntries;
803 const int32 GLES2ImplementationTest::kCommandBufferSizeBytes; 805 const int32_t GLES2ImplementationTest::kCommandBufferSizeBytes;
804 const size_t GLES2ImplementationTest::kTransferBufferSize; 806 const size_t GLES2ImplementationTest::kTransferBufferSize;
805 const GLint GLES2ImplementationTest::kMaxCombinedTextureImageUnits; 807 const GLint GLES2ImplementationTest::kMaxCombinedTextureImageUnits;
806 const GLint GLES2ImplementationTest::kMaxCubeMapTextureSize; 808 const GLint GLES2ImplementationTest::kMaxCubeMapTextureSize;
807 const GLint GLES2ImplementationTest::kMaxFragmentUniformVectors; 809 const GLint GLES2ImplementationTest::kMaxFragmentUniformVectors;
808 const GLint GLES2ImplementationTest::kMaxRenderbufferSize; 810 const GLint GLES2ImplementationTest::kMaxRenderbufferSize;
809 const GLint GLES2ImplementationTest::kMaxTextureImageUnits; 811 const GLint GLES2ImplementationTest::kMaxTextureImageUnits;
810 const GLint GLES2ImplementationTest::kMaxTextureSize; 812 const GLint GLES2ImplementationTest::kMaxTextureSize;
811 const GLint GLES2ImplementationTest::kMaxVaryingVectors; 813 const GLint GLES2ImplementationTest::kMaxVaryingVectors;
812 const GLint GLES2ImplementationTest::kMaxVertexAttribs; 814 const GLint GLES2ImplementationTest::kMaxVertexAttribs;
813 const GLint GLES2ImplementationTest::kMaxVertexTextureImageUnits; 815 const GLint GLES2ImplementationTest::kMaxVertexTextureImageUnits;
(...skipping 11 matching lines...) Expand all
825 const GLuint GLES2ImplementationTest::kQueriesStartId; 827 const GLuint GLES2ImplementationTest::kQueriesStartId;
826 const GLuint GLES2ImplementationTest::kVertexArraysStartId; 828 const GLuint GLES2ImplementationTest::kVertexArraysStartId;
827 const GLuint GLES2ImplementationTest::kValuebuffersStartId; 829 const GLuint GLES2ImplementationTest::kValuebuffersStartId;
828 #endif 830 #endif
829 831
830 TEST_F(GLES2ImplementationTest, Basic) { 832 TEST_F(GLES2ImplementationTest, Basic) {
831 EXPECT_TRUE(gl_->share_group() != NULL); 833 EXPECT_TRUE(gl_->share_group() != NULL);
832 } 834 }
833 835
834 TEST_F(GLES2ImplementationTest, GetBucketContents) { 836 TEST_F(GLES2ImplementationTest, GetBucketContents) {
835 const uint32 kBucketId = GLES2Implementation::kResultBucketId; 837 const uint32_t kBucketId = GLES2Implementation::kResultBucketId;
836 const uint32 kTestSize = MaxTransferBufferSize() + 32; 838 const uint32_t kTestSize = MaxTransferBufferSize() + 32;
837 839
838 scoped_ptr<uint8[]> buf(new uint8 [kTestSize]); 840 scoped_ptr<uint8_t[]> buf(new uint8_t[kTestSize]);
839 uint8* expected_data = buf.get(); 841 uint8_t* expected_data = buf.get();
840 for (uint32 ii = 0; ii < kTestSize; ++ii) { 842 for (uint32_t ii = 0; ii < kTestSize; ++ii) {
841 expected_data[ii] = ii * 3; 843 expected_data[ii] = ii * 3;
842 } 844 }
843 845
844 struct Cmds { 846 struct Cmds {
845 cmd::GetBucketStart get_bucket_start; 847 cmd::GetBucketStart get_bucket_start;
846 cmd::SetToken set_token1; 848 cmd::SetToken set_token1;
847 cmd::GetBucketData get_bucket_data; 849 cmd::GetBucketData get_bucket_data;
848 cmd::SetToken set_token2; 850 cmd::SetToken set_token2;
849 cmd::SetBucketSize set_bucket_size2; 851 cmd::SetBucketSize set_bucket_size2;
850 }; 852 };
851 853
852 ExpectedMemoryInfo mem1 = GetExpectedMemory(MaxTransferBufferSize()); 854 ExpectedMemoryInfo mem1 = GetExpectedMemory(MaxTransferBufferSize());
853 ExpectedMemoryInfo result1 = GetExpectedResultMemory(sizeof(uint32)); 855 ExpectedMemoryInfo result1 = GetExpectedResultMemory(sizeof(uint32_t));
854 ExpectedMemoryInfo mem2 = GetExpectedMemory( 856 ExpectedMemoryInfo mem2 = GetExpectedMemory(
855 kTestSize - MaxTransferBufferSize()); 857 kTestSize - MaxTransferBufferSize());
856 858
857 Cmds expected; 859 Cmds expected;
858 expected.get_bucket_start.Init( 860 expected.get_bucket_start.Init(
859 kBucketId, result1.id, result1.offset, 861 kBucketId, result1.id, result1.offset,
860 MaxTransferBufferSize(), mem1.id, mem1.offset); 862 MaxTransferBufferSize(), mem1.id, mem1.offset);
861 expected.set_token1.Init(GetNextToken()); 863 expected.set_token1.Init(GetNextToken());
862 expected.get_bucket_data.Init( 864 expected.get_bucket_data.Init(
863 kBucketId, MaxTransferBufferSize(), 865 kBucketId, MaxTransferBufferSize(),
864 kTestSize - MaxTransferBufferSize(), mem2.id, mem2.offset); 866 kTestSize - MaxTransferBufferSize(), mem2.id, mem2.offset);
865 expected.set_bucket_size2.Init(kBucketId, 0); 867 expected.set_bucket_size2.Init(kBucketId, 0);
866 expected.set_token2.Init(GetNextToken()); 868 expected.set_token2.Init(GetNextToken());
867 869
868 EXPECT_CALL(*command_buffer(), OnFlush()) 870 EXPECT_CALL(*command_buffer(), OnFlush())
869 .WillOnce(DoAll( 871 .WillOnce(DoAll(
870 SetMemory(result1.ptr, kTestSize), 872 SetMemory(result1.ptr, kTestSize),
871 SetMemoryFromArray( 873 SetMemoryFromArray(
872 mem1.ptr, expected_data, MaxTransferBufferSize()))) 874 mem1.ptr, expected_data, MaxTransferBufferSize())))
873 .WillOnce(SetMemoryFromArray( 875 .WillOnce(SetMemoryFromArray(
874 mem2.ptr, expected_data + MaxTransferBufferSize(), 876 mem2.ptr, expected_data + MaxTransferBufferSize(),
875 kTestSize - MaxTransferBufferSize())) 877 kTestSize - MaxTransferBufferSize()))
876 .RetiresOnSaturation(); 878 .RetiresOnSaturation();
877 879
878 std::vector<int8> data; 880 std::vector<int8_t> data;
879 GetBucketContents(kBucketId, &data); 881 GetBucketContents(kBucketId, &data);
880 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); 882 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected)));
881 ASSERT_EQ(kTestSize, data.size()); 883 ASSERT_EQ(kTestSize, data.size());
882 EXPECT_EQ(0, memcmp(expected_data, &data[0], data.size())); 884 EXPECT_EQ(0, memcmp(expected_data, &data[0], data.size()));
883 } 885 }
884 886
885 TEST_F(GLES2ImplementationTest, GetShaderPrecisionFormat) { 887 TEST_F(GLES2ImplementationTest, GetShaderPrecisionFormat) {
886 struct Cmds { 888 struct Cmds {
887 cmds::GetShaderPrecisionFormat cmd; 889 cmds::GetShaderPrecisionFormat cmd;
888 }; 890 };
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
953 gl_->GetShaderPrecisionFormat(GL_FRAGMENT_SHADER, GL_MEDIUM_FLOAT, range4, 955 gl_->GetShaderPrecisionFormat(GL_FRAGMENT_SHADER, GL_MEDIUM_FLOAT, range4,
954 &precision4); 956 &precision4);
955 const void* commands5 = GetPut(); 957 const void* commands5 = GetPut();
956 EXPECT_EQ(commands4, commands5); 958 EXPECT_EQ(commands4, commands5);
957 EXPECT_EQ(range4[0], 3); 959 EXPECT_EQ(range4[0], 3);
958 EXPECT_EQ(range4[1], 5); 960 EXPECT_EQ(range4[1], 5);
959 EXPECT_EQ(precision4, 7); 961 EXPECT_EQ(precision4, 7);
960 } 962 }
961 963
962 TEST_F(GLES2ImplementationTest, GetShaderSource) { 964 TEST_F(GLES2ImplementationTest, GetShaderSource) {
963 const uint32 kBucketId = GLES2Implementation::kResultBucketId; 965 const uint32_t kBucketId = GLES2Implementation::kResultBucketId;
964 const GLuint kShaderId = 456; 966 const GLuint kShaderId = 456;
965 const Str7 kString = {"foobar"}; 967 const Str7 kString = {"foobar"};
966 const char kBad = 0x12; 968 const char kBad = 0x12;
967 struct Cmds { 969 struct Cmds {
968 cmd::SetBucketSize set_bucket_size1; 970 cmd::SetBucketSize set_bucket_size1;
969 cmds::GetShaderSource get_shader_source; 971 cmds::GetShaderSource get_shader_source;
970 cmd::GetBucketStart get_bucket_start; 972 cmd::GetBucketStart get_bucket_start;
971 cmd::SetToken set_token1; 973 cmd::SetToken set_token1;
972 cmd::SetBucketSize set_bucket_size2; 974 cmd::SetBucketSize set_bucket_size2;
973 }; 975 };
974 976
975 ExpectedMemoryInfo mem1 = GetExpectedMemory(MaxTransferBufferSize()); 977 ExpectedMemoryInfo mem1 = GetExpectedMemory(MaxTransferBufferSize());
976 ExpectedMemoryInfo result1 = GetExpectedResultMemory(sizeof(uint32)); 978 ExpectedMemoryInfo result1 = GetExpectedResultMemory(sizeof(uint32_t));
977 979
978 Cmds expected; 980 Cmds expected;
979 expected.set_bucket_size1.Init(kBucketId, 0); 981 expected.set_bucket_size1.Init(kBucketId, 0);
980 expected.get_shader_source.Init(kShaderId, kBucketId); 982 expected.get_shader_source.Init(kShaderId, kBucketId);
981 expected.get_bucket_start.Init( 983 expected.get_bucket_start.Init(
982 kBucketId, result1.id, result1.offset, 984 kBucketId, result1.id, result1.offset,
983 MaxTransferBufferSize(), mem1.id, mem1.offset); 985 MaxTransferBufferSize(), mem1.id, mem1.offset);
984 expected.set_token1.Init(GetNextToken()); 986 expected.set_token1.Init(GetNextToken());
985 expected.set_bucket_size2.Init(kBucketId, 0); 987 expected.set_bucket_size2.Init(kBucketId, 0);
986 char buf[sizeof(kString) + 1]; 988 char buf[sizeof(kString) + 1];
987 memset(buf, kBad, sizeof(buf)); 989 memset(buf, kBad, sizeof(buf));
988 990
989 EXPECT_CALL(*command_buffer(), OnFlush()) 991 EXPECT_CALL(*command_buffer(), OnFlush())
990 .WillOnce(DoAll(SetMemory(result1.ptr, uint32(sizeof(kString))), 992 .WillOnce(DoAll(SetMemory(result1.ptr, uint32_t(sizeof(kString))),
991 SetMemory(mem1.ptr, kString))) 993 SetMemory(mem1.ptr, kString)))
992 .RetiresOnSaturation(); 994 .RetiresOnSaturation();
993 995
994 GLsizei length = 0; 996 GLsizei length = 0;
995 gl_->GetShaderSource(kShaderId, sizeof(buf), &length, buf); 997 gl_->GetShaderSource(kShaderId, sizeof(buf), &length, buf);
996 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); 998 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected)));
997 EXPECT_EQ(sizeof(kString) - 1, static_cast<size_t>(length)); 999 EXPECT_EQ(sizeof(kString) - 1, static_cast<size_t>(length));
998 EXPECT_STREQ(kString.str, buf); 1000 EXPECT_STREQ(kString.str, buf);
999 EXPECT_EQ(buf[sizeof(kString)], kBad); 1001 EXPECT_EQ(buf[sizeof(kString)], kBad);
1000 } 1002 }
(...skipping 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
1136 gl_->DrawArraysInstancedANGLE(GL_POINTS, kFirst, kCount, 1); 1138 gl_->DrawArraysInstancedANGLE(GL_POINTS, kFirst, kCount, 1);
1137 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); 1139 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected)));
1138 } 1140 }
1139 1141
1140 TEST_F(GLES2ImplementationTest, DrawElementsClientSideBuffers) { 1142 TEST_F(GLES2ImplementationTest, DrawElementsClientSideBuffers) {
1141 static const float verts[][4] = { 1143 static const float verts[][4] = {
1142 { 12.0f, 23.0f, 34.0f, 45.0f, }, 1144 { 12.0f, 23.0f, 34.0f, 45.0f, },
1143 { 56.0f, 67.0f, 78.0f, 89.0f, }, 1145 { 56.0f, 67.0f, 78.0f, 89.0f, },
1144 { 13.0f, 24.0f, 35.0f, 46.0f, }, 1146 { 13.0f, 24.0f, 35.0f, 46.0f, },
1145 }; 1147 };
1146 static const uint16 indices[] = { 1148 static const uint16_t indices[] = {
1147 1, 2, 1149 1, 2,
1148 }; 1150 };
1149 struct Cmds { 1151 struct Cmds {
1150 cmds::EnableVertexAttribArray enable1; 1152 cmds::EnableVertexAttribArray enable1;
1151 cmds::EnableVertexAttribArray enable2; 1153 cmds::EnableVertexAttribArray enable2;
1152 cmds::BindBuffer bind_to_index_emu; 1154 cmds::BindBuffer bind_to_index_emu;
1153 cmds::BufferData set_index_size; 1155 cmds::BufferData set_index_size;
1154 cmds::BufferSubData copy_data0; 1156 cmds::BufferSubData copy_data0;
1155 cmd::SetToken set_token0; 1157 cmd::SetToken set_token0;
1156 cmds::BindBuffer bind_to_emu; 1158 cmds::BindBuffer bind_to_emu;
1157 cmds::BufferData set_size; 1159 cmds::BufferData set_size;
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
1220 gl_->DrawElements(GL_POINTS, kCount, GL_UNSIGNED_SHORT, indices); 1222 gl_->DrawElements(GL_POINTS, kCount, GL_UNSIGNED_SHORT, indices);
1221 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); 1223 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected)));
1222 } 1224 }
1223 1225
1224 TEST_F(GLES2ImplementationTest, DrawElementsClientSideBuffersIndexUint) { 1226 TEST_F(GLES2ImplementationTest, DrawElementsClientSideBuffersIndexUint) {
1225 static const float verts[][4] = { 1227 static const float verts[][4] = {
1226 { 12.0f, 23.0f, 34.0f, 45.0f, }, 1228 { 12.0f, 23.0f, 34.0f, 45.0f, },
1227 { 56.0f, 67.0f, 78.0f, 89.0f, }, 1229 { 56.0f, 67.0f, 78.0f, 89.0f, },
1228 { 13.0f, 24.0f, 35.0f, 46.0f, }, 1230 { 13.0f, 24.0f, 35.0f, 46.0f, },
1229 }; 1231 };
1230 static const uint32 indices[] = { 1232 static const uint32_t indices[] = {
1231 1, 2, 1233 1, 2,
1232 }; 1234 };
1233 struct Cmds { 1235 struct Cmds {
1234 cmds::EnableVertexAttribArray enable1; 1236 cmds::EnableVertexAttribArray enable1;
1235 cmds::EnableVertexAttribArray enable2; 1237 cmds::EnableVertexAttribArray enable2;
1236 cmds::BindBuffer bind_to_index_emu; 1238 cmds::BindBuffer bind_to_index_emu;
1237 cmds::BufferData set_index_size; 1239 cmds::BufferData set_index_size;
1238 cmds::BufferSubData copy_data0; 1240 cmds::BufferSubData copy_data0;
1239 cmd::SetToken set_token0; 1241 cmd::SetToken set_token0;
1240 cmds::BindBuffer bind_to_emu; 1242 cmds::BindBuffer bind_to_emu;
1241 cmds::BufferData set_size; 1243 cmds::BufferData set_size;
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
1304 gl_->DrawElements(GL_POINTS, kCount, GL_UNSIGNED_INT, indices); 1306 gl_->DrawElements(GL_POINTS, kCount, GL_UNSIGNED_INT, indices);
1305 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); 1307 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected)));
1306 } 1308 }
1307 1309
1308 TEST_F(GLES2ImplementationTest, DrawElementsClientSideBuffersInvalidIndexUint) { 1310 TEST_F(GLES2ImplementationTest, DrawElementsClientSideBuffersInvalidIndexUint) {
1309 static const float verts[][4] = { 1311 static const float verts[][4] = {
1310 { 12.0f, 23.0f, 34.0f, 45.0f, }, 1312 { 12.0f, 23.0f, 34.0f, 45.0f, },
1311 { 56.0f, 67.0f, 78.0f, 89.0f, }, 1313 { 56.0f, 67.0f, 78.0f, 89.0f, },
1312 { 13.0f, 24.0f, 35.0f, 46.0f, }, 1314 { 13.0f, 24.0f, 35.0f, 46.0f, },
1313 }; 1315 };
1314 static const uint32 indices[] = { 1316 static const uint32_t indices[] = {1, 0x90000000};
1315 1, 0x90000000
1316 };
1317 1317
1318 const GLuint kAttribIndex1 = 1; 1318 const GLuint kAttribIndex1 = 1;
1319 const GLuint kAttribIndex2 = 3; 1319 const GLuint kAttribIndex2 = 3;
1320 const GLint kNumComponents1 = 3; 1320 const GLint kNumComponents1 = 3;
1321 const GLint kNumComponents2 = 2; 1321 const GLint kNumComponents2 = 2;
1322 const GLsizei kClientStride = sizeof(verts[0]); 1322 const GLsizei kClientStride = sizeof(verts[0]);
1323 const GLsizei kCount = 2; 1323 const GLsizei kCount = 2;
1324 1324
1325 EXPECT_CALL(*command_buffer(), OnFlush()) 1325 EXPECT_CALL(*command_buffer(), OnFlush())
1326 .Times(1) 1326 .Times(1)
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
1371 const GLsizei kClientStride = sizeof(verts[0]); 1371 const GLsizei kClientStride = sizeof(verts[0]);
1372 const GLsizei kCount = 2; 1372 const GLsizei kCount = 2;
1373 const GLsizei kSize1 = 1373 const GLsizei kSize1 =
1374 arraysize(verts) * kNumComponents1 * sizeof(verts[0][0]); 1374 arraysize(verts) * kNumComponents1 * sizeof(verts[0][0]);
1375 const GLsizei kSize2 = 1375 const GLsizei kSize2 =
1376 arraysize(verts) * kNumComponents2 * sizeof(verts[0][0]); 1376 arraysize(verts) * kNumComponents2 * sizeof(verts[0][0]);
1377 const GLsizei kEmuOffset1 = 0; 1377 const GLsizei kEmuOffset1 = 0;
1378 const GLsizei kEmuOffset2 = kSize1; 1378 const GLsizei kEmuOffset2 = kSize1;
1379 const GLsizei kTotalSize = kSize1 + kSize2; 1379 const GLsizei kTotalSize = kSize1 + kSize2;
1380 1380
1381 ExpectedMemoryInfo mem1 = GetExpectedResultMemory(sizeof(uint32)); 1381 ExpectedMemoryInfo mem1 = GetExpectedResultMemory(sizeof(uint32_t));
1382 ExpectedMemoryInfo mem2 = GetExpectedMemory(kSize1); 1382 ExpectedMemoryInfo mem2 = GetExpectedMemory(kSize1);
1383 ExpectedMemoryInfo mem3 = GetExpectedMemory(kSize2); 1383 ExpectedMemoryInfo mem3 = GetExpectedMemory(kSize2);
1384 1384
1385 1385
1386 Cmds expected; 1386 Cmds expected;
1387 expected.enable1.Init(kAttribIndex1); 1387 expected.enable1.Init(kAttribIndex1);
1388 expected.enable2.Init(kAttribIndex2); 1388 expected.enable2.Init(kAttribIndex2);
1389 expected.bind_to_index.Init(GL_ELEMENT_ARRAY_BUFFER, kClientIndexBufferId); 1389 expected.bind_to_index.Init(GL_ELEMENT_ARRAY_BUFFER, kClientIndexBufferId);
1390 expected.get_max.Init(kClientIndexBufferId, kCount, GL_UNSIGNED_SHORT, 1390 expected.get_max.Init(kClientIndexBufferId, kCount, GL_UNSIGNED_SHORT,
1391 kIndexOffset, mem1.id, mem1.offset); 1391 kIndexOffset, mem1.id, mem1.offset);
(...skipping 27 matching lines...) Expand all
1419 reinterpret_cast<const void*>(kIndexOffset)); 1419 reinterpret_cast<const void*>(kIndexOffset));
1420 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); 1420 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected)));
1421 } 1421 }
1422 1422
1423 TEST_F(GLES2ImplementationTest, DrawElementsInstancedANGLEClientSideBuffers) { 1423 TEST_F(GLES2ImplementationTest, DrawElementsInstancedANGLEClientSideBuffers) {
1424 static const float verts[][4] = { 1424 static const float verts[][4] = {
1425 { 12.0f, 23.0f, 34.0f, 45.0f, }, 1425 { 12.0f, 23.0f, 34.0f, 45.0f, },
1426 { 56.0f, 67.0f, 78.0f, 89.0f, }, 1426 { 56.0f, 67.0f, 78.0f, 89.0f, },
1427 { 13.0f, 24.0f, 35.0f, 46.0f, }, 1427 { 13.0f, 24.0f, 35.0f, 46.0f, },
1428 }; 1428 };
1429 static const uint16 indices[] = { 1429 static const uint16_t indices[] = {
1430 1, 2, 1430 1, 2,
1431 }; 1431 };
1432 struct Cmds { 1432 struct Cmds {
1433 cmds::EnableVertexAttribArray enable1; 1433 cmds::EnableVertexAttribArray enable1;
1434 cmds::EnableVertexAttribArray enable2; 1434 cmds::EnableVertexAttribArray enable2;
1435 cmds::VertexAttribDivisorANGLE divisor; 1435 cmds::VertexAttribDivisorANGLE divisor;
1436 cmds::BindBuffer bind_to_index_emu; 1436 cmds::BindBuffer bind_to_index_emu;
1437 cmds::BufferData set_index_size; 1437 cmds::BufferData set_index_size;
1438 cmds::BufferSubData copy_data0; 1438 cmds::BufferSubData copy_data0;
1439 cmd::SetToken set_token0; 1439 cmd::SetToken set_token0;
1440 cmds::BindBuffer bind_to_emu; 1440 cmds::BindBuffer bind_to_emu;
(...skipping 256 matching lines...) Expand 10 before | Expand all | Expand 10 after
1697 Cmds expected; 1697 Cmds expected;
1698 expected.read1.Init( 1698 expected.read1.Init(
1699 0, 0, kWidth, kHeight / 2, kFormat, kType, 1699 0, 0, kWidth, kHeight / 2, kFormat, kType,
1700 mem1.id, mem1.offset, result1.id, result1.offset, 1700 mem1.id, mem1.offset, result1.id, result1.offset,
1701 false); 1701 false);
1702 expected.set_token1.Init(GetNextToken()); 1702 expected.set_token1.Init(GetNextToken());
1703 expected.read2.Init( 1703 expected.read2.Init(
1704 0, kHeight / 2, kWidth, kHeight / 2, kFormat, kType, 1704 0, kHeight / 2, kWidth, kHeight / 2, kFormat, kType,
1705 mem2.id, mem2.offset, result2.id, result2.offset, false); 1705 mem2.id, mem2.offset, result2.id, result2.offset, false);
1706 expected.set_token2.Init(GetNextToken()); 1706 expected.set_token2.Init(GetNextToken());
1707 scoped_ptr<int8[]> buffer(new int8[kWidth * kHeight * kBytesPerPixel]); 1707 scoped_ptr<int8_t[]> buffer(new int8_t[kWidth * kHeight * kBytesPerPixel]);
1708 1708
1709 EXPECT_CALL(*command_buffer(), OnFlush()) 1709 EXPECT_CALL(*command_buffer(), OnFlush())
1710 .WillOnce(SetMemory(result1.ptr, static_cast<uint32>(1))) 1710 .WillOnce(SetMemory(result1.ptr, static_cast<uint32_t>(1)))
1711 .WillOnce(SetMemory(result2.ptr, static_cast<uint32>(1))) 1711 .WillOnce(SetMemory(result2.ptr, static_cast<uint32_t>(1)))
1712 .RetiresOnSaturation(); 1712 .RetiresOnSaturation();
1713 1713
1714 gl_->ReadPixels(0, 0, kWidth, kHeight, kFormat, kType, buffer.get()); 1714 gl_->ReadPixels(0, 0, kWidth, kHeight, kFormat, kType, buffer.get());
1715 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); 1715 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected)));
1716 } 1716 }
1717 1717
1718 TEST_F(GLES2ImplementationTest, ReadPixelsBadFormatType) { 1718 TEST_F(GLES2ImplementationTest, ReadPixelsBadFormatType) {
1719 struct Cmds { 1719 struct Cmds {
1720 cmds::ReadPixels read; 1720 cmds::ReadPixels read;
1721 cmd::SetToken set_token; 1721 cmd::SetToken set_token;
1722 }; 1722 };
1723 const GLint kBytesPerPixel = 4; 1723 const GLint kBytesPerPixel = 4;
1724 const GLint kWidth = 2; 1724 const GLint kWidth = 2;
1725 const GLint kHeight = 2; 1725 const GLint kHeight = 2;
1726 const GLenum kFormat = 0; 1726 const GLenum kFormat = 0;
1727 const GLenum kType = 0; 1727 const GLenum kType = 0;
1728 1728
1729 ExpectedMemoryInfo mem1 = 1729 ExpectedMemoryInfo mem1 =
1730 GetExpectedMemory(kWidth * kHeight * kBytesPerPixel); 1730 GetExpectedMemory(kWidth * kHeight * kBytesPerPixel);
1731 ExpectedMemoryInfo result1 = 1731 ExpectedMemoryInfo result1 =
1732 GetExpectedResultMemory(sizeof(cmds::ReadPixels::Result)); 1732 GetExpectedResultMemory(sizeof(cmds::ReadPixels::Result));
1733 1733
1734 Cmds expected; 1734 Cmds expected;
1735 expected.read.Init( 1735 expected.read.Init(
1736 0, 0, kWidth, kHeight, kFormat, kType, 1736 0, 0, kWidth, kHeight, kFormat, kType,
1737 mem1.id, mem1.offset, result1.id, result1.offset, false); 1737 mem1.id, mem1.offset, result1.id, result1.offset, false);
1738 expected.set_token.Init(GetNextToken()); 1738 expected.set_token.Init(GetNextToken());
1739 scoped_ptr<int8[]> buffer(new int8[kWidth * kHeight * kBytesPerPixel]); 1739 scoped_ptr<int8_t[]> buffer(new int8_t[kWidth * kHeight * kBytesPerPixel]);
1740 1740
1741 EXPECT_CALL(*command_buffer(), OnFlush()) 1741 EXPECT_CALL(*command_buffer(), OnFlush())
1742 .Times(1) 1742 .Times(1)
1743 .RetiresOnSaturation(); 1743 .RetiresOnSaturation();
1744 1744
1745 gl_->ReadPixels(0, 0, kWidth, kHeight, kFormat, kType, buffer.get()); 1745 gl_->ReadPixels(0, 0, kWidth, kHeight, kFormat, kType, buffer.get());
1746 } 1746 }
1747 1747
1748 TEST_F(GLES2ImplementationTest, FreeUnusedSharedMemory) { 1748 TEST_F(GLES2ImplementationTest, FreeUnusedSharedMemory) {
1749 struct Cmds { 1749 struct Cmds {
(...skipping 23 matching lines...) Expand all
1773 1773
1774 TEST_F(GLES2ImplementationTest, MapUnmapBufferSubDataCHROMIUM) { 1774 TEST_F(GLES2ImplementationTest, MapUnmapBufferSubDataCHROMIUM) {
1775 struct Cmds { 1775 struct Cmds {
1776 cmds::BufferSubData buf; 1776 cmds::BufferSubData buf;
1777 cmd::SetToken set_token; 1777 cmd::SetToken set_token;
1778 }; 1778 };
1779 const GLenum kTarget = GL_ELEMENT_ARRAY_BUFFER; 1779 const GLenum kTarget = GL_ELEMENT_ARRAY_BUFFER;
1780 const GLintptr kOffset = 15; 1780 const GLintptr kOffset = 15;
1781 const GLsizeiptr kSize = 16; 1781 const GLsizeiptr kSize = 16;
1782 1782
1783 uint32 offset = 0; 1783 uint32_t offset = 0;
1784 Cmds expected; 1784 Cmds expected;
1785 expected.buf.Init( 1785 expected.buf.Init(
1786 kTarget, kOffset, kSize, 1786 kTarget, kOffset, kSize,
1787 command_buffer()->GetNextFreeTransferBufferId(), offset); 1787 command_buffer()->GetNextFreeTransferBufferId(), offset);
1788 expected.set_token.Init(GetNextToken()); 1788 expected.set_token.Init(GetNextToken());
1789 1789
1790 void* mem = gl_->MapBufferSubDataCHROMIUM( 1790 void* mem = gl_->MapBufferSubDataCHROMIUM(
1791 kTarget, kOffset, kSize, GL_WRITE_ONLY); 1791 kTarget, kOffset, kSize, GL_WRITE_ONLY);
1792 ASSERT_TRUE(mem != NULL); 1792 ASSERT_TRUE(mem != NULL);
1793 gl_->UnmapBufferSubDataCHROMIUM(mem); 1793 gl_->UnmapBufferSubDataCHROMIUM(mem);
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
1837 cmd::SetToken set_token; 1837 cmd::SetToken set_token;
1838 }; 1838 };
1839 const GLint kLevel = 1; 1839 const GLint kLevel = 1;
1840 const GLint kXOffset = 2; 1840 const GLint kXOffset = 2;
1841 const GLint kYOffset = 3; 1841 const GLint kYOffset = 3;
1842 const GLint kWidth = 4; 1842 const GLint kWidth = 4;
1843 const GLint kHeight = 5; 1843 const GLint kHeight = 5;
1844 const GLenum kFormat = GL_RGBA; 1844 const GLenum kFormat = GL_RGBA;
1845 const GLenum kType = GL_UNSIGNED_BYTE; 1845 const GLenum kType = GL_UNSIGNED_BYTE;
1846 1846
1847 uint32 offset = 0; 1847 uint32_t offset = 0;
1848 Cmds expected; 1848 Cmds expected;
1849 expected.tex.Init( 1849 expected.tex.Init(
1850 GL_TEXTURE_2D, kLevel, kXOffset, kYOffset, kWidth, kHeight, kFormat, 1850 GL_TEXTURE_2D, kLevel, kXOffset, kYOffset, kWidth, kHeight, kFormat,
1851 kType, 1851 kType,
1852 command_buffer()->GetNextFreeTransferBufferId(), offset, GL_FALSE); 1852 command_buffer()->GetNextFreeTransferBufferId(), offset, GL_FALSE);
1853 expected.set_token.Init(GetNextToken()); 1853 expected.set_token.Init(GetNextToken());
1854 1854
1855 void* mem = gl_->MapTexSubImage2DCHROMIUM( 1855 void* mem = gl_->MapTexSubImage2DCHROMIUM(
1856 GL_TEXTURE_2D, 1856 GL_TEXTURE_2D,
1857 kLevel, 1857 kLevel,
(...skipping 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
1974 kType, 1974 kType,
1975 GL_READ_ONLY); 1975 GL_READ_ONLY);
1976 EXPECT_TRUE(mem == NULL); 1976 EXPECT_TRUE(mem == NULL);
1977 EXPECT_EQ(static_cast<GLenum>(GL_INVALID_ENUM), gl_->GetError()); 1977 EXPECT_EQ(static_cast<GLenum>(GL_INVALID_ENUM), gl_->GetError());
1978 const char* kPtr = "something"; 1978 const char* kPtr = "something";
1979 gl_->UnmapTexSubImage2DCHROMIUM(kPtr); 1979 gl_->UnmapTexSubImage2DCHROMIUM(kPtr);
1980 EXPECT_EQ(static_cast<GLenum>(GL_INVALID_VALUE), gl_->GetError()); 1980 EXPECT_EQ(static_cast<GLenum>(GL_INVALID_VALUE), gl_->GetError());
1981 } 1981 }
1982 1982
1983 TEST_F(GLES2ImplementationTest, GetProgramInfoCHROMIUMGoodArgs) { 1983 TEST_F(GLES2ImplementationTest, GetProgramInfoCHROMIUMGoodArgs) {
1984 const uint32 kBucketId = GLES2Implementation::kResultBucketId; 1984 const uint32_t kBucketId = GLES2Implementation::kResultBucketId;
1985 const GLuint kProgramId = 123; 1985 const GLuint kProgramId = 123;
1986 const char kBad = 0x12; 1986 const char kBad = 0x12;
1987 GLsizei size = 0; 1987 GLsizei size = 0;
1988 const Str7 kString = {"foobar"}; 1988 const Str7 kString = {"foobar"};
1989 char buf[20]; 1989 char buf[20];
1990 1990
1991 ExpectedMemoryInfo mem1 = 1991 ExpectedMemoryInfo mem1 =
1992 GetExpectedMemory(MaxTransferBufferSize()); 1992 GetExpectedMemory(MaxTransferBufferSize());
1993 ExpectedMemoryInfo result1 = 1993 ExpectedMemoryInfo result1 =
1994 GetExpectedResultMemory(sizeof(cmd::GetBucketStart::Result)); 1994 GetExpectedResultMemory(sizeof(cmd::GetBucketStart::Result));
1995 ExpectedMemoryInfo result2 = 1995 ExpectedMemoryInfo result2 =
1996 GetExpectedResultMemory(sizeof(cmds::GetError::Result)); 1996 GetExpectedResultMemory(sizeof(cmds::GetError::Result));
1997 1997
1998 memset(buf, kBad, sizeof(buf)); 1998 memset(buf, kBad, sizeof(buf));
1999 EXPECT_CALL(*command_buffer(), OnFlush()) 1999 EXPECT_CALL(*command_buffer(), OnFlush())
2000 .WillOnce(DoAll(SetMemory(result1.ptr, uint32(sizeof(kString))), 2000 .WillOnce(DoAll(SetMemory(result1.ptr, uint32_t(sizeof(kString))),
2001 SetMemory(mem1.ptr, kString))) 2001 SetMemory(mem1.ptr, kString)))
2002 .WillOnce(SetMemory(result2.ptr, GLuint(GL_NO_ERROR))) 2002 .WillOnce(SetMemory(result2.ptr, GLuint(GL_NO_ERROR)))
2003 .RetiresOnSaturation(); 2003 .RetiresOnSaturation();
2004 2004
2005 struct Cmds { 2005 struct Cmds {
2006 cmd::SetBucketSize set_bucket_size1; 2006 cmd::SetBucketSize set_bucket_size1;
2007 cmds::GetProgramInfoCHROMIUM get_program_info; 2007 cmds::GetProgramInfoCHROMIUM get_program_info;
2008 cmd::GetBucketStart get_bucket_start; 2008 cmd::GetBucketStart get_bucket_start;
2009 cmd::SetToken set_token1; 2009 cmd::SetToken set_token1;
2010 cmd::SetBucketSize set_bucket_size2; 2010 cmd::SetBucketSize set_bucket_size2;
2011 }; 2011 };
2012 Cmds expected; 2012 Cmds expected;
2013 expected.set_bucket_size1.Init(kBucketId, 0); 2013 expected.set_bucket_size1.Init(kBucketId, 0);
2014 expected.get_program_info.Init(kProgramId, kBucketId); 2014 expected.get_program_info.Init(kProgramId, kBucketId);
2015 expected.get_bucket_start.Init( 2015 expected.get_bucket_start.Init(
2016 kBucketId, result1.id, result1.offset, 2016 kBucketId, result1.id, result1.offset,
2017 MaxTransferBufferSize(), mem1.id, mem1.offset); 2017 MaxTransferBufferSize(), mem1.id, mem1.offset);
2018 expected.set_token1.Init(GetNextToken()); 2018 expected.set_token1.Init(GetNextToken());
2019 expected.set_bucket_size2.Init(kBucketId, 0); 2019 expected.set_bucket_size2.Init(kBucketId, 0);
2020 gl_->GetProgramInfoCHROMIUM(kProgramId, sizeof(buf), &size, &buf); 2020 gl_->GetProgramInfoCHROMIUM(kProgramId, sizeof(buf), &size, &buf);
2021 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); 2021 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected)));
2022 EXPECT_EQ(static_cast<GLenum>(GL_NO_ERROR), gl_->GetError()); 2022 EXPECT_EQ(static_cast<GLenum>(GL_NO_ERROR), gl_->GetError());
2023 EXPECT_EQ(sizeof(kString), static_cast<size_t>(size)); 2023 EXPECT_EQ(sizeof(kString), static_cast<size_t>(size));
2024 EXPECT_STREQ(kString.str, buf); 2024 EXPECT_STREQ(kString.str, buf);
2025 EXPECT_EQ(buf[sizeof(kString)], kBad); 2025 EXPECT_EQ(buf[sizeof(kString)], kBad);
2026 } 2026 }
2027 2027
2028 TEST_F(GLES2ImplementationTest, GetProgramInfoCHROMIUMBadArgs) { 2028 TEST_F(GLES2ImplementationTest, GetProgramInfoCHROMIUMBadArgs) {
2029 const uint32 kBucketId = GLES2Implementation::kResultBucketId; 2029 const uint32_t kBucketId = GLES2Implementation::kResultBucketId;
2030 const GLuint kProgramId = 123; 2030 const GLuint kProgramId = 123;
2031 GLsizei size = 0; 2031 GLsizei size = 0;
2032 const Str7 kString = {"foobar"}; 2032 const Str7 kString = {"foobar"};
2033 char buf[20]; 2033 char buf[20];
2034 2034
2035 ExpectedMemoryInfo mem1 = GetExpectedMemory(MaxTransferBufferSize()); 2035 ExpectedMemoryInfo mem1 = GetExpectedMemory(MaxTransferBufferSize());
2036 ExpectedMemoryInfo result1 = 2036 ExpectedMemoryInfo result1 =
2037 GetExpectedResultMemory(sizeof(cmd::GetBucketStart::Result)); 2037 GetExpectedResultMemory(sizeof(cmd::GetBucketStart::Result));
2038 ExpectedMemoryInfo result2 = 2038 ExpectedMemoryInfo result2 =
2039 GetExpectedResultMemory(sizeof(cmds::GetError::Result)); 2039 GetExpectedResultMemory(sizeof(cmds::GetError::Result));
2040 ExpectedMemoryInfo result3 = 2040 ExpectedMemoryInfo result3 =
2041 GetExpectedResultMemory(sizeof(cmds::GetError::Result)); 2041 GetExpectedResultMemory(sizeof(cmds::GetError::Result));
2042 ExpectedMemoryInfo result4 = 2042 ExpectedMemoryInfo result4 =
2043 GetExpectedResultMemory(sizeof(cmds::GetError::Result)); 2043 GetExpectedResultMemory(sizeof(cmds::GetError::Result));
2044 2044
2045 EXPECT_CALL(*command_buffer(), OnFlush()) 2045 EXPECT_CALL(*command_buffer(), OnFlush())
2046 .WillOnce(DoAll(SetMemory(result1.ptr, uint32(sizeof(kString))), 2046 .WillOnce(DoAll(SetMemory(result1.ptr, uint32_t(sizeof(kString))),
2047 SetMemory(mem1.ptr, kString))) 2047 SetMemory(mem1.ptr, kString)))
2048 .WillOnce(SetMemory(result2.ptr, GLuint(GL_NO_ERROR))) 2048 .WillOnce(SetMemory(result2.ptr, GLuint(GL_NO_ERROR)))
2049 .WillOnce(SetMemory(result3.ptr, GLuint(GL_NO_ERROR))) 2049 .WillOnce(SetMemory(result3.ptr, GLuint(GL_NO_ERROR)))
2050 .WillOnce(SetMemory(result4.ptr, GLuint(GL_NO_ERROR))) 2050 .WillOnce(SetMemory(result4.ptr, GLuint(GL_NO_ERROR)))
2051 .RetiresOnSaturation(); 2051 .RetiresOnSaturation();
2052 2052
2053 // try bufsize not big enough. 2053 // try bufsize not big enough.
2054 struct Cmds { 2054 struct Cmds {
2055 cmd::SetBucketSize set_bucket_size1; 2055 cmd::SetBucketSize set_bucket_size1;
2056 cmds::GetProgramInfoCHROMIUM get_program_info; 2056 cmds::GetProgramInfoCHROMIUM get_program_info;
2057 cmd::GetBucketStart get_bucket_start; 2057 cmd::GetBucketStart get_bucket_start;
(...skipping 18 matching lines...) Expand all
2076 EXPECT_TRUE(NoCommandsWritten()); 2076 EXPECT_TRUE(NoCommandsWritten());
2077 EXPECT_EQ(static_cast<GLenum>(GL_INVALID_VALUE), gl_->GetError()); 2077 EXPECT_EQ(static_cast<GLenum>(GL_INVALID_VALUE), gl_->GetError());
2078 ClearCommands(); 2078 ClearCommands();
2079 // try no size ptr. 2079 // try no size ptr.
2080 gl_->GetProgramInfoCHROMIUM(kProgramId, sizeof(buf), NULL, &buf); 2080 gl_->GetProgramInfoCHROMIUM(kProgramId, sizeof(buf), NULL, &buf);
2081 EXPECT_TRUE(NoCommandsWritten()); 2081 EXPECT_TRUE(NoCommandsWritten());
2082 EXPECT_EQ(static_cast<GLenum>(GL_INVALID_VALUE), gl_->GetError()); 2082 EXPECT_EQ(static_cast<GLenum>(GL_INVALID_VALUE), gl_->GetError());
2083 } 2083 }
2084 2084
2085 TEST_F(GLES2ImplementationTest, GetUniformBlocksCHROMIUMGoodArgs) { 2085 TEST_F(GLES2ImplementationTest, GetUniformBlocksCHROMIUMGoodArgs) {
2086 const uint32 kBucketId = GLES2Implementation::kResultBucketId; 2086 const uint32_t kBucketId = GLES2Implementation::kResultBucketId;
2087 const GLuint kProgramId = 123; 2087 const GLuint kProgramId = 123;
2088 const char kBad = 0x12; 2088 const char kBad = 0x12;
2089 GLsizei size = 0; 2089 GLsizei size = 0;
2090 const Str7 kString = {"foobar"}; 2090 const Str7 kString = {"foobar"};
2091 char buf[20]; 2091 char buf[20];
2092 2092
2093 ExpectedMemoryInfo mem1 = 2093 ExpectedMemoryInfo mem1 =
2094 GetExpectedMemory(MaxTransferBufferSize()); 2094 GetExpectedMemory(MaxTransferBufferSize());
2095 ExpectedMemoryInfo result1 = 2095 ExpectedMemoryInfo result1 =
2096 GetExpectedResultMemory(sizeof(cmd::GetBucketStart::Result)); 2096 GetExpectedResultMemory(sizeof(cmd::GetBucketStart::Result));
2097 ExpectedMemoryInfo result2 = 2097 ExpectedMemoryInfo result2 =
2098 GetExpectedResultMemory(sizeof(cmds::GetError::Result)); 2098 GetExpectedResultMemory(sizeof(cmds::GetError::Result));
2099 2099
2100 memset(buf, kBad, sizeof(buf)); 2100 memset(buf, kBad, sizeof(buf));
2101 EXPECT_CALL(*command_buffer(), OnFlush()) 2101 EXPECT_CALL(*command_buffer(), OnFlush())
2102 .WillOnce(DoAll(SetMemory(result1.ptr, uint32(sizeof(kString))), 2102 .WillOnce(DoAll(SetMemory(result1.ptr, uint32_t(sizeof(kString))),
2103 SetMemory(mem1.ptr, kString))) 2103 SetMemory(mem1.ptr, kString)))
2104 .WillOnce(SetMemory(result2.ptr, GLuint(GL_NO_ERROR))) 2104 .WillOnce(SetMemory(result2.ptr, GLuint(GL_NO_ERROR)))
2105 .RetiresOnSaturation(); 2105 .RetiresOnSaturation();
2106 2106
2107 struct Cmds { 2107 struct Cmds {
2108 cmd::SetBucketSize set_bucket_size1; 2108 cmd::SetBucketSize set_bucket_size1;
2109 cmds::GetUniformBlocksCHROMIUM get_uniform_blocks; 2109 cmds::GetUniformBlocksCHROMIUM get_uniform_blocks;
2110 cmd::GetBucketStart get_bucket_start; 2110 cmd::GetBucketStart get_bucket_start;
2111 cmd::SetToken set_token1; 2111 cmd::SetToken set_token1;
2112 cmd::SetBucketSize set_bucket_size2; 2112 cmd::SetBucketSize set_bucket_size2;
2113 }; 2113 };
2114 Cmds expected; 2114 Cmds expected;
2115 expected.set_bucket_size1.Init(kBucketId, 0); 2115 expected.set_bucket_size1.Init(kBucketId, 0);
2116 expected.get_uniform_blocks.Init(kProgramId, kBucketId); 2116 expected.get_uniform_blocks.Init(kProgramId, kBucketId);
2117 expected.get_bucket_start.Init( 2117 expected.get_bucket_start.Init(
2118 kBucketId, result1.id, result1.offset, 2118 kBucketId, result1.id, result1.offset,
2119 MaxTransferBufferSize(), mem1.id, mem1.offset); 2119 MaxTransferBufferSize(), mem1.id, mem1.offset);
2120 expected.set_token1.Init(GetNextToken()); 2120 expected.set_token1.Init(GetNextToken());
2121 expected.set_bucket_size2.Init(kBucketId, 0); 2121 expected.set_bucket_size2.Init(kBucketId, 0);
2122 gl_->GetUniformBlocksCHROMIUM(kProgramId, sizeof(buf), &size, &buf); 2122 gl_->GetUniformBlocksCHROMIUM(kProgramId, sizeof(buf), &size, &buf);
2123 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); 2123 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected)));
2124 EXPECT_EQ(static_cast<GLenum>(GL_NO_ERROR), gl_->GetError()); 2124 EXPECT_EQ(static_cast<GLenum>(GL_NO_ERROR), gl_->GetError());
2125 EXPECT_EQ(sizeof(kString), static_cast<size_t>(size)); 2125 EXPECT_EQ(sizeof(kString), static_cast<size_t>(size));
2126 EXPECT_STREQ(kString.str, buf); 2126 EXPECT_STREQ(kString.str, buf);
2127 EXPECT_EQ(buf[sizeof(kString)], kBad); 2127 EXPECT_EQ(buf[sizeof(kString)], kBad);
2128 } 2128 }
2129 2129
2130 TEST_F(GLES2ImplementationTest, GetUniformBlocksCHROMIUMBadArgs) { 2130 TEST_F(GLES2ImplementationTest, GetUniformBlocksCHROMIUMBadArgs) {
2131 const uint32 kBucketId = GLES2Implementation::kResultBucketId; 2131 const uint32_t kBucketId = GLES2Implementation::kResultBucketId;
2132 const GLuint kProgramId = 123; 2132 const GLuint kProgramId = 123;
2133 GLsizei size = 0; 2133 GLsizei size = 0;
2134 const Str7 kString = {"foobar"}; 2134 const Str7 kString = {"foobar"};
2135 char buf[20]; 2135 char buf[20];
2136 2136
2137 ExpectedMemoryInfo mem1 = GetExpectedMemory(MaxTransferBufferSize()); 2137 ExpectedMemoryInfo mem1 = GetExpectedMemory(MaxTransferBufferSize());
2138 ExpectedMemoryInfo result1 = 2138 ExpectedMemoryInfo result1 =
2139 GetExpectedResultMemory(sizeof(cmd::GetBucketStart::Result)); 2139 GetExpectedResultMemory(sizeof(cmd::GetBucketStart::Result));
2140 ExpectedMemoryInfo result2 = 2140 ExpectedMemoryInfo result2 =
2141 GetExpectedResultMemory(sizeof(cmds::GetError::Result)); 2141 GetExpectedResultMemory(sizeof(cmds::GetError::Result));
2142 ExpectedMemoryInfo result3 = 2142 ExpectedMemoryInfo result3 =
2143 GetExpectedResultMemory(sizeof(cmds::GetError::Result)); 2143 GetExpectedResultMemory(sizeof(cmds::GetError::Result));
2144 ExpectedMemoryInfo result4 = 2144 ExpectedMemoryInfo result4 =
2145 GetExpectedResultMemory(sizeof(cmds::GetError::Result)); 2145 GetExpectedResultMemory(sizeof(cmds::GetError::Result));
2146 2146
2147 EXPECT_CALL(*command_buffer(), OnFlush()) 2147 EXPECT_CALL(*command_buffer(), OnFlush())
2148 .WillOnce(DoAll(SetMemory(result1.ptr, uint32(sizeof(kString))), 2148 .WillOnce(DoAll(SetMemory(result1.ptr, uint32_t(sizeof(kString))),
2149 SetMemory(mem1.ptr, kString))) 2149 SetMemory(mem1.ptr, kString)))
2150 .WillOnce(SetMemory(result2.ptr, GLuint(GL_NO_ERROR))) 2150 .WillOnce(SetMemory(result2.ptr, GLuint(GL_NO_ERROR)))
2151 .WillOnce(SetMemory(result3.ptr, GLuint(GL_NO_ERROR))) 2151 .WillOnce(SetMemory(result3.ptr, GLuint(GL_NO_ERROR)))
2152 .WillOnce(SetMemory(result4.ptr, GLuint(GL_NO_ERROR))) 2152 .WillOnce(SetMemory(result4.ptr, GLuint(GL_NO_ERROR)))
2153 .RetiresOnSaturation(); 2153 .RetiresOnSaturation();
2154 2154
2155 // try bufsize not big enough. 2155 // try bufsize not big enough.
2156 struct Cmds { 2156 struct Cmds {
2157 cmd::SetBucketSize set_bucket_size1; 2157 cmd::SetBucketSize set_bucket_size1;
2158 cmds::GetUniformBlocksCHROMIUM get_uniform_blocks; 2158 cmds::GetUniformBlocksCHROMIUM get_uniform_blocks;
2159 cmd::GetBucketStart get_bucket_start; 2159 cmd::GetBucketStart get_bucket_start;
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
2297 2297
2298 ExpectedMemoryInfo result1 = 2298 ExpectedMemoryInfo result1 =
2299 GetExpectedResultMemory(sizeof(cmds::GetError::Result)); 2299 GetExpectedResultMemory(sizeof(cmds::GetError::Result));
2300 2300
2301 EXPECT_CALL(*command_buffer(), OnFlush()) 2301 EXPECT_CALL(*command_buffer(), OnFlush())
2302 .WillOnce(SetMemory(result1.ptr, GLuint(GL_NO_ERROR))) 2302 .WillOnce(SetMemory(result1.ptr, GLuint(GL_NO_ERROR)))
2303 .RetiresOnSaturation(); 2303 .RetiresOnSaturation();
2304 EXPECT_EQ(static_cast<GLenum>(GL_NO_ERROR), gl_->GetError()); 2304 EXPECT_EQ(static_cast<GLenum>(GL_NO_ERROR), gl_->GetError());
2305 } 2305 }
2306 2306
2307 static bool CheckRect( 2307 static bool CheckRect(int width,
2308 int width, int height, GLenum format, GLenum type, int alignment, 2308 int height,
2309 const uint8* r1, const uint8* r2) { 2309 GLenum format,
2310 uint32 size = 0; 2310 GLenum type,
2311 uint32 unpadded_row_size = 0; 2311 int alignment,
2312 uint32 padded_row_size = 0; 2312 const uint8_t* r1,
2313 const uint8_t* r2) {
2314 uint32_t size = 0;
2315 uint32_t unpadded_row_size = 0;
2316 uint32_t padded_row_size = 0;
2313 if (!GLES2Util::ComputeImageDataSizes( 2317 if (!GLES2Util::ComputeImageDataSizes(
2314 width, height, 1, format, type, alignment, &size, &unpadded_row_size, 2318 width, height, 1, format, type, alignment, &size, &unpadded_row_size,
2315 &padded_row_size)) { 2319 &padded_row_size)) {
2316 return false; 2320 return false;
2317 } 2321 }
2318 2322
2319 int r2_stride = static_cast<int>(padded_row_size); 2323 int r2_stride = static_cast<int>(padded_row_size);
2320 2324
2321 for (int y = 0; y < height; ++y) { 2325 for (int y = 0; y < height; ++y) {
2322 if (memcmp(r1, r2, unpadded_row_size) != 0) { 2326 if (memcmp(r1, r2, unpadded_row_size) != 0) {
(...skipping 20 matching lines...) Expand all
2343 cmd::SetToken set_token; 2347 cmd::SetToken set_token;
2344 }; 2348 };
2345 const GLenum kTarget = GL_TEXTURE_2D; 2349 const GLenum kTarget = GL_TEXTURE_2D;
2346 const GLint kLevel = 0; 2350 const GLint kLevel = 0;
2347 const GLenum kFormat = GL_RGB; 2351 const GLenum kFormat = GL_RGB;
2348 const GLsizei kWidth = 3; 2352 const GLsizei kWidth = 3;
2349 const GLsizei kHeight = 4; 2353 const GLsizei kHeight = 4;
2350 const GLint kBorder = 0; 2354 const GLint kBorder = 0;
2351 const GLenum kType = GL_UNSIGNED_BYTE; 2355 const GLenum kType = GL_UNSIGNED_BYTE;
2352 const GLint kPixelStoreUnpackAlignment = 4; 2356 const GLint kPixelStoreUnpackAlignment = 4;
2353 static uint8 pixels[] = { 2357 static uint8_t pixels[] = {
2354 11, 12, 13, 13, 14, 15, 15, 16, 17, 101, 102, 103, 2358 11, 12, 13, 13, 14, 15, 15, 16, 17, 101, 102, 103, 21, 22, 23,
2355 21, 22, 23, 23, 24, 25, 25, 26, 27, 201, 202, 203, 2359 23, 24, 25, 25, 26, 27, 201, 202, 203, 31, 32, 33, 33, 34, 35,
2356 31, 32, 33, 33, 34, 35, 35, 36, 37, 123, 124, 125, 2360 35, 36, 37, 123, 124, 125, 41, 42, 43, 43, 44, 45, 45, 46, 47,
2357 41, 42, 43, 43, 44, 45, 45, 46, 47,
2358 }; 2361 };
2359 2362
2360 ExpectedMemoryInfo mem1 = GetExpectedMemory(sizeof(pixels)); 2363 ExpectedMemoryInfo mem1 = GetExpectedMemory(sizeof(pixels));
2361 2364
2362 Cmds expected; 2365 Cmds expected;
2363 expected.tex_image_2d.Init( 2366 expected.tex_image_2d.Init(
2364 kTarget, kLevel, kFormat, kWidth, kHeight, kFormat, kType, 2367 kTarget, kLevel, kFormat, kWidth, kHeight, kFormat, kType,
2365 mem1.id, mem1.offset); 2368 mem1.id, mem1.offset);
2366 expected.set_token.Init(GetNextToken()); 2369 expected.set_token.Init(GetNextToken());
2367 gl_->TexImage2D( 2370 gl_->TexImage2D(
(...skipping 16 matching lines...) Expand all
2384 cmd::SetToken set_token; 2387 cmd::SetToken set_token;
2385 }; 2388 };
2386 const GLenum kTarget = GL_TEXTURE_2D; 2389 const GLenum kTarget = GL_TEXTURE_2D;
2387 const GLint kLevel = 0; 2390 const GLint kLevel = 0;
2388 const GLenum kFormat = GL_RGB; 2391 const GLenum kFormat = GL_RGB;
2389 const GLsizei kWidth = 3; 2392 const GLsizei kWidth = 3;
2390 const GLint kBorder = 0; 2393 const GLint kBorder = 0;
2391 const GLenum kType = GL_UNSIGNED_BYTE; 2394 const GLenum kType = GL_UNSIGNED_BYTE;
2392 const GLint kPixelStoreUnpackAlignment = 4; 2395 const GLint kPixelStoreUnpackAlignment = 4;
2393 2396
2394 uint32 size = 0; 2397 uint32_t size = 0;
2395 uint32 unpadded_row_size = 0; 2398 uint32_t unpadded_row_size = 0;
2396 uint32 padded_row_size = 0; 2399 uint32_t padded_row_size = 0;
2397 ASSERT_TRUE(GLES2Util::ComputeImageDataSizes( 2400 ASSERT_TRUE(GLES2Util::ComputeImageDataSizes(
2398 kWidth, 2, 1, kFormat, kType, kPixelStoreUnpackAlignment, 2401 kWidth, 2, 1, kFormat, kType, kPixelStoreUnpackAlignment,
2399 &size, &unpadded_row_size, &padded_row_size)); 2402 &size, &unpadded_row_size, &padded_row_size));
2400 const GLsizei kMaxHeight = (MaxTransferBufferSize() / padded_row_size) * 2; 2403 const GLsizei kMaxHeight = (MaxTransferBufferSize() / padded_row_size) * 2;
2401 const GLsizei kHeight = kMaxHeight * 2; 2404 const GLsizei kHeight = kMaxHeight * 2;
2402 ASSERT_TRUE(GLES2Util::ComputeImageDataSizes( 2405 ASSERT_TRUE(GLES2Util::ComputeImageDataSizes(
2403 kWidth, kHeight, 1, kFormat, kType, kPixelStoreUnpackAlignment, 2406 kWidth, kHeight, 1, kFormat, kType, kPixelStoreUnpackAlignment,
2404 &size, &unpadded_row_size, &padded_row_size)); 2407 &size, &unpadded_row_size, &padded_row_size));
2405 2408
2406 scoped_ptr<uint8[]> pixels(new uint8[size]); 2409 scoped_ptr<uint8_t[]> pixels(new uint8_t[size]);
2407 for (uint32 ii = 0; ii < size; ++ii) { 2410 for (uint32_t ii = 0; ii < size; ++ii) {
2408 pixels[ii] = static_cast<uint8>(ii); 2411 pixels[ii] = static_cast<uint8_t>(ii);
2409 } 2412 }
2410 2413
2411 ExpectedMemoryInfo mem1 = GetExpectedMappedMemory(size); 2414 ExpectedMemoryInfo mem1 = GetExpectedMappedMemory(size);
2412 2415
2413 Cmds expected; 2416 Cmds expected;
2414 expected.tex_image_2d.Init( 2417 expected.tex_image_2d.Init(
2415 kTarget, kLevel, kFormat, kWidth, kHeight, kFormat, kType, 2418 kTarget, kLevel, kFormat, kWidth, kHeight, kFormat, kType,
2416 mem1.id, mem1.offset); 2419 mem1.id, mem1.offset);
2417 expected.set_token.Init(GetNextToken()); 2420 expected.set_token.Init(GetNextToken());
2418 gl_->TexImage2D( 2421 gl_->TexImage2D(
(...skipping 18 matching lines...) Expand all
2437 cmd::SetToken set_token2; 2440 cmd::SetToken set_token2;
2438 }; 2441 };
2439 const GLenum kTarget = GL_TEXTURE_2D; 2442 const GLenum kTarget = GL_TEXTURE_2D;
2440 const GLint kLevel = 0; 2443 const GLint kLevel = 0;
2441 const GLenum kFormat = GL_RGB; 2444 const GLenum kFormat = GL_RGB;
2442 const GLint kBorder = 0; 2445 const GLint kBorder = 0;
2443 const GLenum kType = GL_UNSIGNED_BYTE; 2446 const GLenum kType = GL_UNSIGNED_BYTE;
2444 const GLint kPixelStoreUnpackAlignment = 4; 2447 const GLint kPixelStoreUnpackAlignment = 4;
2445 const GLsizei kWidth = 3; 2448 const GLsizei kWidth = 3;
2446 2449
2447 uint32 size = 0; 2450 uint32_t size = 0;
2448 uint32 unpadded_row_size = 0; 2451 uint32_t unpadded_row_size = 0;
2449 uint32 padded_row_size = 0; 2452 uint32_t padded_row_size = 0;
2450 ASSERT_TRUE(GLES2Util::ComputeImageDataSizes( 2453 ASSERT_TRUE(GLES2Util::ComputeImageDataSizes(
2451 kWidth, 2, 1, kFormat, kType, kPixelStoreUnpackAlignment, 2454 kWidth, 2, 1, kFormat, kType, kPixelStoreUnpackAlignment,
2452 &size, &unpadded_row_size, &padded_row_size)); 2455 &size, &unpadded_row_size, &padded_row_size));
2453 const GLsizei kHeight = (MaxTransferBufferSize() / padded_row_size) * 2; 2456 const GLsizei kHeight = (MaxTransferBufferSize() / padded_row_size) * 2;
2454 ASSERT_TRUE(GLES2Util::ComputeImageDataSizes( 2457 ASSERT_TRUE(GLES2Util::ComputeImageDataSizes(
2455 kWidth, kHeight, 1, kFormat, kType, kPixelStoreUnpackAlignment, 2458 kWidth, kHeight, 1, kFormat, kType, kPixelStoreUnpackAlignment,
2456 &size, NULL, NULL)); 2459 &size, NULL, NULL));
2457 uint32 half_size = 0; 2460 uint32_t half_size = 0;
2458 ASSERT_TRUE(GLES2Util::ComputeImageDataSizes( 2461 ASSERT_TRUE(GLES2Util::ComputeImageDataSizes(
2459 kWidth, kHeight / 2, 1, kFormat, kType, kPixelStoreUnpackAlignment, 2462 kWidth, kHeight / 2, 1, kFormat, kType, kPixelStoreUnpackAlignment,
2460 &half_size, NULL, NULL)); 2463 &half_size, NULL, NULL));
2461 2464
2462 scoped_ptr<uint8[]> pixels(new uint8[size]); 2465 scoped_ptr<uint8_t[]> pixels(new uint8_t[size]);
2463 for (uint32 ii = 0; ii < size; ++ii) { 2466 for (uint32_t ii = 0; ii < size; ++ii) {
2464 pixels[ii] = static_cast<uint8>(ii); 2467 pixels[ii] = static_cast<uint8_t>(ii);
2465 } 2468 }
2466 2469
2467 ExpectedMemoryInfo mem1 = GetExpectedMemory(half_size); 2470 ExpectedMemoryInfo mem1 = GetExpectedMemory(half_size);
2468 ExpectedMemoryInfo mem2 = GetExpectedMemory(half_size); 2471 ExpectedMemoryInfo mem2 = GetExpectedMemory(half_size);
2469 2472
2470 Cmds expected; 2473 Cmds expected;
2471 expected.tex_image_2d.Init( 2474 expected.tex_image_2d.Init(
2472 kTarget, kLevel, kFormat, kWidth, kHeight, kFormat, kType, 2475 kTarget, kLevel, kFormat, kWidth, kHeight, kFormat, kType,
2473 0, 0); 2476 0, 0);
2474 expected.tex_sub_image_2d1.Init( 2477 expected.tex_sub_image_2d1.Init(
2475 kTarget, kLevel, 0, 0, kWidth, kHeight / 2, kFormat, kType, 2478 kTarget, kLevel, 0, 0, kWidth, kHeight / 2, kFormat, kType,
2476 mem1.id, mem1.offset, true); 2479 mem1.id, mem1.offset, true);
2477 expected.set_token1.Init(GetNextToken()); 2480 expected.set_token1.Init(GetNextToken());
2478 expected.tex_sub_image_2d2.Init( 2481 expected.tex_sub_image_2d2.Init(
2479 kTarget, kLevel, 0, kHeight / 2, kWidth, kHeight / 2, kFormat, kType, 2482 kTarget, kLevel, 0, kHeight / 2, kWidth, kHeight / 2, kFormat, kType,
2480 mem2.id, mem2.offset, true); 2483 mem2.id, mem2.offset, true);
2481 expected.set_token2.Init(GetNextToken()); 2484 expected.set_token2.Init(GetNextToken());
2482 2485
2483 // TODO(gman): Make it possible to run this test 2486 // TODO(gman): Make it possible to run this test
2484 // EXPECT_CALL(*command_buffer(), OnFlush()) 2487 // EXPECT_CALL(*command_buffer(), OnFlush())
2485 // .WillOnce(CheckRectAction( 2488 // .WillOnce(CheckRectAction(
2486 // kWidth, kHeight / 2, kFormat, kType, kPixelStoreUnpackAlignment, 2489 // kWidth, kHeight / 2, kFormat, kType, kPixelStoreUnpackAlignment,
2487 // false, pixels.get(), 2490 // false, pixels.get(),
2488 // GetExpectedTransferAddressFromOffsetAs<uint8>(offset1, half_size))) 2491 // GetExpectedTransferAddressFromOffsetAs<uint8_t>(offset1,
2492 // half_size)))
2489 // .RetiresOnSaturation(); 2493 // .RetiresOnSaturation();
2490 2494
2491 gl_->TexImage2D( 2495 gl_->TexImage2D(
2492 kTarget, kLevel, kFormat, kWidth, kHeight, kBorder, kFormat, kType, 2496 kTarget, kLevel, kFormat, kWidth, kHeight, kBorder, kFormat, kType,
2493 pixels.get()); 2497 pixels.get());
2494 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); 2498 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected)));
2495 EXPECT_TRUE(CheckRect( 2499 EXPECT_TRUE(CheckRect(
2496 kWidth, kHeight / 2, kFormat, kType, kPixelStoreUnpackAlignment, 2500 kWidth, kHeight / 2, kFormat, kType, kPixelStoreUnpackAlignment,
2497 pixels.get() + kHeight / 2 * padded_row_size, mem2.ptr)); 2501 pixels.get() + kHeight / 2 * padded_row_size, mem2.ptr));
2498 } 2502 }
(...skipping 26 matching lines...) Expand all
2525 cmds::PixelStorei pixel_store_i; 2529 cmds::PixelStorei pixel_store_i;
2526 cmds::TexImage2D tex_image_2d; 2530 cmds::TexImage2D tex_image_2d;
2527 } texImageExpected; 2531 } texImageExpected;
2528 2532
2529 struct { 2533 struct {
2530 cmds::PixelStorei pixel_store_i; 2534 cmds::PixelStorei pixel_store_i;
2531 cmds::TexImage2D tex_image_2d; 2535 cmds::TexImage2D tex_image_2d;
2532 cmds::TexSubImage2D tex_sub_image_2d; 2536 cmds::TexSubImage2D tex_sub_image_2d;
2533 } texSubImageExpected; 2537 } texSubImageExpected;
2534 2538
2535 uint32 src_size; 2539 uint32_t src_size;
2536 ASSERT_TRUE(GLES2Util::ComputeImageDataSizes( 2540 ASSERT_TRUE(GLES2Util::ComputeImageDataSizes(
2537 kSrcWidth, kSrcSubImageY1, 1, kFormat, kType, 8, &src_size, NULL, NULL)); 2541 kSrcWidth, kSrcSubImageY1, 1, kFormat, kType, 8, &src_size, NULL, NULL));
2538 scoped_ptr<uint8[]> src_pixels; 2542 scoped_ptr<uint8_t[]> src_pixels;
2539 src_pixels.reset(new uint8[src_size]); 2543 src_pixels.reset(new uint8_t[src_size]);
2540 for (size_t i = 0; i < src_size; ++i) { 2544 for (size_t i = 0; i < src_size; ++i) {
2541 src_pixels[i] = static_cast<int8>(i); 2545 src_pixels[i] = static_cast<int8_t>(i);
2542 } 2546 }
2543 2547
2544 for (int sub = 0; sub < 2; ++sub) { 2548 for (int sub = 0; sub < 2; ++sub) {
2545 for (size_t a = 0; a < arraysize(unpack_alignments); ++a) { 2549 for (size_t a = 0; a < arraysize(unpack_alignments); ++a) {
2546 GLint alignment = unpack_alignments[a]; 2550 GLint alignment = unpack_alignments[a];
2547 uint32 size; 2551 uint32_t size;
2548 uint32 unpadded_row_size; 2552 uint32_t unpadded_row_size;
2549 uint32 padded_row_size; 2553 uint32_t padded_row_size;
2550 ASSERT_TRUE(GLES2Util::ComputeImageDataSizes( 2554 ASSERT_TRUE(GLES2Util::ComputeImageDataSizes(
2551 kSrcSubImageWidth, kSrcSubImageHeight, 1, kFormat, kType, alignment, 2555 kSrcSubImageWidth, kSrcSubImageHeight, 1, kFormat, kType, alignment,
2552 &size, &unpadded_row_size, &padded_row_size)); 2556 &size, &unpadded_row_size, &padded_row_size));
2553 ASSERT_TRUE(size <= MaxTransferBufferSize()); 2557 ASSERT_TRUE(size <= MaxTransferBufferSize());
2554 ExpectedMemoryInfo mem = GetExpectedMemory(size); 2558 ExpectedMemoryInfo mem = GetExpectedMemory(size);
2555 2559
2556 const void* commands = GetPut(); 2560 const void* commands = GetPut();
2557 gl_->PixelStorei(GL_UNPACK_ALIGNMENT, alignment); 2561 gl_->PixelStorei(GL_UNPACK_ALIGNMENT, alignment);
2558 gl_->PixelStorei(GL_UNPACK_ROW_LENGTH_EXT, kSrcWidth); 2562 gl_->PixelStorei(GL_UNPACK_ROW_LENGTH_EXT, kSrcWidth);
2559 gl_->PixelStorei(GL_UNPACK_SKIP_PIXELS_EXT, kSrcSubImageX0); 2563 gl_->PixelStorei(GL_UNPACK_SKIP_PIXELS_EXT, kSrcSubImageX0);
(...skipping 22 matching lines...) Expand all
2582 GL_TEXTURE_2D, kLevel, kFormat, 2586 GL_TEXTURE_2D, kLevel, kFormat,
2583 kSrcSubImageWidth, kSrcSubImageHeight, kBorder, kFormat, kType, 2587 kSrcSubImageWidth, kSrcSubImageHeight, kBorder, kFormat, kType,
2584 src_pixels.get()); 2588 src_pixels.get());
2585 texImageExpected.pixel_store_i.Init(GL_UNPACK_ALIGNMENT, alignment); 2589 texImageExpected.pixel_store_i.Init(GL_UNPACK_ALIGNMENT, alignment);
2586 texImageExpected.tex_image_2d.Init( 2590 texImageExpected.tex_image_2d.Init(
2587 GL_TEXTURE_2D, kLevel, kFormat, kSrcSubImageWidth, 2591 GL_TEXTURE_2D, kLevel, kFormat, kSrcSubImageWidth,
2588 kSrcSubImageHeight, kFormat, kType, mem.id, mem.offset); 2592 kSrcSubImageHeight, kFormat, kType, mem.id, mem.offset);
2589 EXPECT_EQ(0, memcmp( 2593 EXPECT_EQ(0, memcmp(
2590 &texImageExpected, commands, sizeof(texImageExpected))); 2594 &texImageExpected, commands, sizeof(texImageExpected)));
2591 } 2595 }
2592 uint32 src_padded_row_size; 2596 uint32_t src_padded_row_size;
2593 ASSERT_TRUE(GLES2Util::ComputeImagePaddedRowSize( 2597 ASSERT_TRUE(GLES2Util::ComputeImagePaddedRowSize(
2594 kSrcWidth, kFormat, kType, alignment, &src_padded_row_size)); 2598 kSrcWidth, kFormat, kType, alignment, &src_padded_row_size));
2595 uint32 bytes_per_group = GLES2Util::ComputeImageGroupSize( 2599 uint32_t bytes_per_group =
2596 kFormat, kType); 2600 GLES2Util::ComputeImageGroupSize(kFormat, kType);
2597 for (int y = 0; y < kSrcSubImageHeight; ++y) { 2601 for (int y = 0; y < kSrcSubImageHeight; ++y) {
2598 const uint8* src_row = src_pixels.get() + 2602 const uint8_t* src_row = src_pixels.get() +
2599 (kSrcSubImageY0 + y) * src_padded_row_size + 2603 (kSrcSubImageY0 + y) * src_padded_row_size +
2600 bytes_per_group * kSrcSubImageX0; 2604 bytes_per_group * kSrcSubImageX0;
2601 const uint8* dst_row = mem.ptr + y * padded_row_size; 2605 const uint8_t* dst_row = mem.ptr + y * padded_row_size;
2602 EXPECT_EQ(0, memcmp(src_row, dst_row, unpadded_row_size)); 2606 EXPECT_EQ(0, memcmp(src_row, dst_row, unpadded_row_size));
2603 } 2607 }
2604 ClearCommands(); 2608 ClearCommands();
2605 } 2609 }
2606 } 2610 }
2607 } 2611 }
2608 2612
2609 // Test texture related calls with invalid arguments. 2613 // Test texture related calls with invalid arguments.
2610 TEST_F(GLES2ImplementationTest, TextureInvalidArguments) { 2614 TEST_F(GLES2ImplementationTest, TextureInvalidArguments) {
2611 struct Cmds { 2615 struct Cmds {
2612 cmds::TexImage2D tex_image_2d; 2616 cmds::TexImage2D tex_image_2d;
2613 cmd::SetToken set_token; 2617 cmd::SetToken set_token;
2614 }; 2618 };
2615 const GLenum kTarget = GL_TEXTURE_2D; 2619 const GLenum kTarget = GL_TEXTURE_2D;
2616 const GLint kLevel = 0; 2620 const GLint kLevel = 0;
2617 const GLenum kFormat = GL_RGB; 2621 const GLenum kFormat = GL_RGB;
2618 const GLsizei kWidth = 3; 2622 const GLsizei kWidth = 3;
2619 const GLsizei kHeight = 4; 2623 const GLsizei kHeight = 4;
2620 const GLint kBorder = 0; 2624 const GLint kBorder = 0;
2621 const GLint kInvalidBorder = 1; 2625 const GLint kInvalidBorder = 1;
2622 const GLenum kType = GL_UNSIGNED_BYTE; 2626 const GLenum kType = GL_UNSIGNED_BYTE;
2623 const GLint kPixelStoreUnpackAlignment = 4; 2627 const GLint kPixelStoreUnpackAlignment = 4;
2624 static uint8 pixels[] = { 2628 static uint8_t pixels[] = {
2625 11, 12, 13, 13, 14, 15, 15, 16, 17, 101, 102, 103, 2629 11, 12, 13, 13, 14, 15, 15, 16, 17, 101, 102, 103, 21, 22, 23,
2626 21, 22, 23, 23, 24, 25, 25, 26, 27, 201, 202, 203, 2630 23, 24, 25, 25, 26, 27, 201, 202, 203, 31, 32, 33, 33, 34, 35,
2627 31, 32, 33, 33, 34, 35, 35, 36, 37, 123, 124, 125, 2631 35, 36, 37, 123, 124, 125, 41, 42, 43, 43, 44, 45, 45, 46, 47,
2628 41, 42, 43, 43, 44, 45, 45, 46, 47,
2629 }; 2632 };
2630 2633
2631 // Verify that something works. 2634 // Verify that something works.
2632 2635
2633 ExpectedMemoryInfo mem1 = GetExpectedMemory(sizeof(pixels)); 2636 ExpectedMemoryInfo mem1 = GetExpectedMemory(sizeof(pixels));
2634 2637
2635 Cmds expected; 2638 Cmds expected;
2636 expected.tex_image_2d.Init( 2639 expected.tex_image_2d.Init(
2637 kTarget, kLevel, kFormat, kWidth, kHeight, kFormat, kType, 2640 kTarget, kLevel, kFormat, kWidth, kHeight, kFormat, kType,
2638 mem1.id, mem1.offset); 2641 mem1.id, mem1.offset);
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
2689 }; 2692 };
2690 const GLenum kTarget = GL_TEXTURE_3D; 2693 const GLenum kTarget = GL_TEXTURE_3D;
2691 const GLint kLevel = 0; 2694 const GLint kLevel = 0;
2692 const GLint kBorder = 0; 2695 const GLint kBorder = 0;
2693 const GLenum kFormat = GL_RGB; 2696 const GLenum kFormat = GL_RGB;
2694 const GLenum kType = GL_UNSIGNED_BYTE; 2697 const GLenum kType = GL_UNSIGNED_BYTE;
2695 const GLint kPixelStoreUnpackAlignment = 4; 2698 const GLint kPixelStoreUnpackAlignment = 4;
2696 const GLsizei kWidth = 3; 2699 const GLsizei kWidth = 3;
2697 const GLsizei kDepth = 2; 2700 const GLsizei kDepth = 2;
2698 2701
2699 uint32 size = 0; 2702 uint32_t size = 0;
2700 uint32 unpadded_row_size = 0; 2703 uint32_t unpadded_row_size = 0;
2701 uint32 padded_row_size = 0; 2704 uint32_t padded_row_size = 0;
2702 ASSERT_TRUE(GLES2Util::ComputeImageDataSizes( 2705 ASSERT_TRUE(GLES2Util::ComputeImageDataSizes(
2703 kWidth, 2, kDepth, kFormat, kType, kPixelStoreUnpackAlignment, 2706 kWidth, 2, kDepth, kFormat, kType, kPixelStoreUnpackAlignment,
2704 &size, &unpadded_row_size, &padded_row_size)); 2707 &size, &unpadded_row_size, &padded_row_size));
2705 // Makes sure we can just send over the data in one command. 2708 // Makes sure we can just send over the data in one command.
2706 const GLsizei kHeight = MaxTransferBufferSize() / padded_row_size / kDepth; 2709 const GLsizei kHeight = MaxTransferBufferSize() / padded_row_size / kDepth;
2707 ASSERT_TRUE(GLES2Util::ComputeImageDataSizes( 2710 ASSERT_TRUE(GLES2Util::ComputeImageDataSizes(
2708 kWidth, kHeight, kDepth, kFormat, kType, kPixelStoreUnpackAlignment, 2711 kWidth, kHeight, kDepth, kFormat, kType, kPixelStoreUnpackAlignment,
2709 &size, NULL, NULL)); 2712 &size, NULL, NULL));
2710 2713
2711 scoped_ptr<uint8[]> pixels(new uint8[size]); 2714 scoped_ptr<uint8_t[]> pixels(new uint8_t[size]);
2712 for (uint32 ii = 0; ii < size; ++ii) { 2715 for (uint32_t ii = 0; ii < size; ++ii) {
2713 pixels[ii] = static_cast<uint8>(ii); 2716 pixels[ii] = static_cast<uint8_t>(ii);
2714 } 2717 }
2715 2718
2716 ExpectedMemoryInfo mem = GetExpectedMemory(size); 2719 ExpectedMemoryInfo mem = GetExpectedMemory(size);
2717 2720
2718 Cmds expected; 2721 Cmds expected;
2719 expected.tex_image_3d.Init( 2722 expected.tex_image_3d.Init(
2720 kTarget, kLevel, kFormat, kWidth, kHeight, kDepth, 2723 kTarget, kLevel, kFormat, kWidth, kHeight, kDepth,
2721 kFormat, kType, mem.id, mem.offset); 2724 kFormat, kType, mem.id, mem.offset);
2722 2725
2723 gl_->TexImage3D( 2726 gl_->TexImage3D(
2724 kTarget, kLevel, kFormat, kWidth, kHeight, kDepth, kBorder, 2727 kTarget, kLevel, kFormat, kWidth, kHeight, kDepth, kBorder,
2725 kFormat, kType, pixels.get()); 2728 kFormat, kType, pixels.get());
2726 2729
2727 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); 2730 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected)));
2728 EXPECT_TRUE(CheckRect( 2731 EXPECT_TRUE(CheckRect(kWidth, kHeight * kDepth, kFormat, kType,
2729 kWidth, kHeight * kDepth, kFormat, kType, kPixelStoreUnpackAlignment, 2732 kPixelStoreUnpackAlignment,
2730 reinterpret_cast<uint8*>(pixels.get()), mem.ptr)); 2733 reinterpret_cast<uint8_t*>(pixels.get()), mem.ptr));
2731 } 2734 }
2732 2735
2733 TEST_F(GLES2ImplementationTest, TexImage3DViaMappedMem) { 2736 TEST_F(GLES2ImplementationTest, TexImage3DViaMappedMem) {
2734 if (!AllowExtraTransferBufferSize()) { 2737 if (!AllowExtraTransferBufferSize()) {
2735 LOG(WARNING) << "Low memory device do not support MappedMem. Skipping test"; 2738 LOG(WARNING) << "Low memory device do not support MappedMem. Skipping test";
2736 return; 2739 return;
2737 } 2740 }
2738 2741
2739 struct Cmds { 2742 struct Cmds {
2740 cmds::TexImage3D tex_image_3d; 2743 cmds::TexImage3D tex_image_3d;
2741 }; 2744 };
2742 const GLenum kTarget = GL_TEXTURE_3D; 2745 const GLenum kTarget = GL_TEXTURE_3D;
2743 const GLint kLevel = 0; 2746 const GLint kLevel = 0;
2744 const GLint kBorder = 0; 2747 const GLint kBorder = 0;
2745 const GLenum kFormat = GL_RGB; 2748 const GLenum kFormat = GL_RGB;
2746 const GLenum kType = GL_UNSIGNED_BYTE; 2749 const GLenum kType = GL_UNSIGNED_BYTE;
2747 const GLint kPixelStoreUnpackAlignment = 4; 2750 const GLint kPixelStoreUnpackAlignment = 4;
2748 const GLsizei kWidth = 3; 2751 const GLsizei kWidth = 3;
2749 const GLsizei kDepth = 2; 2752 const GLsizei kDepth = 2;
2750 2753
2751 uint32 size = 0; 2754 uint32_t size = 0;
2752 uint32 unpadded_row_size = 0; 2755 uint32_t unpadded_row_size = 0;
2753 uint32 padded_row_size = 0; 2756 uint32_t padded_row_size = 0;
2754 ASSERT_TRUE(GLES2Util::ComputeImageDataSizes( 2757 ASSERT_TRUE(GLES2Util::ComputeImageDataSizes(
2755 kWidth, 2, kDepth, kFormat, kType, kPixelStoreUnpackAlignment, 2758 kWidth, 2, kDepth, kFormat, kType, kPixelStoreUnpackAlignment,
2756 &size, &unpadded_row_size, &padded_row_size)); 2759 &size, &unpadded_row_size, &padded_row_size));
2757 // Makes sure we can just send over the data in one command. 2760 // Makes sure we can just send over the data in one command.
2758 const GLsizei kMaxHeight = MaxTransferBufferSize() / padded_row_size / kDepth; 2761 const GLsizei kMaxHeight = MaxTransferBufferSize() / padded_row_size / kDepth;
2759 const GLsizei kHeight = kMaxHeight * 2; 2762 const GLsizei kHeight = kMaxHeight * 2;
2760 ASSERT_TRUE(GLES2Util::ComputeImageDataSizes( 2763 ASSERT_TRUE(GLES2Util::ComputeImageDataSizes(
2761 kWidth, kHeight, kDepth, kFormat, kType, kPixelStoreUnpackAlignment, 2764 kWidth, kHeight, kDepth, kFormat, kType, kPixelStoreUnpackAlignment,
2762 &size, NULL, NULL)); 2765 &size, NULL, NULL));
2763 2766
2764 scoped_ptr<uint8[]> pixels(new uint8[size]); 2767 scoped_ptr<uint8_t[]> pixels(new uint8_t[size]);
2765 for (uint32 ii = 0; ii < size; ++ii) { 2768 for (uint32_t ii = 0; ii < size; ++ii) {
2766 pixels[ii] = static_cast<uint8>(ii); 2769 pixels[ii] = static_cast<uint8_t>(ii);
2767 } 2770 }
2768 2771
2769 ExpectedMemoryInfo mem = GetExpectedMappedMemory(size); 2772 ExpectedMemoryInfo mem = GetExpectedMappedMemory(size);
2770 2773
2771 Cmds expected; 2774 Cmds expected;
2772 expected.tex_image_3d.Init( 2775 expected.tex_image_3d.Init(
2773 kTarget, kLevel, kFormat, kWidth, kHeight, kDepth, 2776 kTarget, kLevel, kFormat, kWidth, kHeight, kDepth,
2774 kFormat, kType, mem.id, mem.offset); 2777 kFormat, kType, mem.id, mem.offset);
2775 2778
2776 gl_->TexImage3D( 2779 gl_->TexImage3D(
2777 kTarget, kLevel, kFormat, kWidth, kHeight, kDepth, kBorder, 2780 kTarget, kLevel, kFormat, kWidth, kHeight, kDepth, kBorder,
2778 kFormat, kType, pixels.get()); 2781 kFormat, kType, pixels.get());
2779 2782
2780 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); 2783 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected)));
2781 EXPECT_TRUE(CheckRect( 2784 EXPECT_TRUE(CheckRect(kWidth, kHeight * kDepth, kFormat, kType,
2782 kWidth, kHeight * kDepth, kFormat, kType, kPixelStoreUnpackAlignment, 2785 kPixelStoreUnpackAlignment,
2783 reinterpret_cast<uint8*>(pixels.get()), mem.ptr)); 2786 reinterpret_cast<uint8_t*>(pixels.get()), mem.ptr));
2784 } 2787 }
2785 2788
2786 TEST_F(GLES2ImplementationTest, TexImage3DViaTexSubImage3D) { 2789 TEST_F(GLES2ImplementationTest, TexImage3DViaTexSubImage3D) {
2787 // Set limit to 1 to effectively disable mapped memory. 2790 // Set limit to 1 to effectively disable mapped memory.
2788 SetMappedMemoryLimit(1); 2791 SetMappedMemoryLimit(1);
2789 2792
2790 struct Cmds { 2793 struct Cmds {
2791 cmds::TexImage3D tex_image_3d; 2794 cmds::TexImage3D tex_image_3d;
2792 cmds::TexSubImage3D tex_sub_image_3d1; 2795 cmds::TexSubImage3D tex_sub_image_3d1;
2793 cmd::SetToken set_token; 2796 cmd::SetToken set_token;
2794 cmds::TexSubImage3D tex_sub_image_3d2; 2797 cmds::TexSubImage3D tex_sub_image_3d2;
2795 }; 2798 };
2796 const GLenum kTarget = GL_TEXTURE_3D; 2799 const GLenum kTarget = GL_TEXTURE_3D;
2797 const GLint kLevel = 0; 2800 const GLint kLevel = 0;
2798 const GLint kBorder = 0; 2801 const GLint kBorder = 0;
2799 const GLenum kFormat = GL_RGB; 2802 const GLenum kFormat = GL_RGB;
2800 const GLenum kType = GL_UNSIGNED_BYTE; 2803 const GLenum kType = GL_UNSIGNED_BYTE;
2801 const GLint kPixelStoreUnpackAlignment = 4; 2804 const GLint kPixelStoreUnpackAlignment = 4;
2802 const GLsizei kWidth = 3; 2805 const GLsizei kWidth = 3;
2803 2806
2804 uint32 size = 0; 2807 uint32_t size = 0;
2805 uint32 unpadded_row_size = 0; 2808 uint32_t unpadded_row_size = 0;
2806 uint32 padded_row_size = 0; 2809 uint32_t padded_row_size = 0;
2807 ASSERT_TRUE(GLES2Util::ComputeImageDataSizes( 2810 ASSERT_TRUE(GLES2Util::ComputeImageDataSizes(
2808 kWidth, 2, 1, kFormat, kType, kPixelStoreUnpackAlignment, 2811 kWidth, 2, 1, kFormat, kType, kPixelStoreUnpackAlignment,
2809 &size, &unpadded_row_size, &padded_row_size)); 2812 &size, &unpadded_row_size, &padded_row_size));
2810 // Makes sure the data is more than one command can hold. 2813 // Makes sure the data is more than one command can hold.
2811 const GLsizei kHeight = MaxTransferBufferSize() / padded_row_size + 3; 2814 const GLsizei kHeight = MaxTransferBufferSize() / padded_row_size + 3;
2812 ASSERT_TRUE(GLES2Util::ComputeImageDataSizes( 2815 ASSERT_TRUE(GLES2Util::ComputeImageDataSizes(
2813 kWidth, kHeight, 1, kFormat, kType, kPixelStoreUnpackAlignment, 2816 kWidth, kHeight, 1, kFormat, kType, kPixelStoreUnpackAlignment,
2814 &size, NULL, NULL)); 2817 &size, NULL, NULL));
2815 uint32 first_size = padded_row_size * (kHeight - 3); 2818 uint32_t first_size = padded_row_size * (kHeight - 3);
2816 uint32 second_size = 2819 uint32_t second_size =
2817 padded_row_size * 3 - (padded_row_size - unpadded_row_size); 2820 padded_row_size * 3 - (padded_row_size - unpadded_row_size);
2818 EXPECT_EQ(size, first_size + second_size); 2821 EXPECT_EQ(size, first_size + second_size);
2819 ExpectedMemoryInfo mem1 = GetExpectedMemory(first_size); 2822 ExpectedMemoryInfo mem1 = GetExpectedMemory(first_size);
2820 ExpectedMemoryInfo mem2 = GetExpectedMemory(second_size); 2823 ExpectedMemoryInfo mem2 = GetExpectedMemory(second_size);
2821 scoped_ptr<uint8[]> pixels(new uint8[size]); 2824 scoped_ptr<uint8_t[]> pixels(new uint8_t[size]);
2822 for (uint32 ii = 0; ii < size; ++ii) { 2825 for (uint32_t ii = 0; ii < size; ++ii) {
2823 pixels[ii] = static_cast<uint8>(ii); 2826 pixels[ii] = static_cast<uint8_t>(ii);
2824 } 2827 }
2825 2828
2826 Cmds expected; 2829 Cmds expected;
2827 expected.tex_image_3d.Init( 2830 expected.tex_image_3d.Init(
2828 kTarget, kLevel, kFormat, kWidth, kHeight, 1, kFormat, kType, 0, 0); 2831 kTarget, kLevel, kFormat, kWidth, kHeight, 1, kFormat, kType, 0, 0);
2829 expected.tex_sub_image_3d1.Init( 2832 expected.tex_sub_image_3d1.Init(
2830 kTarget, kLevel, 0, 0, 0, kWidth, kHeight - 3, 1, kFormat, kType, 2833 kTarget, kLevel, 0, 0, 0, kWidth, kHeight - 3, 1, kFormat, kType,
2831 mem1.id, mem1.offset, GL_TRUE); 2834 mem1.id, mem1.offset, GL_TRUE);
2832 expected.tex_sub_image_3d2.Init( 2835 expected.tex_sub_image_3d2.Init(
2833 kTarget, kLevel, 0, kHeight - 3, 0, kWidth, 3, 1, kFormat, kType, 2836 kTarget, kLevel, 0, kHeight - 3, 0, kWidth, 3, 1, kFormat, kType,
(...skipping 21 matching lines...) Expand all
2855 const GLint kLevel = 0; 2858 const GLint kLevel = 0;
2856 const GLint kXOffset = 0; 2859 const GLint kXOffset = 0;
2857 const GLint kYOffset = 0; 2860 const GLint kYOffset = 0;
2858 const GLint kZOffset = 0; 2861 const GLint kZOffset = 0;
2859 const GLenum kFormat = GL_RGB; 2862 const GLenum kFormat = GL_RGB;
2860 const GLenum kType = GL_UNSIGNED_BYTE; 2863 const GLenum kType = GL_UNSIGNED_BYTE;
2861 const GLint kPixelStoreUnpackAlignment = 4; 2864 const GLint kPixelStoreUnpackAlignment = 4;
2862 const GLsizei kWidth = 3; 2865 const GLsizei kWidth = 3;
2863 const GLsizei kDepth = 2; 2866 const GLsizei kDepth = 2;
2864 2867
2865 uint32 size = 0; 2868 uint32_t size = 0;
2866 uint32 unpadded_row_size = 0; 2869 uint32_t unpadded_row_size = 0;
2867 uint32 padded_row_size = 0; 2870 uint32_t padded_row_size = 0;
2868 ASSERT_TRUE(GLES2Util::ComputeImageDataSizes( 2871 ASSERT_TRUE(GLES2Util::ComputeImageDataSizes(
2869 kWidth, 2, 1, kFormat, kType, kPixelStoreUnpackAlignment, 2872 kWidth, 2, 1, kFormat, kType, kPixelStoreUnpackAlignment,
2870 &size, &unpadded_row_size, &padded_row_size)); 2873 &size, &unpadded_row_size, &padded_row_size));
2871 const GLsizei kHeight = MaxTransferBufferSize() / padded_row_size + 2; 2874 const GLsizei kHeight = MaxTransferBufferSize() / padded_row_size + 2;
2872 ASSERT_TRUE(GLES2Util::ComputeImageDataSizes( 2875 ASSERT_TRUE(GLES2Util::ComputeImageDataSizes(
2873 kWidth, kHeight, kDepth, kFormat, kType, kPixelStoreUnpackAlignment, 2876 kWidth, kHeight, kDepth, kFormat, kType, kPixelStoreUnpackAlignment,
2874 &size, NULL, NULL)); 2877 &size, NULL, NULL));
2875 uint32 first_size = (kHeight - 2) * padded_row_size; 2878 uint32_t first_size = (kHeight - 2) * padded_row_size;
2876 uint32 second_size = 2 * padded_row_size; 2879 uint32_t second_size = 2 * padded_row_size;
2877 uint32 third_size = first_size; 2880 uint32_t third_size = first_size;
2878 uint32 fourth_size = second_size - (padded_row_size - unpadded_row_size); 2881 uint32_t fourth_size = second_size - (padded_row_size - unpadded_row_size);
2879 EXPECT_EQ(size, first_size + second_size + third_size + fourth_size); 2882 EXPECT_EQ(size, first_size + second_size + third_size + fourth_size);
2880 2883
2881 scoped_ptr<uint8[]> pixels(new uint8[size]); 2884 scoped_ptr<uint8_t[]> pixels(new uint8_t[size]);
2882 for (uint32 ii = 0; ii < size; ++ii) { 2885 for (uint32_t ii = 0; ii < size; ++ii) {
2883 pixels[ii] = static_cast<uint8>(ii); 2886 pixels[ii] = static_cast<uint8_t>(ii);
2884 } 2887 }
2885 2888
2886 ExpectedMemoryInfo mem1_1 = GetExpectedMemory(first_size); 2889 ExpectedMemoryInfo mem1_1 = GetExpectedMemory(first_size);
2887 ExpectedMemoryInfo mem1_2 = GetExpectedMemory(second_size); 2890 ExpectedMemoryInfo mem1_2 = GetExpectedMemory(second_size);
2888 ExpectedMemoryInfo mem2_1 = GetExpectedMemory(third_size); 2891 ExpectedMemoryInfo mem2_1 = GetExpectedMemory(third_size);
2889 ExpectedMemoryInfo mem2_2 = GetExpectedMemory(fourth_size); 2892 ExpectedMemoryInfo mem2_2 = GetExpectedMemory(fourth_size);
2890 2893
2891 Cmds expected; 2894 Cmds expected;
2892 expected.tex_sub_image_3d1_1.Init( 2895 expected.tex_sub_image_3d1_1.Init(
2893 kTarget, kLevel, kXOffset, kYOffset, kZOffset, 2896 kTarget, kLevel, kXOffset, kYOffset, kZOffset,
(...skipping 11 matching lines...) Expand all
2905 kWidth, 2, 1, kFormat, kType, mem2_2.id, mem2_2.offset, GL_FALSE); 2908 kWidth, 2, 1, kFormat, kType, mem2_2.id, mem2_2.offset, GL_FALSE);
2906 expected.set_token1.Init(GetNextToken()); 2909 expected.set_token1.Init(GetNextToken());
2907 expected.set_token2.Init(GetNextToken()); 2910 expected.set_token2.Init(GetNextToken());
2908 expected.set_token3.Init(GetNextToken()); 2911 expected.set_token3.Init(GetNextToken());
2909 2912
2910 gl_->TexSubImage3D( 2913 gl_->TexSubImage3D(
2911 kTarget, kLevel, kXOffset, kYOffset, kZOffset, kWidth, kHeight, kDepth, 2914 kTarget, kLevel, kXOffset, kYOffset, kZOffset, kWidth, kHeight, kDepth,
2912 kFormat, kType, pixels.get()); 2915 kFormat, kType, pixels.get());
2913 2916
2914 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); 2917 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected)));
2915 uint32 offset_to_last = first_size + second_size + third_size; 2918 uint32_t offset_to_last = first_size + second_size + third_size;
2916 EXPECT_TRUE(CheckRect( 2919 EXPECT_TRUE(CheckRect(
2917 kWidth, 2, kFormat, kType, kPixelStoreUnpackAlignment, 2920 kWidth, 2, kFormat, kType, kPixelStoreUnpackAlignment,
2918 reinterpret_cast<uint8*>(pixels.get()) + offset_to_last, mem2_2.ptr)); 2921 reinterpret_cast<uint8_t*>(pixels.get()) + offset_to_last, mem2_2.ptr));
2919 } 2922 }
2920 2923
2921 // glGen* Ids must not be reused until glDelete* commands have been 2924 // glGen* Ids must not be reused until glDelete* commands have been
2922 // flushed by glFlush. 2925 // flushed by glFlush.
2923 TEST_F(GLES2ImplementationStrictSharedTest, FlushGenerationTestBuffers) { 2926 TEST_F(GLES2ImplementationStrictSharedTest, FlushGenerationTestBuffers) {
2924 FlushGenerationTest<GenBuffersAPI>(); 2927 FlushGenerationTest<GenBuffersAPI>();
2925 } 2928 }
2926 TEST_F(GLES2ImplementationStrictSharedTest, FlushGenerationTestFramebuffers) { 2929 TEST_F(GLES2ImplementationStrictSharedTest, FlushGenerationTestFramebuffers) {
2927 FlushGenerationTest<GenFramebuffersAPI>(); 2930 FlushGenerationTest<GenFramebuffersAPI>();
2928 } 2931 }
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
2964 TEST_F(GLES2ImplementationStrictSharedTest, 2967 TEST_F(GLES2ImplementationStrictSharedTest,
2965 CrossContextGenerationAutoFlushTestRenderbuffers) { 2968 CrossContextGenerationAutoFlushTestRenderbuffers) {
2966 CrossContextGenerationAutoFlushTest<GenRenderbuffersAPI>(); 2969 CrossContextGenerationAutoFlushTest<GenRenderbuffersAPI>();
2967 } 2970 }
2968 TEST_F(GLES2ImplementationStrictSharedTest, 2971 TEST_F(GLES2ImplementationStrictSharedTest,
2969 CrossContextGenerationAutoFlushTestTextures) { 2972 CrossContextGenerationAutoFlushTestTextures) {
2970 CrossContextGenerationAutoFlushTest<GenTexturesAPI>(); 2973 CrossContextGenerationAutoFlushTest<GenTexturesAPI>();
2971 } 2974 }
2972 2975
2973 TEST_F(GLES2ImplementationTest, GetString) { 2976 TEST_F(GLES2ImplementationTest, GetString) {
2974 const uint32 kBucketId = GLES2Implementation::kResultBucketId; 2977 const uint32_t kBucketId = GLES2Implementation::kResultBucketId;
2975 const Str7 kString = {"foobar"}; 2978 const Str7 kString = {"foobar"};
2976 // GL_CHROMIUM_map_sub is hard coded into GLES2Implementation. 2979 // GL_CHROMIUM_map_sub is hard coded into GLES2Implementation.
2977 const char* expected_str = 2980 const char* expected_str =
2978 "foobar " 2981 "foobar "
2979 "GL_EXT_unpack_subimage " 2982 "GL_EXT_unpack_subimage "
2980 "GL_CHROMIUM_map_sub"; 2983 "GL_CHROMIUM_map_sub";
2981 const char kBad = 0x12; 2984 const char kBad = 0x12;
2982 struct Cmds { 2985 struct Cmds {
2983 cmd::SetBucketSize set_bucket_size1; 2986 cmd::SetBucketSize set_bucket_size1;
2984 cmds::GetString get_string; 2987 cmds::GetString get_string;
2985 cmd::GetBucketStart get_bucket_start; 2988 cmd::GetBucketStart get_bucket_start;
2986 cmd::SetToken set_token1; 2989 cmd::SetToken set_token1;
2987 cmd::SetBucketSize set_bucket_size2; 2990 cmd::SetBucketSize set_bucket_size2;
2988 }; 2991 };
2989 ExpectedMemoryInfo mem1 = GetExpectedMemory(MaxTransferBufferSize()); 2992 ExpectedMemoryInfo mem1 = GetExpectedMemory(MaxTransferBufferSize());
2990 ExpectedMemoryInfo result1 = 2993 ExpectedMemoryInfo result1 =
2991 GetExpectedResultMemory(sizeof(cmd::GetBucketStart::Result)); 2994 GetExpectedResultMemory(sizeof(cmd::GetBucketStart::Result));
2992 Cmds expected; 2995 Cmds expected;
2993 expected.set_bucket_size1.Init(kBucketId, 0); 2996 expected.set_bucket_size1.Init(kBucketId, 0);
2994 expected.get_string.Init(GL_EXTENSIONS, kBucketId); 2997 expected.get_string.Init(GL_EXTENSIONS, kBucketId);
2995 expected.get_bucket_start.Init( 2998 expected.get_bucket_start.Init(
2996 kBucketId, result1.id, result1.offset, 2999 kBucketId, result1.id, result1.offset,
2997 MaxTransferBufferSize(), mem1.id, mem1.offset); 3000 MaxTransferBufferSize(), mem1.id, mem1.offset);
2998 expected.set_token1.Init(GetNextToken()); 3001 expected.set_token1.Init(GetNextToken());
2999 expected.set_bucket_size2.Init(kBucketId, 0); 3002 expected.set_bucket_size2.Init(kBucketId, 0);
3000 char buf[sizeof(kString) + 1]; 3003 char buf[sizeof(kString) + 1];
3001 memset(buf, kBad, sizeof(buf)); 3004 memset(buf, kBad, sizeof(buf));
3002 3005
3003 EXPECT_CALL(*command_buffer(), OnFlush()) 3006 EXPECT_CALL(*command_buffer(), OnFlush())
3004 .WillOnce(DoAll(SetMemory(result1.ptr, uint32(sizeof(kString))), 3007 .WillOnce(DoAll(SetMemory(result1.ptr, uint32_t(sizeof(kString))),
3005 SetMemory(mem1.ptr, kString))) 3008 SetMemory(mem1.ptr, kString)))
3006 .RetiresOnSaturation(); 3009 .RetiresOnSaturation();
3007 3010
3008 const GLubyte* result = gl_->GetString(GL_EXTENSIONS); 3011 const GLubyte* result = gl_->GetString(GL_EXTENSIONS);
3009 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); 3012 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected)));
3010 EXPECT_STREQ(expected_str, reinterpret_cast<const char*>(result)); 3013 EXPECT_STREQ(expected_str, reinterpret_cast<const char*>(result));
3011 } 3014 }
3012 3015
3013 TEST_F(GLES2ImplementationTest, PixelStoreiGLPackReverseRowOrderANGLE) { 3016 TEST_F(GLES2ImplementationTest, PixelStoreiGLPackReverseRowOrderANGLE) {
3014 const uint32 kBucketId = GLES2Implementation::kResultBucketId; 3017 const uint32_t kBucketId = GLES2Implementation::kResultBucketId;
3015 const Str7 kString = {"foobar"}; 3018 const Str7 kString = {"foobar"};
3016 struct Cmds { 3019 struct Cmds {
3017 cmd::SetBucketSize set_bucket_size1; 3020 cmd::SetBucketSize set_bucket_size1;
3018 cmds::GetString get_string; 3021 cmds::GetString get_string;
3019 cmd::GetBucketStart get_bucket_start; 3022 cmd::GetBucketStart get_bucket_start;
3020 cmd::SetToken set_token1; 3023 cmd::SetToken set_token1;
3021 cmd::SetBucketSize set_bucket_size2; 3024 cmd::SetBucketSize set_bucket_size2;
3022 cmds::PixelStorei pixel_store; 3025 cmds::PixelStorei pixel_store;
3023 }; 3026 };
3024 3027
3025 ExpectedMemoryInfo mem1 = GetExpectedMemory(MaxTransferBufferSize()); 3028 ExpectedMemoryInfo mem1 = GetExpectedMemory(MaxTransferBufferSize());
3026 ExpectedMemoryInfo result1 = 3029 ExpectedMemoryInfo result1 =
3027 GetExpectedResultMemory(sizeof(cmd::GetBucketStart::Result)); 3030 GetExpectedResultMemory(sizeof(cmd::GetBucketStart::Result));
3028 3031
3029 Cmds expected; 3032 Cmds expected;
3030 expected.set_bucket_size1.Init(kBucketId, 0); 3033 expected.set_bucket_size1.Init(kBucketId, 0);
3031 expected.get_string.Init(GL_EXTENSIONS, kBucketId); 3034 expected.get_string.Init(GL_EXTENSIONS, kBucketId);
3032 expected.get_bucket_start.Init( 3035 expected.get_bucket_start.Init(
3033 kBucketId, result1.id, result1.offset, 3036 kBucketId, result1.id, result1.offset,
3034 MaxTransferBufferSize(), mem1.id, mem1.offset); 3037 MaxTransferBufferSize(), mem1.id, mem1.offset);
3035 expected.set_token1.Init(GetNextToken()); 3038 expected.set_token1.Init(GetNextToken());
3036 expected.set_bucket_size2.Init(kBucketId, 0); 3039 expected.set_bucket_size2.Init(kBucketId, 0);
3037 expected.pixel_store.Init(GL_PACK_REVERSE_ROW_ORDER_ANGLE, 1); 3040 expected.pixel_store.Init(GL_PACK_REVERSE_ROW_ORDER_ANGLE, 1);
3038 3041
3039 EXPECT_CALL(*command_buffer(), OnFlush()) 3042 EXPECT_CALL(*command_buffer(), OnFlush())
3040 .WillOnce(DoAll(SetMemory(result1.ptr, uint32(sizeof(kString))), 3043 .WillOnce(DoAll(SetMemory(result1.ptr, uint32_t(sizeof(kString))),
3041 SetMemory(mem1.ptr, kString))) 3044 SetMemory(mem1.ptr, kString)))
3042 .RetiresOnSaturation(); 3045 .RetiresOnSaturation();
3043 3046
3044 gl_->PixelStorei(GL_PACK_REVERSE_ROW_ORDER_ANGLE, 1); 3047 gl_->PixelStorei(GL_PACK_REVERSE_ROW_ORDER_ANGLE, 1);
3045 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); 3048 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected)));
3046 } 3049 }
3047 3050
3048 TEST_F(GLES2ImplementationTest, CreateProgram) { 3051 TEST_F(GLES2ImplementationTest, CreateProgram) {
3049 struct Cmds { 3052 struct Cmds {
3050 cmds::CreateProgram cmd; 3053 cmds::CreateProgram cmd;
3051 }; 3054 };
3052 3055
3053 Cmds expected; 3056 Cmds expected;
3054 expected.cmd.Init(kProgramsAndShadersStartId); 3057 expected.cmd.Init(kProgramsAndShadersStartId);
3055 GLuint id = gl_->CreateProgram(); 3058 GLuint id = gl_->CreateProgram();
3056 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); 3059 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected)));
3057 EXPECT_EQ(kProgramsAndShadersStartId, id); 3060 EXPECT_EQ(kProgramsAndShadersStartId, id);
3058 } 3061 }
3059 3062
3060 TEST_F(GLES2ImplementationTest, BufferDataLargerThanTransferBuffer) { 3063 TEST_F(GLES2ImplementationTest, BufferDataLargerThanTransferBuffer) {
3061 struct Cmds { 3064 struct Cmds {
3062 cmds::BufferData set_size; 3065 cmds::BufferData set_size;
3063 cmds::BufferSubData copy_data1; 3066 cmds::BufferSubData copy_data1;
3064 cmd::SetToken set_token1; 3067 cmd::SetToken set_token1;
3065 cmds::BufferSubData copy_data2; 3068 cmds::BufferSubData copy_data2;
3066 cmd::SetToken set_token2; 3069 cmd::SetToken set_token2;
3067 }; 3070 };
3068 const unsigned kUsableSize = 3071 const unsigned kUsableSize =
3069 kTransferBufferSize - GLES2Implementation::kStartingOffset; 3072 kTransferBufferSize - GLES2Implementation::kStartingOffset;
3070 uint8 buf[kUsableSize * 2] = { 0, }; 3073 uint8_t buf[kUsableSize * 2] = {
3074 0,
3075 };
3071 3076
3072 ExpectedMemoryInfo mem1 = GetExpectedMemory(kUsableSize); 3077 ExpectedMemoryInfo mem1 = GetExpectedMemory(kUsableSize);
3073 ExpectedMemoryInfo mem2 = GetExpectedMemory(kUsableSize); 3078 ExpectedMemoryInfo mem2 = GetExpectedMemory(kUsableSize);
3074 3079
3075 Cmds expected; 3080 Cmds expected;
3076 expected.set_size.Init( 3081 expected.set_size.Init(
3077 GL_ARRAY_BUFFER, arraysize(buf), 0, 0, GL_DYNAMIC_DRAW); 3082 GL_ARRAY_BUFFER, arraysize(buf), 0, 0, GL_DYNAMIC_DRAW);
3078 expected.copy_data1.Init( 3083 expected.copy_data1.Init(
3079 GL_ARRAY_BUFFER, 0, kUsableSize, mem1.id, mem1.offset); 3084 GL_ARRAY_BUFFER, 0, kUsableSize, mem1.id, mem1.offset);
3080 expected.set_token1.Init(GetNextToken()); 3085 expected.set_token1.Init(GetNextToken());
(...skipping 501 matching lines...) Expand 10 before | Expand all | Expand 10 after
3582 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected))); 3587 EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected)));
3583 } 3588 }
3584 3589
3585 TEST_F(GLES2ImplementationTest, LimitSizeAndOffsetTo32Bit) { 3590 TEST_F(GLES2ImplementationTest, LimitSizeAndOffsetTo32Bit) {
3586 GLsizeiptr size; 3591 GLsizeiptr size;
3587 GLintptr offset; 3592 GLintptr offset;
3588 if (sizeof(size) <= 4 || sizeof(offset) <= 4) 3593 if (sizeof(size) <= 4 || sizeof(offset) <= 4)
3589 return; 3594 return;
3590 // The below two casts should be no-op, as we return early if 3595 // The below two casts should be no-op, as we return early if
3591 // it's 32-bit system. 3596 // it's 32-bit system.
3592 int64 value64 = 0x100000000; 3597 int64_t value64 = 0x100000000;
3593 size = static_cast<GLsizeiptr>(value64); 3598 size = static_cast<GLsizeiptr>(value64);
3594 offset = static_cast<GLintptr>(value64); 3599 offset = static_cast<GLintptr>(value64);
3595 3600
3596 const char kSizeOverflowMessage[] = "size more than 32-bit"; 3601 const char kSizeOverflowMessage[] = "size more than 32-bit";
3597 const char kOffsetOverflowMessage[] = "offset more than 32-bit"; 3602 const char kOffsetOverflowMessage[] = "offset more than 32-bit";
3598 3603
3599 const GLfloat buf[] = { 1.0, 1.0, 1.0, 1.0 }; 3604 const GLfloat buf[] = { 1.0, 1.0, 1.0, 1.0 };
3600 const GLubyte indices[] = { 0 }; 3605 const GLubyte indices[] = { 0 };
3601 3606
3602 const GLuint kClientArrayBufferId = 0x789; 3607 const GLuint kClientArrayBufferId = 0x789;
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
3680 3685
3681 // VertexAttribPointer: offset 3686 // VertexAttribPointer: offset
3682 gl_->VertexAttribPointer( 3687 gl_->VertexAttribPointer(
3683 kAttribIndex, 1, GL_FLOAT, GL_FALSE, kStride, 3688 kAttribIndex, 1, GL_FLOAT, GL_FALSE, kStride,
3684 reinterpret_cast<void*>(offset)); 3689 reinterpret_cast<void*>(offset));
3685 EXPECT_EQ(GL_INVALID_OPERATION, CheckError()); 3690 EXPECT_EQ(GL_INVALID_OPERATION, CheckError());
3686 EXPECT_STREQ(kOffsetOverflowMessage, GetLastError().c_str()); 3691 EXPECT_STREQ(kOffsetOverflowMessage, GetLastError().c_str());
3687 } 3692 }
3688 3693
3689 TEST_F(GLES2ImplementationTest, TraceBeginCHROMIUM) { 3694 TEST_F(GLES2ImplementationTest, TraceBeginCHROMIUM) {
3690 const uint32 kCategoryBucketId = GLES2Implementation::kResultBucketId; 3695 const uint32_t kCategoryBucketId = GLES2Implementation::kResultBucketId;
3691 const uint32 kNameBucketId = GLES2Implementation::kResultBucketId + 1; 3696 const uint32_t kNameBucketId = GLES2Implementation::kResultBucketId + 1;
3692 const std::string category_name = "test category"; 3697 const std::string category_name = "test category";
3693 const std::string trace_name = "test trace"; 3698 const std::string trace_name = "test trace";
3694 const size_t kPaddedString1Size = 3699 const size_t kPaddedString1Size =
3695 transfer_buffer_->RoundToAlignment(category_name.size() + 1); 3700 transfer_buffer_->RoundToAlignment(category_name.size() + 1);
3696 const size_t kPaddedString2Size = 3701 const size_t kPaddedString2Size =
3697 transfer_buffer_->RoundToAlignment(trace_name.size() + 1); 3702 transfer_buffer_->RoundToAlignment(trace_name.size() + 1);
3698 3703
3699 gl_->TraceBeginCHROMIUM(category_name.c_str(), trace_name.c_str()); 3704 gl_->TraceBeginCHROMIUM(category_name.c_str(), trace_name.c_str());
3700 EXPECT_EQ(GL_NO_ERROR, CheckError()); 3705 EXPECT_EQ(GL_NO_ERROR, CheckError());
3701 3706
(...skipping 547 matching lines...) Expand 10 before | Expand all | Expand 10 after
4249 init_options.bind_generates_resource_service = false; 4254 init_options.bind_generates_resource_service = false;
4250 EXPECT_FALSE(Initialize(init_options)); 4255 EXPECT_FALSE(Initialize(init_options));
4251 } 4256 }
4252 4257
4253 TEST_F(GLES2ImplementationManualInitTest, FailInitOnTransferBufferFail) { 4258 TEST_F(GLES2ImplementationManualInitTest, FailInitOnTransferBufferFail) {
4254 ContextInitOptions init_options; 4259 ContextInitOptions init_options;
4255 init_options.transfer_buffer_initialize_fail = true; 4260 init_options.transfer_buffer_initialize_fail = true;
4256 EXPECT_FALSE(Initialize(init_options)); 4261 EXPECT_FALSE(Initialize(init_options));
4257 } 4262 }
4258 4263
4264 #include "base/macros.h"
4259 #include "gpu/command_buffer/client/gles2_implementation_unittest_autogen.h" 4265 #include "gpu/command_buffer/client/gles2_implementation_unittest_autogen.h"
4260 4266
4261 } // namespace gles2 4267 } // namespace gles2
4262 } // namespace gpu 4268 } // namespace gpu
OLDNEW
« no previous file with comments | « gpu/command_buffer/client/gles2_implementation.cc ('k') | gpu/command_buffer/client/gles2_implementation_unittest_autogen.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698