| 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]); |
| 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 |
| 276 if (!es3_enabled) { |
| 277 { |
| 278 valid_uniform = accepts_apis & Program::kUniformMatrix2f; |
| 279 cmds::UniformMatrix2fvImmediate& cmd = |
| 280 *GetImmediateAs<cmds::UniformMatrix2fvImmediate>(); |
| 281 GLfloat data[2][2 * 2] = {{0.0f}}; |
| 282 |
| 283 cmd.Init(1, 2, true, &data[0][0]); |
| 284 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data))); |
| 285 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); |
| 286 } |
| 287 |
| 288 { |
| 289 valid_uniform = accepts_apis & Program::kUniformMatrix3f; |
| 290 cmds::UniformMatrix3fvImmediate& cmd = |
| 291 *GetImmediateAs<cmds::UniformMatrix3fvImmediate>(); |
| 292 GLfloat data[2][3 * 3] = {{0.0f}}; |
| 293 cmd.Init(1, 2, true, &data[0][0]); |
| 294 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data))); |
| 295 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); |
| 296 } |
| 297 |
| 298 { |
| 299 valid_uniform = accepts_apis & Program::kUniformMatrix4f; |
| 300 cmds::UniformMatrix4fvImmediate& cmd = |
| 301 *GetImmediateAs<cmds::UniformMatrix4fvImmediate>(); |
| 302 GLfloat data[2][4 * 4] = {{0.0f}}; |
| 303 cmd.Init(1, 2, true, &data[0][0]); |
| 304 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data))); |
| 305 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); |
| 306 } |
| 307 } |
| 308 |
| 273 if (es3_enabled) { | 309 if (es3_enabled) { |
| 274 { | 310 { |
| 275 valid_uniform = accepts_apis & Program::kUniform1ui; | 311 valid_uniform = accepts_apis & Program::kUniform1ui; |
| 276 cmds::Uniform1ui cmd; | 312 cmds::Uniform1ui cmd; |
| 277 cmd.Init(1, 2); | 313 cmd.Init(1, 2); |
| 278 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 314 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
| 279 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION, | 315 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION, |
| 280 GetGLError()); | 316 GetGLError()); |
| 281 } | 317 } |
| 282 | 318 |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 350 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION, | 386 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION, |
| 351 GetGLError()); | 387 GetGLError()); |
| 352 } | 388 } |
| 353 | 389 |
| 354 { | 390 { |
| 355 valid_uniform = accepts_apis & Program::kUniformMatrix2x3f; | 391 valid_uniform = accepts_apis & Program::kUniformMatrix2x3f; |
| 356 cmds::UniformMatrix2x3fvImmediate& cmd = | 392 cmds::UniformMatrix2x3fvImmediate& cmd = |
| 357 *GetImmediateAs<cmds::UniformMatrix2x3fvImmediate>(); | 393 *GetImmediateAs<cmds::UniformMatrix2x3fvImmediate>(); |
| 358 GLfloat data[2][2 * 3] = {{0.0f}}; | 394 GLfloat data[2][2 * 3] = {{0.0f}}; |
| 359 | 395 |
| 360 cmd.Init(1, 2, &data[0][0]); | 396 cmd.Init(1, 2, false, &data[0][0]); |
| 361 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data))); | 397 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data))); |
| 362 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION, | 398 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION, |
| 363 GetGLError()); | 399 GetGLError()); |
| 364 } | 400 } |
| 365 | 401 |
| 366 { | 402 { |
| 367 valid_uniform = accepts_apis & Program::kUniformMatrix2x4f; | 403 valid_uniform = accepts_apis & Program::kUniformMatrix2x4f; |
| 368 cmds::UniformMatrix2x4fvImmediate& cmd = | 404 cmds::UniformMatrix2x4fvImmediate& cmd = |
| 369 *GetImmediateAs<cmds::UniformMatrix2x4fvImmediate>(); | 405 *GetImmediateAs<cmds::UniformMatrix2x4fvImmediate>(); |
| 370 GLfloat data[2][2 * 4] = {{0.0f}}; | 406 GLfloat data[2][2 * 4] = {{0.0f}}; |
| 371 | 407 |
| 372 cmd.Init(1, 2, &data[0][0]); | 408 cmd.Init(1, 2, false, &data[0][0]); |
| 373 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data))); | 409 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data))); |
| 374 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION, | 410 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION, |
| 375 GetGLError()); | 411 GetGLError()); |
| 376 } | 412 } |
| 377 | 413 |
| 378 { | 414 { |
| 379 valid_uniform = accepts_apis & Program::kUniformMatrix3x2f; | 415 valid_uniform = accepts_apis & Program::kUniformMatrix3x2f; |
| 380 cmds::UniformMatrix3x2fvImmediate& cmd = | 416 cmds::UniformMatrix3x2fvImmediate& cmd = |
| 381 *GetImmediateAs<cmds::UniformMatrix3x2fvImmediate>(); | 417 *GetImmediateAs<cmds::UniformMatrix3x2fvImmediate>(); |
| 382 GLfloat data[2][3 * 2] = {{0.0f}}; | 418 GLfloat data[2][3 * 2] = {{0.0f}}; |
| 383 | 419 |
| 384 cmd.Init(1, 2, &data[0][0]); | 420 cmd.Init(1, 2, false, &data[0][0]); |
| 385 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data))); | 421 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data))); |
| 386 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION, | 422 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION, |
| 387 GetGLError()); | 423 GetGLError()); |
| 388 } | 424 } |
| 389 | 425 |
| 390 { | 426 { |
| 391 valid_uniform = accepts_apis & Program::kUniformMatrix3x4f; | 427 valid_uniform = accepts_apis & Program::kUniformMatrix3x4f; |
| 392 cmds::UniformMatrix3x4fvImmediate& cmd = | 428 cmds::UniformMatrix3x4fvImmediate& cmd = |
| 393 *GetImmediateAs<cmds::UniformMatrix3x4fvImmediate>(); | 429 *GetImmediateAs<cmds::UniformMatrix3x4fvImmediate>(); |
| 394 GLfloat data[2][3 * 4] = {{0.0f}}; | 430 GLfloat data[2][3 * 4] = {{0.0f}}; |
| 395 | 431 |
| 396 cmd.Init(1, 2, &data[0][0]); | 432 cmd.Init(1, 2, false, &data[0][0]); |
| 397 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data))); | 433 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data))); |
| 398 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION, | 434 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION, |
| 399 GetGLError()); | 435 GetGLError()); |
| 400 } | 436 } |
| 401 | 437 |
| 402 { | 438 { |
| 403 valid_uniform = accepts_apis & Program::kUniformMatrix4x2f; | 439 valid_uniform = accepts_apis & Program::kUniformMatrix4x2f; |
| 404 cmds::UniformMatrix4x2fvImmediate& cmd = | 440 cmds::UniformMatrix4x2fvImmediate& cmd = |
| 405 *GetImmediateAs<cmds::UniformMatrix4x2fvImmediate>(); | 441 *GetImmediateAs<cmds::UniformMatrix4x2fvImmediate>(); |
| 406 GLfloat data[2][4 * 2] = {{0.0f}}; | 442 GLfloat data[2][4 * 2] = {{0.0f}}; |
| 407 | 443 |
| 408 cmd.Init(1, 2, &data[0][0]); | 444 cmd.Init(1, 2, false, &data[0][0]); |
| 409 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data))); | 445 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data))); |
| 410 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION, | 446 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION, |
| 411 GetGLError()); | 447 GetGLError()); |
| 412 } | 448 } |
| 413 | 449 |
| 414 { | 450 { |
| 415 valid_uniform = accepts_apis & Program::kUniformMatrix4x3f; | 451 valid_uniform = accepts_apis & Program::kUniformMatrix4x3f; |
| 416 cmds::UniformMatrix4x3fvImmediate& cmd = | 452 cmds::UniformMatrix4x3fvImmediate& cmd = |
| 417 *GetImmediateAs<cmds::UniformMatrix4x3fvImmediate>(); | 453 *GetImmediateAs<cmds::UniformMatrix4x3fvImmediate>(); |
| 418 GLfloat data[2][4 * 3] = {{0.0f}}; | 454 GLfloat data[2][4 * 3] = {{0.0f}}; |
| 419 | 455 |
| 420 cmd.Init(1, 2, &data[0][0]); | 456 cmd.Init(1, 2, false, &data[0][0]); |
| 421 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data))); | 457 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data))); |
| 422 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION, | 458 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION, |
| 423 GetGLError()); | 459 GetGLError()); |
| 460 } |
| 461 |
| 462 { |
| 463 valid_uniform = accepts_apis & Program::kUniformMatrix2f; |
| 464 cmds::UniformMatrix2fvImmediate& cmd = |
| 465 *GetImmediateAs<cmds::UniformMatrix2fvImmediate>(); |
| 466 GLfloat data[2][2 * 2] = {{0.0f}}; |
| 467 |
| 468 cmd.Init(1, 2, true, &data[0][0]); |
| 469 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data))); |
| 470 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION, |
| 471 GetGLError()); |
| 472 } |
| 473 |
| 474 { |
| 475 valid_uniform = accepts_apis & Program::kUniformMatrix3f; |
| 476 cmds::UniformMatrix3fvImmediate& cmd = |
| 477 *GetImmediateAs<cmds::UniformMatrix3fvImmediate>(); |
| 478 GLfloat data[2][3 * 3] = {{0.0f}}; |
| 479 cmd.Init(1, 2, true, &data[0][0]); |
| 480 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data))); |
| 481 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION, |
| 482 GetGLError()); |
| 483 } |
| 484 |
| 485 { |
| 486 valid_uniform = accepts_apis & Program::kUniformMatrix4f; |
| 487 cmds::UniformMatrix4fvImmediate& cmd = |
| 488 *GetImmediateAs<cmds::UniformMatrix4fvImmediate>(); |
| 489 GLfloat data[2][4 * 4] = {{0.0f}}; |
| 490 cmd.Init(1, 2, true, &data[0][0]); |
| 491 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data))); |
| 492 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION, |
| 493 GetGLError()); |
| 494 } |
| 495 |
| 496 { |
| 497 valid_uniform = accepts_apis & Program::kUniformMatrix2x3f; |
| 498 cmds::UniformMatrix2x3fvImmediate& cmd = |
| 499 *GetImmediateAs<cmds::UniformMatrix2x3fvImmediate>(); |
| 500 GLfloat data[2][2 * 3] = {{0.0f}}; |
| 501 |
| 502 cmd.Init(1, 2, true, &data[0][0]); |
| 503 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data))); |
| 504 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION, |
| 505 GetGLError()); |
| 506 } |
| 507 |
| 508 { |
| 509 valid_uniform = accepts_apis & Program::kUniformMatrix2x4f; |
| 510 cmds::UniformMatrix2x4fvImmediate& cmd = |
| 511 *GetImmediateAs<cmds::UniformMatrix2x4fvImmediate>(); |
| 512 GLfloat data[2][2 * 4] = {{0.0f}}; |
| 513 |
| 514 cmd.Init(1, 2, true, &data[0][0]); |
| 515 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data))); |
| 516 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION, |
| 517 GetGLError()); |
| 518 } |
| 519 |
| 520 { |
| 521 valid_uniform = accepts_apis & Program::kUniformMatrix3x2f; |
| 522 cmds::UniformMatrix3x2fvImmediate& cmd = |
| 523 *GetImmediateAs<cmds::UniformMatrix3x2fvImmediate>(); |
| 524 GLfloat data[2][3 * 2] = {{0.0f}}; |
| 525 |
| 526 cmd.Init(1, 2, true, &data[0][0]); |
| 527 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data))); |
| 528 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION, |
| 529 GetGLError()); |
| 530 } |
| 531 |
| 532 { |
| 533 valid_uniform = accepts_apis & Program::kUniformMatrix3x4f; |
| 534 cmds::UniformMatrix3x4fvImmediate& cmd = |
| 535 *GetImmediateAs<cmds::UniformMatrix3x4fvImmediate>(); |
| 536 GLfloat data[2][3 * 4] = {{0.0f}}; |
| 537 |
| 538 cmd.Init(1, 2, true, &data[0][0]); |
| 539 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data))); |
| 540 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION, |
| 541 GetGLError()); |
| 542 } |
| 543 |
| 544 { |
| 545 valid_uniform = accepts_apis & Program::kUniformMatrix4x2f; |
| 546 cmds::UniformMatrix4x2fvImmediate& cmd = |
| 547 *GetImmediateAs<cmds::UniformMatrix4x2fvImmediate>(); |
| 548 GLfloat data[2][4 * 2] = {{0.0f}}; |
| 549 |
| 550 cmd.Init(1, 2, true, &data[0][0]); |
| 551 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data))); |
| 552 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION, |
| 553 GetGLError()); |
| 554 } |
| 555 |
| 556 { |
| 557 valid_uniform = accepts_apis & Program::kUniformMatrix4x3f; |
| 558 cmds::UniformMatrix4x3fvImmediate& cmd = |
| 559 *GetImmediateAs<cmds::UniformMatrix4x3fvImmediate>(); |
| 560 GLfloat data[2][4 * 3] = {{0.0f}}; |
| 561 |
| 562 cmd.Init(1, 2, true, &data[0][0]); |
| 563 EXPECT_EQ(error::kNoError, ExecuteImmediateCmd(cmd, sizeof(data))); |
| 564 EXPECT_EQ(valid_uniform ? GL_NO_ERROR : GL_INVALID_OPERATION, |
| 565 GetGLError()); |
| 424 } | 566 } |
| 425 } | 567 } |
| 426 } | 568 } |
| 427 }; | 569 }; |
| 428 | 570 |
| 429 INSTANTIATE_TEST_CASE_P(Service, GLES2DecoderTest2, ::testing::Bool()); | 571 INSTANTIATE_TEST_CASE_P(Service, GLES2DecoderTest2, ::testing::Bool()); |
| 430 | 572 |
| 431 template <> | 573 template <> |
| 432 void GLES2DecoderTestBase::SpecializedSetup<cmds::GetProgramInfoLog, 0>( | 574 void GLES2DecoderTestBase::SpecializedSetup<cmds::GetProgramInfoLog, 0>( |
| 433 bool /* valid */) { | 575 bool /* valid */) { |
| (...skipping 472 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 906 TestAcceptedUniform(GL_FLOAT_MAT4x2, Program::kUniformMatrix4x2f, true); | 1048 TestAcceptedUniform(GL_FLOAT_MAT4x2, Program::kUniformMatrix4x2f, true); |
| 907 } | 1049 } |
| 908 | 1050 |
| 909 TEST_P(GLES2DecoderTest2, AcceptsUniform_GL_FLOAT_MAT4x3) { | 1051 TEST_P(GLES2DecoderTest2, AcceptsUniform_GL_FLOAT_MAT4x3) { |
| 910 TestAcceptedUniform(GL_FLOAT_MAT4x3, Program::kUniformMatrix4x3f, true); | 1052 TestAcceptedUniform(GL_FLOAT_MAT4x3, Program::kUniformMatrix4x3f, true); |
| 911 } | 1053 } |
| 912 | 1054 |
| 913 } // namespace gles2 | 1055 } // namespace gles2 |
| 914 } // namespace gpu | 1056 } // namespace gpu |
| 915 | 1057 |
| OLD | NEW |