Chromium Code Reviews| 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 |