OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 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 "components/mus/gles2/command_buffer_driver.h" | 5 #include "components/mus/gles2/command_buffer_driver.h" |
6 | 6 |
| 7 #include <stddef.h> |
| 8 |
7 #include "base/atomic_sequence_num.h" | 9 #include "base/atomic_sequence_num.h" |
8 #include "base/bind.h" | 10 #include "base/bind.h" |
9 #include "base/macros.h" | 11 #include "base/macros.h" |
10 #include "base/memory/shared_memory.h" | 12 #include "base/memory/shared_memory.h" |
11 #include "base/process/process_handle.h" | 13 #include "base/process/process_handle.h" |
| 14 #include "build/build_config.h" |
12 #include "components/mus/gles2/gpu_memory_tracker.h" | 15 #include "components/mus/gles2/gpu_memory_tracker.h" |
13 #include "components/mus/gles2/gpu_state.h" | 16 #include "components/mus/gles2/gpu_state.h" |
14 #include "components/mus/gles2/mojo_buffer_backing.h" | 17 #include "components/mus/gles2/mojo_buffer_backing.h" |
15 #include "gpu/command_buffer/common/value_state.h" | 18 #include "gpu/command_buffer/common/value_state.h" |
16 #include "gpu/command_buffer/service/command_buffer_service.h" | 19 #include "gpu/command_buffer/service/command_buffer_service.h" |
17 #include "gpu/command_buffer/service/context_group.h" | 20 #include "gpu/command_buffer/service/context_group.h" |
18 #include "gpu/command_buffer/service/gles2_cmd_decoder.h" | 21 #include "gpu/command_buffer/service/gles2_cmd_decoder.h" |
19 #include "gpu/command_buffer/service/gpu_scheduler.h" | 22 #include "gpu/command_buffer/service/gpu_scheduler.h" |
20 #include "gpu/command_buffer/service/image_factory.h" | 23 #include "gpu/command_buffer/service/image_factory.h" |
21 #include "gpu/command_buffer/service/image_manager.h" | 24 #include "gpu/command_buffer/service/image_manager.h" |
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
123 decoder_->SetWaitSyncPointCallback(base::Bind( | 126 decoder_->SetWaitSyncPointCallback(base::Bind( |
124 &CommandBufferDriver::OnWaitSyncPoint, base::Unretained(this))); | 127 &CommandBufferDriver::OnWaitSyncPoint, base::Unretained(this))); |
125 decoder_->SetFenceSyncReleaseCallback(base::Bind( | 128 decoder_->SetFenceSyncReleaseCallback(base::Bind( |
126 &CommandBufferDriver::OnFenceSyncRelease, base::Unretained(this))); | 129 &CommandBufferDriver::OnFenceSyncRelease, base::Unretained(this))); |
127 decoder_->SetWaitFenceSyncCallback(base::Bind( | 130 decoder_->SetWaitFenceSyncCallback(base::Bind( |
128 &CommandBufferDriver::OnWaitFenceSync, base::Unretained(this))); | 131 &CommandBufferDriver::OnWaitFenceSync, base::Unretained(this))); |
129 | 132 |
130 gpu::gles2::DisallowedFeatures disallowed_features; | 133 gpu::gles2::DisallowedFeatures disallowed_features; |
131 | 134 |
132 const bool offscreen = true; | 135 const bool offscreen = true; |
133 std::vector<int32> attrib_vector; | 136 std::vector<int32_t> attrib_vector; |
134 attrib_helper.Serialize(&attrib_vector); | 137 attrib_helper.Serialize(&attrib_vector); |
135 if (!decoder_->Initialize(surface_, context_, offscreen, gfx::Size(1, 1), | 138 if (!decoder_->Initialize(surface_, context_, offscreen, gfx::Size(1, 1), |
136 disallowed_features, attrib_vector)) | 139 disallowed_features, attrib_vector)) |
137 return false; | 140 return false; |
138 | 141 |
139 command_buffer_->SetPutOffsetChangeCallback(base::Bind( | 142 command_buffer_->SetPutOffsetChangeCallback(base::Bind( |
140 &gpu::GpuScheduler::PutChanged, base::Unretained(scheduler_.get()))); | 143 &gpu::GpuScheduler::PutChanged, base::Unretained(scheduler_.get()))); |
141 command_buffer_->SetGetBufferChangeCallback(base::Bind( | 144 command_buffer_->SetGetBufferChangeCallback(base::Bind( |
142 &gpu::GpuScheduler::SetGetBuffer, base::Unretained(scheduler_.get()))); | 145 &gpu::GpuScheduler::SetGetBuffer, base::Unretained(scheduler_.get()))); |
143 command_buffer_->SetParseErrorCallback( | 146 command_buffer_->SetParseErrorCallback( |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
184 } | 187 } |
185 command_buffer_->RegisterTransferBuffer(id, std::move(backing)); | 188 command_buffer_->RegisterTransferBuffer(id, std::move(backing)); |
186 } | 189 } |
187 | 190 |
188 void CommandBufferDriver::DestroyTransferBuffer(int32_t id) { | 191 void CommandBufferDriver::DestroyTransferBuffer(int32_t id) { |
189 command_buffer_->DestroyTransferBuffer(id); | 192 command_buffer_->DestroyTransferBuffer(id); |
190 } | 193 } |
191 | 194 |
192 void CommandBufferDriver::CreateImage(int32_t id, | 195 void CommandBufferDriver::CreateImage(int32_t id, |
193 mojo::ScopedHandle memory_handle, | 196 mojo::ScopedHandle memory_handle, |
194 int32 type, | 197 int32_t type, |
195 mojo::SizePtr size, | 198 mojo::SizePtr size, |
196 int32_t format, | 199 int32_t format, |
197 int32_t internal_format) { | 200 int32_t internal_format) { |
198 if (!MakeCurrent()) | 201 if (!MakeCurrent()) |
199 return; | 202 return; |
200 | 203 |
201 gpu::gles2::ImageManager* image_manager = decoder_->GetImageManager(); | 204 gpu::gles2::ImageManager* image_manager = decoder_->GetImageManager(); |
202 if (image_manager->LookupImage(id)) { | 205 if (image_manager->LookupImage(id)) { |
203 LOG(ERROR) << "Image already exists with same ID."; | 206 LOG(ERROR) << "Image already exists with same ID."; |
204 return; | 207 return; |
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
350 | 353 |
351 void CommandBufferDriver::DestroyDecoder() { | 354 void CommandBufferDriver::DestroyDecoder() { |
352 if (decoder_) { | 355 if (decoder_) { |
353 bool have_context = decoder_->MakeCurrent(); | 356 bool have_context = decoder_->MakeCurrent(); |
354 decoder_->Destroy(have_context); | 357 decoder_->Destroy(have_context); |
355 decoder_.reset(); | 358 decoder_.reset(); |
356 } | 359 } |
357 } | 360 } |
358 | 361 |
359 } // namespace mus | 362 } // namespace mus |
OLD | NEW |