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 |