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

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

Issue 893213002: Revert of Make GL bindings conditional (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/strings/string_number_conversions.h" 8 #include "base/strings/string_number_conversions.h"
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 909 matching lines...) Expand 10 before | Expand all | Expand 10 after
920 .Times(1) 920 .Times(1)
921 .RetiresOnSaturation(); 921 .RetiresOnSaturation();
922 EXPECT_EQ(error::kNoError, ExecuteCmd(depth_cmd)); 922 EXPECT_EQ(error::kNoError, ExecuteCmd(depth_cmd));
923 EXPECT_EQ(error::kNoError, ExecuteCmd(stencil_cmd)); 923 EXPECT_EQ(error::kNoError, ExecuteCmd(stencil_cmd));
924 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 924 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
925 } 925 }
926 #endif 926 #endif
927 927
928 TEST_P(GLES2DecoderManualInitTest, ActualAlphaMatchesRequestedAlpha) { 928 TEST_P(GLES2DecoderManualInitTest, ActualAlphaMatchesRequestedAlpha) {
929 InitState init; 929 InitState init;
930 init.gl_version = "3.0";
930 init.has_alpha = true; 931 init.has_alpha = true;
931 init.request_alpha = true; 932 init.request_alpha = true;
932 init.bind_generates_resource = true; 933 init.bind_generates_resource = true;
933 InitDecoder(init); 934 InitDecoder(init);
934 935
935 EXPECT_CALL(*gl_, GetError()) 936 EXPECT_CALL(*gl_, GetError())
936 .WillOnce(Return(GL_NO_ERROR)) 937 .WillOnce(Return(GL_NO_ERROR))
937 .WillOnce(Return(GL_NO_ERROR)) 938 .WillOnce(Return(GL_NO_ERROR))
938 .RetiresOnSaturation(); 939 .RetiresOnSaturation();
939 typedef GetIntegerv::Result Result; 940 typedef GetIntegerv::Result Result;
940 Result* result = static_cast<Result*>(shared_memory_address_); 941 Result* result = static_cast<Result*>(shared_memory_address_);
941 EXPECT_CALL(*gl_, GetIntegerv(GL_ALPHA_BITS, _)) 942 EXPECT_CALL(*gl_, GetIntegerv(GL_ALPHA_BITS, _))
942 .WillOnce(SetArgumentPointee<1>(8)) 943 .WillOnce(SetArgumentPointee<1>(8))
943 .RetiresOnSaturation(); 944 .RetiresOnSaturation();
944 result->size = 0; 945 result->size = 0;
945 GetIntegerv cmd2; 946 GetIntegerv cmd2;
946 cmd2.Init(GL_ALPHA_BITS, shared_memory_id_, shared_memory_offset_); 947 cmd2.Init(GL_ALPHA_BITS, shared_memory_id_, shared_memory_offset_);
947 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2)); 948 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2));
948 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_ALPHA_BITS), 949 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_ALPHA_BITS),
949 result->GetNumResults()); 950 result->GetNumResults());
950 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 951 EXPECT_EQ(GL_NO_ERROR, GetGLError());
951 EXPECT_EQ(8, result->GetData()[0]); 952 EXPECT_EQ(8, result->GetData()[0]);
952 } 953 }
953 954
954 TEST_P(GLES2DecoderManualInitTest, ActualAlphaDoesNotMatchRequestedAlpha) { 955 TEST_P(GLES2DecoderManualInitTest, ActualAlphaDoesNotMatchRequestedAlpha) {
955 InitState init; 956 InitState init;
957 init.gl_version = "3.0";
956 init.has_alpha = true; 958 init.has_alpha = true;
957 init.bind_generates_resource = true; 959 init.bind_generates_resource = true;
958 InitDecoder(init); 960 InitDecoder(init);
959 961
960 EXPECT_CALL(*gl_, GetError()) 962 EXPECT_CALL(*gl_, GetError())
961 .WillOnce(Return(GL_NO_ERROR)) 963 .WillOnce(Return(GL_NO_ERROR))
962 .WillOnce(Return(GL_NO_ERROR)) 964 .WillOnce(Return(GL_NO_ERROR))
963 .RetiresOnSaturation(); 965 .RetiresOnSaturation();
964 typedef GetIntegerv::Result Result; 966 typedef GetIntegerv::Result Result;
965 Result* result = static_cast<Result*>(shared_memory_address_); 967 Result* result = static_cast<Result*>(shared_memory_address_);
966 EXPECT_CALL(*gl_, GetIntegerv(GL_ALPHA_BITS, _)) 968 EXPECT_CALL(*gl_, GetIntegerv(GL_ALPHA_BITS, _))
967 .WillOnce(SetArgumentPointee<1>(8)) 969 .WillOnce(SetArgumentPointee<1>(8))
968 .RetiresOnSaturation(); 970 .RetiresOnSaturation();
969 result->size = 0; 971 result->size = 0;
970 GetIntegerv cmd2; 972 GetIntegerv cmd2;
971 cmd2.Init(GL_ALPHA_BITS, shared_memory_id_, shared_memory_offset_); 973 cmd2.Init(GL_ALPHA_BITS, shared_memory_id_, shared_memory_offset_);
972 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2)); 974 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2));
973 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_ALPHA_BITS), 975 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_ALPHA_BITS),
974 result->GetNumResults()); 976 result->GetNumResults());
975 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 977 EXPECT_EQ(GL_NO_ERROR, GetGLError());
976 EXPECT_EQ(0, result->GetData()[0]); 978 EXPECT_EQ(0, result->GetData()[0]);
977 } 979 }
978 980
979 TEST_P(GLES2DecoderManualInitTest, ActualDepthMatchesRequestedDepth) { 981 TEST_P(GLES2DecoderManualInitTest, ActualDepthMatchesRequestedDepth) {
980 InitState init; 982 InitState init;
983 init.gl_version = "3.0";
981 init.has_depth = true; 984 init.has_depth = true;
982 init.request_depth = true; 985 init.request_depth = true;
983 init.bind_generates_resource = true; 986 init.bind_generates_resource = true;
984 InitDecoder(init); 987 InitDecoder(init);
985 988
986 EXPECT_CALL(*gl_, GetError()) 989 EXPECT_CALL(*gl_, GetError())
987 .WillOnce(Return(GL_NO_ERROR)) 990 .WillOnce(Return(GL_NO_ERROR))
988 .WillOnce(Return(GL_NO_ERROR)) 991 .WillOnce(Return(GL_NO_ERROR))
989 .RetiresOnSaturation(); 992 .RetiresOnSaturation();
990 typedef GetIntegerv::Result Result; 993 typedef GetIntegerv::Result Result;
991 Result* result = static_cast<Result*>(shared_memory_address_); 994 Result* result = static_cast<Result*>(shared_memory_address_);
992 EXPECT_CALL(*gl_, GetIntegerv(GL_DEPTH_BITS, _)) 995 EXPECT_CALL(*gl_, GetIntegerv(GL_DEPTH_BITS, _))
993 .WillOnce(SetArgumentPointee<1>(24)) 996 .WillOnce(SetArgumentPointee<1>(24))
994 .RetiresOnSaturation(); 997 .RetiresOnSaturation();
995 result->size = 0; 998 result->size = 0;
996 GetIntegerv cmd2; 999 GetIntegerv cmd2;
997 cmd2.Init(GL_DEPTH_BITS, shared_memory_id_, shared_memory_offset_); 1000 cmd2.Init(GL_DEPTH_BITS, shared_memory_id_, shared_memory_offset_);
998 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2)); 1001 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2));
999 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_DEPTH_BITS), 1002 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_DEPTH_BITS),
1000 result->GetNumResults()); 1003 result->GetNumResults());
1001 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1004 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1002 EXPECT_EQ(24, result->GetData()[0]); 1005 EXPECT_EQ(24, result->GetData()[0]);
1003 } 1006 }
1004 1007
1005 TEST_P(GLES2DecoderManualInitTest, ActualDepthDoesNotMatchRequestedDepth) { 1008 TEST_P(GLES2DecoderManualInitTest, ActualDepthDoesNotMatchRequestedDepth) {
1006 InitState init; 1009 InitState init;
1010 init.gl_version = "3.0";
1007 init.has_depth = true; 1011 init.has_depth = true;
1008 init.bind_generates_resource = true; 1012 init.bind_generates_resource = true;
1009 InitDecoder(init); 1013 InitDecoder(init);
1010 1014
1011 EXPECT_CALL(*gl_, GetError()) 1015 EXPECT_CALL(*gl_, GetError())
1012 .WillOnce(Return(GL_NO_ERROR)) 1016 .WillOnce(Return(GL_NO_ERROR))
1013 .WillOnce(Return(GL_NO_ERROR)) 1017 .WillOnce(Return(GL_NO_ERROR))
1014 .RetiresOnSaturation(); 1018 .RetiresOnSaturation();
1015 typedef GetIntegerv::Result Result; 1019 typedef GetIntegerv::Result Result;
1016 Result* result = static_cast<Result*>(shared_memory_address_); 1020 Result* result = static_cast<Result*>(shared_memory_address_);
1017 EXPECT_CALL(*gl_, GetIntegerv(GL_DEPTH_BITS, _)) 1021 EXPECT_CALL(*gl_, GetIntegerv(GL_DEPTH_BITS, _))
1018 .WillOnce(SetArgumentPointee<1>(24)) 1022 .WillOnce(SetArgumentPointee<1>(24))
1019 .RetiresOnSaturation(); 1023 .RetiresOnSaturation();
1020 result->size = 0; 1024 result->size = 0;
1021 GetIntegerv cmd2; 1025 GetIntegerv cmd2;
1022 cmd2.Init(GL_DEPTH_BITS, shared_memory_id_, shared_memory_offset_); 1026 cmd2.Init(GL_DEPTH_BITS, shared_memory_id_, shared_memory_offset_);
1023 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2)); 1027 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2));
1024 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_DEPTH_BITS), 1028 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_DEPTH_BITS),
1025 result->GetNumResults()); 1029 result->GetNumResults());
1026 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1030 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1027 EXPECT_EQ(0, result->GetData()[0]); 1031 EXPECT_EQ(0, result->GetData()[0]);
1028 } 1032 }
1029 1033
1030 TEST_P(GLES2DecoderManualInitTest, ActualStencilMatchesRequestedStencil) { 1034 TEST_P(GLES2DecoderManualInitTest, ActualStencilMatchesRequestedStencil) {
1031 InitState init; 1035 InitState init;
1036 init.gl_version = "3.0";
1032 init.has_stencil = true; 1037 init.has_stencil = true;
1033 init.request_stencil = true; 1038 init.request_stencil = true;
1034 init.bind_generates_resource = true; 1039 init.bind_generates_resource = true;
1035 InitDecoder(init); 1040 InitDecoder(init);
1036 1041
1037 EXPECT_CALL(*gl_, GetError()) 1042 EXPECT_CALL(*gl_, GetError())
1038 .WillOnce(Return(GL_NO_ERROR)) 1043 .WillOnce(Return(GL_NO_ERROR))
1039 .WillOnce(Return(GL_NO_ERROR)) 1044 .WillOnce(Return(GL_NO_ERROR))
1040 .RetiresOnSaturation(); 1045 .RetiresOnSaturation();
1041 typedef GetIntegerv::Result Result; 1046 typedef GetIntegerv::Result Result;
1042 Result* result = static_cast<Result*>(shared_memory_address_); 1047 Result* result = static_cast<Result*>(shared_memory_address_);
1043 EXPECT_CALL(*gl_, GetIntegerv(GL_STENCIL_BITS, _)) 1048 EXPECT_CALL(*gl_, GetIntegerv(GL_STENCIL_BITS, _))
1044 .WillOnce(SetArgumentPointee<1>(8)) 1049 .WillOnce(SetArgumentPointee<1>(8))
1045 .RetiresOnSaturation(); 1050 .RetiresOnSaturation();
1046 result->size = 0; 1051 result->size = 0;
1047 GetIntegerv cmd2; 1052 GetIntegerv cmd2;
1048 cmd2.Init(GL_STENCIL_BITS, shared_memory_id_, shared_memory_offset_); 1053 cmd2.Init(GL_STENCIL_BITS, shared_memory_id_, shared_memory_offset_);
1049 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2)); 1054 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2));
1050 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_STENCIL_BITS), 1055 EXPECT_EQ(decoder_->GetGLES2Util()->GLGetNumValuesReturned(GL_STENCIL_BITS),
1051 result->GetNumResults()); 1056 result->GetNumResults());
1052 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1057 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1053 EXPECT_EQ(8, result->GetData()[0]); 1058 EXPECT_EQ(8, result->GetData()[0]);
1054 } 1059 }
1055 1060
1056 TEST_P(GLES2DecoderManualInitTest, ActualStencilDoesNotMatchRequestedStencil) { 1061 TEST_P(GLES2DecoderManualInitTest, ActualStencilDoesNotMatchRequestedStencil) {
1057 InitState init; 1062 InitState init;
1063 init.gl_version = "3.0";
1058 init.has_stencil = true; 1064 init.has_stencil = true;
1059 init.bind_generates_resource = true; 1065 init.bind_generates_resource = true;
1060 InitDecoder(init); 1066 InitDecoder(init);
1061 1067
1062 EXPECT_CALL(*gl_, GetError()) 1068 EXPECT_CALL(*gl_, GetError())
1063 .WillOnce(Return(GL_NO_ERROR)) 1069 .WillOnce(Return(GL_NO_ERROR))
1064 .WillOnce(Return(GL_NO_ERROR)) 1070 .WillOnce(Return(GL_NO_ERROR))
1065 .RetiresOnSaturation(); 1071 .RetiresOnSaturation();
1066 typedef GetIntegerv::Result Result; 1072 typedef GetIntegerv::Result Result;
1067 Result* result = static_cast<Result*>(shared_memory_address_); 1073 Result* result = static_cast<Result*>(shared_memory_address_);
(...skipping 323 matching lines...) Expand 10 before | Expand all | Expand 10 after
1391 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); 1397 EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
1392 cmd.Init(GL_RENDERBUFFER, GL_RGBA4, 1, TestHelper::kMaxRenderbufferSize + 1); 1398 cmd.Init(GL_RENDERBUFFER, GL_RGBA4, 1, TestHelper::kMaxRenderbufferSize + 1);
1393 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1399 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1394 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); 1400 EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
1395 } 1401 }
1396 1402
1397 TEST_P(GLES2DecoderManualInitTest, 1403 TEST_P(GLES2DecoderManualInitTest,
1398 RenderbufferStorageMultisampleCHROMIUMGLError) { 1404 RenderbufferStorageMultisampleCHROMIUMGLError) {
1399 InitState init; 1405 InitState init;
1400 init.extensions = "GL_EXT_framebuffer_multisample"; 1406 init.extensions = "GL_EXT_framebuffer_multisample";
1407 init.gl_version = "2.1";
1401 init.bind_generates_resource = true; 1408 init.bind_generates_resource = true;
1402 InitDecoder(init); 1409 InitDecoder(init);
1403 DoBindRenderbuffer( 1410 DoBindRenderbuffer(
1404 GL_RENDERBUFFER, client_renderbuffer_id_, kServiceRenderbufferId); 1411 GL_RENDERBUFFER, client_renderbuffer_id_, kServiceRenderbufferId);
1405 EnsureRenderbufferBound(false); 1412 EnsureRenderbufferBound(false);
1406 EXPECT_CALL(*gl_, GetError()) 1413 EXPECT_CALL(*gl_, GetError())
1407 .WillOnce(Return(GL_NO_ERROR)) 1414 .WillOnce(Return(GL_NO_ERROR))
1408 .WillOnce(Return(GL_OUT_OF_MEMORY)) 1415 .WillOnce(Return(GL_OUT_OF_MEMORY))
1409 .RetiresOnSaturation(); 1416 .RetiresOnSaturation();
1410 EXPECT_CALL( 1417 EXPECT_CALL(
1411 *gl_, 1418 *gl_,
1412 RenderbufferStorageMultisampleEXT(GL_RENDERBUFFER, 1, GL_RGBA, 100, 50)) 1419 RenderbufferStorageMultisampleEXT(GL_RENDERBUFFER, 1, GL_RGBA, 100, 50))
1413 .Times(1) 1420 .Times(1)
1414 .RetiresOnSaturation(); 1421 .RetiresOnSaturation();
1415 RenderbufferStorageMultisampleCHROMIUM cmd; 1422 RenderbufferStorageMultisampleCHROMIUM cmd;
1416 cmd.Init(GL_RENDERBUFFER, 1, GL_RGBA4, 100, 50); 1423 cmd.Init(GL_RENDERBUFFER, 1, GL_RGBA4, 100, 50);
1417 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1424 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1418 EXPECT_EQ(GL_OUT_OF_MEMORY, GetGLError()); 1425 EXPECT_EQ(GL_OUT_OF_MEMORY, GetGLError());
1419 } 1426 }
1420 1427
1421 TEST_P(GLES2DecoderManualInitTest, 1428 TEST_P(GLES2DecoderManualInitTest,
1422 RenderbufferStorageMultisampleCHROMIUMBadArgs) { 1429 RenderbufferStorageMultisampleCHROMIUMBadArgs) {
1423 InitState init; 1430 InitState init;
1424 init.extensions = "GL_EXT_framebuffer_multisample"; 1431 init.extensions = "GL_EXT_framebuffer_multisample";
1432 init.gl_version = "2.1";
1425 init.bind_generates_resource = true; 1433 init.bind_generates_resource = true;
1426 InitDecoder(init); 1434 InitDecoder(init);
1427 DoBindRenderbuffer( 1435 DoBindRenderbuffer(
1428 GL_RENDERBUFFER, client_renderbuffer_id_, kServiceRenderbufferId); 1436 GL_RENDERBUFFER, client_renderbuffer_id_, kServiceRenderbufferId);
1429 EXPECT_CALL(*gl_, RenderbufferStorageMultisampleEXT(_, _, _, _, _)) 1437 EXPECT_CALL(*gl_, RenderbufferStorageMultisampleEXT(_, _, _, _, _))
1430 .Times(0) 1438 .Times(0)
1431 .RetiresOnSaturation(); 1439 .RetiresOnSaturation();
1432 RenderbufferStorageMultisampleCHROMIUM cmd; 1440 RenderbufferStorageMultisampleCHROMIUM cmd;
1433 cmd.Init(GL_RENDERBUFFER, 1441 cmd.Init(GL_RENDERBUFFER,
1434 TestHelper::kMaxSamples + 1, 1442 TestHelper::kMaxSamples + 1,
(...skipping 14 matching lines...) Expand all
1449 GL_RGBA4, 1457 GL_RGBA4,
1450 1, 1458 1,
1451 TestHelper::kMaxRenderbufferSize + 1); 1459 TestHelper::kMaxRenderbufferSize + 1);
1452 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1460 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1453 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); 1461 EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
1454 } 1462 }
1455 1463
1456 TEST_P(GLES2DecoderManualInitTest, RenderbufferStorageMultisampleCHROMIUM) { 1464 TEST_P(GLES2DecoderManualInitTest, RenderbufferStorageMultisampleCHROMIUM) {
1457 InitState init; 1465 InitState init;
1458 init.extensions = "GL_EXT_framebuffer_multisample"; 1466 init.extensions = "GL_EXT_framebuffer_multisample";
1467 init.gl_version = "2.1";
1459 InitDecoder(init); 1468 InitDecoder(init);
1460 DoBindRenderbuffer( 1469 DoBindRenderbuffer(
1461 GL_RENDERBUFFER, client_renderbuffer_id_, kServiceRenderbufferId); 1470 GL_RENDERBUFFER, client_renderbuffer_id_, kServiceRenderbufferId);
1462 InSequence sequence; 1471 InSequence sequence;
1463 EnsureRenderbufferBound(false); 1472 EnsureRenderbufferBound(false);
1464 DoRenderbufferStorageMultisampleCHROMIUM(GL_RENDERBUFFER, 1473 DoRenderbufferStorageMultisampleCHROMIUM(GL_RENDERBUFFER,
1465 TestHelper::kMaxSamples, 1474 TestHelper::kMaxSamples,
1466 GL_RGBA4, 1475 GL_RGBA4,
1467 GL_RGBA, 1476 GL_RGBA,
1468 TestHelper::kMaxRenderbufferSize, 1477 TestHelper::kMaxRenderbufferSize,
1469 1); 1478 1);
1470 } 1479 }
1471 1480
1472 TEST_P(GLES2DecoderManualInitTest, 1481 TEST_P(GLES2DecoderManualInitTest,
1473 RenderbufferStorageMultisampleCHROMIUMRebindRenderbuffer) { 1482 RenderbufferStorageMultisampleCHROMIUMRebindRenderbuffer) {
1474 InitState init; 1483 InitState init;
1475 init.extensions = "GL_EXT_framebuffer_multisample"; 1484 init.extensions = "GL_EXT_framebuffer_multisample";
1485 init.gl_version = "2.1";
1476 InitDecoder(init); 1486 InitDecoder(init);
1477 DoBindRenderbuffer( 1487 DoBindRenderbuffer(
1478 GL_RENDERBUFFER, client_renderbuffer_id_, kServiceRenderbufferId); 1488 GL_RENDERBUFFER, client_renderbuffer_id_, kServiceRenderbufferId);
1479 RestoreRenderbufferBindings(); 1489 RestoreRenderbufferBindings();
1480 InSequence sequence; 1490 InSequence sequence;
1481 EnsureRenderbufferBound(true); 1491 EnsureRenderbufferBound(true);
1482 DoRenderbufferStorageMultisampleCHROMIUM(GL_RENDERBUFFER, 1492 DoRenderbufferStorageMultisampleCHROMIUM(GL_RENDERBUFFER,
1483 TestHelper::kMaxSamples, 1493 TestHelper::kMaxSamples,
1484 GL_RGBA4, 1494 GL_RGBA4,
1485 GL_RGBA, 1495 GL_RGBA,
1486 TestHelper::kMaxRenderbufferSize, 1496 TestHelper::kMaxRenderbufferSize,
1487 1); 1497 1);
1488 } 1498 }
1489 1499
1490 TEST_P(GLES2DecoderManualInitTest, 1500 TEST_P(GLES2DecoderManualInitTest,
1491 RenderbufferStorageMultisampleEXTNotSupported) { 1501 RenderbufferStorageMultisampleEXTNotSupported) {
1492 InitState init; 1502 InitState init;
1493 init.extensions = "GL_EXT_framebuffer_multisample"; 1503 init.extensions = "GL_EXT_framebuffer_multisample";
1504 init.gl_version = "2.1";
1494 init.bind_generates_resource = true; 1505 init.bind_generates_resource = true;
1495 InitDecoder(init); 1506 InitDecoder(init);
1496 DoBindRenderbuffer( 1507 DoBindRenderbuffer(
1497 GL_RENDERBUFFER, client_renderbuffer_id_, kServiceRenderbufferId); 1508 GL_RENDERBUFFER, client_renderbuffer_id_, kServiceRenderbufferId);
1498 InSequence sequence; 1509 InSequence sequence;
1499 // GL_EXT_framebuffer_multisample uses RenderbufferStorageMultisampleCHROMIUM. 1510 // GL_EXT_framebuffer_multisample uses RenderbufferStorageMultisampleCHROMIUM.
1500 RenderbufferStorageMultisampleEXT cmd; 1511 RenderbufferStorageMultisampleEXT cmd;
1501 cmd.Init(GL_RENDERBUFFER, 1512 cmd.Init(GL_RENDERBUFFER,
1502 TestHelper::kMaxSamples, 1513 TestHelper::kMaxSamples,
1503 GL_RGBA4, 1514 GL_RGBA4,
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after
1768 result_shm_offset, 1779 result_shm_offset,
1769 false); 1780 false);
1770 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 1781 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
1771 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 1782 EXPECT_EQ(GL_NO_ERROR, GetGLError());
1772 } 1783 }
1773 1784
1774 TEST_P(GLES2DecoderManualInitTest, 1785 TEST_P(GLES2DecoderManualInitTest,
1775 UnClearedAttachmentsGetClearedOnReadPixelsAndDrawBufferGetsRestored) { 1786 UnClearedAttachmentsGetClearedOnReadPixelsAndDrawBufferGetsRestored) {
1776 InitState init; 1787 InitState init;
1777 init.extensions = "GL_EXT_framebuffer_multisample"; 1788 init.extensions = "GL_EXT_framebuffer_multisample";
1789 init.gl_version = "2.1";
1778 init.bind_generates_resource = true; 1790 init.bind_generates_resource = true;
1779 InitDecoder(init); 1791 InitDecoder(init);
1780 const GLuint kFBOClientTextureId = 4100; 1792 const GLuint kFBOClientTextureId = 4100;
1781 const GLuint kFBOServiceTextureId = 4101; 1793 const GLuint kFBOServiceTextureId = 4101;
1782 1794
1783 // Register a texture id. 1795 // Register a texture id.
1784 EXPECT_CALL(*gl_, GenTextures(_, _)) 1796 EXPECT_CALL(*gl_, GenTextures(_, _))
1785 .WillOnce(SetArgumentPointee<1>(kFBOServiceTextureId)) 1797 .WillOnce(SetArgumentPointee<1>(kFBOServiceTextureId))
1786 .RetiresOnSaturation(); 1798 .RetiresOnSaturation();
1787 GenHelper<GenTexturesImmediate>(kFBOClientTextureId); 1799 GenHelper<GenTexturesImmediate>(kFBOClientTextureId);
(...skipping 470 matching lines...) Expand 10 before | Expand all | Expand 10 after
2258 EXPECT_EQ(error::kNoError, 2270 EXPECT_EQ(error::kNoError,
2259 ExecuteImmediateCmd(discard_cmd, sizeof(attachments))); 2271 ExecuteImmediateCmd(discard_cmd, sizeof(attachments)));
2260 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 2272 EXPECT_EQ(GL_NO_ERROR, GetGLError());
2261 EXPECT_FALSE(framebuffer->IsCleared()); 2273 EXPECT_FALSE(framebuffer->IsCleared());
2262 EXPECT_FALSE(framebuffer_manager->IsComplete(framebuffer)); 2274 EXPECT_FALSE(framebuffer_manager->IsComplete(framebuffer));
2263 } 2275 }
2264 2276
2265 TEST_P(GLES2DecoderManualInitTest, ReadFormatExtension) { 2277 TEST_P(GLES2DecoderManualInitTest, ReadFormatExtension) {
2266 InitState init; 2278 InitState init;
2267 init.extensions = "GL_OES_read_format"; 2279 init.extensions = "GL_OES_read_format";
2280 init.gl_version = "2.1";
2268 init.bind_generates_resource = true; 2281 init.bind_generates_resource = true;
2269 InitDecoder(init); 2282 InitDecoder(init);
2270 2283
2271 EXPECT_CALL(*gl_, GetError()) 2284 EXPECT_CALL(*gl_, GetError())
2272 .WillOnce(Return(GL_NO_ERROR)) 2285 .WillOnce(Return(GL_NO_ERROR))
2273 .WillOnce(Return(GL_NO_ERROR)) 2286 .WillOnce(Return(GL_NO_ERROR))
2274 .WillOnce(Return(GL_NO_ERROR)) 2287 .WillOnce(Return(GL_NO_ERROR))
2275 .WillOnce(Return(GL_NO_ERROR)) 2288 .WillOnce(Return(GL_NO_ERROR))
2276 .RetiresOnSaturation(); 2289 .RetiresOnSaturation();
2277 EXPECT_CALL(*gl_, GetError()).Times(6).RetiresOnSaturation(); 2290 EXPECT_CALL(*gl_, GetError()).Times(6).RetiresOnSaturation();
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
2316 cmd.Init(GL_IMPLEMENTATION_COLOR_READ_TYPE, 2329 cmd.Init(GL_IMPLEMENTATION_COLOR_READ_TYPE,
2317 shared_memory_id_, 2330 shared_memory_id_,
2318 shared_memory_offset_); 2331 shared_memory_offset_);
2319 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 2332 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
2320 EXPECT_EQ(1, result->GetNumResults()); 2333 EXPECT_EQ(1, result->GetNumResults());
2321 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 2334 EXPECT_EQ(GL_NO_ERROR, GetGLError());
2322 } 2335 }
2323 2336
2324 TEST_P(GLES2DecoderManualInitTest, NoReadFormatExtension) { 2337 TEST_P(GLES2DecoderManualInitTest, NoReadFormatExtension) {
2325 InitState init; 2338 InitState init;
2339 init.gl_version = "2.1";
2326 init.bind_generates_resource = true; 2340 init.bind_generates_resource = true;
2327 InitDecoder(init); 2341 InitDecoder(init);
2328 2342
2329 EXPECT_CALL(*gl_, GetError()) 2343 EXPECT_CALL(*gl_, GetError())
2330 .WillOnce(Return(GL_NO_ERROR)) 2344 .WillOnce(Return(GL_NO_ERROR))
2331 .WillOnce(Return(GL_NO_ERROR)) 2345 .WillOnce(Return(GL_NO_ERROR))
2332 .WillOnce(Return(GL_NO_ERROR)) 2346 .WillOnce(Return(GL_NO_ERROR))
2333 .WillOnce(Return(GL_NO_ERROR)) 2347 .WillOnce(Return(GL_NO_ERROR))
2334 .RetiresOnSaturation(); 2348 .RetiresOnSaturation();
2335 2349
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
2377 EXPECT_EQ(1, result->GetNumResults()); 2391 EXPECT_EQ(1, result->GetNumResults());
2378 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 2392 EXPECT_EQ(GL_NO_ERROR, GetGLError());
2379 } 2393 }
2380 2394
2381 // TODO(gman): PixelStorei 2395 // TODO(gman): PixelStorei
2382 2396
2383 // TODO(gman): SwapBuffers 2397 // TODO(gman): SwapBuffers
2384 2398
2385 } // namespace gles2 2399 } // namespace gles2
2386 } // namespace gpu 2400 } // namespace gpu
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698