OLD | NEW |
---|---|
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 |
OLD | NEW |