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

Side by Side Diff: gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc

Issue 1528163002: Added 64 bit number support in the build gles2 command buffer script. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Modifyed glClientWaitSync and glWaitSync to use GLuint64 in command buffer 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 #include "gpu/command_buffer/service/gles2_cmd_decoder_unittest.h" 5 #include "gpu/command_buffer/service/gles2_cmd_decoder_unittest.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/strings/string_number_conversions.h" 8 #include "base/strings/string_number_conversions.h"
9 #include "gpu/command_buffer/common/gles2_cmd_format.h" 9 #include "gpu/command_buffer/common/gles2_cmd_format.h"
10 #include "gpu/command_buffer/common/gles2_cmd_utils.h" 10 #include "gpu/command_buffer/common/gles2_cmd_utils.h"
(...skipping 312 matching lines...) Expand 10 before | Expand all | Expand 10 after
323 EXPECT_EQ(kNumSampleCounts, result->GetData()[0]); 323 EXPECT_EQ(kNumSampleCounts, result->GetData()[0]);
324 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 324 EXPECT_EQ(GL_NO_ERROR, GetGLError());
325 decoder_->set_unsafe_es3_apis_enabled(false); 325 decoder_->set_unsafe_es3_apis_enabled(false);
326 EXPECT_EQ(error::kUnknownCommand, ExecuteCmd(cmd)); 326 EXPECT_EQ(error::kUnknownCommand, ExecuteCmd(cmd));
327 } 327 }
328 328
329 TEST_P(GLES3DecoderTest, ClientWaitSyncValid) { 329 TEST_P(GLES3DecoderTest, ClientWaitSyncValid) {
330 typedef cmds::ClientWaitSync::Result Result; 330 typedef cmds::ClientWaitSync::Result Result;
331 Result* result = static_cast<Result*>(shared_memory_address_); 331 Result* result = static_cast<Result*>(shared_memory_address_);
332 cmds::ClientWaitSync cmd; 332 cmds::ClientWaitSync cmd;
333 uint32_t v32_0 = 0, v32_1 = 0; 333 cmd.Init(client_sync_id_, GL_SYNC_FLUSH_COMMANDS_BIT, 0,
334 GLES2Util::MapUint64ToTwoUint32(0, &v32_0, &v32_1);
335 cmd.Init(client_sync_id_, GL_SYNC_FLUSH_COMMANDS_BIT, v32_0, v32_1,
336 shared_memory_id_, shared_memory_offset_); 334 shared_memory_id_, shared_memory_offset_);
337 EXPECT_CALL(*gl_, 335 EXPECT_CALL(*gl_,
338 ClientWaitSync(reinterpret_cast<GLsync>(kServiceSyncId), 336 ClientWaitSync(reinterpret_cast<GLsync>(kServiceSyncId),
339 GL_SYNC_FLUSH_COMMANDS_BIT, 0)) 337 GL_SYNC_FLUSH_COMMANDS_BIT, 0))
340 .WillOnce(Return(GL_CONDITION_SATISFIED)) 338 .WillOnce(Return(GL_CONDITION_SATISFIED))
341 .RetiresOnSaturation(); 339 .RetiresOnSaturation();
342 *result = GL_WAIT_FAILED; 340 *result = GL_WAIT_FAILED;
343 decoder_->set_unsafe_es3_apis_enabled(true); 341 decoder_->set_unsafe_es3_apis_enabled(true);
344 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 342 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
345 EXPECT_EQ(static_cast<GLenum>(GL_CONDITION_SATISFIED), *result); 343 EXPECT_EQ(static_cast<GLenum>(GL_CONDITION_SATISFIED), *result);
346 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 344 EXPECT_EQ(GL_NO_ERROR, GetGLError());
347 decoder_->set_unsafe_es3_apis_enabled(false); 345 decoder_->set_unsafe_es3_apis_enabled(false);
348 EXPECT_EQ(error::kUnknownCommand, ExecuteCmd(cmd)); 346 EXPECT_EQ(error::kUnknownCommand, ExecuteCmd(cmd));
349 } 347 }
350 348
351 TEST_P(GLES2DecoderTest, ClientWaitSyncNonZeroTimeoutValid) { 349 TEST_P(GLES2DecoderTest, ClientWaitSyncNonZeroTimeoutValid) {
352 typedef cmds::ClientWaitSync::Result Result; 350 typedef cmds::ClientWaitSync::Result Result;
353 Result* result = static_cast<Result*>(shared_memory_address_); 351 Result* result = static_cast<Result*>(shared_memory_address_);
354 cmds::ClientWaitSync cmd; 352 cmds::ClientWaitSync cmd;
355 const GLuint64 kTimeout = 0xABCDEF0123456789; 353 const GLuint64 kTimeout = 0xABCDEF0123456789;
356 uint32_t v32_0 = 0, v32_1 = 0; 354 cmd.Init(client_sync_id_, GL_SYNC_FLUSH_COMMANDS_BIT, kTimeout,
357 GLES2Util::MapUint64ToTwoUint32(kTimeout, &v32_0, &v32_1);
358 cmd.Init(client_sync_id_, GL_SYNC_FLUSH_COMMANDS_BIT, v32_0, v32_1,
359 shared_memory_id_, shared_memory_offset_); 355 shared_memory_id_, shared_memory_offset_);
360 EXPECT_CALL(*gl_, 356 EXPECT_CALL(*gl_,
361 ClientWaitSync(reinterpret_cast<GLsync>(kServiceSyncId), 357 ClientWaitSync(reinterpret_cast<GLsync>(kServiceSyncId),
362 GL_SYNC_FLUSH_COMMANDS_BIT, kTimeout)) 358 GL_SYNC_FLUSH_COMMANDS_BIT, kTimeout))
363 .WillOnce(Return(GL_CONDITION_SATISFIED)) 359 .WillOnce(Return(GL_CONDITION_SATISFIED))
364 .RetiresOnSaturation(); 360 .RetiresOnSaturation();
365 *result = GL_WAIT_FAILED; 361 *result = GL_WAIT_FAILED;
366 decoder_->set_unsafe_es3_apis_enabled(true); 362 decoder_->set_unsafe_es3_apis_enabled(true);
367 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 363 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
368 EXPECT_EQ(static_cast<GLenum>(GL_CONDITION_SATISFIED), *result); 364 EXPECT_EQ(static_cast<GLenum>(GL_CONDITION_SATISFIED), *result);
369 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 365 EXPECT_EQ(GL_NO_ERROR, GetGLError());
370 decoder_->set_unsafe_es3_apis_enabled(false); 366 decoder_->set_unsafe_es3_apis_enabled(false);
371 EXPECT_EQ(error::kUnknownCommand, ExecuteCmd(cmd)); 367 EXPECT_EQ(error::kUnknownCommand, ExecuteCmd(cmd));
372 } 368 }
373 369
374 TEST_P(GLES2DecoderTest, ClientWaitSyncInvalidSyncFails) { 370 TEST_P(GLES2DecoderTest, ClientWaitSyncInvalidSyncFails) {
375 typedef cmds::ClientWaitSync::Result Result; 371 typedef cmds::ClientWaitSync::Result Result;
376 Result* result = static_cast<Result*>(shared_memory_address_); 372 Result* result = static_cast<Result*>(shared_memory_address_);
377 cmds::ClientWaitSync cmd; 373 cmds::ClientWaitSync cmd;
378 uint32_t v32_0 = 0, v32_1 = 0;
379 GLES2Util::MapUint64ToTwoUint32(0, &v32_0, &v32_1);
380 decoder_->set_unsafe_es3_apis_enabled(true); 374 decoder_->set_unsafe_es3_apis_enabled(true);
381 cmd.Init(kInvalidClientId, GL_SYNC_FLUSH_COMMANDS_BIT, v32_0, v32_1, 375 cmd.Init(kInvalidClientId, GL_SYNC_FLUSH_COMMANDS_BIT, 0,
382 shared_memory_id_, shared_memory_offset_); 376 shared_memory_id_, shared_memory_offset_);
383 *result = GL_WAIT_FAILED; 377 *result = GL_WAIT_FAILED;
384 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 378 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
385 EXPECT_EQ(static_cast<GLenum>(GL_WAIT_FAILED), *result); 379 EXPECT_EQ(static_cast<GLenum>(GL_WAIT_FAILED), *result);
386 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); 380 EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
387 } 381 }
388 382
389 TEST_P(GLES2DecoderTest, ClientWaitSyncResultNotInitFails) { 383 TEST_P(GLES2DecoderTest, ClientWaitSyncResultNotInitFails) {
390 typedef cmds::ClientWaitSync::Result Result; 384 typedef cmds::ClientWaitSync::Result Result;
391 Result* result = static_cast<Result*>(shared_memory_address_); 385 Result* result = static_cast<Result*>(shared_memory_address_);
392 cmds::ClientWaitSync cmd; 386 cmds::ClientWaitSync cmd;
393 uint32_t v32_0 = 0, v32_1 = 0;
394 GLES2Util::MapUint64ToTwoUint32(0, &v32_0, &v32_1);
395 decoder_->set_unsafe_es3_apis_enabled(true); 387 decoder_->set_unsafe_es3_apis_enabled(true);
396 cmd.Init(client_sync_id_, GL_SYNC_FLUSH_COMMANDS_BIT, v32_0, v32_1, 388 cmd.Init(client_sync_id_, GL_SYNC_FLUSH_COMMANDS_BIT, 0,
397 shared_memory_id_, shared_memory_offset_); 389 shared_memory_id_, shared_memory_offset_);
398 *result = 1; // Any value other than GL_WAIT_FAILED 390 *result = 1; // Any value other than GL_WAIT_FAILED
399 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); 391 EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
400 } 392 }
401 393
402 TEST_P(GLES2DecoderTest, ClientWaitSyncBadSharedMemoryFails) { 394 TEST_P(GLES2DecoderTest, ClientWaitSyncBadSharedMemoryFails) {
403 typedef cmds::ClientWaitSync::Result Result; 395 typedef cmds::ClientWaitSync::Result Result;
404 Result* result = static_cast<Result*>(shared_memory_address_); 396 Result* result = static_cast<Result*>(shared_memory_address_);
405 cmds::ClientWaitSync cmd; 397 cmds::ClientWaitSync cmd;
406 uint32_t v32_0 = 0, v32_1 = 0;
407 GLES2Util::MapUint64ToTwoUint32(0, &v32_0, &v32_1);
408 decoder_->set_unsafe_es3_apis_enabled(true); 398 decoder_->set_unsafe_es3_apis_enabled(true);
409 *result = GL_WAIT_FAILED; 399 *result = GL_WAIT_FAILED;
410 cmd.Init(client_sync_id_, GL_SYNC_FLUSH_COMMANDS_BIT, v32_0, v32_1, 400 cmd.Init(client_sync_id_, GL_SYNC_FLUSH_COMMANDS_BIT, 0,
411 kInvalidSharedMemoryId, shared_memory_offset_); 401 kInvalidSharedMemoryId, shared_memory_offset_);
412 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); 402 EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
413 403
414 *result = GL_WAIT_FAILED; 404 *result = GL_WAIT_FAILED;
415 cmd.Init(client_sync_id_, GL_SYNC_FLUSH_COMMANDS_BIT, v32_0, v32_1, 405 cmd.Init(client_sync_id_, GL_SYNC_FLUSH_COMMANDS_BIT, 0,
416 shared_memory_id_, kInvalidSharedMemoryOffset); 406 shared_memory_id_, kInvalidSharedMemoryOffset);
417 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); 407 EXPECT_NE(error::kNoError, ExecuteCmd(cmd));
418 } 408 }
419 409
420 TEST_P(GLES2DecoderTest, WaitSyncValidArgs) { 410 TEST_P(GLES2DecoderTest, WaitSyncValidArgs) {
421 const GLuint64 kTimeout = GL_TIMEOUT_IGNORED; 411 const GLuint64 kTimeout = GL_TIMEOUT_IGNORED;
422 EXPECT_CALL(*gl_, WaitSync(reinterpret_cast<GLsync>(kServiceSyncId), 412 EXPECT_CALL(*gl_, WaitSync(reinterpret_cast<GLsync>(kServiceSyncId),
423 0, kTimeout)) 413 0, kTimeout))
424 .Times(1) 414 .Times(1)
425 .RetiresOnSaturation(); 415 .RetiresOnSaturation();
426 416
427 uint32_t v32_0 = 0, v32_1 = 0;
428 GLES2Util::MapUint64ToTwoUint32(kTimeout, &v32_0, &v32_1);
429 cmds::WaitSync cmd; 417 cmds::WaitSync cmd;
430 cmd.Init(client_sync_id_, 0, v32_0, v32_1); 418 cmd.Init(client_sync_id_, 0, kTimeout);
431 decoder_->set_unsafe_es3_apis_enabled(true); 419 decoder_->set_unsafe_es3_apis_enabled(true);
432 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 420 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
433 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 421 EXPECT_EQ(GL_NO_ERROR, GetGLError());
434 decoder_->set_unsafe_es3_apis_enabled(false); 422 decoder_->set_unsafe_es3_apis_enabled(false);
435 EXPECT_EQ(error::kUnknownCommand, ExecuteCmd(cmd)); 423 EXPECT_EQ(error::kUnknownCommand, ExecuteCmd(cmd));
436 } 424 }
437 425
438 TEST_P(GLES2DecoderManualInitTest, BindGeneratesResourceFalse) { 426 TEST_P(GLES2DecoderManualInitTest, BindGeneratesResourceFalse) {
439 InitState init; 427 InitState init;
440 InitDecoder(init); 428 InitDecoder(init);
(...skipping 1116 matching lines...) Expand 10 before | Expand all | Expand 10 after
1557 INSTANTIATE_TEST_CASE_P(Service, GLES2DecoderDoCommandsTest, ::testing::Bool()); 1545 INSTANTIATE_TEST_CASE_P(Service, GLES2DecoderDoCommandsTest, ::testing::Bool());
1558 1546
1559 INSTANTIATE_TEST_CASE_P(Service, GLES3DecoderTest, ::testing::Bool()); 1547 INSTANTIATE_TEST_CASE_P(Service, GLES3DecoderTest, ::testing::Bool());
1560 1548
1561 INSTANTIATE_TEST_CASE_P(Service, 1549 INSTANTIATE_TEST_CASE_P(Service,
1562 GLES3DecoderWithESSL3ShaderTest, 1550 GLES3DecoderWithESSL3ShaderTest,
1563 ::testing::Bool()); 1551 ::testing::Bool());
1564 1552
1565 } // namespace gles2 1553 } // namespace gles2
1566 } // namespace gpu 1554 } // namespace gpu
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698