| 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 |