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

Side by Side Diff: content/common/gpu/client/webgraphicscontext3d_command_buffer_impl.cc

Issue 1949023005: gpu: Add flag for enabling asynchronous worker context. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 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 "content/common/gpu/client/webgraphicscontext3d_command_buffer_impl.h" 5 #include "content/common/gpu/client/webgraphicscontext3d_command_buffer_impl.h"
6 6
7 #include "third_party/khronos/GLES2/gl2.h" 7 #include "third_party/khronos/GLES2/gl2.h"
8 #ifndef GL_GLEXT_PROTOTYPES 8 #ifndef GL_GLEXT_PROTOTYPES
9 #define GL_GLEXT_PROTOTYPES 1 9 #define GL_GLEXT_PROTOTYPES 1
10 #endif 10 #endif
(...skipping 26 matching lines...) Expand all
37 #include "gpu/skia_bindings/gl_bindings_skia_cmd_buffer.h" 37 #include "gpu/skia_bindings/gl_bindings_skia_cmd_buffer.h"
38 #include "third_party/skia/include/core/SkTypes.h" 38 #include "third_party/skia/include/core/SkTypes.h"
39 39
40 namespace content { 40 namespace content {
41 41
42 WebGraphicsContext3DCommandBufferImpl::WebGraphicsContext3DCommandBufferImpl( 42 WebGraphicsContext3DCommandBufferImpl::WebGraphicsContext3DCommandBufferImpl(
43 gpu::SurfaceHandle surface_handle, 43 gpu::SurfaceHandle surface_handle,
44 const GURL& active_url, 44 const GURL& active_url,
45 scoped_refptr<gpu::GpuChannelHost> host, 45 scoped_refptr<gpu::GpuChannelHost> host,
46 gfx::GpuPreference gpu_preference, 46 gfx::GpuPreference gpu_preference,
47 bool automatic_flushes) 47 bool automatic_flushes,
48 : automatic_flushes_(automatic_flushes), 48 int32_t stream_id,
49 host_(std::move(host)), 49 gpu::GpuStreamPriority stream_priority)
50 : host_(std::move(host)),
50 surface_handle_(surface_handle), 51 surface_handle_(surface_handle),
51 active_url_(active_url), 52 active_url_(active_url),
52 gpu_preference_(gpu_preference), 53 gpu_preference_(gpu_preference),
54 automatic_flushes_(automatic_flushes),
55 stream_id_(stream_id),
56 stream_priority_(stream_priority),
53 weak_ptr_factory_(this) { 57 weak_ptr_factory_(this) {
54 DCHECK(host_); 58 DCHECK(host_);
55 } 59 }
56 60
57 WebGraphicsContext3DCommandBufferImpl:: 61 WebGraphicsContext3DCommandBufferImpl::
58 ~WebGraphicsContext3DCommandBufferImpl() { 62 ~WebGraphicsContext3DCommandBufferImpl() {
59 if (real_gl_) 63 if (real_gl_)
60 real_gl_->SetLostContextCallback(base::Closure()); 64 real_gl_->SetLostContextCallback(base::Closure());
61 65
62 Destroy(); 66 Destroy();
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
107 command_buffer_metrics::ContextType context_type) { 111 command_buffer_metrics::ContextType context_type) {
108 if (!host_.get()) 112 if (!host_.get())
109 return false; 113 return false;
110 114
111 DCHECK(attributes.buffer_preserved); 115 DCHECK(attributes.buffer_preserved);
112 std::vector<int32_t> serialized_attributes; 116 std::vector<int32_t> serialized_attributes;
113 attributes.Serialize(&serialized_attributes); 117 attributes.Serialize(&serialized_attributes);
114 118
115 // Create a proxy to a command buffer in the GPU process. 119 // Create a proxy to a command buffer in the GPU process.
116 command_buffer_ = host_->CreateCommandBuffer( 120 command_buffer_ = host_->CreateCommandBuffer(
117 surface_handle_, gfx::Size(), shared_command_buffer, 121 surface_handle_, gfx::Size(), shared_command_buffer, stream_id_,
118 gpu::GpuChannelHost::kDefaultStreamId, 122 stream_priority_, serialized_attributes, active_url_, gpu_preference_);
119 gpu::GpuChannelHost::kDefaultStreamPriority, serialized_attributes,
120 active_url_, gpu_preference_);
121 123
122 if (!command_buffer_) { 124 if (!command_buffer_) {
123 DLOG(ERROR) << "GpuChannelHost failed to create command buffer."; 125 DLOG(ERROR) << "GpuChannelHost failed to create command buffer.";
124 command_buffer_metrics::UmaRecordContextInitFailed(context_type); 126 command_buffer_metrics::UmaRecordContextInitFailed(context_type);
125 return false; 127 return false;
126 } 128 }
127 129
128 DVLOG_IF(1, gpu::error::IsError(command_buffer_->GetLastError())) 130 DVLOG_IF(1, gpu::error::IsError(command_buffer_->GetLastError()))
129 << "Context dead on arrival. Last error: " 131 << "Context dead on arrival. Last error: "
130 << command_buffer_->GetLastError(); 132 << command_buffer_->GetLastError();
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
217 WebGraphicsContext3DCommandBufferImpl::GetContextSupport() { 219 WebGraphicsContext3DCommandBufferImpl::GetContextSupport() {
218 return real_gl_.get(); 220 return real_gl_.get();
219 } 221 }
220 222
221 void WebGraphicsContext3DCommandBufferImpl::OnContextLost() { 223 void WebGraphicsContext3DCommandBufferImpl::OnContextLost() {
222 if (context_lost_callback_) 224 if (context_lost_callback_)
223 context_lost_callback_->onContextLost(); 225 context_lost_callback_->onContextLost();
224 } 226 }
225 227
226 } // namespace content 228 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698