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

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

Issue 94963003: Take GL version and extensions correctly into account when binding functions (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Addressed nits Created 7 years 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 (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 "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 4721 matching lines...) Expand 10 before | Expand all | Expand 10 after
4732 false, // request alpha 4732 false, // request alpha
4733 false, // request depth 4733 false, // request depth
4734 false, // request stencil 4734 false, // request stencil
4735 true); // bind generates resource 4735 true); // bind generates resource
4736 DoBindRenderbuffer(GL_RENDERBUFFER, client_renderbuffer_id_, 4736 DoBindRenderbuffer(GL_RENDERBUFFER, client_renderbuffer_id_,
4737 kServiceRenderbufferId); 4737 kServiceRenderbufferId);
4738 EXPECT_CALL(*gl_, GetError()) 4738 EXPECT_CALL(*gl_, GetError())
4739 .WillOnce(Return(GL_NO_ERROR)) 4739 .WillOnce(Return(GL_NO_ERROR))
4740 .WillOnce(Return(GL_OUT_OF_MEMORY)) 4740 .WillOnce(Return(GL_OUT_OF_MEMORY))
4741 .RetiresOnSaturation(); 4741 .RetiresOnSaturation();
4742 EXPECT_CALL(*gl_, RenderbufferStorageMultisampleEXT( 4742 EXPECT_CALL(*gl_, RenderbufferStorageMultisample(
4743 GL_RENDERBUFFER, 1, GL_RGBA, 100, 50)) 4743 GL_RENDERBUFFER, 1, GL_RGBA, 100, 50))
4744 .Times(1) 4744 .Times(1)
4745 .RetiresOnSaturation(); 4745 .RetiresOnSaturation();
4746 RenderbufferStorageMultisampleCHROMIUM cmd; 4746 RenderbufferStorageMultisampleCHROMIUM cmd;
4747 cmd.Init(GL_RENDERBUFFER, 1, GL_RGBA4, 100, 50); 4747 cmd.Init(GL_RENDERBUFFER, 1, GL_RGBA4, 100, 50);
4748 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 4748 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
4749 EXPECT_EQ(GL_OUT_OF_MEMORY, GetGLError()); 4749 EXPECT_EQ(GL_OUT_OF_MEMORY, GetGLError());
4750 } 4750 }
4751 4751
4752 TEST_F(GLES2DecoderManualInitTest, 4752 TEST_F(GLES2DecoderManualInitTest,
4753 RenderbufferStorageMultisampleCHROMIUMBadArgs) { 4753 RenderbufferStorageMultisampleCHROMIUMBadArgs) {
4754 InitDecoder( 4754 InitDecoder(
4755 "GL_EXT_framebuffer_multisample", // extensions 4755 "GL_EXT_framebuffer_multisample", // extensions
4756 false, // has alpha 4756 false, // has alpha
4757 false, // has depth 4757 false, // has depth
4758 false, // has stencil 4758 false, // has stencil
4759 false, // request alpha 4759 false, // request alpha
4760 false, // request depth 4760 false, // request depth
4761 false, // request stencil 4761 false, // request stencil
4762 true); // bind generates resource 4762 true); // bind generates resource
4763 DoBindRenderbuffer(GL_RENDERBUFFER, client_renderbuffer_id_, 4763 DoBindRenderbuffer(GL_RENDERBUFFER, client_renderbuffer_id_,
4764 kServiceRenderbufferId); 4764 kServiceRenderbufferId);
4765 EXPECT_CALL(*gl_, RenderbufferStorageMultisampleEXT(_, _, _, _, _)) 4765 EXPECT_CALL(*gl_, RenderbufferStorageMultisample(_, _, _, _, _))
4766 .Times(0) 4766 .Times(0)
4767 .RetiresOnSaturation(); 4767 .RetiresOnSaturation();
4768 RenderbufferStorageMultisampleCHROMIUM cmd; 4768 RenderbufferStorageMultisampleCHROMIUM cmd;
4769 cmd.Init(GL_RENDERBUFFER, TestHelper::kMaxSamples + 1, 4769 cmd.Init(GL_RENDERBUFFER, TestHelper::kMaxSamples + 1,
4770 GL_RGBA4, TestHelper::kMaxRenderbufferSize, 1); 4770 GL_RGBA4, TestHelper::kMaxRenderbufferSize, 1);
4771 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 4771 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
4772 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); 4772 EXPECT_EQ(GL_INVALID_VALUE, GetGLError());
4773 cmd.Init(GL_RENDERBUFFER, TestHelper::kMaxSamples, 4773 cmd.Init(GL_RENDERBUFFER, TestHelper::kMaxSamples,
4774 GL_RGBA4, TestHelper::kMaxRenderbufferSize + 1, 1); 4774 GL_RGBA4, TestHelper::kMaxRenderbufferSize + 1, 1);
4775 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 4775 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
(...skipping 15 matching lines...) Expand all
4791 false, // request stencil 4791 false, // request stencil
4792 false); // bind generates resource 4792 false); // bind generates resource
4793 DoBindRenderbuffer(GL_RENDERBUFFER, client_renderbuffer_id_, 4793 DoBindRenderbuffer(GL_RENDERBUFFER, client_renderbuffer_id_,
4794 kServiceRenderbufferId); 4794 kServiceRenderbufferId);
4795 InSequence sequence; 4795 InSequence sequence;
4796 EXPECT_CALL(*gl_, GetError()) 4796 EXPECT_CALL(*gl_, GetError())
4797 .WillOnce(Return(GL_NO_ERROR)) 4797 .WillOnce(Return(GL_NO_ERROR))
4798 .RetiresOnSaturation(); 4798 .RetiresOnSaturation();
4799 EXPECT_CALL( 4799 EXPECT_CALL(
4800 *gl_, 4800 *gl_,
4801 RenderbufferStorageMultisampleEXT(GL_RENDERBUFFER, 4801 RenderbufferStorageMultisample(GL_RENDERBUFFER,
Ken Russell (switch to Gerrit) 2013/12/10 00:07:07 This change is problematic. This test explicitly t
4802 TestHelper::kMaxSamples, 4802 TestHelper::kMaxSamples,
4803 GL_RGBA, 4803 GL_RGBA,
4804 TestHelper::kMaxRenderbufferSize, 4804 TestHelper::kMaxRenderbufferSize,
4805 1)) 4805 1))
4806 .Times(1) 4806 .Times(1)
4807 .RetiresOnSaturation(); 4807 .RetiresOnSaturation();
4808 EXPECT_CALL(*gl_, GetError()) 4808 EXPECT_CALL(*gl_, GetError())
4809 .WillOnce(Return(GL_NO_ERROR)) 4809 .WillOnce(Return(GL_NO_ERROR))
4810 .RetiresOnSaturation(); 4810 .RetiresOnSaturation();
4811 RenderbufferStorageMultisampleCHROMIUM cmd; 4811 RenderbufferStorageMultisampleCHROMIUM cmd;
4812 cmd.Init(GL_RENDERBUFFER, TestHelper::kMaxSamples, 4812 cmd.Init(GL_RENDERBUFFER, TestHelper::kMaxSamples,
4813 GL_RGBA4, TestHelper::kMaxRenderbufferSize, 1); 4813 GL_RGBA4, TestHelper::kMaxRenderbufferSize, 1);
4814 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 4814 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
4815 EXPECT_EQ(GL_NO_ERROR, GetGLError()); 4815 EXPECT_EQ(GL_NO_ERROR, GetGLError());
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
4865 RenderbufferStorageMultisampleIMG(GL_RENDERBUFFER, 4865 RenderbufferStorageMultisampleIMG(GL_RENDERBUFFER,
4866 TestHelper::kMaxSamples, 4866 TestHelper::kMaxSamples,
4867 GL_RGBA, 4867 GL_RGBA,
4868 TestHelper::kMaxRenderbufferSize, 4868 TestHelper::kMaxRenderbufferSize,
4869 1)) 4869 1))
4870 .Times(1) 4870 .Times(1)
4871 .RetiresOnSaturation(); 4871 .RetiresOnSaturation();
4872 } else { 4872 } else {
4873 EXPECT_CALL( 4873 EXPECT_CALL(
4874 *gl_, 4874 *gl_,
4875 RenderbufferStorageMultisampleEXT(GL_RENDERBUFFER, 4875 RenderbufferStorageMultisample(GL_RENDERBUFFER,
no sievers 2013/12/05 20:51:57 Here we'd still want RenderbufferStorageMultisampl
oetuaho 2013/12/09 17:17:07 The root problem here is really that the unit test
no sievers 2013/12/09 20:05:24 Or maybe to make it simpler just initialize it wit
Ken Russell (switch to Gerrit) 2013/12/10 00:07:07 There are attempts in other tests, like GLES2Decod
oetuaho 2013/12/10 10:39:05 Yes, the decoder is initialized with the appropria
4876 TestHelper::kMaxSamples, 4876 TestHelper::kMaxSamples,
4877 GL_RGBA, 4877 GL_RGBA,
4878 TestHelper::kMaxRenderbufferSize, 4878 TestHelper::kMaxRenderbufferSize,
4879 1)) 4879 1))
4880 .Times(1) 4880 .Times(1)
4881 .RetiresOnSaturation(); 4881 .RetiresOnSaturation();
4882 } 4882 }
4883 EXPECT_CALL(*gl_, GetError()) 4883 EXPECT_CALL(*gl_, GetError())
4884 .WillOnce(Return(GL_NO_ERROR)) 4884 .WillOnce(Return(GL_NO_ERROR))
4885 .RetiresOnSaturation(); 4885 .RetiresOnSaturation();
4886 RenderbufferStorageMultisampleEXT cmd; 4886 RenderbufferStorageMultisampleEXT cmd;
4887 cmd.Init(GL_RENDERBUFFER, TestHelper::kMaxSamples, 4887 cmd.Init(GL_RENDERBUFFER, TestHelper::kMaxSamples,
4888 GL_RGBA4, TestHelper::kMaxRenderbufferSize, 1); 4888 GL_RGBA4, TestHelper::kMaxRenderbufferSize, 1);
4889 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 4889 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
(...skipping 3959 matching lines...) Expand 10 before | Expand all | Expand 10 after
8849 // TODO(gman): TexImage2DImmediate 8849 // TODO(gman): TexImage2DImmediate
8850 8850
8851 // TODO(gman): TexSubImage2DImmediate 8851 // TODO(gman): TexSubImage2DImmediate
8852 8852
8853 // TODO(gman): UseProgram 8853 // TODO(gman): UseProgram
8854 8854
8855 // TODO(gman): SwapBuffers 8855 // TODO(gman): SwapBuffers
8856 8856
8857 } // namespace gles2 8857 } // namespace gles2
8858 } // namespace gpu 8858 } // namespace gpu
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698