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

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

Issue 1674573002: UniformMatrix* supports transpose is true in ES3 semantic (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
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.h" 5 #include "gpu/command_buffer/service/gles2_cmd_decoder.h"
6 6
7 #include <stdint.h> 7 #include <stdint.h>
8 8
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 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 EXPECT_CALL(*gl_, Uniform3fv(1, _, _)).Times(AnyNumber()); 59 EXPECT_CALL(*gl_, Uniform3fv(1, _, _)).Times(AnyNumber());
60 EXPECT_CALL(*gl_, Uniform4fv(1, _, _)).Times(AnyNumber()); 60 EXPECT_CALL(*gl_, Uniform4fv(1, _, _)).Times(AnyNumber());
61 EXPECT_CALL(*gl_, UniformMatrix2fv(1, _, _, _)).Times(AnyNumber()); 61 EXPECT_CALL(*gl_, UniformMatrix2fv(1, _, _, _)).Times(AnyNumber());
62 EXPECT_CALL(*gl_, UniformMatrix3fv(1, _, _, _)).Times(AnyNumber()); 62 EXPECT_CALL(*gl_, UniformMatrix3fv(1, _, _, _)).Times(AnyNumber());
63 EXPECT_CALL(*gl_, UniformMatrix4fv(1, _, _, _)).Times(AnyNumber()); 63 EXPECT_CALL(*gl_, UniformMatrix4fv(1, _, _, _)).Times(AnyNumber());
64 if (es3_enabled) { 64 if (es3_enabled) {
65 EXPECT_CALL(*gl_, Uniform1uiv(1, _, _)).Times(AnyNumber()); 65 EXPECT_CALL(*gl_, Uniform1uiv(1, _, _)).Times(AnyNumber());
66 EXPECT_CALL(*gl_, Uniform2uiv(1, _, _)).Times(AnyNumber()); 66 EXPECT_CALL(*gl_, Uniform2uiv(1, _, _)).Times(AnyNumber());
67 EXPECT_CALL(*gl_, Uniform3uiv(1, _, _)).Times(AnyNumber()); 67 EXPECT_CALL(*gl_, Uniform3uiv(1, _, _)).Times(AnyNumber());
68 EXPECT_CALL(*gl_, Uniform4uiv(1, _, _)).Times(AnyNumber()); 68 EXPECT_CALL(*gl_, Uniform4uiv(1, _, _)).Times(AnyNumber());
69 EXPECT_CALL(*gl_, UniformMatrix2fv(1, _, _, _)).Times(AnyNumber());
70 EXPECT_CALL(*gl_, UniformMatrix3fv(1, _, _, _)).Times(AnyNumber());
71 EXPECT_CALL(*gl_, UniformMatrix4fv(1, _, _, _)).Times(AnyNumber());
69 EXPECT_CALL(*gl_, UniformMatrix2x3fv(1, _, _, _)).Times(AnyNumber()); 72 EXPECT_CALL(*gl_, UniformMatrix2x3fv(1, _, _, _)).Times(AnyNumber());
70 EXPECT_CALL(*gl_, UniformMatrix2x4fv(1, _, _, _)).Times(AnyNumber()); 73 EXPECT_CALL(*gl_, UniformMatrix2x4fv(1, _, _, _)).Times(AnyNumber());
71 EXPECT_CALL(*gl_, UniformMatrix3x2fv(1, _, _, _)).Times(AnyNumber()); 74 EXPECT_CALL(*gl_, UniformMatrix3x2fv(1, _, _, _)).Times(AnyNumber());
72 EXPECT_CALL(*gl_, UniformMatrix3x4fv(1, _, _, _)).Times(AnyNumber()); 75 EXPECT_CALL(*gl_, UniformMatrix3x4fv(1, _, _, _)).Times(AnyNumber());
73 EXPECT_CALL(*gl_, UniformMatrix4x2fv(1, _, _, _)).Times(AnyNumber()); 76 EXPECT_CALL(*gl_, UniformMatrix4x2fv(1, _, _, _)).Times(AnyNumber());
74 EXPECT_CALL(*gl_, UniformMatrix4x3fv(1, _, _, _)).Times(AnyNumber()); 77 EXPECT_CALL(*gl_, UniformMatrix4x3fv(1, _, _, _)).Times(AnyNumber());
75 } 78 }
76 79
77 { 80 {
78 valid_uniform = accepts_apis & Program::kUniform1i; 81 valid_uniform = accepts_apis & Program::kUniform1i;
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
235 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION, 238 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
236 GetGLError()); 239 GetGLError());
237 } 240 }
238 241
239 { 242 {
240 valid_uniform = accepts_apis & Program::kUniformMatrix2f; 243 valid_uniform = accepts_apis & Program::kUniformMatrix2f;
241 cmds::UniformMatrix2fvImmediate& cmd = 244 cmds::UniformMatrix2fvImmediate& cmd =
242 *GetImmediateAs<cmds::UniformMatrix2fvImmediate>(); 245 *GetImmediateAs<cmds::UniformMatrix2fvImmediate>();
243 GLfloat data[2][2 * 2] = {{0.0f}}; 246 GLfloat data[2][2 * 2] = {{0.0f}};
244 247
245 cmd.Init(1, 2, &data[0][0]); 248 cmd.Init(1, 2, false, &data[0][0]);
Zhenyao Mo 2016/02/05 17:31:59 Here you should also test with transpose == true a
qiankun 2016/02/06 03:02:56 Added test cases for gles2. Removed duplicate test
246 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data))); 249 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data)));
247 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION, 250 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
248 GetGLError()); 251 GetGLError());
249 } 252 }
250 253
251 { 254 {
252 valid_uniform = accepts_apis & Program::kUniformMatrix3f; 255 valid_uniform = accepts_apis & Program::kUniformMatrix3f;
253 cmds::UniformMatrix3fvImmediate& cmd = 256 cmds::UniformMatrix3fvImmediate& cmd =
254 *GetImmediateAs<cmds::UniformMatrix3fvImmediate>(); 257 *GetImmediateAs<cmds::UniformMatrix3fvImmediate>();
255 GLfloat data[2][3 * 3] = {{0.0f}}; 258 GLfloat data[2][3 * 3] = {{0.0f}};
256 cmd.Init(1, 2, &data[0][0]); 259 cmd.Init(1, 2, false, &data[0][0]);
257 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data))); 260 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data)));
258 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION, 261 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
259 GetGLError()); 262 GetGLError());
260 } 263 }
261 264
262 { 265 {
263 valid_uniform = accepts_apis & Program::kUniformMatrix4f; 266 valid_uniform = accepts_apis & Program::kUniformMatrix4f;
264 cmds::UniformMatrix4fvImmediate& cmd = 267 cmds::UniformMatrix4fvImmediate& cmd =
265 *GetImmediateAs<cmds::UniformMatrix4fvImmediate>(); 268 *GetImmediateAs<cmds::UniformMatrix4fvImmediate>();
266 GLfloat data[2][4 * 4] = {{0.0f}}; 269 GLfloat data[2][4 * 4] = {{0.0f}};
267 cmd.Init(1, 2, &data[0][0]); 270 cmd.Init(1, 2, false, &data[0][0]);
268 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data))); 271 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data)));
269 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION, 272 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
270 GetGLError()); 273 GetGLError());
271 } 274 }
272 275
273 if (es3_enabled) { 276 if (es3_enabled) {
274 { 277 {
275 valid_uniform = accepts_apis & Program::kUniform1ui; 278 valid_uniform = accepts_apis & Program::kUniform1ui;
276 cmds::Uniform1ui cmd; 279 cmds::Uniform1ui cmd;
277 cmd.Init(1, 2); 280 cmd.Init(1, 2);
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
345 cmds::Uniform4uivImmediate& cmd = 348 cmds::Uniform4uivImmediate& cmd =
346 *GetImmediateAs<cmds::Uniform4uivImmediate>(); 349 *GetImmediateAs<cmds::Uniform4uivImmediate>();
347 GLuint data[2][4] = {{0}}; 350 GLuint data[2][4] = {{0}};
348 cmd.Init(1, 2, &data[0][0]); 351 cmd.Init(1, 2, &data[0][0]);
349 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data))); 352 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data)));
350 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION, 353 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
351 GetGLError()); 354 GetGLError());
352 } 355 }
353 356
354 { 357 {
358 valid_uniform = accepts_apis & Program::kUniformMatrix2f;
359 cmds::UniformMatrix2fvImmediate& cmd =
360 *GetImmediateAs<cmds::UniformMatrix2fvImmediate>();
361 GLfloat data[2][2 * 2] = {{0.0f}};
362
363 cmd.Init(1, 2, false, &data[0][0]);
364 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data)));
365 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
366 GetGLError());
367 }
368
369 {
370 valid_uniform = accepts_apis & Program::kUniformMatrix3f;
371 cmds::UniformMatrix3fvImmediate& cmd =
372 *GetImmediateAs<cmds::UniformMatrix3fvImmediate>();
373 GLfloat data[2][3 * 3] = {{0.0f}};
374 cmd.Init(1, 2, false, &data[0][0]);
375 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data)));
376 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
377 GetGLError());
378 }
379
380 {
381 valid_uniform = accepts_apis & Program::kUniformMatrix4f;
382 cmds::UniformMatrix4fvImmediate& cmd =
383 *GetImmediateAs<cmds::UniformMatrix4fvImmediate>();
384 GLfloat data[2][4 * 4] = {{0.0f}};
385 cmd.Init(1, 2, false, &data[0][0]);
386 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data)));
387 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
388 GetGLError());
389 }
390
391 {
355 valid_uniform = accepts_apis & Program::kUniformMatrix2x3f; 392 valid_uniform = accepts_apis & Program::kUniformMatrix2x3f;
356 cmds::UniformMatrix2x3fvImmediate& cmd = 393 cmds::UniformMatrix2x3fvImmediate& cmd =
357 *GetImmediateAs<cmds::UniformMatrix2x3fvImmediate>(); 394 *GetImmediateAs<cmds::UniformMatrix2x3fvImmediate>();
358 GLfloat data[2][2 * 3] = {{0.0f}}; 395 GLfloat data[2][2 * 3] = {{0.0f}};
359 396
360 cmd.Init(1, 2, &data[0][0]); 397 cmd.Init(1, 2, false, &data[0][0]);
361 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data))); 398 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data)));
362 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION, 399 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
363 GetGLError()); 400 GetGLError());
364 } 401 }
365 402
366 { 403 {
367 valid_uniform = accepts_apis & Program::kUniformMatrix2x4f; 404 valid_uniform = accepts_apis & Program::kUniformMatrix2x4f;
368 cmds::UniformMatrix2x4fvImmediate& cmd = 405 cmds::UniformMatrix2x4fvImmediate& cmd =
369 *GetImmediateAs<cmds::UniformMatrix2x4fvImmediate>(); 406 *GetImmediateAs<cmds::UniformMatrix2x4fvImmediate>();
370 GLfloat data[2][2 * 4] = {{0.0f}}; 407 GLfloat data[2][2 * 4] = {{0.0f}};
371 408
372 cmd.Init(1, 2, &data[0][0]); 409 cmd.Init(1, 2, false, &data[0][0]);
373 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data))); 410 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data)));
374 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION, 411 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
375 GetGLError()); 412 GetGLError());
376 } 413 }
377 414
378 { 415 {
379 valid_uniform = accepts_apis & Program::kUniformMatrix3x2f; 416 valid_uniform = accepts_apis & Program::kUniformMatrix3x2f;
380 cmds::UniformMatrix3x2fvImmediate& cmd = 417 cmds::UniformMatrix3x2fvImmediate& cmd =
381 *GetImmediateAs<cmds::UniformMatrix3x2fvImmediate>(); 418 *GetImmediateAs<cmds::UniformMatrix3x2fvImmediate>();
382 GLfloat data[2][3 * 2] = {{0.0f}}; 419 GLfloat data[2][3 * 2] = {{0.0f}};
383 420
384 cmd.Init(1, 2, &data[0][0]); 421 cmd.Init(1, 2, false, &data[0][0]);
385 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data))); 422 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data)));
386 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION, 423 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
387 GetGLError()); 424 GetGLError());
388 } 425 }
389 426
390 { 427 {
391 valid_uniform = accepts_apis & Program::kUniformMatrix3x4f; 428 valid_uniform = accepts_apis & Program::kUniformMatrix3x4f;
392 cmds::UniformMatrix3x4fvImmediate& cmd = 429 cmds::UniformMatrix3x4fvImmediate& cmd =
393 *GetImmediateAs<cmds::UniformMatrix3x4fvImmediate>(); 430 *GetImmediateAs<cmds::UniformMatrix3x4fvImmediate>();
394 GLfloat data[2][3 * 4] = {{0.0f}}; 431 GLfloat data[2][3 * 4] = {{0.0f}};
395 432
396 cmd.Init(1, 2, &data[0][0]); 433 cmd.Init(1, 2, false, &data[0][0]);
397 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data))); 434 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data)));
398 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION, 435 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
399 GetGLError()); 436 GetGLError());
400 } 437 }
401 438
402 { 439 {
403 valid_uniform = accepts_apis & Program::kUniformMatrix4x2f; 440 valid_uniform = accepts_apis & Program::kUniformMatrix4x2f;
404 cmds::UniformMatrix4x2fvImmediate& cmd = 441 cmds::UniformMatrix4x2fvImmediate& cmd =
405 *GetImmediateAs<cmds::UniformMatrix4x2fvImmediate>(); 442 *GetImmediateAs<cmds::UniformMatrix4x2fvImmediate>();
406 GLfloat data[2][4 * 2] = {{0.0f}}; 443 GLfloat data[2][4 * 2] = {{0.0f}};
407 444
408 cmd.Init(1, 2, &data[0][0]); 445 cmd.Init(1, 2, false, &data[0][0]);
409 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data))); 446 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data)));
410 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION, 447 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
411 GetGLError()); 448 GetGLError());
412 } 449 }
413 450
414 { 451 {
415 valid_uniform = accepts_apis & Program::kUniformMatrix4x3f; 452 valid_uniform = accepts_apis & Program::kUniformMatrix4x3f;
416 cmds::UniformMatrix4x3fvImmediate& cmd = 453 cmds::UniformMatrix4x3fvImmediate& cmd =
417 *GetImmediateAs<cmds::UniformMatrix4x3fvImmediate>(); 454 *GetImmediateAs<cmds::UniformMatrix4x3fvImmediate>();
418 GLfloat data[2][4 * 3] = {{0.0f}}; 455 GLfloat data[2][4 * 3] = {{0.0f}};
419 456
420 cmd.Init(1, 2, &data[0][0]); 457 cmd.Init(1, 2, false, &data[0][0]);
421 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data))); 458 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data)));
422 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION, 459 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
423 GetGLError()); 460 GetGLError());
461 }
462
463 {
464 valid_uniform = accepts_apis & Program::kUniformMatrix2f;
465 cmds::UniformMatrix2fvImmediate& cmd =
466 *GetImmediateAs<cmds::UniformMatrix2fvImmediate>();
467 GLfloat data[2][2 * 2] = {{0.0f}};
468
469 cmd.Init(1, 2, true, &data[0][0]);
470 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data)));
471 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
472 GetGLError());
473 }
474
475 {
476 valid_uniform = accepts_apis & Program::kUniformMatrix3f;
477 cmds::UniformMatrix3fvImmediate& cmd =
478 *GetImmediateAs<cmds::UniformMatrix3fvImmediate>();
479 GLfloat data[2][3 * 3] = {{0.0f}};
480 cmd.Init(1, 2, true, &data[0][0]);
481 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data)));
482 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
483 GetGLError());
484 }
485
486 {
487 valid_uniform = accepts_apis & Program::kUniformMatrix4f;
488 cmds::UniformMatrix4fvImmediate& cmd =
489 *GetImmediateAs<cmds::UniformMatrix4fvImmediate>();
490 GLfloat data[2][4 * 4] = {{0.0f}};
491 cmd.Init(1, 2, true, &data[0][0]);
492 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data)));
493 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
494 GetGLError());
495 }
496
497 {
498 valid_uniform = accepts_apis & Program::kUniformMatrix2x3f;
499 cmds::UniformMatrix2x3fvImmediate& cmd =
500 *GetImmediateAs<cmds::UniformMatrix2x3fvImmediate>();
501 GLfloat data[2][2 * 3] = {{0.0f}};
502
503 cmd.Init(1, 2, true, &data[0][0]);
504 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data)));
505 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
506 GetGLError());
507 }
508
509 {
510 valid_uniform = accepts_apis & Program::kUniformMatrix2x4f;
511 cmds::UniformMatrix2x4fvImmediate& cmd =
512 *GetImmediateAs<cmds::UniformMatrix2x4fvImmediate>();
513 GLfloat data[2][2 * 4] = {{0.0f}};
514
515 cmd.Init(1, 2, true, &data[0][0]);
516 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data)));
517 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
518 GetGLError());
519 }
520
521 {
522 valid_uniform = accepts_apis & Program::kUniformMatrix3x2f;
523 cmds::UniformMatrix3x2fvImmediate& cmd =
524 *GetImmediateAs<cmds::UniformMatrix3x2fvImmediate>();
525 GLfloat data[2][3 * 2] = {{0.0f}};
526
527 cmd.Init(1, 2, true, &data[0][0]);
528 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data)));
529 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
530 GetGLError());
531 }
532
533 {
534 valid_uniform = accepts_apis & Program::kUniformMatrix3x4f;
535 cmds::UniformMatrix3x4fvImmediate& cmd =
536 *GetImmediateAs<cmds::UniformMatrix3x4fvImmediate>();
537 GLfloat data[2][3 * 4] = {{0.0f}};
538
539 cmd.Init(1, 2, true, &data[0][0]);
540 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data)));
541 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
542 GetGLError());
543 }
544
545 {
546 valid_uniform = accepts_apis & Program::kUniformMatrix4x2f;
547 cmds::UniformMatrix4x2fvImmediate& cmd =
548 *GetImmediateAs<cmds::UniformMatrix4x2fvImmediate>();
549 GLfloat data[2][4 * 2] = {{0.0f}};
550
551 cmd.Init(1, 2, true, &data[0][0]);
552 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data)));
553 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
554 GetGLError());
555 }
556
557 {
558 valid_uniform = accepts_apis & Program::kUniformMatrix4x3f;
559 cmds::UniformMatrix4x3fvImmediate& cmd =
560 *GetImmediateAs<cmds::UniformMatrix4x3fvImmediate>();
561 GLfloat data[2][4 * 3] = {{0.0f}};
562
563 cmd.Init(1, 2, true, &data[0][0]);
564 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data)));
565 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION,
566 GetGLError());
424 } 567 }
425 } 568 }
426 } 569 }
427 }; 570 };
428 571
429 INSTANTIATE_TEST_CASE_P(Service, GLES2DecoderTest2, ::testing::Bool()); 572 INSTANTIATE_TEST_CASE_P(Service, GLES2DecoderTest2, ::testing::Bool());
430 573
431 template <> 574 template <>
432 void GLES2DecoderTestBase::SpecializedSetup<cmds::GetProgramInfoLog, 0>( 575 void GLES2DecoderTestBase::SpecializedSetup<cmds::GetProgramInfoLog, 0>(
433 bool /* valid */) { 576 bool /* valid */) {
(...skipping 472 matching lines...) Expand 10 before | Expand all | Expand 10 after
906 TestAcceptedUniform(GL_FLOAT_MAT4x2, Program::kUniformMatrix4x2f, true); 1049 TestAcceptedUniform(GL_FLOAT_MAT4x2, Program::kUniformMatrix4x2f, true);
907 } 1050 }
908 1051
909 TEST_P(GLES2DecoderTest2, AcceptsUniform_GL_FLOAT_MAT4x3) { 1052 TEST_P(GLES2DecoderTest2, AcceptsUniform_GL_FLOAT_MAT4x3) {
910 TestAcceptedUniform(GL_FLOAT_MAT4x3, Program::kUniformMatrix4x3f, true); 1053 TestAcceptedUniform(GL_FLOAT_MAT4x3, Program::kUniformMatrix4x3f, true);
911 } 1054 }
912 1055
913 } // namespace gles2 1056 } // namespace gles2
914 } // namespace gpu 1057 } // namespace gpu
915 1058
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/gles2_cmd_decoder.cc ('k') | gpu/command_buffer/service/gles2_cmd_decoder_unittest_2_autogen.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698