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

Unified Diff: components/mus/gles2/command_buffer_impl.cc

Issue 2119963002: Move mus to //services/ui (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 4 years, 6 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/mus/gles2/command_buffer_impl.h ('k') | components/mus/gles2/command_buffer_local.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/mus/gles2/command_buffer_impl.cc
diff --git a/components/mus/gles2/command_buffer_impl.cc b/components/mus/gles2/command_buffer_impl.cc
deleted file mode 100644
index 70de3c2aab6f3827107578d56219fa974fbfa43a..0000000000000000000000000000000000000000
--- a/components/mus/gles2/command_buffer_impl.cc
+++ /dev/null
@@ -1,301 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "components/mus/gles2/command_buffer_impl.h"
-
-#include "base/bind.h"
-#include "base/macros.h"
-#include "base/message_loop/message_loop.h"
-#include "components/mus/common/gpu_type_converters.h"
-#include "components/mus/gles2/command_buffer_driver.h"
-#include "components/mus/gles2/gpu_state.h"
-#include "gpu/command_buffer/service/sync_point_manager.h"
-
-namespace mus {
-
-namespace {
-
-uint64_t g_next_command_buffer_id = 0;
-
-void RunInitializeCallback(
- const mojom::CommandBuffer::InitializeCallback& callback,
- mojom::CommandBufferInitializeResultPtr result) {
- callback.Run(std::move(result));
-}
-
-void RunMakeProgressCallback(
- const mojom::CommandBuffer::MakeProgressCallback& callback,
- const gpu::CommandBuffer::State& state) {
- callback.Run(state);
-}
-
-} // namespace
-
-CommandBufferImpl::CommandBufferImpl(
- mojo::InterfaceRequest<mus::mojom::CommandBuffer> request,
- scoped_refptr<GpuState> gpu_state)
- : gpu_state_(gpu_state) {
- // Bind |CommandBufferImpl| to the |request| in the GPU control thread.
- gpu_state_->control_task_runner()->PostTask(
- FROM_HERE,
- base::Bind(&CommandBufferImpl::BindToRequest,
- base::Unretained(this), base::Passed(&request)));
-}
-
-void CommandBufferImpl::DidLoseContext(uint32_t reason) {
- driver_->set_client(nullptr);
- client_->Destroyed(reason, gpu::error::kLostContext);
-}
-
-void CommandBufferImpl::UpdateVSyncParameters(const base::TimeTicks& timebase,
- const base::TimeDelta& interval) {
-}
-
-void CommandBufferImpl::OnGpuCompletedSwapBuffers(gfx::SwapResult result) {}
-
-CommandBufferImpl::~CommandBufferImpl() {
-}
-
-void CommandBufferImpl::Initialize(
- mus::mojom::CommandBufferClientPtr client,
- mojo::ScopedSharedBufferHandle shared_state,
- mojo::Array<int32_t> attribs,
- const mojom::CommandBuffer::InitializeCallback& callback) {
- gpu_state_->command_buffer_task_runner()->task_runner()->PostTask(
- FROM_HERE,
- base::Bind(&CommandBufferImpl::InitializeOnGpuThread,
- base::Unretained(this), base::Passed(&client),
- base::Passed(&shared_state), base::Passed(&attribs),
- base::Bind(&RunInitializeCallback, callback)));
-}
-
-void CommandBufferImpl::SetGetBuffer(int32_t buffer) {
- gpu_state_->command_buffer_task_runner()->PostTask(
- driver_.get(), base::Bind(&CommandBufferImpl::SetGetBufferOnGpuThread,
- base::Unretained(this), buffer));
-}
-
-void CommandBufferImpl::Flush(int32_t put_offset) {
- gpu::SyncPointManager* sync_point_manager = gpu_state_->sync_point_manager();
- const uint32_t order_num = driver_->sync_point_order_data()
- ->GenerateUnprocessedOrderNumber(sync_point_manager);
- gpu_state_->command_buffer_task_runner()->PostTask(
- driver_.get(), base::Bind(&CommandBufferImpl::FlushOnGpuThread,
- base::Unretained(this), put_offset, order_num));
-}
-
-void CommandBufferImpl::MakeProgress(
- int32_t last_get_offset,
- const mojom::CommandBuffer::MakeProgressCallback& callback) {
- gpu_state_->command_buffer_task_runner()->PostTask(
- driver_.get(), base::Bind(&CommandBufferImpl::MakeProgressOnGpuThread,
- base::Unretained(this), last_get_offset,
- base::Bind(&RunMakeProgressCallback,
- callback)));
-}
-
-void CommandBufferImpl::RegisterTransferBuffer(
- int32_t id,
- mojo::ScopedSharedBufferHandle transfer_buffer,
- uint32_t size) {
- gpu_state_->command_buffer_task_runner()->PostTask(
- driver_.get(),
- base::Bind(&CommandBufferImpl::RegisterTransferBufferOnGpuThread,
- base::Unretained(this), id, base::Passed(&transfer_buffer),
- size));
-}
-
-void CommandBufferImpl::DestroyTransferBuffer(int32_t id) {
- gpu_state_->command_buffer_task_runner()->PostTask(
- driver_.get(),
- base::Bind(&CommandBufferImpl::DestroyTransferBufferOnGpuThread,
- base::Unretained(this), id));
-}
-
-void CommandBufferImpl::CreateImage(int32_t id,
- mojo::ScopedHandle memory_handle,
- int32_t type,
- const gfx::Size& size,
- int32_t format,
- int32_t internal_format) {
- gpu_state_->command_buffer_task_runner()->PostTask(
- driver_.get(),
- base::Bind(&CommandBufferImpl::CreateImageOnGpuThread,
- base::Unretained(this), id, base::Passed(&memory_handle), type,
- size, format, internal_format));
-}
-
-void CommandBufferImpl::DestroyImage(int32_t id) {
- gpu_state_->command_buffer_task_runner()->PostTask(
- driver_.get(), base::Bind(&CommandBufferImpl::DestroyImageOnGpuThread,
- base::Unretained(this), id));
-}
-
-void CommandBufferImpl::CreateStreamTexture(
- uint32_t client_texture_id,
- const mojom::CommandBuffer::CreateStreamTextureCallback& callback) {
- NOTIMPLEMENTED();
-}
-
-void CommandBufferImpl::TakeFrontBuffer(const gpu::Mailbox& mailbox) {
- NOTIMPLEMENTED();
-}
-
-void CommandBufferImpl::ReturnFrontBuffer(const gpu::Mailbox& mailbox,
- bool is_lost) {
- NOTIMPLEMENTED();
-}
-
-void CommandBufferImpl::SignalQuery(uint32_t query, uint32_t signal_id) {
- NOTIMPLEMENTED();
-}
-
-void CommandBufferImpl::SignalSyncToken(const gpu::SyncToken& sync_token,
- uint32_t signal_id) {
- NOTIMPLEMENTED();
-}
-
-void CommandBufferImpl::WaitForGetOffsetInRange(
- int32_t start, int32_t end,
- const mojom::CommandBuffer::WaitForGetOffsetInRangeCallback& callback) {
- NOTIMPLEMENTED();
-}
-
-void CommandBufferImpl::WaitForTokenInRange(
- int32_t start, int32_t end,
- const mojom::CommandBuffer::WaitForGetOffsetInRangeCallback& callback) {
- NOTIMPLEMENTED();
-}
-
-void CommandBufferImpl::BindToRequest(
- mojo::InterfaceRequest<mus::mojom::CommandBuffer> request) {
- binding_.reset(
- new mojo::Binding<mus::mojom::CommandBuffer>(this, std::move(request)));
- binding_->set_connection_error_handler(
- base::Bind(&CommandBufferImpl::OnConnectionError,
- base::Unretained(this)));
-}
-
-void CommandBufferImpl::InitializeOnGpuThread(
- mojom::CommandBufferClientPtr client,
- mojo::ScopedSharedBufferHandle shared_state,
- mojo::Array<int32_t> attribs,
- const base::Callback<
- void(mojom::CommandBufferInitializeResultPtr)>& callback) {
- DCHECK(!driver_);
- driver_.reset(new CommandBufferDriver(
- gpu::CommandBufferNamespace::MOJO,
- gpu::CommandBufferId::FromUnsafeValue(++g_next_command_buffer_id),
- gfx::kNullAcceleratedWidget, gpu_state_));
- driver_->set_client(this);
- client_ = mojo::MakeProxy(client.PassInterface());
- bool result =
- driver_->Initialize(std::move(shared_state), std::move(attribs));
- mojom::CommandBufferInitializeResultPtr initialize_result;
- if (result) {
- initialize_result = mojom::CommandBufferInitializeResult::New();
- initialize_result->command_buffer_namespace = driver_->GetNamespaceID();
- initialize_result->command_buffer_id =
- driver_->GetCommandBufferID().GetUnsafeValue();
- initialize_result->capabilities = driver_->GetCapabilities();
- }
- gpu_state_->control_task_runner()->PostTask(
- FROM_HERE, base::Bind(callback, base::Passed(&initialize_result)));
-}
-
-bool CommandBufferImpl::SetGetBufferOnGpuThread(int32_t buffer) {
- DCHECK(driver_->IsScheduled());
- driver_->SetGetBuffer(buffer);
- return true;
-}
-
-bool CommandBufferImpl::FlushOnGpuThread(int32_t put_offset,
- uint32_t order_num) {
- DCHECK(driver_->IsScheduled());
- driver_->sync_point_order_data()->BeginProcessingOrderNumber(order_num);
- driver_->Flush(put_offset);
-
- // Return false if the Flush is not finished, so the CommandBufferTaskRunner
- // will not remove this task from the task queue.
- const bool complete = !driver_->HasUnprocessedCommands();
- if (!complete)
- driver_->sync_point_order_data()->PauseProcessingOrderNumber(order_num);
- else
- driver_->sync_point_order_data()->FinishProcessingOrderNumber(order_num);
- return complete;
-}
-
-bool CommandBufferImpl::MakeProgressOnGpuThread(
- int32_t last_get_offset,
- const base::Callback<void(const gpu::CommandBuffer::State&)>& callback) {
- DCHECK(driver_->IsScheduled());
- gpu_state_->control_task_runner()->PostTask(
- FROM_HERE, base::Bind(callback, driver_->GetLastState()));
- return true;
-}
-
-bool CommandBufferImpl::RegisterTransferBufferOnGpuThread(
- int32_t id,
- mojo::ScopedSharedBufferHandle transfer_buffer,
- uint32_t size) {
- DCHECK(driver_->IsScheduled());
- driver_->RegisterTransferBuffer(id, std::move(transfer_buffer), size);
- return true;
-}
-
-bool CommandBufferImpl::DestroyTransferBufferOnGpuThread(int32_t id) {
- DCHECK(driver_->IsScheduled());
- driver_->DestroyTransferBuffer(id);
- return true;
-}
-
-bool CommandBufferImpl::CreateImageOnGpuThread(int32_t id,
- mojo::ScopedHandle memory_handle,
- int32_t type,
- const gfx::Size& size,
- int32_t format,
- int32_t internal_format) {
- DCHECK(driver_->IsScheduled());
- driver_->CreateImage(id, std::move(memory_handle), type, std::move(size),
- format, internal_format);
- return true;
-}
-
-bool CommandBufferImpl::DestroyImageOnGpuThread(int32_t id) {
- DCHECK(driver_->IsScheduled());
- driver_->DestroyImage(id);
- return true;
-}
-
-void CommandBufferImpl::OnConnectionError() {
- // OnConnectionError() is called on the control thread |control_task_runner|.
-
- // Before deleting, we need to delete |binding_| because it is bound to the
- // current thread (|control_task_runner|).
- binding_.reset();
-
- // Objects we own (such as CommandBufferDriver) need to be destroyed on the
- // thread we were created on. It's entirely possible we haven't or are in the
- // process of creating |driver_|.
- if (driver_) {
- gpu_state_->command_buffer_task_runner()->PostTask(
- driver_.get(), base::Bind(&CommandBufferImpl::DeleteOnGpuThread,
- base::Unretained(this)));
- } else {
- gpu_state_->command_buffer_task_runner()->task_runner()->PostTask(
- FROM_HERE, base::Bind(&CommandBufferImpl::DeleteOnGpuThread2,
- base::Unretained(this)));
- }
-}
-
-bool CommandBufferImpl::DeleteOnGpuThread() {
- delete this;
- return true;
-}
-
-void CommandBufferImpl::DeleteOnGpuThread2() {
- delete this;
-}
-
-} // namespace mus
« no previous file with comments | « components/mus/gles2/command_buffer_impl.h ('k') | components/mus/gles2/command_buffer_local.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698