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

Side by Side Diff: gpu/command_buffer/tests/gl_manager.cc

Issue 2480373002: Refactor context creation parameters into a struct. (Closed)
Patch Set: address piman's comments Created 4 years, 1 month 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/tests/gl_manager.h" 5 #include "gpu/command_buffer/tests/gl_manager.h"
6 6
7 #include <GLES2/gl2.h> 7 #include <GLES2/gl2.h>
8 #include <GLES2/gl2ext.h> 8 #include <GLES2/gl2ext.h>
9 #include <GLES2/gl2extchromium.h> 9 #include <GLES2/gl2extchromium.h>
10 #include <stddef.h> 10 #include <stddef.h>
(...skipping 16 matching lines...) Expand all
27 #include "gpu/command_buffer/common/gles2_cmd_utils.h" 27 #include "gpu/command_buffer/common/gles2_cmd_utils.h"
28 #include "gpu/command_buffer/common/sync_token.h" 28 #include "gpu/command_buffer/common/sync_token.h"
29 #include "gpu/command_buffer/service/command_buffer_service.h" 29 #include "gpu/command_buffer/service/command_buffer_service.h"
30 #include "gpu/command_buffer/service/command_executor.h" 30 #include "gpu/command_buffer/service/command_executor.h"
31 #include "gpu/command_buffer/service/context_group.h" 31 #include "gpu/command_buffer/service/context_group.h"
32 #include "gpu/command_buffer/service/gl_context_virtual.h" 32 #include "gpu/command_buffer/service/gl_context_virtual.h"
33 #include "gpu/command_buffer/service/gles2_cmd_decoder.h" 33 #include "gpu/command_buffer/service/gles2_cmd_decoder.h"
34 #include "gpu/command_buffer/service/image_manager.h" 34 #include "gpu/command_buffer/service/image_manager.h"
35 #include "gpu/command_buffer/service/mailbox_manager_impl.h" 35 #include "gpu/command_buffer/service/mailbox_manager_impl.h"
36 #include "gpu/command_buffer/service/memory_tracking.h" 36 #include "gpu/command_buffer/service/memory_tracking.h"
37 #include "gpu/command_buffer/service/service_utils.h"
37 #include "gpu/command_buffer/service/sync_point_manager.h" 38 #include "gpu/command_buffer/service/sync_point_manager.h"
38 #include "gpu/command_buffer/service/transfer_buffer_manager.h" 39 #include "gpu/command_buffer/service/transfer_buffer_manager.h"
39 #include "testing/gtest/include/gtest/gtest.h" 40 #include "testing/gtest/include/gtest/gtest.h"
40 #include "ui/gfx/buffer_format_util.h" 41 #include "ui/gfx/buffer_format_util.h"
41 #include "ui/gfx/gpu_memory_buffer.h" 42 #include "ui/gfx/gpu_memory_buffer.h"
42 #include "ui/gl/gl_context.h" 43 #include "ui/gl/gl_context.h"
43 #include "ui/gl/gl_image_ref_counted_memory.h" 44 #include "ui/gl/gl_image_ref_counted_memory.h"
44 #include "ui/gl/gl_share_group.h" 45 #include "ui/gl/gl_share_group.h"
45 #include "ui/gl/gl_surface.h" 46 #include "ui/gl/gl_surface.h"
46 #include "ui/gl/init/gl_factory.h" 47 #include "ui/gl/init/gl_factory.h"
(...skipping 271 matching lines...) Expand 10 before | Expand all | Expand 10 after
318 decoder_.get())); 319 decoder_.get()));
319 320
320 decoder_->set_engine(executor_.get()); 321 decoder_->set_engine(executor_.get());
321 322
322 surface_ = gl::init::CreateOffscreenGLSurface(gfx::Size()); 323 surface_ = gl::init::CreateOffscreenGLSurface(gfx::Size());
323 ASSERT_TRUE(surface_.get() != NULL) << "could not create offscreen surface"; 324 ASSERT_TRUE(surface_.get() != NULL) << "could not create offscreen surface";
324 325
325 if (base_context_) { 326 if (base_context_) {
326 context_ = scoped_refptr<gl::GLContext>(new gpu::GLContextVirtual( 327 context_ = scoped_refptr<gl::GLContext>(new gpu::GLContextVirtual(
327 share_group_.get(), base_context_->get(), decoder_->AsWeakPtr())); 328 share_group_.get(), base_context_->get(), decoder_->AsWeakPtr()));
328 ASSERT_TRUE(context_->Initialize(surface_.get(), attribs.gpu_preference)); 329 ASSERT_TRUE(context_->Initialize(
330 surface_.get(),
331 GenerateGLContextAttribs(attribs, context_group->gpu_preferences())));
329 } else { 332 } else {
330 if (real_gl_context) { 333 if (real_gl_context) {
331 context_ = scoped_refptr<gl::GLContext>(new gpu::GLContextVirtual( 334 context_ = scoped_refptr<gl::GLContext>(new gpu::GLContextVirtual(
332 share_group_.get(), real_gl_context, decoder_->AsWeakPtr())); 335 share_group_.get(), real_gl_context, decoder_->AsWeakPtr()));
333 ASSERT_TRUE( 336 ASSERT_TRUE(context_->Initialize(
334 context_->Initialize(surface_.get(), attribs.gpu_preference)); 337 surface_.get(),
338 GenerateGLContextAttribs(attribs, context_group->gpu_preferences())));
335 } else { 339 } else {
336 context_ = gl::init::CreateGLContext(share_group_.get(), surface_.get(), 340 context_ = gl::init::CreateGLContext(
337 attribs.gpu_preference); 341 share_group_.get(), surface_.get(),
342 GenerateGLContextAttribs(attribs, context_group->gpu_preferences()));
338 } 343 }
339 } 344 }
340 ASSERT_TRUE(context_.get() != NULL) << "could not create GL context"; 345 ASSERT_TRUE(context_.get() != NULL) << "could not create GL context";
341 346
342 ASSERT_TRUE(context_->MakeCurrent(surface_.get())); 347 ASSERT_TRUE(context_->MakeCurrent(surface_.get()));
343 348
344 if (!decoder_->Initialize(surface_.get(), context_.get(), true, 349 if (!decoder_->Initialize(surface_.get(), context_.get(), true,
345 ::gpu::gles2::DisallowedFeatures(), attribs)) { 350 ::gpu::gles2::DisallowedFeatures(), attribs)) {
346 return; 351 return;
347 } 352 }
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
391 } 396 }
392 397
393 void GLManager::SetupBaseContext() { 398 void GLManager::SetupBaseContext() {
394 if (use_count_) { 399 if (use_count_) {
395 #if defined(OS_ANDROID) 400 #if defined(OS_ANDROID)
396 base_share_group_ = 401 base_share_group_ =
397 new scoped_refptr<gl::GLShareGroup>(new gl::GLShareGroup); 402 new scoped_refptr<gl::GLShareGroup>(new gl::GLShareGroup);
398 gfx::Size size(4, 4); 403 gfx::Size size(4, 4);
399 base_surface_ = new scoped_refptr<gl::GLSurface>( 404 base_surface_ = new scoped_refptr<gl::GLSurface>(
400 gl::init::CreateOffscreenGLSurface(size)); 405 gl::init::CreateOffscreenGLSurface(size));
401 gl::GpuPreference gpu_preference(gl::PreferDiscreteGpu);
402 base_context_ = new scoped_refptr<gl::GLContext>(gl::init::CreateGLContext( 406 base_context_ = new scoped_refptr<gl::GLContext>(gl::init::CreateGLContext(
403 base_share_group_->get(), base_surface_->get(), gpu_preference)); 407 base_share_group_->get(), base_surface_->get(),
408 gl::GLContextAttribs()));
404 #endif 409 #endif
405 } 410 }
406 ++use_count_; 411 ++use_count_;
407 } 412 }
408 413
409 void GLManager::OnFenceSyncRelease(uint64_t release) { 414 void GLManager::OnFenceSyncRelease(uint64_t release) {
410 DCHECK(sync_point_client_); 415 DCHECK(sync_point_client_);
411 DCHECK(!sync_point_client_->client_state()->IsFenceSyncReleased(release)); 416 DCHECK(!sync_point_client_->client_state()->IsFenceSyncReleased(release));
412 sync_point_client_->ReleaseFenceSync(release); 417 sync_point_client_->ReleaseFenceSync(release);
413 } 418 }
(...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after
630 635
631 // Something went wrong, just run the callback now. 636 // Something went wrong, just run the callback now.
632 callback.Run(); 637 callback.Run();
633 } 638 }
634 639
635 bool GLManager::CanWaitUnverifiedSyncToken(const gpu::SyncToken* sync_token) { 640 bool GLManager::CanWaitUnverifiedSyncToken(const gpu::SyncToken* sync_token) {
636 return false; 641 return false;
637 } 642 }
638 643
639 } // namespace gpu 644 } // namespace gpu
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698