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

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

Issue 139013008: Implement support for rendering to 32-bit float textures on ES3 (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Make TexSubImage validation agree with TexImage validation Created 6 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 (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_unittest_base.h" 5 #include "gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
134 memory_tracker_, 134 memory_tracker_,
135 feature_info.get(), 135 feature_info.get(),
136 bind_generates_resource)); 136 bind_generates_resource));
137 // These two workarounds are always turned on. 137 // These two workarounds are always turned on.
138 group_->feature_info( 138 group_->feature_info(
139 )->workarounds_.set_texture_filter_before_generating_mipmap = true; 139 )->workarounds_.set_texture_filter_before_generating_mipmap = true;
140 group_->feature_info()->workarounds_.clear_alpha_in_readpixels = true; 140 group_->feature_info()->workarounds_.clear_alpha_in_readpixels = true;
141 141
142 InSequence sequence; 142 InSequence sequence;
143 143
144 surface_ = new gfx::GLSurfaceStub;
145 surface_->SetSize(gfx::Size(kBackBufferWidth, kBackBufferHeight));
146
147 // Context needs to be created before initializing ContextGroup, which will
148 // in turn initialize FeatureInfo, which needs a context to determine
149 // extension support.
150 context_ = new gfx::GLContextStubWithExtensions;
151 context_->AddExtensionsString(extensions);
152 context_->SetGLVersionString(gl_version);
153
154 context_->MakeCurrent(surface_.get());
155 gfx::GLSurface::InitializeDynamicMockBindingsForTests(context_);
156
144 TestHelper::SetupContextGroupInitExpectations(gl_.get(), 157 TestHelper::SetupContextGroupInitExpectations(gl_.get(),
145 DisallowedFeatures(), extensions); 158 DisallowedFeatures(), extensions, gl_version);
146 159
147 // We initialize the ContextGroup with a MockGLES2Decoder so that 160 // We initialize the ContextGroup with a MockGLES2Decoder so that
148 // we can use the ContextGroup to figure out how the real GLES2Decoder 161 // we can use the ContextGroup to figure out how the real GLES2Decoder
149 // will initialize itself. 162 // will initialize itself.
150 mock_decoder_.reset(new MockGLES2Decoder()); 163 mock_decoder_.reset(new MockGLES2Decoder());
151 EXPECT_TRUE( 164 EXPECT_TRUE(
152 group_->Initialize(mock_decoder_.get(), DisallowedFeatures())); 165 group_->Initialize(mock_decoder_.get(), DisallowedFeatures()));
153 166
154 AddExpectationsForVertexAttribManager(); 167 AddExpectationsForVertexAttribManager();
155 168
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after
274 #endif 287 #endif
275 288
276 engine_.reset(new StrictMock<MockCommandBufferEngine>()); 289 engine_.reset(new StrictMock<MockCommandBufferEngine>());
277 gpu::Buffer buffer = engine_->GetSharedMemoryBuffer(kSharedMemoryId); 290 gpu::Buffer buffer = engine_->GetSharedMemoryBuffer(kSharedMemoryId);
278 shared_memory_offset_ = kSharedMemoryOffset; 291 shared_memory_offset_ = kSharedMemoryOffset;
279 shared_memory_address_ = reinterpret_cast<int8*>(buffer.ptr) + 292 shared_memory_address_ = reinterpret_cast<int8*>(buffer.ptr) +
280 shared_memory_offset_; 293 shared_memory_offset_;
281 shared_memory_id_ = kSharedMemoryId; 294 shared_memory_id_ = kSharedMemoryId;
282 shared_memory_base_ = buffer.ptr; 295 shared_memory_base_ = buffer.ptr;
283 296
284 surface_ = new gfx::GLSurfaceStub;
285 surface_->SetSize(gfx::Size(kBackBufferWidth, kBackBufferHeight));
286
287 context_ = new gfx::GLContextStubWithExtensions;
288 context_->AddExtensionsString(extensions);
289 context_->SetGLVersionString(gl_version);
290
291 context_->MakeCurrent(surface_.get());
292 gfx::GLSurface::InitializeDynamicMockBindingsForTests(context_);
293
294 int32 attributes[] = { 297 int32 attributes[] = {
295 EGL_ALPHA_SIZE, request_alpha ? 8 : 0, 298 EGL_ALPHA_SIZE, request_alpha ? 8 : 0,
296 EGL_DEPTH_SIZE, request_depth ? 24 : 0, 299 EGL_DEPTH_SIZE, request_depth ? 24 : 0,
297 EGL_STENCIL_SIZE, request_stencil ? 8 : 0, 300 EGL_STENCIL_SIZE, request_stencil ? 8 : 0,
298 }; 301 };
299 std::vector<int32> attribs(attributes, attributes + arraysize(attributes)); 302 std::vector<int32> attribs(attributes, attributes + arraysize(attributes));
300 303
301 decoder_.reset(GLES2Decoder::Create(group_.get())); 304 decoder_.reset(GLES2Decoder::Create(group_.get()));
302 decoder_->GetLogger()->set_log_synthesized_gl_errors(false); 305 decoder_->GetLogger()->set_log_synthesized_gl_errors(false);
303 decoder_->Initialize(surface_, 306 decoder_->Initialize(surface_,
(...skipping 523 matching lines...) Expand 10 before | Expand all | Expand 10 after
827 .RetiresOnSaturation(); 830 .RetiresOnSaturation();
828 EXPECT_CALL(*gl_, GetError()) 831 EXPECT_CALL(*gl_, GetError())
829 .WillOnce(Return(GL_NO_ERROR)) 832 .WillOnce(Return(GL_NO_ERROR))
830 .RetiresOnSaturation(); 833 .RetiresOnSaturation();
831 cmds::TexImage2D cmd; 834 cmds::TexImage2D cmd;
832 cmd.Init(target, level, internal_format, width, height, border, format, 835 cmd.Init(target, level, internal_format, width, height, border, format,
833 type, shared_memory_id, shared_memory_offset); 836 type, shared_memory_id, shared_memory_offset);
834 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); 837 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
835 } 838 }
836 839
840 void GLES2DecoderTestBase::DoTexImage2DConvertInternalFormat(
841 GLenum target, GLint level, GLenum requested_internal_format,
842 GLsizei width, GLsizei height, GLint border,
843 GLenum format, GLenum type,
844 uint32 shared_memory_id, uint32 shared_memory_offset,
845 GLenum expected_internal_format) {
846 EXPECT_CALL(*gl_, GetError())
847 .WillOnce(Return(GL_NO_ERROR))
848 .RetiresOnSaturation();
849 EXPECT_CALL(*gl_, TexImage2D(target, level, expected_internal_format,
850 width, height, border, format, type, _))
851 .Times(1)
852 .RetiresOnSaturation();
853 EXPECT_CALL(*gl_, GetError())
854 .WillOnce(Return(GL_NO_ERROR))
855 .RetiresOnSaturation();
856 cmds::TexImage2D cmd;
857 cmd.Init(target, level, requested_internal_format, width, height, border,
858 format, type, shared_memory_id, shared_memory_offset);
859 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd));
860 }
861
837 void GLES2DecoderTestBase::DoCompressedTexImage2D( 862 void GLES2DecoderTestBase::DoCompressedTexImage2D(
838 GLenum target, GLint level, GLenum format, 863 GLenum target, GLint level, GLenum format,
839 GLsizei width, GLsizei height, GLint border, 864 GLsizei width, GLsizei height, GLint border,
840 GLsizei size, uint32 bucket_id) { 865 GLsizei size, uint32 bucket_id) {
841 EXPECT_CALL(*gl_, GetError()) 866 EXPECT_CALL(*gl_, GetError())
842 .WillOnce(Return(GL_NO_ERROR)) 867 .WillOnce(Return(GL_NO_ERROR))
843 .RetiresOnSaturation(); 868 .RetiresOnSaturation();
844 EXPECT_CALL(*gl_, CompressedTexImage2D( 869 EXPECT_CALL(*gl_, CompressedTexImage2D(
845 target, level, format, width, height, border, size, _)) 870 target, level, format, width, height, border, size, _))
846 .Times(1) 871 .Times(1)
(...skipping 585 matching lines...) Expand 10 before | Expand all | Expand 10 after
1432 SetupDefaultProgram(); 1457 SetupDefaultProgram();
1433 } 1458 }
1434 1459
1435 // Include the auto-generated part of this file. We split this because it means 1460 // Include the auto-generated part of this file. We split this because it means
1436 // we can easily edit the non-auto generated parts right here in this file 1461 // we can easily edit the non-auto generated parts right here in this file
1437 // instead of having to edit some template or the code generator. 1462 // instead of having to edit some template or the code generator.
1438 #include "gpu/command_buffer/service/gles2_cmd_decoder_unittest_0_autogen.h" 1463 #include "gpu/command_buffer/service/gles2_cmd_decoder_unittest_0_autogen.h"
1439 1464
1440 } // namespace gles2 1465 } // namespace gles2
1441 } // namespace gpu 1466 } // namespace gpu
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698