OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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/context_provider_command_buffer.h" | 5 #include "content/common/gpu/client/context_provider_command_buffer.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 | 8 |
9 #include <memory> | 9 #include <memory> |
10 #include <set> | 10 #include <set> |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
47 }; | 47 }; |
48 } | 48 } |
49 | 49 |
50 namespace content { | 50 namespace content { |
51 | 51 |
52 ContextProviderCommandBuffer::SharedProviders::SharedProviders() = default; | 52 ContextProviderCommandBuffer::SharedProviders::SharedProviders() = default; |
53 ContextProviderCommandBuffer::SharedProviders::~SharedProviders() = default; | 53 ContextProviderCommandBuffer::SharedProviders::~SharedProviders() = default; |
54 | 54 |
55 ContextProviderCommandBuffer::ContextProviderCommandBuffer( | 55 ContextProviderCommandBuffer::ContextProviderCommandBuffer( |
56 scoped_refptr<gpu::GpuChannelHost> channel, | 56 scoped_refptr<gpu::GpuChannelHost> channel, |
| 57 int32_t stream_id, |
| 58 gpu::GpuStreamPriority stream_priority, |
57 gpu::SurfaceHandle surface_handle, | 59 gpu::SurfaceHandle surface_handle, |
58 const GURL& active_url, | 60 const GURL& active_url, |
59 gfx::GpuPreference gpu_preference, | 61 gfx::GpuPreference gpu_preference, |
60 bool automatic_flushes, | 62 bool automatic_flushes, |
61 const gpu::SharedMemoryLimits& memory_limits, | 63 const gpu::SharedMemoryLimits& memory_limits, |
62 const gpu::gles2::ContextCreationAttribHelper& attributes, | 64 const gpu::gles2::ContextCreationAttribHelper& attributes, |
63 ContextProviderCommandBuffer* shared_context_provider, | 65 ContextProviderCommandBuffer* shared_context_provider, |
64 command_buffer_metrics::ContextType type) | 66 command_buffer_metrics::ContextType type) |
65 : surface_handle_(surface_handle), | 67 : stream_id_(stream_id), |
| 68 stream_priority_(stream_priority), |
| 69 surface_handle_(surface_handle), |
66 active_url_(active_url), | 70 active_url_(active_url), |
67 gpu_preference_(gpu_preference), | 71 gpu_preference_(gpu_preference), |
68 automatic_flushes_(automatic_flushes), | 72 automatic_flushes_(automatic_flushes), |
69 memory_limits_(memory_limits), | 73 memory_limits_(memory_limits), |
70 attributes_(attributes), | 74 attributes_(attributes), |
71 context_type_(type), | 75 context_type_(type), |
72 shared_providers_(shared_context_provider | 76 shared_providers_(shared_context_provider |
73 ? shared_context_provider->shared_providers_ | 77 ? shared_context_provider->shared_providers_ |
74 : new SharedProviders), | 78 : new SharedProviders), |
75 channel_(std::move(channel)) { | 79 channel_(std::move(channel)) { |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
135 DCHECK_EQ(!!shared_command_buffer, !!share_group); | 139 DCHECK_EQ(!!shared_command_buffer, !!share_group); |
136 } | 140 } |
137 | 141 |
138 DCHECK(attributes_.buffer_preserved); | 142 DCHECK(attributes_.buffer_preserved); |
139 std::vector<int32_t> serialized_attributes; | 143 std::vector<int32_t> serialized_attributes; |
140 attributes_.Serialize(&serialized_attributes); | 144 attributes_.Serialize(&serialized_attributes); |
141 | 145 |
142 // This command buffer is a client-side proxy to the command buffer in the | 146 // This command buffer is a client-side proxy to the command buffer in the |
143 // GPU process. | 147 // GPU process. |
144 command_buffer_ = channel_->CreateCommandBuffer( | 148 command_buffer_ = channel_->CreateCommandBuffer( |
145 surface_handle_, gfx::Size(), shared_command_buffer, | 149 surface_handle_, gfx::Size(), shared_command_buffer, stream_id_, |
146 gpu::GpuChannelHost::kDefaultStreamId, | 150 stream_priority_, serialized_attributes, active_url_, gpu_preference_); |
147 gpu::GpuChannelHost::kDefaultStreamPriority, serialized_attributes, | |
148 active_url_, gpu_preference_); | |
149 // The command buffer takes ownership of the |channel_|, so no need to keep | 151 // The command buffer takes ownership of the |channel_|, so no need to keep |
150 // a reference around here. | 152 // a reference around here. |
151 channel_ = nullptr; | 153 channel_ = nullptr; |
152 if (!command_buffer_) { | 154 if (!command_buffer_) { |
153 DLOG(ERROR) << "GpuChannelHost failed to create command buffer."; | 155 DLOG(ERROR) << "GpuChannelHost failed to create command buffer."; |
154 command_buffer_metrics::UmaRecordContextInitFailed(context_type_); | 156 command_buffer_metrics::UmaRecordContextInitFailed(context_type_); |
155 return false; | 157 return false; |
156 } | 158 } |
157 | 159 |
158 // The GLES2 helper writes the command buffer protocol. | 160 // The GLES2 helper writes the command buffer protocol. |
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
314 | 316 |
315 void ContextProviderCommandBuffer::SetLostContextCallback( | 317 void ContextProviderCommandBuffer::SetLostContextCallback( |
316 const LostContextCallback& lost_context_callback) { | 318 const LostContextCallback& lost_context_callback) { |
317 DCHECK(context_thread_checker_.CalledOnValidThread()); | 319 DCHECK(context_thread_checker_.CalledOnValidThread()); |
318 DCHECK(lost_context_callback_.is_null() || | 320 DCHECK(lost_context_callback_.is_null() || |
319 lost_context_callback.is_null()); | 321 lost_context_callback.is_null()); |
320 lost_context_callback_ = lost_context_callback; | 322 lost_context_callback_ = lost_context_callback; |
321 } | 323 } |
322 | 324 |
323 } // namespace content | 325 } // namespace content |
OLD | NEW |