From 06b3dd177f562f342eac5c4bf3e541b231afeda2 Mon Sep 17 00:00:00 2001 From: Antoine Labour Date: Thu, 18 May 2017 11:44:20 -0700 Subject: [PATCH] Remove CommandBufferEngine The only non-test implementation of CommandBufferEngine (CommandExecutor) directly forwards to CommandBufferServiceBase, so eliminate CommandBufferEngine and have CommonDecoder use CommandBufferServiceBase directly. Make CommandBufferServiceBase not derive from CommandBuffer (since neither CommonDecoder nor CommandExecutor need it), and instead make the relevant implementations (e.g. CommandBufferService) explicitly implement CommandBuffer. Rename the test class MockCommandBufferBase into FakeCommandBufferServiceBase (since it's a fake, not a mock), and move the CommandBuffer part of its implementation onto MockClientCommandBuffer. Use it instead of various CommandBufferEngine mocks/fakes. Bug: 723770 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Change-Id: Ia1386fa7f8617962739a36a397d508e61e4514e2 Reviewed-on: https://chromium-review.googlesource.com/508114 Commit-Queue: Antoine Labour Reviewed-by: Zhenyao Mo Cr-Commit-Position: refs/heads/master@{#473056} --- .../client/client_test_helper.cc | 112 ++-- .../client/client_test_helper.h | 34 +- .../client/cmd_buffer_helper_test.cc | 6 +- .../client/fenced_allocator_test.cc | 3 +- .../client/mapped_memory_unittest.cc | 2 +- gpu/command_buffer/client/ring_buffer_test.cc | 3 +- .../client/transfer_buffer_unittest.cc | 2 +- gpu/command_buffer/service/BUILD.gn | 1 - .../service/cmd_buffer_engine.h | 40 -- .../service/command_buffer_service.cc | 30 +- .../service/command_buffer_service.h | 11 +- .../service/command_executor.cc | 10 +- gpu/command_buffer/service/command_executor.h | 10 +- .../service/command_executor_unittest.cc | 44 +- gpu/command_buffer/service/common_decoder.cc | 28 +- gpu/command_buffer/service/common_decoder.h | 13 +- .../service/common_decoder_unittest.cc | 195 +++---- .../service/gles2_cmd_decoder.cc | 2 +- .../service/gles2_cmd_decoder_unittest.cc | 218 +++----- .../service/gles2_cmd_decoder_unittest.h | 1 - .../service/gles2_cmd_decoder_unittest_1.cc | 11 +- .../service/gles2_cmd_decoder_unittest_2.cc | 1 - .../service/gles2_cmd_decoder_unittest_3.cc | 1 - .../gles2_cmd_decoder_unittest_attribs.cc | 1 - .../gles2_cmd_decoder_unittest_base.cc | 46 +- .../service/gles2_cmd_decoder_unittest_base.h | 33 +- .../gles2_cmd_decoder_unittest_buffers.cc | 48 +- ...gles2_cmd_decoder_unittest_context_lost.cc | 1 - ...les2_cmd_decoder_unittest_context_state.cc | 1 - .../gles2_cmd_decoder_unittest_drawing.cc | 39 +- ...gles2_cmd_decoder_unittest_framebuffers.cc | 156 ++---- .../gles2_cmd_decoder_unittest_programs.cc | 211 +++----- .../gles2_cmd_decoder_unittest_textures.cc | 506 ++++-------------- gpu/command_buffer/service/mocks.cc | 7 +- gpu/command_buffer/service/mocks.h | 10 +- .../service/query_manager_unittest.cc | 169 +++--- gpu/command_buffer/tests/fuzzer_main.cc | 2 +- gpu/command_buffer/tests/gl_manager.cc | 2 +- gpu/gles2_conform_support/egl/context.cc | 2 +- gpu/ipc/in_process_command_buffer.cc | 2 +- gpu/ipc/in_process_command_buffer.h | 3 +- gpu/ipc/service/gpu_command_buffer_stub.cc | 4 +- 42 files changed, 623 insertions(+), 1398 deletions(-) delete mode 100644 gpu/command_buffer/service/cmd_buffer_engine.h diff --git a/gpu/command_buffer/client/client_test_helper.cc b/gpu/command_buffer/client/client_test_helper.cc index 0fb27033e98888..93cf80136aabc1 100644 --- a/gpu/command_buffer/client/client_test_helper.cc +++ b/gpu/command_buffer/client/client_test_helper.cc @@ -20,49 +20,25 @@ using ::testing::Invoke; namespace gpu { -MockCommandBufferBase::MockCommandBufferBase() : put_offset_(0) {} +FakeCommandBufferServiceBase::FakeCommandBufferServiceBase() : put_offset_(0) {} -MockCommandBufferBase::~MockCommandBufferBase() {} +FakeCommandBufferServiceBase::~FakeCommandBufferServiceBase() {} -CommandBuffer::State MockCommandBufferBase::GetLastState() { +CommandBuffer::State FakeCommandBufferServiceBase::GetState() { return state_; } -void MockCommandBufferBase::SetGetOffset(int32_t get_offset) { +void FakeCommandBufferServiceBase::SetGetOffset(int32_t get_offset) { state_.get_offset = get_offset; } -void MockCommandBufferBase::SetReleaseCount(uint64_t release_count) { +void FakeCommandBufferServiceBase::SetReleaseCount(uint64_t release_count) { state_.release_count = release_count; } -CommandBuffer::State MockCommandBufferBase::WaitForTokenInRange(int32_t start, - int32_t end) { - return state_; -} - -CommandBuffer::State MockCommandBufferBase::WaitForGetOffsetInRange( - uint32_t set_get_buffer_count, - int32_t start, - int32_t end) { - EXPECT_EQ(set_get_buffer_count, state_.set_get_buffer_count); - if (state_.get_offset != put_offset_) { - state_.get_offset = put_offset_; - OnFlush(); - } - return state_; -} - -void MockCommandBufferBase::SetGetBuffer(int transfer_buffer_id) { - ++state_.set_get_buffer_count; - state_.get_offset = 0; - put_offset_ = 0; - state_.token = 10000; // All token checks in the tests should pass. -} - // Get's the Id of the next transfer buffer that will be returned // by CreateTransferBuffer. This is useful for testing expected ids. -int32_t MockCommandBufferBase::GetNextFreeTransferBufferId() { +int32_t FakeCommandBufferServiceBase::GetNextFreeTransferBufferId() { for (size_t ii = 0; ii < arraysize(transfer_buffer_buffers_); ++ii) { if (!transfer_buffer_buffers_[ii].get()) { return kTransferBufferBaseId + ii; @@ -71,9 +47,16 @@ int32_t MockCommandBufferBase::GetNextFreeTransferBufferId() { return -1; } -scoped_refptr MockCommandBufferBase::CreateTransferBuffer( - size_t size, - int32_t* id) { +void FakeCommandBufferServiceBase::SetGetBufferHelper(int transfer_buffer_id) { + ++state_.set_get_buffer_count; + state_.get_offset = 0; + put_offset_ = 0; + state_.token = 10000; // All token checks in the tests should pass. +} + +scoped_refptr +FakeCommandBufferServiceBase::CreateTransferBufferHelper(size_t size, + int32_t* id) { *id = GetNextFreeTransferBufferId(); if (*id >= 0) { int32_t ndx = *id - kTransferBufferBaseId; @@ -85,44 +68,46 @@ scoped_refptr MockCommandBufferBase::CreateTransferBuffer( return GetTransferBuffer(*id); } -void MockCommandBufferBase::DestroyTransferBufferHelper(int32_t id) { +void FakeCommandBufferServiceBase::DestroyTransferBufferHelper(int32_t id) { DCHECK_GE(id, kTransferBufferBaseId); DCHECK_LT(id, kTransferBufferBaseId + kMaxTransferBuffers); id -= kTransferBufferBaseId; transfer_buffer_buffers_[id] = NULL; } -scoped_refptr MockCommandBufferBase::GetTransferBuffer(int32_t id) { - DCHECK_GE(id, kTransferBufferBaseId); - DCHECK_LT(id, kTransferBufferBaseId + kMaxTransferBuffers); +scoped_refptr FakeCommandBufferServiceBase::GetTransferBuffer( + int32_t id) { + if ((id < kTransferBufferBaseId) || + (id >= kTransferBufferBaseId + kMaxTransferBuffers)) + return nullptr; return transfer_buffer_buffers_[id - kTransferBufferBaseId]; } -void MockCommandBufferBase::FlushHelper(int32_t put_offset) { +void FakeCommandBufferServiceBase::FlushHelper(int32_t put_offset) { put_offset_ = put_offset; } -void MockCommandBufferBase::SetToken(int32_t token) { +void FakeCommandBufferServiceBase::SetToken(int32_t token) { state_.token = token; } -void MockCommandBufferBase::SetParseError(error::Error error) { +void FakeCommandBufferServiceBase::SetParseError(error::Error error) { state_.error = error; } -void MockCommandBufferBase::SetContextLostReason( +void FakeCommandBufferServiceBase::SetContextLostReason( error::ContextLostReason reason) { state_.context_lost_reason = reason; } -int32_t MockCommandBufferBase::GetPutOffset() { +int32_t FakeCommandBufferServiceBase::GetPutOffset() { return put_offset_; } // GCC requires these declarations, but MSVC requires they not be present #ifndef _MSC_VER -const int32_t MockCommandBufferBase::kTransferBufferBaseId; -const int32_t MockCommandBufferBase::kMaxTransferBuffers; +const int32_t FakeCommandBufferServiceBase::kTransferBufferBaseId; +const int32_t FakeCommandBufferServiceBase::kMaxTransferBuffers; #endif MockClientCommandBuffer::MockClientCommandBuffer() { @@ -131,6 +116,39 @@ MockClientCommandBuffer::MockClientCommandBuffer() { MockClientCommandBuffer::~MockClientCommandBuffer() {} +CommandBuffer::State MockClientCommandBuffer::GetLastState() { + return GetState(); +} + +CommandBuffer::State MockClientCommandBuffer::WaitForTokenInRange(int32_t start, + int32_t end) { + return GetState(); +} + +CommandBuffer::State MockClientCommandBuffer::WaitForGetOffsetInRange( + uint32_t set_get_buffer_count, + int32_t start, + int32_t end) { + State state = GetState(); + EXPECT_EQ(set_get_buffer_count, state.set_get_buffer_count); + if (state.get_offset != GetPutOffset()) { + SetGetOffset(GetPutOffset()); + OnFlush(); + state = GetState(); + } + return state; +} + +void MockClientCommandBuffer::SetGetBuffer(int transfer_buffer_id) { + SetGetBufferHelper(transfer_buffer_id); +} + +scoped_refptr MockClientCommandBuffer::CreateTransferBuffer( + size_t size, + int32_t* id) { + return CreateTransferBufferHelper(size, id); +} + void MockClientCommandBuffer::Flush(int32_t put_offset) { FlushHelper(put_offset); } @@ -141,8 +159,8 @@ void MockClientCommandBuffer::OrderingBarrier(int32_t put_offset) { void MockClientCommandBuffer::DelegateToFake() { ON_CALL(*this, DestroyTransferBuffer(_)) - .WillByDefault( - Invoke(this, &MockCommandBufferBase::DestroyTransferBufferHelper)); + .WillByDefault(Invoke( + this, &FakeCommandBufferServiceBase::DestroyTransferBufferHelper)); } MockClientCommandBufferMockFlush::MockClientCommandBufferMockFlush() { @@ -154,7 +172,7 @@ MockClientCommandBufferMockFlush::~MockClientCommandBufferMockFlush() {} void MockClientCommandBufferMockFlush::DelegateToFake() { MockClientCommandBuffer::DelegateToFake(); ON_CALL(*this, Flush(_)) - .WillByDefault(Invoke(this, &MockCommandBufferBase::FlushHelper)); + .WillByDefault(Invoke(this, &FakeCommandBufferServiceBase::FlushHelper)); } MockClientGpuControl::MockClientGpuControl() {} diff --git a/gpu/command_buffer/client/client_test_helper.h b/gpu/command_buffer/client/client_test_helper.h index 0a48187d8aeb33..938f66cc0cda20 100644 --- a/gpu/command_buffer/client/client_test_helper.h +++ b/gpu/command_buffer/client/client_test_helper.h @@ -25,24 +25,17 @@ namespace gpu { -class MockCommandBufferBase : public CommandBufferServiceBase { +class FakeCommandBufferServiceBase : public CommandBufferServiceBase { public: static const int32_t kTransferBufferBaseId = 0x123; static const int32_t kMaxTransferBuffers = 32; - MockCommandBufferBase(); - ~MockCommandBufferBase() override; + FakeCommandBufferServiceBase(); + ~FakeCommandBufferServiceBase() override; - State GetLastState() override; - State WaitForTokenInRange(int32_t start, int32_t end) override; - State WaitForGetOffsetInRange(uint32_t set_get_buffer_count, - int32_t start, - int32_t end) override; - void SetGetBuffer(int transfer_buffer_id) override; + CommandBuffer::State GetState() override; void SetGetOffset(int32_t get_offset) override; void SetReleaseCount(uint64_t release_count) override; - scoped_refptr CreateTransferBuffer(size_t size, - int32_t* id) override; scoped_refptr GetTransferBuffer(int32_t id) override; void SetToken(int32_t token) override; void SetParseError(error::Error error) override; @@ -54,21 +47,32 @@ class MockCommandBufferBase : public CommandBufferServiceBase { int32_t GetNextFreeTransferBufferId(); void FlushHelper(int32_t put_offset); + void SetGetBufferHelper(int transfer_buffer_id); + scoped_refptr CreateTransferBufferHelper(size_t size, + int32_t* id); void DestroyTransferBufferHelper(int32_t id); - virtual void OnFlush() = 0; - private: scoped_refptr transfer_buffer_buffers_[kMaxTransferBuffers]; - State state_; + CommandBuffer::State state_; int32_t put_offset_; }; -class MockClientCommandBuffer : public MockCommandBufferBase { +class MockClientCommandBuffer : public CommandBuffer, + public FakeCommandBufferServiceBase { public: MockClientCommandBuffer(); ~MockClientCommandBuffer() override; + State GetLastState() override; + State WaitForTokenInRange(int32_t start, int32_t end) override; + State WaitForGetOffsetInRange(uint32_t set_get_buffer_count, + int32_t start, + int32_t end) override; + void SetGetBuffer(int transfer_buffer_id) override; + scoped_refptr CreateTransferBuffer(size_t size, + int32_t* id) override; + // This is so we can use all the gmock functions when Flush is called. MOCK_METHOD0(OnFlush, void()); MOCK_METHOD1(DestroyTransferBuffer, void(int32_t id)); diff --git a/gpu/command_buffer/client/cmd_buffer_helper_test.cc b/gpu/command_buffer/client/cmd_buffer_helper_test.cc index dfa728825cedae..0825322097e197 100644 --- a/gpu/command_buffer/client/cmd_buffer_helper_test.cc +++ b/gpu/command_buffer/client/cmd_buffer_helper_test.cc @@ -92,8 +92,8 @@ class CommandBufferServiceLocked : public CommandBufferService { }; // Test fixture for CommandBufferHelper test - Creates a CommandBufferHelper, -// using a CommandBufferEngine with a mock AsyncAPIInterface for its interface -// (calling it directly, not through the RPC mechanism). +// using a CommandBufferServiceLocked with a mock AsyncAPIInterface for its +// interface (calling it directly, not through the RPC mechanism). class CommandBufferHelperTest : public testing::Test { protected: virtual void SetUp() { @@ -115,7 +115,7 @@ class CommandBufferHelperTest : public testing::Test { command_buffer_->SetGetBufferChangeCallback(base::Bind( &CommandExecutor::SetGetBuffer, base::Unretained(executor_.get()))); - api_mock_->set_engine(executor_.get()); + api_mock_->set_command_buffer_service(command_buffer_.get()); helper_.reset(new CommandBufferHelper(command_buffer_.get())); helper_->Initialize(kCommandBufferSizeBytes); diff --git a/gpu/command_buffer/client/fenced_allocator_test.cc b/gpu/command_buffer/client/fenced_allocator_test.cc index 3b4d0475a4a887..d5ddc747d8cc14 100644 --- a/gpu/command_buffer/client/fenced_allocator_test.cc +++ b/gpu/command_buffer/client/fenced_allocator_test.cc @@ -16,7 +16,6 @@ #include "base/run_loop.h" #include "gpu/command_buffer/client/cmd_buffer_helper.h" #include "gpu/command_buffer/client/fenced_allocator.h" -#include "gpu/command_buffer/service/cmd_buffer_engine.h" #include "gpu/command_buffer/service/command_buffer_service.h" #include "gpu/command_buffer/service/command_executor.h" #include "gpu/command_buffer/service/mocks.h" @@ -61,7 +60,7 @@ class BaseFencedAllocatorTest : public testing::Test { command_buffer_->SetGetBufferChangeCallback(base::Bind( &CommandExecutor::SetGetBuffer, base::Unretained(executor_.get()))); - api_mock_->set_engine(executor_.get()); + api_mock_->set_command_buffer_service(command_buffer_.get()); helper_.reset(new CommandBufferHelper(command_buffer_.get())); helper_->Initialize(kBufferSize); diff --git a/gpu/command_buffer/client/mapped_memory_unittest.cc b/gpu/command_buffer/client/mapped_memory_unittest.cc index 00de896d840ec9..9ac028e670d93e 100644 --- a/gpu/command_buffer/client/mapped_memory_unittest.cc +++ b/gpu/command_buffer/client/mapped_memory_unittest.cc @@ -57,7 +57,7 @@ class MappedMemoryTestBase : public testing::Test { command_buffer_->SetGetBufferChangeCallback(base::Bind( &CommandExecutor::SetGetBuffer, base::Unretained(executor_.get()))); - api_mock_->set_engine(executor_.get()); + api_mock_->set_command_buffer_service(command_buffer_.get()); helper_.reset(new CommandBufferHelper(command_buffer_.get())); helper_->Initialize(kBufferSize); diff --git a/gpu/command_buffer/client/ring_buffer_test.cc b/gpu/command_buffer/client/ring_buffer_test.cc index 40c115d29c3462..cae42a422ec917 100644 --- a/gpu/command_buffer/client/ring_buffer_test.cc +++ b/gpu/command_buffer/client/ring_buffer_test.cc @@ -16,7 +16,6 @@ #include "base/message_loop/message_loop.h" #include "base/run_loop.h" #include "gpu/command_buffer/client/cmd_buffer_helper.h" -#include "gpu/command_buffer/service/cmd_buffer_engine.h" #include "gpu/command_buffer/service/command_buffer_service.h" #include "gpu/command_buffer/service/command_executor.h" #include "gpu/command_buffer/service/mocks.h" @@ -83,7 +82,7 @@ class BaseRingBufferTest : public testing::Test { command_buffer_->SetGetBufferChangeCallback(base::Bind( &CommandExecutor::SetGetBuffer, base::Unretained(executor_.get()))); - api_mock_->set_engine(executor_.get()); + api_mock_->set_command_buffer_service(command_buffer_.get()); helper_.reset(new CommandBufferHelper(command_buffer_.get())); helper_->Initialize(kBufferSize); diff --git a/gpu/command_buffer/client/transfer_buffer_unittest.cc b/gpu/command_buffer/client/transfer_buffer_unittest.cc index 369adfd83aa254..aba8988403ebca 100644 --- a/gpu/command_buffer/client/transfer_buffer_unittest.cc +++ b/gpu/command_buffer/client/transfer_buffer_unittest.cc @@ -235,7 +235,7 @@ class MockClientCommandBufferCanFail : public MockClientCommandBufferMockFlush { scoped_refptr RealCreateTransferBuffer(size_t size, int32_t* id) { - return MockCommandBufferBase::CreateTransferBuffer(size, id); + return MockClientCommandBufferMockFlush::CreateTransferBuffer(size, id); } }; diff --git a/gpu/command_buffer/service/BUILD.gn b/gpu/command_buffer/service/BUILD.gn index cc532d7b8dc395..53d2a538dca1e0 100644 --- a/gpu/command_buffer/service/BUILD.gn +++ b/gpu/command_buffer/service/BUILD.gn @@ -33,7 +33,6 @@ target(link_target_type, "service_sources") { "buffer_manager.cc", "buffer_manager.h", "client_service_map.h", - "cmd_buffer_engine.h", "command_buffer_service.cc", "command_buffer_service.h", "command_executor.cc", diff --git a/gpu/command_buffer/service/cmd_buffer_engine.h b/gpu/command_buffer/service/cmd_buffer_engine.h deleted file mode 100644 index 93c19cb11fe5ec..00000000000000 --- a/gpu/command_buffer/service/cmd_buffer_engine.h +++ /dev/null @@ -1,40 +0,0 @@ -// Copyright (c) 2011 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. - -// This file defines the CommandBufferEngine class, providing the main loop for -// the service, exposing the RPC API, managing the command parser. - -#ifndef GPU_COMMAND_BUFFER_SERVICE_CMD_BUFFER_ENGINE_H_ -#define GPU_COMMAND_BUFFER_SERVICE_CMD_BUFFER_ENGINE_H_ - -#include - -#include "base/macros.h" -#include "gpu/command_buffer/common/buffer.h" - -namespace gpu { - -class CommandBufferEngine { - public: - CommandBufferEngine() { - } - - virtual ~CommandBufferEngine() { - } - - // Gets the base address and size of a registered shared memory buffer. - // Parameters: - // shm_id: the identifier for the shared memory buffer. - virtual scoped_refptr GetSharedMemoryBuffer(int32_t shm_id) = 0; - - // Sets the token value. - virtual void set_token(int32_t token) = 0; - - private: - DISALLOW_COPY_AND_ASSIGN(CommandBufferEngine); -}; - -} // namespace gpu - -#endif // GPU_COMMAND_BUFFER_SERVICE_CMD_BUFFER_ENGINE_H_ diff --git a/gpu/command_buffer/service/command_buffer_service.cc b/gpu/command_buffer/service/command_buffer_service.cc index 7f1160741aa190..3edaaf78b1de4d 100644 --- a/gpu/command_buffer/service/command_buffer_service.cc +++ b/gpu/command_buffer/service/command_buffer_service.cc @@ -57,16 +57,13 @@ CommandBufferService::CommandBufferService( CommandBufferService::~CommandBufferService() {} CommandBufferService::State CommandBufferService::GetLastState() { - State state; - state.get_offset = get_offset_; - state.token = token_; - state.release_count = release_count_; - state.error = error_; - state.context_lost_reason = context_lost_reason_; - state.generation = ++generation_; - state.set_get_buffer_count = set_get_buffer_count_; - - return state; + // generation_ is not incremented for all changes, notably high-frequency ones + // (like get offset updates). However we want to make sure we increment the + // generation before sending the new state to a command buffer client (either + // through IPC or via the shared state), so that it can update its internal + // structures. + ++generation_; + return GetState(); } void CommandBufferService::UpdateState() { @@ -138,6 +135,19 @@ void CommandBufferService::SetSharedStateBuffer( UpdateState(); } +CommandBufferService::State CommandBufferService::GetState() { + State state; + state.get_offset = get_offset_; + state.token = token_; + state.release_count = release_count_; + state.error = error_; + state.context_lost_reason = context_lost_reason_; + state.generation = generation_; + state.set_get_buffer_count = set_get_buffer_count_; + + return state; +} + void CommandBufferService::SetGetOffset(int32_t get_offset) { DCHECK(get_offset >= 0 && get_offset < num_entries_); get_offset_ = get_offset; diff --git a/gpu/command_buffer/service/command_buffer_service.h b/gpu/command_buffer/service/command_buffer_service.h index 403084b4b4ea2b..149cc9ab631379 100644 --- a/gpu/command_buffer/service/command_buffer_service.h +++ b/gpu/command_buffer/service/command_buffer_service.h @@ -19,8 +19,13 @@ namespace gpu { class TransferBufferManager; -class GPU_EXPORT CommandBufferServiceBase : public CommandBuffer { +class GPU_EXPORT CommandBufferServiceBase { public: + virtual ~CommandBufferServiceBase() {} + + // Gets the current state of the service. + virtual CommandBuffer::State GetState() = 0; + // Sets the current get offset. This can be called from any thread. virtual void SetGetOffset(int32_t get_offset) = 0; @@ -48,7 +53,8 @@ class GPU_EXPORT CommandBufferServiceBase : public CommandBuffer { // An object that implements a shared memory command buffer and a synchronous // API to manage the put and get pointers. -class GPU_EXPORT CommandBufferService : public CommandBufferServiceBase { +class GPU_EXPORT CommandBufferService : public CommandBuffer, + public CommandBufferServiceBase { public: typedef base::Callback GetBufferChangedCallback; explicit CommandBufferService(TransferBufferManager* transfer_buffer_manager); @@ -67,6 +73,7 @@ class GPU_EXPORT CommandBufferService : public CommandBufferServiceBase { void DestroyTransferBuffer(int32_t id) override; // CommandBufferServiceBase implementation: + State GetState() override; void SetGetOffset(int32_t get_offset) override; void SetReleaseCount(uint64_t release_count) override; scoped_refptr GetTransferBuffer(int32_t id) override; diff --git a/gpu/command_buffer/service/command_executor.cc b/gpu/command_buffer/service/command_executor.cc index e63bdc0da2e65a..25f7334ccbd642 100644 --- a/gpu/command_buffer/service/command_executor.cc +++ b/gpu/command_buffer/service/command_executor.cc @@ -32,7 +32,7 @@ void CommandExecutor::PutChanged() { TRACE_EVENT1("gpu", "CommandExecutor:PutChanged", "decoder", decoder_ ? decoder_->GetLogger()->GetLogPrefix() : "None"); - CommandBuffer::State state = command_buffer_->GetLastState(); + CommandBuffer::State state = command_buffer_->GetState(); put_ = command_buffer_->GetPutOffset(); @@ -105,14 +105,6 @@ void CommandExecutor::ProcessPendingQueries() { decoder_->ProcessPendingQueries(false); } -scoped_refptr CommandExecutor::GetSharedMemoryBuffer(int32_t shm_id) { - return command_buffer_->GetTransferBuffer(shm_id); -} - -void CommandExecutor::set_token(int32_t token) { - command_buffer_->SetToken(token); -} - bool CommandExecutor::SetGetBuffer(int32_t transfer_buffer_id) { scoped_refptr ring_buffer = command_buffer_->GetTransferBuffer(transfer_buffer_id); diff --git a/gpu/command_buffer/service/command_executor.h b/gpu/command_buffer/service/command_executor.h index 99d304830c9cd7..dfd08a817deed9 100644 --- a/gpu/command_buffer/service/command_executor.h +++ b/gpu/command_buffer/service/command_executor.h @@ -15,7 +15,6 @@ #include "base/memory/shared_memory.h" #include "base/memory/weak_ptr.h" #include "gpu/command_buffer/service/async_api_interface.h" -#include "gpu/command_buffer/service/cmd_buffer_engine.h" #include "gpu/command_buffer/service/command_buffer_service.h" #include "gpu/command_buffer/service/gles2_cmd_decoder.h" #include "gpu/gpu_export.h" @@ -27,8 +26,7 @@ namespace gpu { // class should not know about the decoder. Do not add additional dependencies // on it. class GPU_EXPORT CommandExecutor - : NON_EXPORTED_BASE(public CommandBufferEngine), - public base::SupportsWeakPtr { + : public base::SupportsWeakPtr { public: static const int kParseCommandsSlice = 20; @@ -36,7 +34,7 @@ class GPU_EXPORT CommandExecutor AsyncAPIInterface* handler, gles2::GLES2Decoder* decoder); - ~CommandExecutor() override; + ~CommandExecutor(); bool SetGetBuffer(int32_t transfer_buffer_id); void PutChanged(); @@ -55,10 +53,6 @@ class GPU_EXPORT CommandExecutor // determine if there's more pending queries after this has been called. void ProcessPendingQueries(); - // Implementation of CommandBufferEngine. - scoped_refptr GetSharedMemoryBuffer(int32_t shm_id) override; - void set_token(int32_t token) override; - void SetCommandProcessedCallback(const base::Closure& callback); using PauseExecutionCallback = base::Callback; diff --git a/gpu/command_buffer/service/command_executor_unittest.cc b/gpu/command_buffer/service/command_executor_unittest.cc index 061cccaccc5336..ffb2cc0a2b3cad 100644 --- a/gpu/command_buffer/service/command_executor_unittest.cc +++ b/gpu/command_buffer/service/command_executor_unittest.cc @@ -23,24 +23,6 @@ using testing::Return; using testing::Sequence; using testing::SetArgPointee; -namespace { - -class FakeCommandBufferServiceBase : public MockCommandBufferBase { - public: - FakeCommandBufferServiceBase() {} - ~FakeCommandBufferServiceBase() override {} - - void Flush(int32_t put_offset) override { FlushHelper(put_offset); } - void OrderingBarrier(int32_t put_offset) override { FlushHelper(put_offset); } - void DestroyTransferBuffer(int32_t id) override { - DestroyTransferBufferHelper(id); - } - - void OnFlush() override {} -}; - -} // anonymous namespace - // Test fixture for CommandExecutor test - Creates a mock AsyncAPIInterface, and // a fixed size memory buffer. Also provides a simple API to create a // CommandExecutor. @@ -75,20 +57,20 @@ class CommandExecutorTest : public testing::Test { } CommandExecutor* executor() { return executor_.get(); } - int32_t GetGet() { return command_buffer_->GetLastState().get_offset; } + int32_t GetGet() { return command_buffer_->GetState().get_offset; } int32_t GetPut() { return command_buffer_->GetPutOffset(); } error::Error SetPutAndProcessAllCommands(int32_t put) { - command_buffer_->Flush(put); + command_buffer_->FlushHelper(put); EXPECT_EQ(put, GetPut()); executor_->PutChanged(); - return command_buffer_->GetLastState().error; + return command_buffer_->GetState().error; } int32_t SetNewGetBuffer(size_t size) { int32_t id = 0; - buffer_ = command_buffer_->CreateTransferBuffer(size, &id); - command_buffer_->SetGetBuffer(id); + buffer_ = command_buffer_->CreateTransferBufferHelper(size, &id); + command_buffer_->SetGetBufferHelper(id); executor_->SetGetBuffer(id); return id; } @@ -309,20 +291,4 @@ TEST_F(CommandExecutorTest, SetBuffer) { EXPECT_EQ(0, GetPut()); } -TEST_F(CommandExecutorTest, CanGetSharedMemory) { - MakeExecutor(3); - int32_t id = 0; - size_t size = 0x1234; - scoped_refptr buffer = - command_buffer()->CreateTransferBuffer(size, &id); - - EXPECT_EQ(buffer, executor()->GetSharedMemoryBuffer(id)); -} - -TEST_F(CommandExecutorTest, SetTokenForwardsToCommandBuffer) { - MakeExecutor(3); - executor()->set_token(7); - EXPECT_EQ(7, command_buffer()->GetLastState().token); -} - } // namespace gpu diff --git a/gpu/command_buffer/service/common_decoder.cc b/gpu/command_buffer/service/common_decoder.cc index a561056e3542bd..ae6920f7af80ad 100644 --- a/gpu/command_buffer/service/common_decoder.cc +++ b/gpu/command_buffer/service/common_decoder.cc @@ -10,7 +10,7 @@ #include #include "base/numerics/safe_math.h" -#include "gpu/command_buffer/service/cmd_buffer_engine.h" +#include "gpu/command_buffer/service/command_buffer_service.h" namespace gpu { namespace { @@ -127,17 +127,19 @@ bool CommonDecoder::Bucket::GetAsStrings( } CommonDecoder::CommonDecoder() - : engine_(NULL), max_bucket_size_(kDefaultMaxBucketSize) {} + : command_buffer_service_(nullptr), + max_bucket_size_(kDefaultMaxBucketSize) {} CommonDecoder::~CommonDecoder() {} void* CommonDecoder::GetAddressAndCheckSize(unsigned int shm_id, unsigned int data_offset, unsigned int data_size) { - CHECK(engine_); - scoped_refptr buffer = engine_->GetSharedMemoryBuffer(shm_id); + CHECK(command_buffer_service_); + scoped_refptr buffer = + command_buffer_service_->GetTransferBuffer(shm_id); if (!buffer.get()) - return NULL; + return nullptr; return buffer->GetDataAddress(data_offset, data_size); } @@ -145,17 +147,19 @@ void* CommonDecoder::GetAddressAndSize(unsigned int shm_id, unsigned int data_offset, unsigned int minimum_size, unsigned int* data_size) { - CHECK(engine_); - scoped_refptr buffer = engine_->GetSharedMemoryBuffer(shm_id); + CHECK(command_buffer_service_); + scoped_refptr buffer = + command_buffer_service_->GetTransferBuffer(shm_id); if (!buffer.get() || buffer->GetRemainingSize(data_offset) < minimum_size) - return NULL; + return nullptr; return buffer->GetDataAddressAndSize(data_offset, data_size); } unsigned int CommonDecoder::GetSharedMemorySize(unsigned int shm_id, unsigned int offset) { - CHECK(engine_); - scoped_refptr buffer = engine_->GetSharedMemoryBuffer(shm_id); + CHECK(command_buffer_service_); + scoped_refptr buffer = + command_buffer_service_->GetTransferBuffer(shm_id); if (!buffer.get()) return 0; return buffer->GetRemainingSize(offset); @@ -163,7 +167,7 @@ unsigned int CommonDecoder::GetSharedMemorySize(unsigned int shm_id, scoped_refptr CommonDecoder::GetSharedMemoryBuffer( unsigned int shm_id) { - return engine_->GetSharedMemoryBuffer(shm_id); + return command_buffer_service_->GetTransferBuffer(shm_id); } const char* CommonDecoder::GetCommonCommandName( @@ -233,7 +237,7 @@ error::Error CommonDecoder::HandleSetToken(uint32_t immediate_data_size, const volatile void* cmd_data) { const volatile cmd::SetToken& args = *static_cast(cmd_data); - engine_->set_token(args.token); + command_buffer_service_->SetToken(args.token); return error::kNoError; } diff --git a/gpu/command_buffer/service/common_decoder.h b/gpu/command_buffer/service/common_decoder.h index 20403dba21430d..33e0b0fd707fd0 100644 --- a/gpu/command_buffer/service/common_decoder.h +++ b/gpu/command_buffer/service/common_decoder.h @@ -24,7 +24,7 @@ typedef int GLint; namespace gpu { -class CommandBufferEngine; +class CommandBufferServiceBase; // This class is a helper base class for implementing the common parts of the // o3d/gl2 command buffer decoder. @@ -114,10 +114,13 @@ class GPU_EXPORT CommonDecoder : NON_EXPORTED_BASE(public AsyncAPIInterface) { // Sets the engine, to get shared memory buffers from, and to set the token // to. - void set_engine(CommandBufferEngine* engine) { - engine_ = engine; + void set_command_buffer_service( + CommandBufferServiceBase* command_buffer_service) { + command_buffer_service_ = command_buffer_service; + } + CommandBufferServiceBase* command_buffer_service() const { + return command_buffer_service_; } - CommandBufferEngine* engine() const { return engine_; } // Sets the maximum size for buckets. void set_max_bucket_size(size_t max_bucket_size) { @@ -197,7 +200,7 @@ class GPU_EXPORT CommonDecoder : NON_EXPORTED_BASE(public AsyncAPIInterface) { #undef COMMON_COMMAND_BUFFER_CMD_OP - CommandBufferEngine* engine_; + CommandBufferServiceBase* command_buffer_service_; size_t max_bucket_size_; typedef std::map> BucketMap; diff --git a/gpu/command_buffer/service/common_decoder_unittest.cc b/gpu/command_buffer/service/common_decoder_unittest.cc index 7c3ee641bcd1c3..91535362e24aae 100644 --- a/gpu/command_buffer/service/common_decoder_unittest.cc +++ b/gpu/command_buffer/service/common_decoder_unittest.cc @@ -7,7 +7,7 @@ #include -#include "gpu/command_buffer/service/cmd_buffer_engine.h" +#include "gpu/command_buffer/client/client_test_helper.h" #include "gpu/command_buffer/service/common_decoder.h" #include "testing/gtest/include/gtest/gtest.h" @@ -72,68 +72,17 @@ class TestCommonDecoder : public CommonDecoder { } }; -class MockCommandBufferEngine : public CommandBufferEngine { - public: - static const int32_t kStartValidShmId = 1; - static const int32_t kValidShmId = 2; - static const int32_t kInvalidShmId = 3; +class CommonDecoderTest : public testing::Test { + protected: static const size_t kBufferSize = 1024; - static const int32_t kValidOffset = kBufferSize / 2; - static const int32_t kInvalidOffset = kBufferSize; - - MockCommandBufferEngine() : CommandBufferEngine(), token_() { - std::unique_ptr shared_memory(new base::SharedMemory()); - shared_memory->CreateAndMapAnonymous(kBufferSize); - buffer_ = MakeBufferFromSharedMemory(std::move(shared_memory), kBufferSize); - } - - // Overridden from CommandBufferEngine. - scoped_refptr GetSharedMemoryBuffer(int32_t shm_id) override { - if (IsValidSharedMemoryId(shm_id)) - return buffer_; - return NULL; - } - - template - T GetSharedMemoryAs(uint32_t offset) { - DCHECK_LT(offset, kBufferSize); - int8_t* buffer_memory = static_cast(buffer_->memory()); - return reinterpret_cast(&buffer_memory[offset]); - } - - int32_t GetSharedMemoryOffset(const void* memory) { - int8_t* buffer_memory = static_cast(buffer_->memory()); - ptrdiff_t offset = static_cast(memory) - &buffer_memory[0]; - DCHECK_GE(offset, 0); - DCHECK_LT(static_cast(offset), kBufferSize); - return static_cast(offset); - } + static const uint32_t kInvalidShmId = UINT32_MAX; - // Overridden from CommandBufferEngine. - void set_token(int32_t token) override { token_ = token; } - - int32_t token() const { return token_; } - - private: - bool IsValidSharedMemoryId(int32_t shm_id) { - return shm_id == kValidShmId || shm_id == kStartValidShmId; + void SetUp() override { + command_buffer_service_.CreateTransferBufferHelper(kBufferSize, + &valid_shm_id_); + decoder_.set_command_buffer_service(&command_buffer_service_); } - scoped_refptr buffer_; - int32_t token_; -}; - -const int32_t MockCommandBufferEngine::kStartValidShmId; -const int32_t MockCommandBufferEngine::kValidShmId; -const int32_t MockCommandBufferEngine::kInvalidShmId; -const size_t MockCommandBufferEngine::kBufferSize; -const int32_t MockCommandBufferEngine::kValidOffset; -const int32_t MockCommandBufferEngine::kInvalidOffset; - -class CommonDecoderTest : public testing::Test { - protected: - void SetUp() override { decoder_.set_engine(&engine_); } - void TearDown() override {} template @@ -152,10 +101,21 @@ class CommonDecoderTest : public testing::Test { 1, (const void*)&cmd, ComputeNumEntries(sizeof(cmd) + data_size), 0); } - MockCommandBufferEngine engine_; + template + T GetSharedMemoryAs(size_t offset) { + void* memory = + command_buffer_service_.GetTransferBuffer(valid_shm_id_)->memory(); + return reinterpret_cast(static_cast(memory) + offset); + } + + FakeCommandBufferServiceBase command_buffer_service_; TestCommonDecoder decoder_; + int32_t valid_shm_id_ = 0; }; +const size_t CommonDecoderTest::kBufferSize; +const uint32_t CommonDecoderTest::kInvalidShmId; + TEST_F(CommonDecoderTest, DoCommonCommandInvalidCommand) { EXPECT_EQ(error::kUnknownCommand, decoder_.DoCommand(999999, 0, NULL)); } @@ -177,10 +137,10 @@ TEST_F(CommonDecoderTest, HandleNoop) { TEST_F(CommonDecoderTest, SetToken) { cmd::SetToken cmd; const int32_t kTokenId = 123; - EXPECT_EQ(0, engine_.token()); + command_buffer_service_.SetToken(0); cmd.Init(kTokenId); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); - EXPECT_EQ(kTokenId, engine_.token()); + EXPECT_EQ(kTokenId, command_buffer_service_.GetState().token); } TEST_F(CommonDecoderTest, SetBucketSize) { @@ -227,10 +187,10 @@ TEST_F(CommonDecoderTest, SetBucketData) { // Check we can set it. const uint32_t kSomeOffsetInSharedMemory = 50; - void* memory = engine_.GetSharedMemoryAs(kSomeOffsetInSharedMemory); + void* memory = GetSharedMemoryAs(kSomeOffsetInSharedMemory); memcpy(memory, kData, sizeof(kData)); - cmd.Init(kBucketId, 0, sizeof(kData), - MockCommandBufferEngine::kValidShmId, kSomeOffsetInSharedMemory); + cmd.Init(kBucketId, 0, sizeof(kData), valid_shm_id_, + kSomeOffsetInSharedMemory); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(0, memcmp(bucket->GetData(0, sizeof(kData)), kData, sizeof(kData))); @@ -238,8 +198,8 @@ TEST_F(CommonDecoderTest, SetBucketData) { static const char kData2[] = "ABCEDFG"; const uint32_t kSomeOffsetInBucket = 5; memcpy(memory, kData2, sizeof(kData2)); - cmd.Init(kBucketId, kSomeOffsetInBucket, sizeof(kData2), - MockCommandBufferEngine::kValidShmId, kSomeOffsetInSharedMemory); + cmd.Init(kBucketId, kSomeOffsetInBucket, sizeof(kData2), valid_shm_id_, + kSomeOffsetInSharedMemory); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(0, memcmp(bucket->GetData(kSomeOffsetInBucket, sizeof(kData2)), kData2, sizeof(kData2))); @@ -251,18 +211,18 @@ TEST_F(CommonDecoderTest, SetBucketData) { bucket_data[kSomeOffsetInBucket + sizeof(kData2)]); // Check that it fails if the bucket_id is invalid - cmd.Init(kInvalidBucketId, kSomeOffsetInBucket, sizeof(kData2), - MockCommandBufferEngine::kValidShmId, kSomeOffsetInSharedMemory); + cmd.Init(kInvalidBucketId, kSomeOffsetInBucket, sizeof(kData2), valid_shm_id_, + kSomeOffsetInSharedMemory); EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); // Check that it fails if the offset is out of range. - cmd.Init(kBucketId, bucket->size(), 1, - MockCommandBufferEngine::kValidShmId, kSomeOffsetInSharedMemory); + cmd.Init(kBucketId, bucket->size(), 1, valid_shm_id_, + kSomeOffsetInSharedMemory); EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); // Check that it fails if the size is out of range. - cmd.Init(kBucketId, 0, bucket->size() + 1, - MockCommandBufferEngine::kValidShmId, kSomeOffsetInSharedMemory); + cmd.Init(kBucketId, 0, bucket->size() + 1, valid_shm_id_, + kSomeOffsetInSharedMemory); EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); } @@ -339,33 +299,26 @@ TEST_F(CommonDecoderTest, GetBucketStart) { size_cmd.Init(kBucketId, sizeof(kData)); EXPECT_EQ(error::kNoError, ExecuteCmd(size_cmd)); const uint32_t kSomeOffsetInSharedMemory = 50; - uint8_t* start = - engine_.GetSharedMemoryAs(kSomeOffsetInSharedMemory); + uint8_t* start = GetSharedMemoryAs(kSomeOffsetInSharedMemory); memcpy(start, kData, sizeof(kData)); - set_cmd.Init(kBucketId, 0, sizeof(kData), - MockCommandBufferEngine::kValidShmId, kSomeOffsetInSharedMemory); + set_cmd.Init(kBucketId, 0, sizeof(kData), valid_shm_id_, + kSomeOffsetInSharedMemory); EXPECT_EQ(error::kNoError, ExecuteCmd(set_cmd)); // Check that the size is correct with no data buffer. - uint32_t* memory = - engine_.GetSharedMemoryAs(kSomeOffsetInSharedMemory); + uint32_t* memory = GetSharedMemoryAs(kSomeOffsetInSharedMemory); *memory = 0x0; - cmd.Init(kBucketId, - MockCommandBufferEngine::kValidShmId, kSomeOffsetInSharedMemory, - 0, 0, 0); + cmd.Init(kBucketId, valid_shm_id_, kSomeOffsetInSharedMemory, 0, 0, 0); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(kBucketSize, *memory); // Check that the data is copied with data buffer. const uint32_t kDataOffsetInSharedMemory = 54; - uint8_t* data = - engine_.GetSharedMemoryAs(kDataOffsetInSharedMemory); + uint8_t* data = GetSharedMemoryAs(kDataOffsetInSharedMemory); *memory = 0x0; memset(data, 0, sizeof(kData)); - cmd.Init(kBucketId, - MockCommandBufferEngine::kValidShmId, kSomeOffsetInSharedMemory, - kBucketSize, MockCommandBufferEngine::kValidShmId, - kDataOffsetInSharedMemory); + cmd.Init(kBucketId, valid_shm_id_, kSomeOffsetInSharedMemory, kBucketSize, + valid_shm_id_, kDataOffsetInSharedMemory); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(kBucketSize, *memory); EXPECT_EQ(0, memcmp(data, kData, kBucketSize)); @@ -374,54 +327,39 @@ TEST_F(CommonDecoderTest, GetBucketStart) { *memory = 0x0; memset(data, 0, sizeof(kData)); const uint32_t kPieceSize = kBucketSize / 2; - cmd.Init(kBucketId, - MockCommandBufferEngine::kValidShmId, kSomeOffsetInSharedMemory, - kPieceSize, MockCommandBufferEngine::kValidShmId, - kDataOffsetInSharedMemory); + cmd.Init(kBucketId, valid_shm_id_, kSomeOffsetInSharedMemory, kPieceSize, + valid_shm_id_, kDataOffsetInSharedMemory); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(kBucketSize, *memory); EXPECT_EQ(0, memcmp(data, kData, kPieceSize)); EXPECT_EQ(0, memcmp(data + kPieceSize, zero, sizeof(kData) - kPieceSize)); // Check that it fails if the result_id is invalid - cmd.Init(kInvalidBucketId, - MockCommandBufferEngine::kValidShmId, kSomeOffsetInSharedMemory, - 0, 0, 0); + cmd.Init(kInvalidBucketId, valid_shm_id_, kSomeOffsetInSharedMemory, 0, 0, 0); EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); // Check that it fails if the data_id is invalid - cmd.Init(kBucketId, - MockCommandBufferEngine::kValidShmId, kSomeOffsetInSharedMemory, - 1, MockCommandBufferEngine::kInvalidShmId, 0); + cmd.Init(kBucketId, valid_shm_id_, kSomeOffsetInSharedMemory, 1, + CommonDecoderTest::kInvalidShmId, 0); EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); // Check that it fails if the data_size is invalid - cmd.Init(kBucketId, - MockCommandBufferEngine::kValidShmId, kSomeOffsetInSharedMemory, - 1, 0, 0); + cmd.Init(kBucketId, valid_shm_id_, kSomeOffsetInSharedMemory, 1, 0, 0); EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); - cmd.Init(kBucketId, - MockCommandBufferEngine::kValidShmId, kSomeOffsetInSharedMemory, - MockCommandBufferEngine::kBufferSize + 1, - MockCommandBufferEngine::kValidShmId, 0); + cmd.Init(kBucketId, valid_shm_id_, kSomeOffsetInSharedMemory, + CommonDecoderTest::kBufferSize + 1, valid_shm_id_, 0); EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); // Check that it fails if the data_offset is invalid - cmd.Init(kBucketId, - MockCommandBufferEngine::kValidShmId, kSomeOffsetInSharedMemory, - 0, 0, 1); + cmd.Init(kBucketId, valid_shm_id_, kSomeOffsetInSharedMemory, 0, 0, 1); EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); - cmd.Init(kBucketId, - MockCommandBufferEngine::kValidShmId, kSomeOffsetInSharedMemory, - MockCommandBufferEngine::kBufferSize, - MockCommandBufferEngine::kValidShmId, 1); + cmd.Init(kBucketId, valid_shm_id_, kSomeOffsetInSharedMemory, + CommonDecoderTest::kBufferSize, valid_shm_id_, 1); EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); // Check that it fails if the result size is not set to zero *memory = 0x1; - cmd.Init(kBucketId, - MockCommandBufferEngine::kValidShmId, kSomeOffsetInSharedMemory, - 0, 0, 0); + cmd.Init(kBucketId, valid_shm_id_, kSomeOffsetInSharedMemory, 0, 0, 0); EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); } @@ -439,17 +377,16 @@ TEST_F(CommonDecoderTest, GetBucketData) { size_cmd.Init(kBucketId, sizeof(kData)); EXPECT_EQ(error::kNoError, ExecuteCmd(size_cmd)); const uint32_t kSomeOffsetInSharedMemory = 50; - uint8_t* memory = - engine_.GetSharedMemoryAs(kSomeOffsetInSharedMemory); + uint8_t* memory = GetSharedMemoryAs(kSomeOffsetInSharedMemory); memcpy(memory, kData, sizeof(kData)); - set_cmd.Init(kBucketId, 0, sizeof(kData), - MockCommandBufferEngine::kValidShmId, kSomeOffsetInSharedMemory); + set_cmd.Init(kBucketId, 0, sizeof(kData), valid_shm_id_, + kSomeOffsetInSharedMemory); EXPECT_EQ(error::kNoError, ExecuteCmd(set_cmd)); // Check we can get the whole thing. memset(memory, 0, sizeof(kData)); - cmd.Init(kBucketId, 0, sizeof(kData), - MockCommandBufferEngine::kValidShmId, kSomeOffsetInSharedMemory); + cmd.Init(kBucketId, 0, sizeof(kData), valid_shm_id_, + kSomeOffsetInSharedMemory); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(0, memcmp(memory, kData, sizeof(kData))); @@ -459,8 +396,8 @@ TEST_F(CommonDecoderTest, GetBucketData) { const uint8_t kSentinel = 0xff; memset(memory, 0, sizeof(kData)); memory[-1] = kSentinel; - cmd.Init(kBucketId, kSomeOffsetInBucket, kLengthOfPiece, - MockCommandBufferEngine::kValidShmId, kSomeOffsetInSharedMemory); + cmd.Init(kBucketId, kSomeOffsetInBucket, kLengthOfPiece, valid_shm_id_, + kSomeOffsetInSharedMemory); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(0, memcmp(memory, kData + kSomeOffsetInBucket, kLengthOfPiece)); EXPECT_EQ(0, memcmp(memory + kLengthOfPiece, zero, @@ -468,18 +405,18 @@ TEST_F(CommonDecoderTest, GetBucketData) { EXPECT_EQ(kSentinel, memory[-1]); // Check that it fails if the bucket_id is invalid - cmd.Init(kInvalidBucketId, kSomeOffsetInBucket, sizeof(kData), - MockCommandBufferEngine::kValidShmId, kSomeOffsetInSharedMemory); + cmd.Init(kInvalidBucketId, kSomeOffsetInBucket, sizeof(kData), valid_shm_id_, + kSomeOffsetInSharedMemory); EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); // Check that it fails if the offset is invalid - cmd.Init(kBucketId, sizeof(kData) + 1, 1, - MockCommandBufferEngine::kValidShmId, kSomeOffsetInSharedMemory); + cmd.Init(kBucketId, sizeof(kData) + 1, 1, valid_shm_id_, + kSomeOffsetInSharedMemory); EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); // Check that it fails if the size is invalid - cmd.Init(kBucketId, 0, sizeof(kData) + 1, - MockCommandBufferEngine::kValidShmId, kSomeOffsetInSharedMemory); + cmd.Init(kBucketId, 0, sizeof(kData) + 1, valid_shm_id_, + kSomeOffsetInSharedMemory); EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); } diff --git a/gpu/command_buffer/service/gles2_cmd_decoder.cc b/gpu/command_buffer/service/gles2_cmd_decoder.cc index 49f4fc74411d1b..62bac766d157a4 100644 --- a/gpu/command_buffer/service/gles2_cmd_decoder.cc +++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc @@ -4304,7 +4304,7 @@ bool GLES2DecoderImpl::MakeCurrent() { void GLES2DecoderImpl::ProcessFinishedAsyncTransfers() { ProcessPendingReadPixels(false); - if (engine() && query_manager_.get()) + if (command_buffer_service() && query_manager_.get()) query_manager_->ProcessPendingTransferQueries(); } diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc index 1be498166d50c4..8114c7e6f9376d 100644 --- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc +++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest.cc @@ -11,7 +11,6 @@ #include "base/strings/string_number_conversions.h" #include "gpu/command_buffer/common/gles2_cmd_format.h" #include "gpu/command_buffer/common/gles2_cmd_utils.h" -#include "gpu/command_buffer/service/cmd_buffer_engine.h" #include "gpu/command_buffer/service/context_group.h" #include "gpu/command_buffer/service/context_state.h" #include "gpu/command_buffer/service/gl_surface_mock.h" @@ -152,62 +151,38 @@ TEST_P(GLES2DecoderWithShaderTest, GetMaxValueInBufferCHROMIUM) { *result = 0; GetMaxValueInBufferCHROMIUM cmd; - cmd.Init(client_element_buffer_id_, - kValidIndexRangeCount, - GL_UNSIGNED_SHORT, - kValidIndexRangeStart * 2, - kSharedMemoryId, - kSharedMemoryOffset); + cmd.Init(client_element_buffer_id_, kValidIndexRangeCount, GL_UNSIGNED_SHORT, + kValidIndexRangeStart * 2, shared_memory_id_, kSharedMemoryOffset); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(7u, *result); EXPECT_EQ(GL_NO_ERROR, GetGLError()); - cmd.Init(client_element_buffer_id_, - kValidIndexRangeCount + 1, - GL_UNSIGNED_SHORT, - kValidIndexRangeStart * 2, - kSharedMemoryId, + cmd.Init(client_element_buffer_id_, kValidIndexRangeCount + 1, + GL_UNSIGNED_SHORT, kValidIndexRangeStart * 2, shared_memory_id_, kSharedMemoryOffset); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(100u, *result); EXPECT_EQ(GL_NO_ERROR, GetGLError()); - cmd.Init(kInvalidClientId, - kValidIndexRangeCount, - GL_UNSIGNED_SHORT, - kValidIndexRangeStart * 2, - kSharedMemoryId, - kSharedMemoryOffset); + cmd.Init(kInvalidClientId, kValidIndexRangeCount, GL_UNSIGNED_SHORT, + kValidIndexRangeStart * 2, shared_memory_id_, kSharedMemoryOffset); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); - cmd.Init(client_element_buffer_id_, - kOutOfRangeIndexRangeEnd, - GL_UNSIGNED_SHORT, - kValidIndexRangeStart * 2, - kSharedMemoryId, + cmd.Init(client_element_buffer_id_, kOutOfRangeIndexRangeEnd, + GL_UNSIGNED_SHORT, kValidIndexRangeStart * 2, shared_memory_id_, kSharedMemoryOffset); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(GL_INVALID_OPERATION, GetGLError()); - cmd.Init(client_element_buffer_id_, - kValidIndexRangeCount + 1, - GL_UNSIGNED_SHORT, - kOutOfRangeIndexRangeEnd * 2, - kSharedMemoryId, + cmd.Init(client_element_buffer_id_, kValidIndexRangeCount + 1, + GL_UNSIGNED_SHORT, kOutOfRangeIndexRangeEnd * 2, shared_memory_id_, kSharedMemoryOffset); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(GL_INVALID_OPERATION, GetGLError()); - cmd.Init(client_element_buffer_id_, - kValidIndexRangeCount + 1, - GL_UNSIGNED_SHORT, - kValidIndexRangeStart * 2, - kSharedMemoryId, + cmd.Init(client_element_buffer_id_, kValidIndexRangeCount + 1, + GL_UNSIGNED_SHORT, kValidIndexRangeStart * 2, shared_memory_id_, kSharedMemoryOffset); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); - cmd.Init(client_buffer_id_, - kValidIndexRangeCount + 1, - GL_UNSIGNED_SHORT, - kValidIndexRangeStart * 2, - kSharedMemoryId, - kSharedMemoryOffset); + cmd.Init(client_buffer_id_, kValidIndexRangeCount + 1, GL_UNSIGNED_SHORT, + kValidIndexRangeStart * 2, shared_memory_id_, kSharedMemoryOffset); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(GL_INVALID_OPERATION, GetGLError()); cmd.Init(client_element_buffer_id_, @@ -217,11 +192,8 @@ TEST_P(GLES2DecoderWithShaderTest, GetMaxValueInBufferCHROMIUM) { kInvalidSharedMemoryId, kSharedMemoryOffset); EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); - cmd.Init(client_element_buffer_id_, - kValidIndexRangeCount + 1, - GL_UNSIGNED_SHORT, - kValidIndexRangeStart * 2, - kSharedMemoryId, + cmd.Init(client_element_buffer_id_, kValidIndexRangeCount + 1, + GL_UNSIGNED_SHORT, kValidIndexRangeStart * 2, shared_memory_id_, kInvalidSharedMemoryOffset); EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); } @@ -508,8 +480,8 @@ TEST_P(GLES2DecoderManualInitTest, BeginEndQueryEXT) { BeginQueryEXT begin_cmd; // Test id = 0 fails. - begin_cmd.Init( - GL_ANY_SAMPLES_PASSED_EXT, 0, kSharedMemoryId, kSharedMemoryOffset); + begin_cmd.Init(GL_ANY_SAMPLES_PASSED_EXT, 0, shared_memory_id_, + kSharedMemoryOffset); EXPECT_EQ(error::kNoError, ExecuteCmd(begin_cmd)); EXPECT_EQ(GL_INVALID_OPERATION, GetGLError()); @@ -530,16 +502,12 @@ TEST_P(GLES2DecoderManualInitTest, BeginEndQueryEXT) { EXPECT_TRUE(query == NULL); // BeginQueryEXT should fail if id is not generated from GenQueriesEXT. - begin_cmd.Init(GL_ANY_SAMPLES_PASSED_EXT, - kInvalidClientId, - kSharedMemoryId, + begin_cmd.Init(GL_ANY_SAMPLES_PASSED_EXT, kInvalidClientId, shared_memory_id_, kSharedMemoryOffset); EXPECT_EQ(error::kNoError, ExecuteCmd(begin_cmd)); EXPECT_EQ(GL_INVALID_OPERATION, GetGLError()); - begin_cmd.Init(GL_ANY_SAMPLES_PASSED_EXT, - kNewClientId, - kSharedMemoryId, + begin_cmd.Init(GL_ANY_SAMPLES_PASSED_EXT, kNewClientId, shared_memory_id_, kSharedMemoryOffset); EXPECT_EQ(error::kNoError, ExecuteCmd(begin_cmd)); EXPECT_EQ(GL_NO_ERROR, GetGLError()); @@ -760,18 +728,12 @@ TEST_P(GLES2DecoderManualInitTest, BeginEndQueryEXTBadMemoryIdFails) { TEST_P(GLES2DecoderManualInitTest, BeginEndQueryEXTBadMemoryOffsetFails) { for (size_t i = 0; i < arraysize(kQueryTypes); ++i) { // Out-of-bounds. - CheckBeginEndQueryBadMemoryFails(this, - kNewClientId, - kNewServiceId, - kQueryTypes[i], - kSharedMemoryId, + CheckBeginEndQueryBadMemoryFails(this, kNewClientId, kNewServiceId, + kQueryTypes[i], shared_memory_id_, kInvalidSharedMemoryOffset); // Overflow. - CheckBeginEndQueryBadMemoryFails(this, - kNewClientId, - kNewServiceId, - kQueryTypes[i], - kSharedMemoryId, + CheckBeginEndQueryBadMemoryFails(this, kNewClientId, kNewServiceId, + kQueryTypes[i], shared_memory_id_, 0xfffffffcu); } } @@ -800,16 +762,14 @@ TEST_P(GLES2DecoderManualInitTest, QueryReuseTest) { EXPECT_EQ( error::kNoError, ExecuteQueryCounterCmd(this, gl, &gpu_timing_queries, query_type.type, - kNewClientId, kNewServiceId, kSharedMemoryId, + kNewClientId, kNewServiceId, shared_memory_id_, kSharedMemoryOffset, 1)); } else { - EXPECT_EQ(error::kNoError, ExecuteBeginQueryCmd(this, gl, - &gpu_timing_queries, - query_type.type, - kNewClientId, - kNewServiceId, - kSharedMemoryId, - kSharedMemoryOffset)); + EXPECT_EQ( + error::kNoError, + ExecuteBeginQueryCmd(this, gl, &gpu_timing_queries, query_type.type, + kNewClientId, kNewServiceId, shared_memory_id_, + kSharedMemoryOffset)); EXPECT_EQ(error::kNoError, ExecuteEndQueryCmd(this, gl, query_type.type, 1)); } @@ -821,16 +781,14 @@ TEST_P(GLES2DecoderManualInitTest, QueryReuseTest) { EXPECT_EQ( error::kNoError, ExecuteQueryCounterCmd(this, gl, &gpu_timing_queries, query_type.type, - kNewClientId, kNewServiceId, kSharedMemoryId, + kNewClientId, kNewServiceId, shared_memory_id_, kSharedMemoryOffset, 2)); } else { - EXPECT_EQ(error::kNoError, ExecuteBeginQueryCmd(this, gl, - &gpu_timing_queries, - query_type.type, - kNewClientId, - kNewServiceId, - kSharedMemoryId, - kSharedMemoryOffset)); + EXPECT_EQ( + error::kNoError, + ExecuteBeginQueryCmd(this, gl, &gpu_timing_queries, query_type.type, + kNewClientId, kNewServiceId, shared_memory_id_, + kSharedMemoryOffset)); EXPECT_EQ(error::kNoError, ExecuteEndQueryCmd(this, gl, query_type.type, 2)); } @@ -849,9 +807,7 @@ TEST_P(GLES2DecoderTest, BeginEndQueryEXTCommandsIssuedCHROMIUM) { GenHelper(kNewClientId); // Test valid parameters work. - begin_cmd.Init(GL_COMMANDS_ISSUED_CHROMIUM, - kNewClientId, - kSharedMemoryId, + begin_cmd.Init(GL_COMMANDS_ISSUED_CHROMIUM, kNewClientId, shared_memory_id_, kSharedMemoryOffset); EXPECT_EQ(error::kNoError, ExecuteCmd(begin_cmd)); EXPECT_EQ(GL_NO_ERROR, GetGLError()); @@ -876,9 +832,7 @@ TEST_P(GLES2DecoderTest, BeginEndQueryEXTGetErrorQueryCHROMIUM) { GenHelper(kNewClientId); // Test valid parameters work. - begin_cmd.Init(GL_GET_ERROR_QUERY_CHROMIUM, - kNewClientId, - kSharedMemoryId, + begin_cmd.Init(GL_GET_ERROR_QUERY_CHROMIUM, kNewClientId, shared_memory_id_, kSharedMemoryOffset); EXPECT_EQ(error::kNoError, ExecuteCmd(begin_cmd)); EXPECT_EQ(GL_NO_ERROR, GetGLError()); @@ -914,13 +868,13 @@ TEST_P(GLES2DecoderTest, SetDisjointValueSync) { cmd.Init(kInvalidSharedMemoryId, 0u); EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); - cmd.Init(kSharedMemoryId, kSharedBufferSize); + cmd.Init(shared_memory_id_, kSharedBufferSize); EXPECT_EQ(error::kOutOfBounds, ExecuteCmd(cmd)); - cmd.Init(kSharedMemoryId, kSharedMemoryOffset); + cmd.Init(shared_memory_id_, kSharedMemoryOffset); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); - cmd.Init(kSharedMemoryId, kSharedMemoryOffset); + cmd.Init(shared_memory_id_, kSharedMemoryOffset); EXPECT_EQ(error::kInvalidArguments, ExecuteCmd(cmd)); } @@ -936,10 +890,8 @@ TEST_P(GLES2DecoderManualInitTest, BeginEndQueryEXTCommandsCompletedCHROMIUM) { GenHelper(kNewClientId); BeginQueryEXT begin_cmd; - begin_cmd.Init(GL_COMMANDS_COMPLETED_CHROMIUM, - kNewClientId, - kSharedMemoryId, - kSharedMemoryOffset); + begin_cmd.Init(GL_COMMANDS_COMPLETED_CHROMIUM, kNewClientId, + shared_memory_id_, kSharedMemoryOffset); EXPECT_EQ(error::kNoError, ExecuteCmd(begin_cmd)); EXPECT_EQ(GL_NO_ERROR, GetGLError()); @@ -1012,37 +964,27 @@ TEST_P(GLES2DecoderManualInitTest, BeginInvalidTargetQueryFails) { GenHelper(kNewClientId); BeginQueryEXT begin_cmd; - begin_cmd.Init(GL_COMMANDS_COMPLETED_CHROMIUM, - kNewClientId, - kSharedMemoryId, - kSharedMemoryOffset); + begin_cmd.Init(GL_COMMANDS_COMPLETED_CHROMIUM, kNewClientId, + shared_memory_id_, kSharedMemoryOffset); EXPECT_EQ(error::kNoError, ExecuteCmd(begin_cmd)); EXPECT_EQ(GL_INVALID_OPERATION, GetGLError()); - begin_cmd.Init(GL_ANY_SAMPLES_PASSED, - kNewClientId, - kSharedMemoryId, + begin_cmd.Init(GL_ANY_SAMPLES_PASSED, kNewClientId, shared_memory_id_, kSharedMemoryOffset); EXPECT_EQ(error::kNoError, ExecuteCmd(begin_cmd)); EXPECT_EQ(GL_INVALID_OPERATION, GetGLError()); - begin_cmd.Init(GL_ANY_SAMPLES_PASSED_CONSERVATIVE, - kNewClientId, - kSharedMemoryId, - kSharedMemoryOffset); + begin_cmd.Init(GL_ANY_SAMPLES_PASSED_CONSERVATIVE, kNewClientId, + shared_memory_id_, kSharedMemoryOffset); EXPECT_EQ(error::kNoError, ExecuteCmd(begin_cmd)); EXPECT_EQ(GL_INVALID_OPERATION, GetGLError()); - begin_cmd.Init(GL_TIME_ELAPSED, - kNewClientId, - kSharedMemoryId, + begin_cmd.Init(GL_TIME_ELAPSED, kNewClientId, shared_memory_id_, kSharedMemoryOffset); EXPECT_EQ(error::kNoError, ExecuteCmd(begin_cmd)); EXPECT_EQ(GL_INVALID_OPERATION, GetGLError()); - begin_cmd.Init(0xdeadbeef, - kNewClientId, - kSharedMemoryId, + begin_cmd.Init(0xdeadbeef, kNewClientId, shared_memory_id_, kSharedMemoryOffset); EXPECT_EQ(error::kNoError, ExecuteCmd(begin_cmd)); EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); @@ -1069,11 +1011,8 @@ TEST_P(GLES2DecoderManualInitTest, QueryCounterEXTTimeStamp) { .Times(1) .RetiresOnSaturation(); QueryCounterEXT query_counter_cmd; - query_counter_cmd.Init(kNewClientId, - GL_TIMESTAMP, - kSharedMemoryId, - kSharedMemoryOffset, - 1); + query_counter_cmd.Init(kNewClientId, GL_TIMESTAMP, shared_memory_id_, + kSharedMemoryOffset, 1); EXPECT_EQ(error::kNoError, ExecuteCmd(query_counter_cmd)); EXPECT_EQ(GL_NO_ERROR, GetGLError()); @@ -1096,19 +1035,13 @@ TEST_P(GLES2DecoderManualInitTest, InvalidTargetQueryCounterFails) { GenHelper(kNewClientId); QueryCounterEXT query_counter_cmd; - query_counter_cmd.Init(kNewClientId, - GL_TIMESTAMP, - kSharedMemoryId, - kSharedMemoryOffset, - 1); + query_counter_cmd.Init(kNewClientId, GL_TIMESTAMP, shared_memory_id_, + kSharedMemoryOffset, 1); EXPECT_EQ(error::kNoError, ExecuteCmd(query_counter_cmd)); EXPECT_EQ(GL_INVALID_OPERATION, GetGLError()); - query_counter_cmd.Init(kNewClientId, - 0xdeadbeef, - kSharedMemoryId, - kSharedMemoryOffset, - 1); + query_counter_cmd.Init(kNewClientId, 0xdeadbeef, shared_memory_id_, + kSharedMemoryOffset, 1); EXPECT_EQ(error::kNoError, ExecuteCmd(query_counter_cmd)); EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); } @@ -1200,30 +1133,14 @@ TEST_P(GLES2DecoderManualInitTest, MemoryTrackerTexImage2D) { EXPECT_CALL(*memory_tracker.get(), EnsureGPUMemoryAvailable(128)) .WillOnce(Return(true)) .RetiresOnSaturation(); - DoTexImage2D(GL_TEXTURE_2D, - 0, - GL_RGBA, - 8, - 4, - 0, - GL_RGBA, - GL_UNSIGNED_BYTE, - kSharedMemoryId, - kSharedMemoryOffset); + DoTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 8, 4, 0, GL_RGBA, GL_UNSIGNED_BYTE, + shared_memory_id_, kSharedMemoryOffset); EXPECT_EQ(128u, memory_tracker->GetPoolSize()); EXPECT_CALL(*memory_tracker.get(), EnsureGPUMemoryAvailable(64)) .WillOnce(Return(true)) .RetiresOnSaturation(); - DoTexImage2D(GL_TEXTURE_2D, - 0, - GL_RGBA, - 4, - 4, - 0, - GL_RGBA, - GL_UNSIGNED_BYTE, - kSharedMemoryId, - kSharedMemoryOffset); + DoTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 4, 4, 0, GL_RGBA, GL_UNSIGNED_BYTE, + shared_memory_id_, kSharedMemoryOffset); EXPECT_EQ(64u, memory_tracker->GetPoolSize()); EXPECT_EQ(GL_NO_ERROR, GetGLError()); // Check we get out of memory and no call to glTexImage2D if Ensure fails. @@ -1231,15 +1148,8 @@ TEST_P(GLES2DecoderManualInitTest, MemoryTrackerTexImage2D) { .WillOnce(Return(false)) .RetiresOnSaturation(); TexImage2D cmd; - cmd.Init(GL_TEXTURE_2D, - 0, - GL_RGBA, - 4, - 4, - GL_RGBA, - GL_UNSIGNED_BYTE, - kSharedMemoryId, - kSharedMemoryOffset); + cmd.Init(GL_TEXTURE_2D, 0, GL_RGBA, 4, 4, GL_RGBA, GL_UNSIGNED_BYTE, + shared_memory_id_, kSharedMemoryOffset); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(GL_OUT_OF_MEMORY, GetGLError()); EXPECT_EQ(64u, memory_tracker->GetPoolSize()); @@ -1486,9 +1396,7 @@ class GLES2DecoderDoCommandsTest : public GLES2DecoderTest { TEST_P(GLES3DecoderTest, BeginInvalidTargetQueryFails) { BeginQueryEXT begin_cmd; - begin_cmd.Init(0xdeadbeef, - kNewClientId, - kSharedMemoryId, + begin_cmd.Init(0xdeadbeef, kNewClientId, shared_memory_id_, kSharedMemoryOffset); EXPECT_EQ(error::kNoError, ExecuteCmd(begin_cmd)); EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest.h b/gpu/command_buffer/service/gles2_cmd_decoder_unittest.h index 974e976687cd3f..b4a5f0d90b63d1 100644 --- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest.h +++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest.h @@ -8,7 +8,6 @@ #include "gpu/command_buffer/common/gles2_cmd_format.h" #include "gpu/command_buffer/common/gles2_cmd_utils.h" #include "gpu/command_buffer/service/buffer_manager.h" -#include "gpu/command_buffer/service/cmd_buffer_engine.h" #include "gpu/command_buffer/service/context_group.h" #include "gpu/command_buffer/service/framebuffer_manager.h" #include "gpu/command_buffer/service/gles2_cmd_decoder.h" diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_1.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_1.cc index d0f05b25491041..7a0d658d79a0a7 100644 --- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_1.cc +++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_1.cc @@ -8,7 +8,6 @@ #include "gpu/command_buffer/common/gles2_cmd_format.h" #include "gpu/command_buffer/common/gles2_cmd_utils.h" #include "gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.h" -#include "gpu/command_buffer/service/cmd_buffer_engine.h" #include "gpu/command_buffer/service/context_group.h" #include "gpu/command_buffer/service/program_manager.h" #include "gpu/command_buffer/service/test_helper.h" @@ -54,9 +53,8 @@ template <> void GLES2DecoderTestBase::SpecializedSetup( bool valid) { DoBindTexture(GL_TEXTURE_2D, client_texture_id_, kServiceTextureId); - DoTexImage2D( - GL_TEXTURE_2D, 0, GL_RGBA, 16, 16, 0, GL_RGBA, GL_UNSIGNED_BYTE, - kSharedMemoryId, kSharedMemoryOffset); + DoTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 16, 16, 0, GL_RGBA, GL_UNSIGNED_BYTE, + shared_memory_id_, kSharedMemoryOffset); if (valid) { EXPECT_CALL(*gl_, GetError()) .WillOnce(Return(GL_NO_ERROR)) @@ -112,9 +110,8 @@ void GLES2DecoderTestBase::SpecializedSetup( bool valid) { if (valid) { DoBindTexture(GL_TEXTURE_2D, client_texture_id_, kServiceTextureId); - DoTexImage2D( - GL_TEXTURE_2D, 2, GL_RGBA, 16, 16, 0, GL_RGBA, GL_UNSIGNED_BYTE, - kSharedMemoryId, kSharedMemoryOffset); + DoTexImage2D(GL_TEXTURE_2D, 2, GL_RGBA, 16, 16, 0, GL_RGBA, + GL_UNSIGNED_BYTE, shared_memory_id_, kSharedMemoryOffset); } }; diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_2.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_2.cc index 87f472e3ee7539..11a3b697a410be 100644 --- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_2.cc +++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_2.cc @@ -9,7 +9,6 @@ #include "base/command_line.h" #include "gpu/command_buffer/common/gles2_cmd_format.h" #include "gpu/command_buffer/common/gles2_cmd_utils.h" -#include "gpu/command_buffer/service/cmd_buffer_engine.h" #include "gpu/command_buffer/service/context_group.h" #include "gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.h" #include "gpu/command_buffer/service/program_manager.h" diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_3.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_3.cc index cb001576361a6b..5ffc9d3c692d65 100644 --- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_3.cc +++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_3.cc @@ -9,7 +9,6 @@ #include "base/command_line.h" #include "gpu/command_buffer/common/gles2_cmd_format.h" #include "gpu/command_buffer/common/gles2_cmd_utils.h" -#include "gpu/command_buffer/service/cmd_buffer_engine.h" #include "gpu/command_buffer/service/context_group.h" #include "gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.h" #include "gpu/command_buffer/service/program_manager.h" diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_attribs.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_attribs.cc index dc2f25e3e62623..9094ab01b4f6e1 100644 --- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_attribs.cc +++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_attribs.cc @@ -10,7 +10,6 @@ #include "base/strings/string_number_conversions.h" #include "gpu/command_buffer/common/gles2_cmd_format.h" #include "gpu/command_buffer/common/gles2_cmd_utils.h" -#include "gpu/command_buffer/service/cmd_buffer_engine.h" #include "gpu/command_buffer/service/context_group.h" #include "gpu/command_buffer/service/context_state.h" #include "gpu/command_buffer/service/gl_surface_mock.h" diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.cc index 79d238f39afee9..d809a509c0df25 100644 --- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.cc +++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.cc @@ -16,7 +16,6 @@ #include "base/strings/string_split.h" #include "gpu/command_buffer/common/gles2_cmd_format.h" #include "gpu/command_buffer/common/gles2_cmd_utils.h" -#include "gpu/command_buffer/service/cmd_buffer_engine.h" #include "gpu/command_buffer/service/context_group.h" #include "gpu/command_buffer/service/logger.h" #include "gpu/command_buffer/service/mailbox_manager.h" @@ -113,6 +112,10 @@ GLES2DecoderTestBase::GLES2DecoderTestBase() client_vertexarray_id_(124), client_transformfeedback_id_(126), client_sync_id_(127), + shared_memory_id_(0), + shared_memory_offset_(0), + shared_memory_address_(nullptr), + shared_memory_base_(nullptr), service_renderbuffer_id_(0), service_renderbuffer_valid_(false), ignore_cached_state_for_test_(GetParam()), @@ -459,14 +462,15 @@ void GLES2DecoderTestBase::InitDecoderWithCommandLine( } #endif - engine_.reset(new StrictMock()); + command_buffer_service_.reset(new FakeCommandBufferServiceBase()); scoped_refptr buffer = - engine_->GetSharedMemoryBuffer(kSharedMemoryId); + command_buffer_service_->CreateTransferBufferHelper(kSharedBufferSize, + &shared_memory_id_); shared_memory_offset_ = kSharedMemoryOffset; shared_memory_address_ = reinterpret_cast(buffer->memory()) + shared_memory_offset_; - shared_memory_id_ = kSharedMemoryId; shared_memory_base_ = buffer->memory(); + ClearSharedMemory(); gles2::ContextCreationAttribHelper attribs; attribs.alpha_size = normalized_init.request_alpha ? 8 : 0; @@ -488,7 +492,7 @@ void GLES2DecoderTestBase::InitDecoderWithCommandLine( .WillOnce(Return(GL_NO_ERROR)); } decoder_->MakeCurrent(); - decoder_->set_engine(engine_.get()); + decoder_->set_command_buffer_service(command_buffer_service_.get()); decoder_->BeginDecoding(); EXPECT_CALL(*gl_, GenBuffersARB(_, _)) @@ -567,7 +571,7 @@ void GLES2DecoderTestBase::ResetDecoder() { decoder_->Destroy(!decoder_->WasContextLost()); decoder_.reset(); group_->Destroy(mock_decoder_.get(), false); - engine_.reset(); + command_buffer_service_.reset(); ::gl::MockGLInterface::SetGLInterface(NULL); gl_.reset(); gl::init::ShutdownGL(); @@ -725,7 +729,7 @@ void GLES2DecoderTestBase::SetBucketData( if (data) { memcpy(shared_memory_address_, data, data_size); cmd::SetBucketData cmd2; - cmd2.Init(bucket_id, 0, data_size, kSharedMemoryId, kSharedMemoryOffset); + cmd2.Init(bucket_id, 0, data_size, shared_memory_id_, kSharedMemoryOffset); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2)); ClearSharedMemory(); } @@ -766,7 +770,7 @@ void GLES2DecoderTestBase::SetBucketAsCStrings(uint32_t bucket_id, offset += 1; } cmd::SetBucketData cmd2; - cmd2.Init(bucket_id, 0, total_size, kSharedMemoryId, kSharedMemoryOffset); + cmd2.Init(bucket_id, 0, total_size, shared_memory_id_, kSharedMemoryOffset); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2)); ClearSharedMemory(); } @@ -1598,7 +1602,6 @@ const GLuint GLES2DecoderTestBase::kServiceTransformFeedbackId; const GLuint GLES2DecoderTestBase::kServiceDefaultTransformFeedbackId; const GLuint GLES2DecoderTestBase::kServiceSyncId; -const int32_t GLES2DecoderTestBase::kSharedMemoryId; const size_t GLES2DecoderTestBase::kSharedBufferSize; const uint32_t GLES2DecoderTestBase::kSharedMemoryOffset; const int32_t GLES2DecoderTestBase::kInvalidSharedMemoryId; @@ -2051,7 +2054,7 @@ void GLES2DecoderTestBase::SetupIndexBuffer() { void GLES2DecoderTestBase::SetupTexture() { DoBindTexture(GL_TEXTURE_2D, client_texture_id_, kServiceTextureId); DoTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, - kSharedMemoryId, kSharedMemoryOffset); + shared_memory_id_, kSharedMemoryOffset); }; void GLES2DecoderTestBase::SetupSampler() { @@ -2141,29 +2144,6 @@ void GLES2DecoderTestBase::SetupInitStateManualExpectationsForDoLineWidth( EXPECT_CALL(*gl_, LineWidth(width)).Times(1).RetiresOnSaturation(); } -GLES2DecoderWithShaderTestBase::MockCommandBufferEngine:: -MockCommandBufferEngine() { - std::unique_ptr shm(new base::SharedMemory()); - shm->CreateAndMapAnonymous(kSharedBufferSize); - valid_buffer_ = MakeBufferFromSharedMemory(std::move(shm), kSharedBufferSize); - - ClearSharedMemory(); -} - -GLES2DecoderWithShaderTestBase::MockCommandBufferEngine:: -~MockCommandBufferEngine() {} - -scoped_refptr -GLES2DecoderWithShaderTestBase::MockCommandBufferEngine::GetSharedMemoryBuffer( - int32_t shm_id) { - return shm_id == kSharedMemoryId ? valid_buffer_ : invalid_buffer_; -} - -void GLES2DecoderWithShaderTestBase::MockCommandBufferEngine::set_token( - int32_t token) { - DCHECK(false); -} - void GLES2DecoderWithShaderTestBase::SetUp() { GLES2DecoderTestBase::SetUp(); SetupDefaultProgram(); diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.h b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.h index 1a41e0b2d0faa9..eba73863bcfa6c 100644 --- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.h +++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.h @@ -11,10 +11,10 @@ #include #include "base/message_loop/message_loop.h" +#include "gpu/command_buffer/client/client_test_helper.h" #include "gpu/command_buffer/common/gles2_cmd_format.h" #include "gpu/command_buffer/common/gles2_cmd_utils.h" #include "gpu/command_buffer/service/buffer_manager.h" -#include "gpu/command_buffer/service/cmd_buffer_engine.h" #include "gpu/command_buffer/service/context_group.h" #include "gpu/command_buffer/service/framebuffer_manager.h" #include "gpu/command_buffer/service/gl_context_mock.h" @@ -72,7 +72,7 @@ class GLES2DecoderTestBase : public ::testing::TestWithParam { } void ClearSharedMemory() { - engine_->ClearSharedMemory(); + memset(shared_memory_base_, kInitialMemoryValue, kSharedBufferSize); } void SetUp() override; @@ -484,7 +484,7 @@ class GLES2DecoderTestBase : public ::testing::TestWithParam { bool IsObjectHelper(GLuint client_id) { Result* result = static_cast(shared_memory_address_); Command cmd; - cmd.Init(client_id, kSharedMemoryId, kSharedMemoryOffset); + cmd.Init(client_id, shared_memory_id_, kSharedMemoryOffset); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); bool isObject = static_cast(*result); EXPECT_EQ(GL_NO_ERROR, GetGLError()); @@ -529,10 +529,10 @@ class GLES2DecoderTestBase : public ::testing::TestWithParam { static const GLuint kServiceDefaultTransformFeedbackId = 312; static const GLuint kServiceSyncId = 313; - static const int32_t kSharedMemoryId = 401; static const size_t kSharedBufferSize = 2048; static const uint32_t kSharedMemoryOffset = 132; - static const int32_t kInvalidSharedMemoryId = 402; + static const int32_t kInvalidSharedMemoryId = + FakeCommandBufferServiceBase::kTransferBufferBaseId - 1; static const uint32_t kInvalidSharedMemoryOffset = kSharedBufferSize + 1; static const uint32_t kInitialResult = 0xBDBDBDBDu; static const uint8_t kInitialMemoryValue = 0xBDu; @@ -667,7 +667,7 @@ class GLES2DecoderTestBase : public ::testing::TestWithParam { GLuint client_transformfeedback_id_; GLuint client_sync_id_; - uint32_t shared_memory_id_; + int32_t shared_memory_id_; uint32_t shared_memory_offset_; void* shared_memory_address_; void* shared_memory_base_; @@ -704,25 +704,6 @@ class GLES2DecoderTestBase : public ::testing::TestWithParam { int shader_language_version_; private: - class MockCommandBufferEngine : public CommandBufferEngine { - public: - MockCommandBufferEngine(); - - ~MockCommandBufferEngine() override; - - scoped_refptr GetSharedMemoryBuffer(int32_t shm_id) override; - - void ClearSharedMemory() { - memset(valid_buffer_->memory(), kInitialMemoryValue, kSharedBufferSize); - } - - void set_token(int32_t token) override; - - private: - scoped_refptr valid_buffer_; - scoped_refptr invalid_buffer_; - }; - // MockGLStates is used to track GL states and emulate driver // behaviors on top of MockGLInterface. class MockGLStates { @@ -764,7 +745,7 @@ class GLES2DecoderTestBase : public ::testing::TestWithParam { void SetupInitStateManualExpectations(bool es3_capable); void SetupInitStateManualExpectationsForDoLineWidth(GLfloat width); - std::unique_ptr<::testing::StrictMock> engine_; + std::unique_ptr command_buffer_service_; GpuPreferences gpu_preferences_; ServiceDiscardableManager discardable_manager_; scoped_refptr group_; diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_buffers.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_buffers.cc index 15f477dc1e32a6..0403e95ac9fda7 100644 --- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_buffers.cc +++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_buffers.cc @@ -108,9 +108,9 @@ TEST_P(GLES3DecoderTest, MapBufferRangeUnmapBufferReadSucceeds) { const GLsizeiptr kSize = 64; const GLbitfield kAccess = GL_MAP_READ_BIT; - uint32_t result_shm_id = kSharedMemoryId; + uint32_t result_shm_id = shared_memory_id_; uint32_t result_shm_offset = kSharedMemoryOffset; - uint32_t data_shm_id = kSharedMemoryId; + uint32_t data_shm_id = shared_memory_id_; // uint32_t is Result for both MapBufferRange and UnmapBuffer commands. uint32_t data_shm_offset = kSharedMemoryOffset + sizeof(uint32_t); @@ -162,9 +162,9 @@ TEST_P(GLES3DecoderTest, MapBufferRangeUnmapBufferWriteSucceeds) { const GLbitfield kAccess = GL_MAP_WRITE_BIT; const GLbitfield kMappedAccess = GL_MAP_WRITE_BIT | GL_MAP_READ_BIT; - uint32_t result_shm_id = kSharedMemoryId; + uint32_t result_shm_id = shared_memory_id_; uint32_t result_shm_offset = kSharedMemoryOffset; - uint32_t data_shm_id = kSharedMemoryId; + uint32_t data_shm_id = shared_memory_id_; // uint32_t is Result for both MapBufferRange and UnmapBuffer commands. uint32_t data_shm_offset = kSharedMemoryOffset + sizeof(uint32_t); @@ -247,9 +247,9 @@ TEST_P(GLES3DecoderTest, FlushMappedBufferRangeSucceeds) { const GLbitfield kAccess = GL_MAP_WRITE_BIT | GL_MAP_FLUSH_EXPLICIT_BIT; const GLbitfield kMappedAccess = kAccess | GL_MAP_READ_BIT; - uint32_t result_shm_id = kSharedMemoryId; + uint32_t result_shm_id = shared_memory_id_; uint32_t result_shm_offset = kSharedMemoryOffset; - uint32_t data_shm_id = kSharedMemoryId; + uint32_t data_shm_id = shared_memory_id_; // uint32_t is Result for both MapBufferRange and UnmapBuffer commands. uint32_t data_shm_offset = kSharedMemoryOffset + sizeof(uint32_t); @@ -357,9 +357,9 @@ TEST_P(GLES3DecoderTest, MapBufferRangeNotInitFails) { typedef MapBufferRange::Result Result; Result* result = GetSharedMemoryAs(); *result = 1; // Any value other than 0. - uint32_t result_shm_id = kSharedMemoryId; + uint32_t result_shm_id = shared_memory_id_; uint32_t result_shm_offset = kSharedMemoryOffset; - uint32_t data_shm_id = kSharedMemoryId; + uint32_t data_shm_id = shared_memory_id_; uint32_t data_shm_offset = kSharedMemoryOffset + sizeof(*result); MapBufferRange cmd; @@ -390,9 +390,9 @@ TEST_P(GLES3DecoderTest, MapBufferRangeWriteInvalidateRangeSucceeds) { typedef MapBufferRange::Result Result; Result* result = GetSharedMemoryAs(); *result = 0; - uint32_t result_shm_id = kSharedMemoryId; + uint32_t result_shm_id = shared_memory_id_; uint32_t result_shm_offset = kSharedMemoryOffset; - uint32_t data_shm_id = kSharedMemoryId; + uint32_t data_shm_id = shared_memory_id_; uint32_t data_shm_offset = kSharedMemoryOffset + sizeof(*result); int8_t* mem = reinterpret_cast(&result[1]); @@ -429,9 +429,9 @@ TEST_P(GLES3DecoderTest, MapBufferRangeWriteInvalidateBufferSucceeds) { typedef MapBufferRange::Result Result; Result* result = GetSharedMemoryAs(); *result = 0; - uint32_t result_shm_id = kSharedMemoryId; + uint32_t result_shm_id = shared_memory_id_; uint32_t result_shm_offset = kSharedMemoryOffset; - uint32_t data_shm_id = kSharedMemoryId; + uint32_t data_shm_id = shared_memory_id_; uint32_t data_shm_offset = kSharedMemoryOffset + sizeof(*result); int8_t* mem = reinterpret_cast(&result[1]); @@ -466,9 +466,9 @@ TEST_P(GLES3DecoderTest, MapBufferRangeWriteUnsynchronizedBit) { typedef MapBufferRange::Result Result; Result* result = GetSharedMemoryAs(); *result = 0; - uint32_t result_shm_id = kSharedMemoryId; + uint32_t result_shm_id = shared_memory_id_; uint32_t result_shm_offset = kSharedMemoryOffset; - uint32_t data_shm_id = kSharedMemoryId; + uint32_t data_shm_id = shared_memory_id_; uint32_t data_shm_offset = kSharedMemoryOffset + sizeof(*result); int8_t* mem = reinterpret_cast(&result[1]); @@ -494,9 +494,9 @@ TEST_P(GLES3DecoderTest, MapBufferRangeWithError) { typedef MapBufferRange::Result Result; Result* result = GetSharedMemoryAs(); *result = 0; - uint32_t result_shm_id = kSharedMemoryId; + uint32_t result_shm_id = shared_memory_id_; uint32_t result_shm_offset = kSharedMemoryOffset; - uint32_t data_shm_id = kSharedMemoryId; + uint32_t data_shm_id = shared_memory_id_; uint32_t data_shm_offset = kSharedMemoryOffset + sizeof(*result); int8_t* mem = reinterpret_cast(&result[1]); @@ -529,9 +529,9 @@ TEST_P(GLES3DecoderTest, MapBufferRangeBadSharedMemoryFails) { typedef MapBufferRange::Result Result; Result* result = GetSharedMemoryAs(); *result = 0; - uint32_t result_shm_id = kSharedMemoryId; + uint32_t result_shm_id = shared_memory_id_; uint32_t result_shm_offset = kSharedMemoryOffset; - uint32_t data_shm_id = kSharedMemoryId; + uint32_t data_shm_id = shared_memory_id_; uint32_t data_shm_offset = kSharedMemoryOffset + sizeof(*result); MapBufferRange cmd; @@ -580,9 +580,9 @@ TEST_P(GLES3DecoderTest, BufferDataDestroysDataStore) { const GLbitfield kAccess = GL_MAP_WRITE_BIT; const GLbitfield kFilteredAccess = GL_MAP_WRITE_BIT | GL_MAP_READ_BIT; - uint32_t result_shm_id = kSharedMemoryId; + uint32_t result_shm_id = shared_memory_id_; uint32_t result_shm_offset = kSharedMemoryOffset; - uint32_t data_shm_id = kSharedMemoryId; + uint32_t data_shm_id = shared_memory_id_; // uint32_t is Result for both MapBufferRange and UnmapBuffer commands. uint32_t data_shm_offset = kSharedMemoryOffset + sizeof(uint32_t); @@ -628,9 +628,9 @@ TEST_P(GLES3DecoderTest, DeleteBuffersDestroysDataStore) { const GLbitfield kAccess = GL_MAP_WRITE_BIT; const GLbitfield kFilteredAccess = GL_MAP_WRITE_BIT | GL_MAP_READ_BIT; - uint32_t result_shm_id = kSharedMemoryId; + uint32_t result_shm_id = shared_memory_id_; uint32_t result_shm_offset = kSharedMemoryOffset; - uint32_t data_shm_id = kSharedMemoryId; + uint32_t data_shm_id = shared_memory_id_; // uint32_t is Result for both MapBufferRange and UnmapBuffer commands. uint32_t data_shm_offset = kSharedMemoryOffset + sizeof(uint32_t); @@ -675,9 +675,9 @@ TEST_P(GLES3DecoderTest, MapUnmapBufferInvalidTarget) { const GLsizeiptr kSize = 64; const GLbitfield kAccess = GL_MAP_WRITE_BIT; - uint32_t result_shm_id = kSharedMemoryId; + uint32_t result_shm_id = shared_memory_id_; uint32_t result_shm_offset = kSharedMemoryOffset; - uint32_t data_shm_id = kSharedMemoryId; + uint32_t data_shm_id = shared_memory_id_; // uint32_t is Result for both MapBufferRange and UnmapBuffer commands. uint32_t data_shm_offset = kSharedMemoryOffset + sizeof(uint32_t); diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_context_lost.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_context_lost.cc index fd86ff810a6dd3..d32870dee5f8aa 100644 --- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_context_lost.cc +++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_context_lost.cc @@ -8,7 +8,6 @@ #include "base/strings/string_number_conversions.h" #include "gpu/command_buffer/common/gles2_cmd_format.h" #include "gpu/command_buffer/common/gles2_cmd_utils.h" -#include "gpu/command_buffer/service/cmd_buffer_engine.h" #include "gpu/command_buffer/service/context_group.h" #include "gpu/command_buffer/service/gl_surface_mock.h" #include "gpu/command_buffer/service/gles2_cmd_decoder_unittest.h" diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_context_state.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_context_state.cc index a3cf9fe36ef242..6c629c2cadb566 100644 --- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_context_state.cc +++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_context_state.cc @@ -10,7 +10,6 @@ #include "base/strings/string_number_conversions.h" #include "gpu/command_buffer/common/gles2_cmd_format.h" #include "gpu/command_buffer/common/gles2_cmd_utils.h" -#include "gpu/command_buffer/service/cmd_buffer_engine.h" #include "gpu/command_buffer/service/context_group.h" #include "gpu/command_buffer/service/context_state.h" #include "gpu/command_buffer/service/gl_surface_mock.h" diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_drawing.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_drawing.cc index e1c96ac440fb84..a657fd51cf2f93 100644 --- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_drawing.cc +++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_drawing.cc @@ -10,7 +10,6 @@ #include "base/strings/string_number_conversions.h" #include "gpu/command_buffer/common/gles2_cmd_format.h" #include "gpu/command_buffer/common/gles2_cmd_utils.h" -#include "gpu/command_buffer/service/cmd_buffer_engine.h" #include "gpu/command_buffer/service/context_group.h" #include "gpu/command_buffer/service/context_state.h" #include "gpu/command_buffer/service/gl_surface_mock.h" @@ -323,16 +322,8 @@ TEST_P(GLES2DecoderRGBBackbufferTest, RGBBackbufferColorMaskFBO) { GenHelper(kNewClientId); DoBindTexture(GL_TEXTURE_2D, kNewClientId, kNewServiceId); // Pass some data so the texture will be marked as cleared. - DoTexImage2D(GL_TEXTURE_2D, - 0, - kFormat, - kWidth, - kHeight, - 0, - kFormat, - GL_UNSIGNED_BYTE, - kSharedMemoryId, - kSharedMemoryOffset); + DoTexImage2D(GL_TEXTURE_2D, 0, kFormat, kWidth, kHeight, 0, kFormat, + GL_UNSIGNED_BYTE, shared_memory_id_, kSharedMemoryOffset); DoBindFramebuffer( GL_FRAMEBUFFER, client_framebuffer_id_, kServiceFramebufferId); DoFramebufferTexture2D(GL_FRAMEBUFFER, @@ -742,16 +733,8 @@ TEST_P(GLES2DecoderWithShaderTest, DrawArraysBadTextureUsesBlack) { DoBindTexture(GL_TEXTURE_2D, client_texture_id_, kServiceTextureId); // This is an NPOT texture. As the default filtering requires mips // this should trigger replacing with black textures before rendering. - DoTexImage2D(GL_TEXTURE_2D, - 0, - GL_RGBA, - 3, - 1, - 0, - GL_RGBA, - GL_UNSIGNED_BYTE, - kSharedMemoryId, - kSharedMemoryOffset); + DoTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 3, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, + shared_memory_id_, kSharedMemoryOffset); AddExpectationsForSimulatedAttrib0(kNumVertices, 0); { InSequence sequence; @@ -2073,7 +2056,7 @@ TEST_P(GLES2DecoderManualInitTest, DrawArraysClearsAfterTexImage2DNULLCubemap) { for (int ii = 0; ii < 6; ++ii) { GLenum face = faces[ii]; int32_t shm_id = - (face == GL_TEXTURE_CUBE_MAP_NEGATIVE_Y) ? 0 : kSharedMemoryId; + (face == GL_TEXTURE_CUBE_MAP_NEGATIVE_Y) ? 0 : shared_memory_id_; uint32_t shm_offset = (face == GL_TEXTURE_CUBE_MAP_NEGATIVE_Y) ? 0 : kSharedMemoryOffset; DoTexImage2D(face, @@ -2205,16 +2188,8 @@ TEST_P(GLES2DecoderWithShaderTest, // Setup "render to" texture that is cleared. DoBindTexture(GL_TEXTURE_2D, kFBOClientTextureId, kFBOServiceTextureId); - DoTexImage2D(GL_TEXTURE_2D, - 0, - GL_RGBA, - 1, - 1, - 0, - GL_RGBA, - GL_UNSIGNED_BYTE, - kSharedMemoryId, - kSharedMemoryOffset); + DoTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, + shared_memory_id_, kSharedMemoryOffset); DoBindFramebuffer( GL_FRAMEBUFFER, client_framebuffer_id_, kServiceFramebufferId); DoFramebufferTexture2D(GL_FRAMEBUFFER, diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_framebuffers.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_framebuffers.cc index 9d2e8b25d4d77b..91f06007b9c72d 100644 --- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_framebuffers.cc +++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_framebuffers.cc @@ -15,7 +15,6 @@ #include "base/strings/string_number_conversions.h" #include "gpu/command_buffer/common/gles2_cmd_format.h" #include "gpu/command_buffer/common/gles2_cmd_utils.h" -#include "gpu/command_buffer/service/cmd_buffer_engine.h" #include "gpu/command_buffer/service/context_group.h" #include "gpu/command_buffer/service/context_state.h" #include "gpu/command_buffer/service/gl_surface_mock.h" @@ -592,16 +591,8 @@ void GLES2DecoderTest::CheckReadPixelsOutOfRange(GLint in_read_x, // access if (init) { DoBindTexture(GL_TEXTURE_2D, client_texture_id_, kServiceTextureId); - DoTexImage2D(GL_TEXTURE_2D, - 0, - kFormat, - kWidth, - kHeight, - 0, - kFormat, - GL_UNSIGNED_BYTE, - kSharedMemoryId, - kSharedMemoryOffset); + DoTexImage2D(GL_TEXTURE_2D, 0, kFormat, kWidth, kHeight, 0, kFormat, + GL_UNSIGNED_BYTE, shared_memory_id_, kSharedMemoryOffset); DoBindFramebuffer( GL_FRAMEBUFFER, client_framebuffer_id_, kServiceFramebufferId); DoFramebufferTexture2D(GL_FRAMEBUFFER, @@ -620,9 +611,9 @@ void GLES2DecoderTest::CheckReadPixelsOutOfRange(GLint in_read_x, kWidth, kHeight, kBytesPerPixel, kSrcPixels, kSrcPixels, kPackAlignment); typedef ReadPixels::Result Result; Result* result = GetSharedMemoryAs(); - uint32_t result_shm_id = kSharedMemoryId; + uint32_t result_shm_id = shared_memory_id_; uint32_t result_shm_offset = kSharedMemoryOffset; - uint32_t pixels_shm_id = kSharedMemoryId; + uint32_t pixels_shm_id = shared_memory_id_; uint32_t pixels_shm_offset = kSharedMemoryOffset + sizeof(*result); void* dest = &result[1]; @@ -725,9 +716,9 @@ TEST_P(GLES2DecoderTest, ReadPixels) { kWidth, kHeight, kBytesPerPixel, kSrcPixels, kSrcPixels, kPackAlignment); typedef ReadPixels::Result Result; Result* result = GetSharedMemoryAs(); - uint32_t result_shm_id = kSharedMemoryId; + uint32_t result_shm_id = shared_memory_id_; uint32_t result_shm_offset = kSharedMemoryOffset; - uint32_t pixels_shm_id = kSharedMemoryId; + uint32_t pixels_shm_id = shared_memory_id_; uint32_t pixels_shm_offset = kSharedMemoryOffset + sizeof(*result); void* dest = &result[1]; EXPECT_CALL(*gl_, GetError()) @@ -788,9 +779,9 @@ TEST_P(GLES3DecoderTest, ReadPixelsBufferBound) { EXPECT_CALL(*gl_, ReadPixels(_, _, _, _, _, _, _)).Times(0); typedef ReadPixels::Result Result; Result* result = GetSharedMemoryAs(); - uint32_t result_shm_id = kSharedMemoryId; + uint32_t result_shm_id = shared_memory_id_; uint32_t result_shm_offset = kSharedMemoryOffset; - uint32_t pixels_shm_id = kSharedMemoryId; + uint32_t pixels_shm_id = shared_memory_id_; uint32_t pixels_shm_offset = kSharedMemoryOffset + sizeof(Result); DoBindBuffer(GL_PIXEL_PACK_BUFFER, client_buffer_id_, kServiceBufferId); @@ -854,9 +845,9 @@ TEST_P(GLES3DecoderTest, ReadPixelsPixelPackBufferMapped) { std::vector mapped_data(size); - uint32_t result_shm_id = kSharedMemoryId; + uint32_t result_shm_id = shared_memory_id_; uint32_t result_shm_offset = kSharedMemoryOffset; - uint32_t data_shm_id = kSharedMemoryId; + uint32_t data_shm_id = shared_memory_id_; // uint32_t is Result for both MapBufferRange and UnmapBuffer commands. uint32_t data_shm_offset = kSharedMemoryOffset + sizeof(uint32_t); EXPECT_CALL(*gl_, @@ -1112,9 +1103,9 @@ TEST_P(GLES2DecoderRGBBackbufferTest, ReadPixelsNoAlphaBackbuffer) { kPackAlignment); typedef ReadPixels::Result Result; Result* result = GetSharedMemoryAs(); - uint32_t result_shm_id = kSharedMemoryId; + uint32_t result_shm_id = shared_memory_id_; uint32_t result_shm_offset = kSharedMemoryOffset; - uint32_t pixels_shm_id = kSharedMemoryId; + uint32_t pixels_shm_id = shared_memory_id_; uint32_t pixels_shm_offset = kSharedMemoryOffset + sizeof(*result); void* dest = &result[1]; EXPECT_CALL(*gl_, GetError()) @@ -1178,9 +1169,9 @@ TEST_P(GLES2DecoderTest, ReadPixelsOutOfRange) { TEST_P(GLES2DecoderTest, ReadPixelsInvalidArgs) { typedef ReadPixels::Result Result; Result* result = GetSharedMemoryAs(); - uint32_t result_shm_id = kSharedMemoryId; + uint32_t result_shm_id = shared_memory_id_; uint32_t result_shm_offset = kSharedMemoryOffset; - uint32_t pixels_shm_id = kSharedMemoryId; + uint32_t pixels_shm_id = shared_memory_id_; uint32_t pixels_shm_offset = kSharedMemoryOffset + sizeof(Result); EXPECT_CALL(*gl_, ReadPixels(_, _, _, _, _, _, _)).Times(0); ReadPixels cmd; @@ -1292,9 +1283,9 @@ TEST_P(GLES2DecoderManualInitTest, ReadPixelsAsyncError) { Result* result = GetSharedMemoryAs(); const GLsizei kWidth = 4; const GLsizei kHeight = 4; - uint32_t result_shm_id = kSharedMemoryId; + uint32_t result_shm_id = shared_memory_id_; uint32_t result_shm_offset = kSharedMemoryOffset; - uint32_t pixels_shm_id = kSharedMemoryId; + uint32_t pixels_shm_id = shared_memory_id_; uint32_t pixels_shm_offset = kSharedMemoryOffset + sizeof(Result); EXPECT_CALL(*gl_, GetError()) @@ -1402,9 +1393,9 @@ TEST_P(GLES2ReadPixelsAsyncTest, ReadPixelsAsync) { Result* result = GetSharedMemoryAs(); const GLsizei kWidth = 4; const GLsizei kHeight = 4; - uint32_t result_shm_id = kSharedMemoryId; + uint32_t result_shm_id = shared_memory_id_; uint32_t result_shm_offset = kSharedMemoryOffset; - uint32_t pixels_shm_id = kSharedMemoryId; + uint32_t pixels_shm_id = shared_memory_id_; uint32_t pixels_shm_offset = kSharedMemoryOffset + sizeof(Result); char* pixels = reinterpret_cast(result + 1); @@ -1431,9 +1422,9 @@ TEST_P(GLES2ReadPixelsAsyncTest, ReadPixelsAsyncModifyCommand) { Result* result = GetSharedMemoryAs(); const GLsizei kWidth = 4; const GLsizei kHeight = 4; - uint32_t result_shm_id = kSharedMemoryId; + uint32_t result_shm_id = shared_memory_id_; uint32_t result_shm_offset = kSharedMemoryOffset; - uint32_t pixels_shm_id = kSharedMemoryId; + uint32_t pixels_shm_id = shared_memory_id_; uint32_t pixels_shm_offset = kSharedMemoryOffset + sizeof(Result); char* pixels = reinterpret_cast(result + 1); @@ -1460,9 +1451,9 @@ TEST_P(GLES2ReadPixelsAsyncTest, ReadPixelsAsyncChangePackAlignment) { Result* result = GetSharedMemoryAs(); const GLsizei kWidth = 1; const GLsizei kHeight = 4; - uint32_t result_shm_id = kSharedMemoryId; + uint32_t result_shm_id = shared_memory_id_; uint32_t result_shm_offset = kSharedMemoryOffset; - uint32_t pixels_shm_id = kSharedMemoryId; + uint32_t pixels_shm_id = shared_memory_id_; uint32_t pixels_shm_offset = kSharedMemoryOffset + sizeof(Result); char* pixels = reinterpret_cast(result + 1); @@ -2477,9 +2468,9 @@ TEST_P(GLES2DecoderTest, ReadPixelsGLError) { GLsizei height = 4; typedef ReadPixels::Result Result; Result* result = GetSharedMemoryAs(); - uint32_t result_shm_id = kSharedMemoryId; + uint32_t result_shm_id = shared_memory_id_; uint32_t result_shm_offset = kSharedMemoryOffset; - uint32_t pixels_shm_id = kSharedMemoryId; + uint32_t pixels_shm_id = shared_memory_id_; uint32_t pixels_shm_offset = kSharedMemoryOffset + sizeof(Result); EXPECT_CALL(*gl_, GetError()) .WillOnce(Return(GL_NO_ERROR)) @@ -2610,9 +2601,9 @@ TEST_P(GLES2DecoderWithShaderTest, UnClearedAttachmentsGetClearedOnReadPixels) { .RetiresOnSaturation(); typedef ReadPixels::Result Result; Result* result = GetSharedMemoryAs(); - uint32_t result_shm_id = kSharedMemoryId; + uint32_t result_shm_id = shared_memory_id_; uint32_t result_shm_offset = kSharedMemoryOffset; - uint32_t pixels_shm_id = kSharedMemoryId; + uint32_t pixels_shm_id = shared_memory_id_; uint32_t pixels_shm_offset = kSharedMemoryOffset + sizeof(Result); ReadPixels cmd; cmd.Init(0, @@ -2650,16 +2641,8 @@ TEST_P(GLES3DecoderTest, CopyTexImage2DValidInternalFormat) { GenHelper(kFBOClientTextureId); DoBindTexture(GL_TEXTURE_2D, kFBOClientTextureId, kFBOServiceTextureId); - DoTexImage2D(GL_TEXTURE_2D, - level, - internal_format, - width, - height, - 0, - format, - type, - kSharedMemoryId, - kSharedMemoryOffset); + DoTexImage2D(GL_TEXTURE_2D, level, internal_format, width, height, 0, format, + type, shared_memory_id_, kSharedMemoryOffset); DoBindFramebuffer( GL_READ_FRAMEBUFFER, client_framebuffer_id_, kServiceFramebufferId); DoFramebufferTexture2D(GL_READ_FRAMEBUFFER, @@ -2716,16 +2699,8 @@ TEST_P(GLES3DecoderManualInitTest, CopyTexImage2DValidInternalFormat_FloatEXT) { GenHelper(kFBOClientTextureId); DoBindTexture(GL_TEXTURE_2D, kFBOClientTextureId, kFBOServiceTextureId); - DoTexImage2D(GL_TEXTURE_2D, - level, - GL_RGBA16F, - width, - height, - 0, - format, - type, - kSharedMemoryId, - kSharedMemoryOffset); + DoTexImage2D(GL_TEXTURE_2D, level, GL_RGBA16F, width, height, 0, format, type, + shared_memory_id_, kSharedMemoryOffset); DoBindFramebuffer( GL_READ_FRAMEBUFFER, client_framebuffer_id_, kServiceFramebufferId); DoFramebufferTexture2D(GL_READ_FRAMEBUFFER, @@ -2781,16 +2756,8 @@ TEST_P(GLES3DecoderManualInitTest, GenHelper(kFBOClientTextureId); DoBindTexture(GL_TEXTURE_2D, kFBOClientTextureId, kFBOServiceTextureId); - DoTexImage2D(GL_TEXTURE_2D, - level, - GL_RGBA8, - width, - height, - 0, - format, - type, - kSharedMemoryId, - kSharedMemoryOffset); + DoTexImage2D(GL_TEXTURE_2D, level, GL_RGBA8, width, height, 0, format, type, + shared_memory_id_, kSharedMemoryOffset); DoBindFramebuffer( GL_READ_FRAMEBUFFER, client_framebuffer_id_, kServiceFramebufferId); DoFramebufferTexture2D(GL_READ_FRAMEBUFFER, @@ -2833,16 +2800,8 @@ TEST_P(GLES3DecoderTest, CopyTexImage2DInvalidInternalFormat) { GenHelper(kFBOClientTextureId); DoBindTexture(GL_TEXTURE_2D, kFBOClientTextureId, kFBOServiceTextureId); - DoTexImage2D(GL_TEXTURE_2D, - level, - GL_RG8, - width, - height, - 0, - format, - type, - kSharedMemoryId, - kSharedMemoryOffset); + DoTexImage2D(GL_TEXTURE_2D, level, GL_RG8, width, height, 0, format, type, + shared_memory_id_, kSharedMemoryOffset); DoBindFramebuffer( GL_READ_FRAMEBUFFER, client_framebuffer_id_, kServiceFramebufferId); DoFramebufferTexture2D(GL_READ_FRAMEBUFFER, @@ -2882,16 +2841,8 @@ TEST_P(GLES3DecoderTest, CopyTexImage2DInvalidInternalFormat_Float) { GenHelper(kFBOClientTextureId); DoBindTexture(GL_TEXTURE_2D, kFBOClientTextureId, kFBOServiceTextureId); - DoTexImage2D(GL_TEXTURE_2D, - level, - GL_RGBA8, - width, - height, - 0, - format, - type, - kSharedMemoryId, - kSharedMemoryOffset); + DoTexImage2D(GL_TEXTURE_2D, level, GL_RGBA8, width, height, 0, format, type, + shared_memory_id_, kSharedMemoryOffset); DoBindFramebuffer( GL_READ_FRAMEBUFFER, client_framebuffer_id_, kServiceFramebufferId); DoFramebufferTexture2D(GL_READ_FRAMEBUFFER, @@ -2934,16 +2885,8 @@ TEST_P(GLES3DecoderTest, CopyTexImage2DInvalidInternalFormat_Integer) { GenHelper(kFBOClientTextureId); DoBindTexture(GL_TEXTURE_2D, kFBOClientTextureId, kFBOServiceTextureId); - DoTexImage2D(GL_TEXTURE_2D, - level, - GL_RG8UI, - width, - height, - 0, - format, - type, - kSharedMemoryId, - kSharedMemoryOffset); + DoTexImage2D(GL_TEXTURE_2D, level, GL_RG8UI, width, height, 0, format, type, + shared_memory_id_, kSharedMemoryOffset); DoBindFramebuffer( GL_READ_FRAMEBUFFER, client_framebuffer_id_, kServiceFramebufferId); DoFramebufferTexture2D(GL_READ_FRAMEBUFFER, @@ -2986,16 +2929,8 @@ TEST_P(GLES3DecoderTest, CopyTexImage2DInvalidInternalFormat_sRGB) { GenHelper(kFBOClientTextureId); DoBindTexture(GL_TEXTURE_2D, kFBOClientTextureId, kFBOServiceTextureId); - DoTexImage2D(GL_TEXTURE_2D, - level, - GL_RGB, - width, - height, - 0, - format, - type, - kSharedMemoryId, - kSharedMemoryOffset); + DoTexImage2D(GL_TEXTURE_2D, level, GL_RGB, width, height, 0, format, type, + shared_memory_id_, kSharedMemoryOffset); DoBindFramebuffer( GL_READ_FRAMEBUFFER, client_framebuffer_id_, kServiceFramebufferId); DoFramebufferTexture2D(GL_READ_FRAMEBUFFER, @@ -3074,9 +3009,9 @@ TEST_P(GLES2DecoderManualInitTest, .RetiresOnSaturation(); typedef ReadPixels::Result Result; Result* result = GetSharedMemoryAs(); - uint32_t result_shm_id = kSharedMemoryId; + uint32_t result_shm_id = shared_memory_id_; uint32_t result_shm_offset = kSharedMemoryOffset; - uint32_t pixels_shm_id = kSharedMemoryId; + uint32_t pixels_shm_id = shared_memory_id_; uint32_t pixels_shm_offset = kSharedMemoryOffset + sizeof(Result); ReadPixels cmd; cmd.Init(0, @@ -3608,7 +3543,7 @@ TEST_P(GLES3DecoderTest, DiscardFramebufferEXTUseCorrectTarget) { .RetiresOnSaturation(); DoBindTexture(GL_TEXTURE_2D, client_texture_id_ + 1, kServiceTextureId + 1); DoTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, - kSharedMemoryId, kSharedMemoryOffset); + shared_memory_id_, kSharedMemoryOffset); DoFramebufferTexture2D(GL_DRAW_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, @@ -3735,9 +3670,8 @@ TEST_P(GLES2DecoderManualInitTest, TEST_P(GLES2DecoderTest, ImplementationReadColorFormatAndType) { ClearSharedMemory(); DoBindTexture(GL_TEXTURE_2D, client_texture_id_, kServiceTextureId); - DoTexImage2D( - GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, - kSharedMemoryId, kSharedMemoryOffset); + DoTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, + shared_memory_id_, kSharedMemoryOffset); DoBindFramebuffer( GL_FRAMEBUFFER, client_framebuffer_id_, kServiceFramebufferId); DoFramebufferTexture2D(GL_FRAMEBUFFER, diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_programs.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_programs.cc index b80fbc0f32f8b7..cdfd539ba8b6a9 100644 --- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_programs.cc +++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_programs.cc @@ -11,7 +11,6 @@ #include "base/strings/string_number_conversions.h" #include "gpu/command_buffer/common/gles2_cmd_format.h" #include "gpu/command_buffer/common/gles2_cmd_utils.h" -#include "gpu/command_buffer/service/cmd_buffer_engine.h" #include "gpu/command_buffer/service/context_group.h" #include "gpu/command_buffer/service/context_state.h" #include "gpu/command_buffer/service/gl_surface_mock.h" @@ -208,9 +207,7 @@ TEST_P(GLES2DecoderWithShaderTest, GetUniformivSucceeds) { static_cast(shared_memory_address_); result->size = 0; GetUniformiv cmd; - cmd.Init(client_program_id_, - kUniform2FakeLocation, - kSharedMemoryId, + cmd.Init(client_program_id_, kUniform2FakeLocation, shared_memory_id_, kSharedMemoryOffset); EXPECT_CALL(*gl_, GetUniformiv(kServiceProgramId, kUniform2RealLocation, _)) .Times(1); @@ -224,9 +221,7 @@ TEST_P(GLES2DecoderWithShaderTest, GetUniformivArrayElementSucceeds) { static_cast(shared_memory_address_); result->size = 0; GetUniformiv cmd; - cmd.Init(client_program_id_, - kUniform2ElementFakeLocation, - kSharedMemoryId, + cmd.Init(client_program_id_, kUniform2ElementFakeLocation, shared_memory_id_, kSharedMemoryOffset); EXPECT_CALL(*gl_, GetUniformiv(kServiceProgramId, kUniform2ElementRealLocation, _)) @@ -242,9 +237,7 @@ TEST_P(GLES2DecoderWithShaderTest, GetUniformivBadProgramFails) { result->size = 0; GetUniformiv cmd; // non-existant program - cmd.Init(kInvalidClientId, - kUniform2FakeLocation, - kSharedMemoryId, + cmd.Init(kInvalidClientId, kUniform2FakeLocation, shared_memory_id_, kSharedMemoryOffset); EXPECT_CALL(*gl_, GetUniformiv(_, _, _)).Times(0); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); @@ -254,9 +247,7 @@ TEST_P(GLES2DecoderWithShaderTest, GetUniformivBadProgramFails) { // this case. #if GLES2_TEST_SHADER_VS_PROGRAM_IDS result->size = kInitialResult; - cmd.Init(client_shader_id_, - kUniform2FakeLocation, - kSharedMemoryId, + cmd.Init(client_shader_id_, kUniform2FakeLocation, shared_memory_id_, kSharedMemoryOffset); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(0U, result->size); @@ -271,9 +262,7 @@ TEST_P(GLES2DecoderWithShaderTest, GetUniformivBadProgramFails) { cmd2.Init(kNewClientId); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2)); result->size = kInitialResult; - cmd.Init(kNewClientId, - kUniform2FakeLocation, - kSharedMemoryId, + cmd.Init(kNewClientId, kUniform2FakeLocation, shared_memory_id_, kSharedMemoryOffset); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(0U, result->size); @@ -286,9 +275,7 @@ TEST_P(GLES2DecoderWithShaderTest, GetUniformivBadLocationFails) { result->size = 0; GetUniformiv cmd; // invalid location - cmd.Init(client_program_id_, - kInvalidUniformLocation, - kSharedMemoryId, + cmd.Init(client_program_id_, kInvalidUniformLocation, shared_memory_id_, kSharedMemoryOffset); EXPECT_CALL(*gl_, GetUniformiv(_, _, _)).Times(0); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); @@ -304,9 +291,7 @@ TEST_P(GLES2DecoderWithShaderTest, GetUniformivBadSharedMemoryFails) { kSharedMemoryOffset); EXPECT_CALL(*gl_, GetUniformiv(_, _, _)).Times(0); EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); - cmd.Init(client_program_id_, - kUniform2FakeLocation, - kSharedMemoryId, + cmd.Init(client_program_id_, kUniform2FakeLocation, shared_memory_id_, kInvalidSharedMemoryOffset); EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); }; @@ -316,9 +301,7 @@ TEST_P(GLES3DecoderWithShaderTest, GetUniformuivSucceeds) { static_cast(shared_memory_address_); result->size = 0; GetUniformuiv cmd; - cmd.Init(client_program_id_, - kUniform2FakeLocation, - kSharedMemoryId, + cmd.Init(client_program_id_, kUniform2FakeLocation, shared_memory_id_, kSharedMemoryOffset); EXPECT_CALL(*gl_, GetUniformuiv(kServiceProgramId, kUniform2RealLocation, _)) .Times(1); @@ -332,9 +315,7 @@ TEST_P(GLES3DecoderWithShaderTest, GetUniformuivArrayElementSucceeds) { static_cast(shared_memory_address_); result->size = 0; GetUniformuiv cmd; - cmd.Init(client_program_id_, - kUniform2ElementFakeLocation, - kSharedMemoryId, + cmd.Init(client_program_id_, kUniform2ElementFakeLocation, shared_memory_id_, kSharedMemoryOffset); EXPECT_CALL(*gl_, GetUniformuiv(kServiceProgramId, kUniform2ElementRealLocation, _)) @@ -350,9 +331,7 @@ TEST_P(GLES3DecoderWithShaderTest, GetUniformuivBadProgramFails) { result->size = 0; GetUniformuiv cmd; // non-existant program - cmd.Init(kInvalidClientId, - kUniform2FakeLocation, - kSharedMemoryId, + cmd.Init(kInvalidClientId, kUniform2FakeLocation, shared_memory_id_, kSharedMemoryOffset); EXPECT_CALL(*gl_, GetUniformuiv(_, _, _)).Times(0); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); @@ -362,9 +341,7 @@ TEST_P(GLES3DecoderWithShaderTest, GetUniformuivBadProgramFails) { // this case. #if GLES2_TEST_SHADER_VS_PROGRAM_IDS result->size = kInitialResult; - cmd.Init(client_shader_id_, - kUniform2FakeLocation, - kSharedMemoryId, + cmd.Init(client_shader_id_, kUniform2FakeLocation, shared_memory_id_, kSharedMemoryOffset); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(0U, result->size); @@ -379,9 +356,7 @@ TEST_P(GLES3DecoderWithShaderTest, GetUniformuivBadProgramFails) { cmd2.Init(kNewClientId); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2)); result->size = kInitialResult; - cmd.Init(kNewClientId, - kUniform2FakeLocation, - kSharedMemoryId, + cmd.Init(kNewClientId, kUniform2FakeLocation, shared_memory_id_, kSharedMemoryOffset); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(0U, result->size); @@ -394,9 +369,7 @@ TEST_P(GLES3DecoderWithShaderTest, GetUniformuivBadLocationFails) { result->size = 0; GetUniformuiv cmd; // invalid location - cmd.Init(client_program_id_, - kInvalidUniformLocation, - kSharedMemoryId, + cmd.Init(client_program_id_, kInvalidUniformLocation, shared_memory_id_, kSharedMemoryOffset); EXPECT_CALL(*gl_, GetUniformuiv(_, _, _)).Times(0); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); @@ -412,9 +385,7 @@ TEST_P(GLES3DecoderWithShaderTest, GetUniformuivBadSharedMemoryFails) { kSharedMemoryOffset); EXPECT_CALL(*gl_, GetUniformuiv(_, _, _)).Times(0); EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); - cmd.Init(client_program_id_, - kUniform2FakeLocation, - kSharedMemoryId, + cmd.Init(client_program_id_, kUniform2FakeLocation, shared_memory_id_, kInvalidSharedMemoryOffset); EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); }; @@ -424,9 +395,7 @@ TEST_P(GLES2DecoderWithShaderTest, GetUniformfvSucceeds) { static_cast(shared_memory_address_); result->size = 0; GetUniformfv cmd; - cmd.Init(client_program_id_, - kUniform2FakeLocation, - kSharedMemoryId, + cmd.Init(client_program_id_, kUniform2FakeLocation, shared_memory_id_, kSharedMemoryOffset); EXPECT_CALL(*gl_, GetUniformfv(kServiceProgramId, kUniform2RealLocation, _)) .Times(1); @@ -440,9 +409,7 @@ TEST_P(GLES2DecoderWithShaderTest, GetUniformfvArrayElementSucceeds) { static_cast(shared_memory_address_); result->size = 0; GetUniformfv cmd; - cmd.Init(client_program_id_, - kUniform2ElementFakeLocation, - kSharedMemoryId, + cmd.Init(client_program_id_, kUniform2ElementFakeLocation, shared_memory_id_, kSharedMemoryOffset); EXPECT_CALL(*gl_, GetUniformfv(kServiceProgramId, kUniform2ElementRealLocation, _)) @@ -458,9 +425,7 @@ TEST_P(GLES2DecoderWithShaderTest, GetUniformfvBadProgramFails) { result->size = 0; GetUniformfv cmd; // non-existant program - cmd.Init(kInvalidClientId, - kUniform2FakeLocation, - kSharedMemoryId, + cmd.Init(kInvalidClientId, kUniform2FakeLocation, shared_memory_id_, kSharedMemoryOffset); EXPECT_CALL(*gl_, GetUniformfv(_, _, _)).Times(0); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); @@ -470,9 +435,7 @@ TEST_P(GLES2DecoderWithShaderTest, GetUniformfvBadProgramFails) { // this case. #if GLES2_TEST_SHADER_VS_PROGRAM_IDS result->size = kInitialResult; - cmd.Init(client_shader_id_, - kUniform2FakeLocation, - kSharedMemoryId, + cmd.Init(client_shader_id_, kUniform2FakeLocation, shared_memory_id_, kSharedMemoryOffset); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(0U, result->size); @@ -487,9 +450,7 @@ TEST_P(GLES2DecoderWithShaderTest, GetUniformfvBadProgramFails) { cmd2.Init(kNewClientId); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2)); result->size = kInitialResult; - cmd.Init(kNewClientId, - kUniform2FakeLocation, - kSharedMemoryId, + cmd.Init(kNewClientId, kUniform2FakeLocation, shared_memory_id_, kSharedMemoryOffset); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(0U, result->size); @@ -502,9 +463,7 @@ TEST_P(GLES2DecoderWithShaderTest, GetUniformfvBadLocationFails) { result->size = 0; GetUniformfv cmd; // invalid location - cmd.Init(client_program_id_, - kInvalidUniformLocation, - kSharedMemoryId, + cmd.Init(client_program_id_, kInvalidUniformLocation, shared_memory_id_, kSharedMemoryOffset); EXPECT_CALL(*gl_, GetUniformfv(_, _, _)).Times(0); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); @@ -520,9 +479,7 @@ TEST_P(GLES2DecoderWithShaderTest, GetUniformfvBadSharedMemoryFails) { kSharedMemoryOffset); EXPECT_CALL(*gl_, GetUniformfv(_, _, _)).Times(0); EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); - cmd.Init(client_program_id_, - kUniform2FakeLocation, - kSharedMemoryId, + cmd.Init(client_program_id_, kUniform2FakeLocation, shared_memory_id_, kInvalidSharedMemoryOffset); EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); }; @@ -1130,9 +1087,7 @@ TEST_P(GLES3DecoderWithShaderTest, GetUniformIndicesSucceeds) { GetUniformIndices::Result* result = static_cast(shared_memory_address_); GetUniformIndices cmd; - cmd.Init(client_program_id_, - kBucketId, - kSharedMemoryId, + cmd.Init(client_program_id_, kBucketId, shared_memory_id_, kSharedMemoryOffset); EXPECT_CALL(*gl_, GetUniformIndices(kServiceProgramId, kCount, _, _)) .WillOnce(SetArrayArgument<3>(kIndices, kIndices + kCount)) @@ -1165,10 +1120,7 @@ TEST_P(GLES3DecoderWithShaderTest, GetUniformIndicesBadProgramFails) { static_cast(shared_memory_address_); GetUniformIndices cmd; // None-existant program - cmd.Init(kInvalidClientId, - kBucketId, - kSharedMemoryId, - kSharedMemoryOffset); + cmd.Init(kInvalidClientId, kBucketId, shared_memory_id_, kSharedMemoryOffset); result->size = 0; EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(0, result->GetNumResults()); @@ -1177,9 +1129,7 @@ TEST_P(GLES3DecoderWithShaderTest, GetUniformIndicesBadProgramFails) { EXPECT_CALL(*gl_, GetProgramiv(kServiceProgramId, GL_LINK_STATUS, _)) .WillOnce(SetArgPointee<2>(GL_FALSE)) .RetiresOnSaturation(); - cmd.Init(client_program_id_, - kBucketId, - kSharedMemoryId, + cmd.Init(client_program_id_, kBucketId, shared_memory_id_, kSharedMemoryOffset); result->size = 0; EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); @@ -1199,9 +1149,7 @@ TEST_P(GLES3DecoderWithShaderTest, GetUniformIndicesBadParamsFails) { GetUniformIndices::Result* result = static_cast(shared_memory_address_); GetUniformIndices cmd; - cmd.Init(client_program_id_, - kBucketId, - kSharedMemoryId, + cmd.Init(client_program_id_, kBucketId, shared_memory_id_, kSharedMemoryOffset); EXPECT_CALL(*gl_, GetUniformIndices(kServiceProgramId, kCount, _, _)) .WillOnce(SetArrayArgument<3>(kIndices, kIndices + kCount)) @@ -1231,10 +1179,7 @@ TEST_P(GLES3DecoderWithShaderTest, GetUniformIndicesResultNotInitFails) { static_cast(shared_memory_address_); GetUniformIndices cmd; result->size = 1976; // Any value other than 0. - cmd.Init(kInvalidClientId, - kBucketId, - kSharedMemoryId, - kSharedMemoryOffset); + cmd.Init(kInvalidClientId, kBucketId, shared_memory_id_, kSharedMemoryOffset); EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); } @@ -1255,9 +1200,7 @@ TEST_P(GLES3DecoderWithShaderTest, GetUniformIndicesBadSharedMemoryFails) { kSharedMemoryOffset); result->size = 0; EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); - cmd.Init(client_program_id_, - kBucketId, - kSharedMemoryId, + cmd.Init(client_program_id_, kBucketId, shared_memory_id_, kInvalidSharedMemoryOffset); result->size = 0; EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); @@ -1272,10 +1215,7 @@ TEST_P(GLES3DecoderWithShaderTest, GetActiveUniformsivSucceeds) { GetActiveUniformsiv::Result* result = static_cast(shared_memory_address_); GetActiveUniformsiv cmd; - cmd.Init(client_program_id_, - kBucketId, - GL_UNIFORM_TYPE, - kSharedMemoryId, + cmd.Init(client_program_id_, kBucketId, GL_UNIFORM_TYPE, shared_memory_id_, kSharedMemoryOffset); EXPECT_CALL(*gl_, GetActiveUniformsiv( @@ -1303,20 +1243,14 @@ TEST_P(GLES3DecoderWithShaderTest, GetActiveUniformsivBadProgramFails) { static_cast(shared_memory_address_); GetActiveUniformsiv cmd; // None-existant program - cmd.Init(kInvalidClientId, - kBucketId, - GL_UNIFORM_TYPE, - kSharedMemoryId, + cmd.Init(kInvalidClientId, kBucketId, GL_UNIFORM_TYPE, shared_memory_id_, kSharedMemoryOffset); result->size = 0; EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(0, result->GetNumResults()); EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); // Unlinked program. - cmd.Init(client_program_id_, - kBucketId, - GL_UNIFORM_TYPE, - kSharedMemoryId, + cmd.Init(client_program_id_, kBucketId, GL_UNIFORM_TYPE, shared_memory_id_, kSharedMemoryOffset); EXPECT_CALL(*gl_, GetProgramiv(kServiceProgramId, GL_LINK_STATUS, _)) .WillOnce(SetArgPointee<2>(GL_FALSE)) @@ -1335,10 +1269,7 @@ TEST_P(GLES3DecoderWithShaderTest, GetActiveUniformsivBadParamsFails) { GetActiveUniformsiv::Result* result = static_cast(shared_memory_address_); GetActiveUniformsiv cmd; - cmd.Init(client_program_id_, - kBucketId, - GL_UNIFORM_TYPE, - kSharedMemoryId, + cmd.Init(client_program_id_, kBucketId, GL_UNIFORM_TYPE, shared_memory_id_, kSharedMemoryOffset); result->size = 0; EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); @@ -1355,20 +1286,14 @@ TEST_P(GLES3DecoderWithShaderTest, GetActiveUniformsivBadPnameFails) { static_cast(shared_memory_address_); GetActiveUniformsiv cmd; // GL_UNIFORM_BLOCK_NAME_LENGTH should not be supported. - cmd.Init(client_program_id_, - kBucketId, - GL_UNIFORM_BLOCK_NAME_LENGTH, - kSharedMemoryId, - kSharedMemoryOffset); + cmd.Init(client_program_id_, kBucketId, GL_UNIFORM_BLOCK_NAME_LENGTH, + shared_memory_id_, kSharedMemoryOffset); result->size = 0; EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(0, result->GetNumResults()); EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); // Invalid pname - cmd.Init(client_program_id_, - kBucketId, - 1, - kSharedMemoryId, + cmd.Init(client_program_id_, kBucketId, 1, shared_memory_id_, kSharedMemoryOffset); result->size = 0; EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); @@ -1384,10 +1309,7 @@ TEST_P(GLES3DecoderWithShaderTest, GetActiveUniformsivResultNotInitFails) { GetActiveUniformsiv::Result* result = static_cast(shared_memory_address_); GetActiveUniformsiv cmd; - cmd.Init(client_program_id_, - kBucketId, - GL_UNIFORM_TYPE, - kSharedMemoryId, + cmd.Init(client_program_id_, kBucketId, GL_UNIFORM_TYPE, shared_memory_id_, kSharedMemoryOffset); result->size = 1976; // Any value other than 0. EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); @@ -1409,10 +1331,7 @@ TEST_P(GLES3DecoderWithShaderTest, GetActiveUniformsivBadSharedMemoryFails) { kSharedMemoryOffset); EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); result->size = 0; - cmd.Init(client_program_id_, - kBucketId, - GL_UNIFORM_TYPE, - kSharedMemoryId, + cmd.Init(client_program_id_, kBucketId, GL_UNIFORM_TYPE, shared_memory_id_, kInvalidSharedMemoryOffset); EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); } @@ -1620,8 +1539,8 @@ TEST_P(GLES2DecoderTest, CompileShaderValidArgs) { static_cast(shared_memory_address_); result->size = 0; GetShaderiv status_cmd; - status_cmd.Init(client_shader_id_, GL_COMPILE_STATUS, - kSharedMemoryId, kSharedMemoryOffset); + status_cmd.Init(client_shader_id_, GL_COMPILE_STATUS, shared_memory_id_, + kSharedMemoryOffset); EXPECT_EQ(error::kNoError, ExecuteCmd(status_cmd)); EXPECT_EQ(GL_TRUE, *result->GetData()); } @@ -1902,12 +1821,14 @@ TEST_P(GLES2DecoderWithShaderTest, GetAttribLocation) { SetBucketAsCString(kBucketId, kAttrib2Name); *result = -1; GetAttribLocation cmd; - cmd.Init(client_program_id_, kBucketId, kSharedMemoryId, kSharedMemoryOffset); + cmd.Init(client_program_id_, kBucketId, shared_memory_id_, + kSharedMemoryOffset); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(kAttrib2Location, *result); SetBucketAsCString(kBucketId, kNonExistentName); *result = -1; - cmd.Init(client_program_id_, kBucketId, kSharedMemoryId, kSharedMemoryOffset); + cmd.Init(client_program_id_, kBucketId, shared_memory_id_, + kSharedMemoryOffset); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(-1, *result); } @@ -1919,12 +1840,13 @@ TEST_P(GLES2DecoderWithShaderTest, GetAttribLocationInvalidArgs) { *result = -1; GetAttribLocation cmd; // Check no bucket - cmd.Init(client_program_id_, kBucketId, kSharedMemoryId, kSharedMemoryOffset); + cmd.Init(client_program_id_, kBucketId, shared_memory_id_, + kSharedMemoryOffset); EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(-1, *result); // Check bad program id. SetBucketAsCString(kBucketId, kAttrib2Name); - cmd.Init(kInvalidClientId, kBucketId, kSharedMemoryId, kSharedMemoryOffset); + cmd.Init(kInvalidClientId, kBucketId, shared_memory_id_, kSharedMemoryOffset); *result = -1; EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(-1, *result); @@ -1935,9 +1857,7 @@ TEST_P(GLES2DecoderWithShaderTest, GetAttribLocationInvalidArgs) { kInvalidSharedMemoryId, kSharedMemoryOffset); EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); - cmd.Init(client_program_id_, - kBucketId, - kSharedMemoryId, + cmd.Init(client_program_id_, kBucketId, shared_memory_id_, kInvalidSharedMemoryOffset); EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); } @@ -1949,7 +1869,8 @@ TEST_P(GLES3DecoderWithShaderTest, GetFragDataLocation) { SetBucketAsCString(kBucketId, kOutputVariable1NameESSL3); *result = -1; GetFragDataLocation cmd; - cmd.Init(client_program_id_, kBucketId, kSharedMemoryId, kSharedMemoryOffset); + cmd.Init(client_program_id_, kBucketId, shared_memory_id_, + kSharedMemoryOffset); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(static_cast(kOutputVariable1ColorName), *result); } @@ -1961,13 +1882,14 @@ TEST_P(GLES3DecoderWithShaderTest, GetFragDataLocationInvalidArgs) { *result = -1; GetFragDataLocation cmd; // Check no bucket - cmd.Init(client_program_id_, kBucketId, kSharedMemoryId, kSharedMemoryOffset); + cmd.Init(client_program_id_, kBucketId, shared_memory_id_, + kSharedMemoryOffset); EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(-1, *result); // Check bad program id. const char* kName = "color"; SetBucketAsCString(kBucketId, kName); - cmd.Init(kInvalidClientId, kBucketId, kSharedMemoryId, kSharedMemoryOffset); + cmd.Init(kInvalidClientId, kBucketId, shared_memory_id_, kSharedMemoryOffset); *result = -1; EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(-1, *result); @@ -1978,9 +1900,7 @@ TEST_P(GLES3DecoderWithShaderTest, GetFragDataLocationInvalidArgs) { kInvalidSharedMemoryId, kSharedMemoryOffset); EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); - cmd.Init(client_program_id_, - kBucketId, - kSharedMemoryId, + cmd.Init(client_program_id_, kBucketId, shared_memory_id_, kInvalidSharedMemoryOffset); EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); } @@ -1994,7 +1914,8 @@ TEST_P(GLES3DecoderWithShaderTest, GetUniformBlockIndex) { SetBucketAsCString(kBucketId, kName); *result = GL_INVALID_INDEX; GetUniformBlockIndex cmd; - cmd.Init(client_program_id_, kBucketId, kSharedMemoryId, kSharedMemoryOffset); + cmd.Init(client_program_id_, kBucketId, shared_memory_id_, + kSharedMemoryOffset); EXPECT_CALL(*gl_, GetUniformBlockIndex(kServiceProgramId, StrEq(kName))) .WillOnce(Return(kIndex)) .RetiresOnSaturation(); @@ -2009,13 +1930,14 @@ TEST_P(GLES3DecoderWithShaderTest, GetUniformBlockIndexInvalidArgs) { *result = GL_INVALID_INDEX; GetUniformBlockIndex cmd; // Check no bucket - cmd.Init(client_program_id_, kBucketId, kSharedMemoryId, kSharedMemoryOffset); + cmd.Init(client_program_id_, kBucketId, shared_memory_id_, + kSharedMemoryOffset); EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(GL_INVALID_INDEX, *result); // Check bad program id. const char* kName = "color"; SetBucketAsCString(kBucketId, kName); - cmd.Init(kInvalidClientId, kBucketId, kSharedMemoryId, kSharedMemoryOffset); + cmd.Init(kInvalidClientId, kBucketId, shared_memory_id_, kSharedMemoryOffset); *result = GL_INVALID_INDEX; EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(GL_INVALID_INDEX, *result); @@ -2026,9 +1948,7 @@ TEST_P(GLES3DecoderWithShaderTest, GetUniformBlockIndexInvalidArgs) { kInvalidSharedMemoryId, kSharedMemoryOffset); EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); - cmd.Init(client_program_id_, - kBucketId, - kSharedMemoryId, + cmd.Init(client_program_id_, kBucketId, shared_memory_id_, kInvalidSharedMemoryOffset); EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); } @@ -2041,12 +1961,14 @@ TEST_P(GLES2DecoderWithShaderTest, GetUniformLocation) { SetBucketAsCString(kBucketId, kUniform2Name); *result = -1; GetUniformLocation cmd; - cmd.Init(client_program_id_, kBucketId, kSharedMemoryId, kSharedMemoryOffset); + cmd.Init(client_program_id_, kBucketId, shared_memory_id_, + kSharedMemoryOffset); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(kUniform2FakeLocation, *result); SetBucketAsCString(kBucketId, kNonExistentName); *result = -1; - cmd.Init(client_program_id_, kBucketId, kSharedMemoryId, kSharedMemoryOffset); + cmd.Init(client_program_id_, kBucketId, shared_memory_id_, + kSharedMemoryOffset); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(-1, *result); } @@ -2058,12 +1980,13 @@ TEST_P(GLES2DecoderWithShaderTest, GetUniformLocationInvalidArgs) { *result = -1; GetUniformLocation cmd; // Check no bucket - cmd.Init(client_program_id_, kBucketId, kSharedMemoryId, kSharedMemoryOffset); + cmd.Init(client_program_id_, kBucketId, shared_memory_id_, + kSharedMemoryOffset); EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(-1, *result); // Check bad program id. SetBucketAsCString(kBucketId, kUniform2Name); - cmd.Init(kInvalidClientId, kBucketId, kSharedMemoryId, kSharedMemoryOffset); + cmd.Init(kInvalidClientId, kBucketId, shared_memory_id_, kSharedMemoryOffset); *result = -1; EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(-1, *result); @@ -2074,9 +1997,7 @@ TEST_P(GLES2DecoderWithShaderTest, GetUniformLocationInvalidArgs) { kInvalidSharedMemoryId, kSharedMemoryOffset); EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); - cmd.Init(client_program_id_, - kBucketId, - kSharedMemoryId, + cmd.Init(client_program_id_, kBucketId, shared_memory_id_, kInvalidSharedMemoryOffset); EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); } diff --git a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_textures.cc b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_textures.cc index e250553aba61d6..312a5bbbd6cc43 100644 --- a/gpu/command_buffer/service/gles2_cmd_decoder_unittest_textures.cc +++ b/gpu/command_buffer/service/gles2_cmd_decoder_unittest_textures.cc @@ -12,7 +12,6 @@ #include "gpu/command_buffer/common/gles2_cmd_format.h" #include "gpu/command_buffer/common/gles2_cmd_utils.h" #include "gpu/command_buffer/common/id_allocator.h" -#include "gpu/command_buffer/service/cmd_buffer_engine.h" #include "gpu/command_buffer/service/context_group.h" #include "gpu/command_buffer/service/context_state.h" #include "gpu/command_buffer/service/gl_surface_mock.h" @@ -87,16 +86,8 @@ TEST_P(GLES2DecoderTest, GenerateMipmapHandlesOutOfMemory) { GLint height = 0; EXPECT_FALSE( texture->GetLevelSize(GL_TEXTURE_2D, 2, &width, &height, nullptr)); - DoTexImage2D(GL_TEXTURE_2D, - 0, - GL_RGBA, - 16, - 16, - 0, - GL_RGBA, - GL_UNSIGNED_BYTE, - kSharedMemoryId, - kSharedMemoryOffset); + DoTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 16, 16, 0, GL_RGBA, GL_UNSIGNED_BYTE, + shared_memory_id_, kSharedMemoryOffset); EXPECT_CALL(*gl_, GenerateMipmapEXT(GL_TEXTURE_2D)).Times(1); EXPECT_CALL(*gl_, GetError()) .WillOnce(Return(GL_NO_ERROR)) @@ -223,16 +214,8 @@ TEST_P(GLES2DecoderTest, TexSubImage2DValidArgs) { const int kWidth = 16; const int kHeight = 8; DoBindTexture(GL_TEXTURE_2D, client_texture_id_, kServiceTextureId); - DoTexImage2D(GL_TEXTURE_2D, - 1, - GL_RGBA, - kWidth, - kHeight, - 0, - GL_RGBA, - GL_UNSIGNED_BYTE, - kSharedMemoryId, - kSharedMemoryOffset); + DoTexImage2D(GL_TEXTURE_2D, 1, GL_RGBA, kWidth, kHeight, 0, GL_RGBA, + GL_UNSIGNED_BYTE, shared_memory_id_, kSharedMemoryOffset); EXPECT_CALL(*gl_, TexSubImage2D(GL_TEXTURE_2D, 1, @@ -246,17 +229,8 @@ TEST_P(GLES2DecoderTest, TexSubImage2DValidArgs) { .Times(1) .RetiresOnSaturation(); TexSubImage2D cmd; - cmd.Init(GL_TEXTURE_2D, - 1, - 1, - 0, - kWidth - 1, - kHeight, - GL_RGBA, - GL_UNSIGNED_BYTE, - kSharedMemoryId, - kSharedMemoryOffset, - GL_FALSE); + cmd.Init(GL_TEXTURE_2D, 1, 1, 0, kWidth - 1, kHeight, GL_RGBA, + GL_UNSIGNED_BYTE, shared_memory_id_, kSharedMemoryOffset, GL_FALSE); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(GL_NO_ERROR, GetGLError()); } @@ -276,146 +250,48 @@ TEST_P(GLES2DecoderTest, TexSubImage2DBadArgs) { 0, 0); TexSubImage2D cmd; - cmd.Init(GL_TEXTURE0, - 1, - 0, - 0, - kWidth, - kHeight, - GL_RGBA, - GL_UNSIGNED_BYTE, - kSharedMemoryId, - kSharedMemoryOffset, - GL_FALSE); + cmd.Init(GL_TEXTURE0, 1, 0, 0, kWidth, kHeight, GL_RGBA, GL_UNSIGNED_BYTE, + shared_memory_id_, kSharedMemoryOffset, GL_FALSE); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); - cmd.Init(GL_TEXTURE_2D, - 1, - 0, - 0, - kWidth, - kHeight, - GL_TRUE, - GL_UNSIGNED_BYTE, - kSharedMemoryId, - kSharedMemoryOffset, - GL_FALSE); + cmd.Init(GL_TEXTURE_2D, 1, 0, 0, kWidth, kHeight, GL_TRUE, GL_UNSIGNED_BYTE, + shared_memory_id_, kSharedMemoryOffset, GL_FALSE); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); - cmd.Init(GL_TEXTURE_2D, - 1, - 0, - 0, - kWidth, - kHeight, - GL_RGBA, - GL_UNSIGNED_INT, - kSharedMemoryId, - kSharedMemoryOffset, - GL_FALSE); + cmd.Init(GL_TEXTURE_2D, 1, 0, 0, kWidth, kHeight, GL_RGBA, GL_UNSIGNED_INT, + shared_memory_id_, kSharedMemoryOffset, GL_FALSE); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); - cmd.Init(GL_TEXTURE_2D, - 1, - -1, - 0, - kWidth, - kHeight, - GL_RGBA, - GL_UNSIGNED_BYTE, - kSharedMemoryId, - kSharedMemoryOffset, - GL_FALSE); + cmd.Init(GL_TEXTURE_2D, 1, -1, 0, kWidth, kHeight, GL_RGBA, GL_UNSIGNED_BYTE, + shared_memory_id_, kSharedMemoryOffset, GL_FALSE); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); - cmd.Init(GL_TEXTURE_2D, - 1, - 1, - 0, - kWidth, - kHeight, - GL_RGBA, - GL_UNSIGNED_BYTE, - kSharedMemoryId, - kSharedMemoryOffset, - GL_FALSE); + cmd.Init(GL_TEXTURE_2D, 1, 1, 0, kWidth, kHeight, GL_RGBA, GL_UNSIGNED_BYTE, + shared_memory_id_, kSharedMemoryOffset, GL_FALSE); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); - cmd.Init(GL_TEXTURE_2D, - 1, - 0, - -1, - kWidth, - kHeight, - GL_RGBA, - GL_UNSIGNED_BYTE, - kSharedMemoryId, - kSharedMemoryOffset, - GL_FALSE); + cmd.Init(GL_TEXTURE_2D, 1, 0, -1, kWidth, kHeight, GL_RGBA, GL_UNSIGNED_BYTE, + shared_memory_id_, kSharedMemoryOffset, GL_FALSE); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); - cmd.Init(GL_TEXTURE_2D, - 1, - 0, - 1, - kWidth, - kHeight, - GL_RGBA, - GL_UNSIGNED_BYTE, - kSharedMemoryId, - kSharedMemoryOffset, - GL_FALSE); + cmd.Init(GL_TEXTURE_2D, 1, 0, 1, kWidth, kHeight, GL_RGBA, GL_UNSIGNED_BYTE, + shared_memory_id_, kSharedMemoryOffset, GL_FALSE); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); - cmd.Init(GL_TEXTURE_2D, - 1, - 0, - 0, - kWidth + 1, - kHeight, - GL_RGBA, - GL_UNSIGNED_BYTE, - kSharedMemoryId, - kSharedMemoryOffset, - GL_FALSE); + cmd.Init(GL_TEXTURE_2D, 1, 0, 0, kWidth + 1, kHeight, GL_RGBA, + GL_UNSIGNED_BYTE, shared_memory_id_, kSharedMemoryOffset, GL_FALSE); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); - cmd.Init(GL_TEXTURE_2D, - 1, - 0, - 0, - kWidth, - kHeight + 1, - GL_RGBA, - GL_UNSIGNED_BYTE, - kSharedMemoryId, - kSharedMemoryOffset, - GL_FALSE); + cmd.Init(GL_TEXTURE_2D, 1, 0, 0, kWidth, kHeight + 1, GL_RGBA, + GL_UNSIGNED_BYTE, shared_memory_id_, kSharedMemoryOffset, GL_FALSE); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); - cmd.Init(GL_TEXTURE_2D, - 1, - 0, - 0, - kWidth, - kHeight, - GL_RGB, - GL_UNSIGNED_BYTE, - kSharedMemoryId, - kSharedMemoryOffset, - GL_FALSE); + cmd.Init(GL_TEXTURE_2D, 1, 0, 0, kWidth, kHeight, GL_RGB, GL_UNSIGNED_BYTE, + shared_memory_id_, kSharedMemoryOffset, GL_FALSE); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(GL_INVALID_OPERATION, GetGLError()); - cmd.Init(GL_TEXTURE_2D, - 1, - 0, - 0, - kWidth, - kHeight, - GL_RGBA, - GL_UNSIGNED_SHORT_4_4_4_4, - kSharedMemoryId, - kSharedMemoryOffset, + cmd.Init(GL_TEXTURE_2D, 1, 0, 0, kWidth, kHeight, GL_RGBA, + GL_UNSIGNED_SHORT_4_4_4_4, shared_memory_id_, kSharedMemoryOffset, GL_FALSE); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(GL_INVALID_OPERATION, GetGLError()); @@ -431,17 +307,8 @@ TEST_P(GLES2DecoderTest, TexSubImage2DBadArgs) { kSharedMemoryOffset, GL_FALSE); EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); - cmd.Init(GL_TEXTURE_2D, - 1, - 0, - 0, - kWidth, - kHeight, - GL_RGBA, - GL_UNSIGNED_BYTE, - kSharedMemoryId, - kInvalidSharedMemoryOffset, - GL_FALSE); + cmd.Init(GL_TEXTURE_2D, 1, 0, 0, kWidth, kHeight, GL_RGBA, GL_UNSIGNED_BYTE, + shared_memory_id_, kInvalidSharedMemoryOffset, GL_FALSE); EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); } @@ -449,15 +316,8 @@ TEST_P(GLES3DecoderTest, TexSubImage2DTypesDoNotMatchUnsizedFormat) { const int kWidth = 16; const int kHeight = 8; DoBindTexture(GL_TEXTURE_2D, client_texture_id_, kServiceTextureId); - DoTexImage2D(GL_TEXTURE_2D, - 1, - GL_RGBA, - kWidth, - kHeight, - 0, - GL_RGBA, - GL_UNSIGNED_SHORT_4_4_4_4, - kSharedMemoryId, + DoTexImage2D(GL_TEXTURE_2D, 1, GL_RGBA, kWidth, kHeight, 0, GL_RGBA, + GL_UNSIGNED_SHORT_4_4_4_4, shared_memory_id_, kSharedMemoryOffset); EXPECT_CALL(*gl_, TexSubImage2D(GL_TEXTURE_2D, @@ -472,17 +332,8 @@ TEST_P(GLES3DecoderTest, TexSubImage2DTypesDoNotMatchUnsizedFormat) { .Times(1) .RetiresOnSaturation(); TexSubImage2D cmd; - cmd.Init(GL_TEXTURE_2D, - 1, - 1, - 0, - kWidth - 1, - kHeight, - GL_RGBA, - GL_UNSIGNED_BYTE, - kSharedMemoryId, - kSharedMemoryOffset, - GL_FALSE); + cmd.Init(GL_TEXTURE_2D, 1, 1, 0, kWidth - 1, kHeight, GL_RGBA, + GL_UNSIGNED_BYTE, shared_memory_id_, kSharedMemoryOffset, GL_FALSE); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(GL_NO_ERROR, GetGLError()); } @@ -491,16 +342,8 @@ TEST_P(GLES3DecoderTest, TexSubImage2DTypesDoNotMatchSizedFormat) { const int kWidth = 16; const int kHeight = 8; DoBindTexture(GL_TEXTURE_2D, client_texture_id_, kServiceTextureId); - DoTexImage2D(GL_TEXTURE_2D, - 1, - GL_RGBA4, - kWidth, - kHeight, - 0, - GL_RGBA, - GL_UNSIGNED_BYTE, - kSharedMemoryId, - kSharedMemoryOffset); + DoTexImage2D(GL_TEXTURE_2D, 1, GL_RGBA4, kWidth, kHeight, 0, GL_RGBA, + GL_UNSIGNED_BYTE, shared_memory_id_, kSharedMemoryOffset); EXPECT_CALL(*gl_, TexSubImage2D(GL_TEXTURE_2D, 1, @@ -514,16 +357,8 @@ TEST_P(GLES3DecoderTest, TexSubImage2DTypesDoNotMatchSizedFormat) { .Times(1) .RetiresOnSaturation(); TexSubImage2D cmd; - cmd.Init(GL_TEXTURE_2D, - 1, - 1, - 0, - kWidth - 1, - kHeight, - GL_RGBA, - GL_UNSIGNED_SHORT_4_4_4_4, - kSharedMemoryId, - kSharedMemoryOffset, + cmd.Init(GL_TEXTURE_2D, 1, 1, 0, kWidth - 1, kHeight, GL_RGBA, + GL_UNSIGNED_SHORT_4_4_4_4, shared_memory_id_, kSharedMemoryOffset, GL_FALSE); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(GL_NO_ERROR, GetGLError()); @@ -533,16 +368,8 @@ TEST_P(GLES2DecoderTest, CopyTexSubImage2DValidArgs) { const int kWidth = 16; const int kHeight = 8; DoBindTexture(GL_TEXTURE_2D, client_texture_id_, kServiceTextureId); - DoTexImage2D(GL_TEXTURE_2D, - 1, - GL_RGBA, - kWidth, - kHeight, - 0, - GL_RGBA, - GL_UNSIGNED_BYTE, - kSharedMemoryId, - kSharedMemoryOffset); + DoTexImage2D(GL_TEXTURE_2D, 1, GL_RGBA, kWidth, kHeight, 0, GL_RGBA, + GL_UNSIGNED_BYTE, shared_memory_id_, kSharedMemoryOffset); EXPECT_CALL(*gl_, CopyTexSubImage2D(GL_TEXTURE_2D, 1, 0, 0, 0, 0, kWidth, kHeight)) .Times(1) @@ -611,15 +438,8 @@ TEST_P(GLES2DecoderTest, TexImage2DRedefinitionSucceeds) { _)) .Times(1) .RetiresOnSaturation(); - cmd.Init(GL_TEXTURE_2D, - 0, - GL_RGBA, - kWidth, - kHeight, - GL_RGBA, - GL_UNSIGNED_BYTE, - kSharedMemoryId, - kSharedMemoryOffset); + cmd.Init(GL_TEXTURE_2D, 0, GL_RGBA, kWidth, kHeight, GL_RGBA, + GL_UNSIGNED_BYTE, shared_memory_id_, kSharedMemoryOffset); } else { cmd.Init(GL_TEXTURE_2D, 0, @@ -648,16 +468,8 @@ TEST_P(GLES2DecoderTest, TexImage2DRedefinitionSucceeds) { // (last GL_TRUE argument). It will be skipped if there are bugs in the // redefinition case. TexSubImage2D cmd2; - cmd2.Init(GL_TEXTURE_2D, - 0, - 0, - 0, - kWidth, - kHeight - 1, - GL_RGBA, - GL_UNSIGNED_BYTE, - kSharedMemoryId, - kSharedMemoryOffset, + cmd2.Init(GL_TEXTURE_2D, 0, 0, 0, kWidth, kHeight - 1, GL_RGBA, + GL_UNSIGNED_BYTE, shared_memory_id_, kSharedMemoryOffset, GL_TRUE); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2)); } @@ -696,15 +508,8 @@ TEST_P(GLES2DecoderTest, TexImage2DGLError) { .Times(1) .RetiresOnSaturation(); TexImage2D cmd; - cmd.Init(target, - level, - internal_format, - width, - height, - format, - type, - kSharedMemoryId, - kSharedMemoryOffset); + cmd.Init(target, level, internal_format, width, height, format, type, + shared_memory_id_, kSharedMemoryOffset); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(GL_OUT_OF_MEMORY, GetGLError()); EXPECT_FALSE( @@ -1115,7 +920,7 @@ TEST_P(GLES3DecoderTest, CopyTexSubImage3DFaiures) { const GLenum kType = GL_UNSIGNED_BYTE; DoBindTexture(kTarget, client_texture_id_, kServiceTextureId); DoTexImage3D(kTarget, kLevel, kInternalFormat, kWidth, kHeight, kDepth, 0, - kFormat, kType, kSharedMemoryId, kSharedMemoryOffset); + kFormat, kType, shared_memory_id_, kSharedMemoryOffset); cmd.Init(kTarget, kLevel, kXoffset, kYoffset, kZoffset, kX, kY, kWidth, kHeight); @@ -1141,7 +946,7 @@ TEST_P(GLES3DecoderTest, CopyTexSubImage3DCheckArgs) { DoBindTexture(kTarget, client_texture_id_, kServiceTextureId); DoTexImage3D(kTarget, kLevel, kInternalFormat, kWidth, kHeight, kDepth, - kBorder, kFormat, kType, kSharedMemoryId, kSharedMemoryOffset); + kBorder, kFormat, kType, shared_memory_id_, kSharedMemoryOffset); // Valid args EXPECT_CALL(*gl_, @@ -1242,7 +1047,7 @@ TEST_P(GLES3DecoderTest, CopyTexSubImage3DFeedbackLoopSucceeds0) { .Times(1) .RetiresOnSaturation(); DoTexImage3D(kTarget, kLevel, kInternalFormat, kWidth, kHeight, kDepth, - kBorder, kFormat, kType, kSharedMemoryId, kSharedMemoryOffset); + kBorder, kFormat, kType, shared_memory_id_, kSharedMemoryOffset); tex_layer.Init(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, client_texture_id_, kLevel, kLayer); EXPECT_EQ(error::kNoError, ExecuteCmd(tex_layer)); @@ -1258,7 +1063,7 @@ TEST_P(GLES3DecoderTest, CopyTexSubImage3DFeedbackLoopSucceeds0) { .Times(1) .RetiresOnSaturation(); DoTexImage3D(kTarget, kLevel, kInternalFormat, kWidth, kHeight, kDepth, - kBorder, kFormat, kType, kSharedMemoryId, kSharedMemoryOffset); + kBorder, kFormat, kType, shared_memory_id_, kSharedMemoryOffset); cmd.Init(kTarget, kLevel, kXoffset, kYoffset, kZoffset, kX, kY, kWidth, kHeight); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); @@ -1297,7 +1102,7 @@ TEST_P(GLES3DecoderTest, CopyTexSubImage3DFeedbackLoopSucceeds1) { .Times(1) .RetiresOnSaturation(); DoTexImage3D(kTarget, kLevel, kInternalFormat, kWidth, kHeight, kDepth, - kBorder, kFormat, kType, kSharedMemoryId, kSharedMemoryOffset); + kBorder, kFormat, kType, shared_memory_id_, kSharedMemoryOffset); tex_layer.Init(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, client_texture_id_, kLevel, kLayer); EXPECT_EQ(error::kNoError, ExecuteCmd(tex_layer)); @@ -1350,7 +1155,7 @@ TEST_P(GLES3DecoderTest, CopyTexSubImage3DFeedbackLoopFails) { .Times(1) .RetiresOnSaturation(); DoTexImage3D(kTarget, kLevel, kInternalFormat, kWidth, kHeight, kDepth, - kBorder, kFormat, kType, kSharedMemoryId, kSharedMemoryOffset); + kBorder, kFormat, kType, shared_memory_id_, kSharedMemoryOffset); tex_layer.Init(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, client_texture_id_, kLevel, kLayer); EXPECT_EQ(error::kNoError, ExecuteCmd(tex_layer)); @@ -2184,17 +1989,8 @@ TEST_P(GLES2DecoderManualInitTest, CompressedTexImage2DETC1) { EXPECT_TRUE(texture->GetLevelType(GL_TEXTURE_2D, 0, &type, &internal_format)); EXPECT_EQ(kFormat, internal_format); TexSubImage2D texsub_cmd; - texsub_cmd.Init(GL_TEXTURE_2D, - 0, - 0, - 0, - 4, - 4, - GL_RGBA, - GL_UNSIGNED_BYTE, - kSharedMemoryId, - kSharedMemoryOffset, - GL_FALSE); + texsub_cmd.Init(GL_TEXTURE_2D, 0, 0, 0, 4, 4, GL_RGBA, GL_UNSIGNED_BYTE, + shared_memory_id_, kSharedMemoryOffset, GL_FALSE); EXPECT_EQ(error::kNoError, ExecuteCmd(texsub_cmd)); EXPECT_EQ(GL_INVALID_OPERATION, GetGLError()); @@ -2369,15 +2165,8 @@ TEST_P(GLES2DecoderManualInitTest, EGLImageExternalTexImage2DError) { DoBindTexture(GL_TEXTURE_EXTERNAL_OES, client_texture_id_, kServiceTextureId); ASSERT_TRUE(GetTexture(client_texture_id_) != NULL); TexImage2D cmd; - cmd.Init(target, - level, - internal_format, - width, - height, - format, - type, - kSharedMemoryId, - kSharedMemoryOffset); + cmd.Init(target, level, internal_format, width, height, format, type, + shared_memory_id_, kSharedMemoryOffset); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); // TexImage2D is not allowed with GL_TEXTURE_EXTERNAL_OES targets. @@ -2574,15 +2363,8 @@ TEST_P(GLES2DecoderManualInitTest, NoDefaultTexImage2D) { EXPECT_EQ(GL_NO_ERROR, GetGLError()); TexImage2D cmd2; - cmd2.Init(GL_TEXTURE_2D, - 0, - GL_RGBA, - 2, - 2, - GL_RGBA, - GL_UNSIGNED_BYTE, - kSharedMemoryId, - kSharedMemoryOffset); + cmd2.Init(GL_TEXTURE_2D, 0, GL_RGBA, 2, 2, GL_RGBA, GL_UNSIGNED_BYTE, + shared_memory_id_, kSharedMemoryOffset); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2)); EXPECT_EQ(GL_INVALID_OPERATION, GetGLError()); } @@ -2598,17 +2380,8 @@ TEST_P(GLES2DecoderManualInitTest, NoDefaultTexSubImage2D) { EXPECT_EQ(GL_NO_ERROR, GetGLError()); TexSubImage2D cmd2; - cmd2.Init(GL_TEXTURE_2D, - 0, - 1, - 1, - 1, - 1, - GL_RGBA, - GL_UNSIGNED_BYTE, - kSharedMemoryId, - kSharedMemoryOffset, - GL_FALSE); + cmd2.Init(GL_TEXTURE_2D, 0, 1, 1, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, + shared_memory_id_, kSharedMemoryOffset, GL_FALSE); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd2)); EXPECT_EQ(GL_INVALID_OPERATION, GetGLError()); } @@ -2775,15 +2548,8 @@ TEST_P(GLES2DecoderManualInitTest, ARBTextureRectangleTexImage2D) { ASSERT_TRUE(GetTexture(client_texture_id_) != NULL); TexImage2D cmd; - cmd.Init(target, - level, - internal_format, - width, - height, - format, - type, - kSharedMemoryId, - kSharedMemoryOffset); + cmd.Init(target, level, internal_format, width, height, format, type, + shared_memory_id_, kSharedMemoryOffset); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); @@ -2808,15 +2574,8 @@ TEST_P(GLES2DecoderManualInitTest, ARBTextureRectangleTexImage2DInvalid) { ASSERT_TRUE(GetTexture(client_texture_id_) != NULL); TexImage2D cmd; - cmd.Init(target, - level, - internal_format, - width, - height, - format, - type, - kSharedMemoryId, - kSharedMemoryOffset); + cmd.Init(target, level, internal_format, width, height, format, type, + shared_memory_id_, kSharedMemoryOffset); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(GL_INVALID_ENUM, GetGLError()); @@ -2843,10 +2602,10 @@ TEST_P(GLES2DecoderManualInitTest, TexSubImage2DClearsAfterTexImage2DNULL) { .RetiresOnSaturation(); TexSubImage2D cmd; cmd.Init(GL_TEXTURE_2D, 0, 0, 0, 2, 1, GL_RGBA, GL_UNSIGNED_BYTE, - kSharedMemoryId, kSharedMemoryOffset, GL_FALSE); + shared_memory_id_, kSharedMemoryOffset, GL_FALSE); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); cmd.Init(GL_TEXTURE_2D, 0, 0, 1, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, - kSharedMemoryId, kSharedMemoryOffset, GL_FALSE); + shared_memory_id_, kSharedMemoryOffset, GL_FALSE); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); // Test if we call it again it does not clear. EXPECT_CALL(*gl_, TexSubImage2D(GL_TEXTURE_2D, 0, 0, 1, 1, 1, GL_RGBA, @@ -2860,16 +2619,8 @@ TEST_P(GLES2DecoderTest, TexSubImage2DDoesNotClearAfterTexImage2DNULLThenData) { DoBindTexture(GL_TEXTURE_2D, client_texture_id_, kServiceTextureId); DoTexImage2D( GL_TEXTURE_2D, 0, GL_RGBA, 2, 2, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0, 0); - DoTexImage2D(GL_TEXTURE_2D, - 0, - GL_RGBA, - 2, - 2, - 0, - GL_RGBA, - GL_UNSIGNED_BYTE, - kSharedMemoryId, - kSharedMemoryOffset); + DoTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 2, 2, 0, GL_RGBA, GL_UNSIGNED_BYTE, + shared_memory_id_, kSharedMemoryOffset); EXPECT_CALL(*gl_, TexSubImage2D(GL_TEXTURE_2D, 0, @@ -2883,17 +2634,8 @@ TEST_P(GLES2DecoderTest, TexSubImage2DDoesNotClearAfterTexImage2DNULLThenData) { .Times(1) .RetiresOnSaturation(); TexSubImage2D cmd; - cmd.Init(GL_TEXTURE_2D, - 0, - 1, - 1, - 1, - 1, - GL_RGBA, - GL_UNSIGNED_BYTE, - kSharedMemoryId, - kSharedMemoryOffset, - GL_FALSE); + cmd.Init(GL_TEXTURE_2D, 0, 1, 1, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, + shared_memory_id_, kSharedMemoryOffset, GL_FALSE); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); // Test if we call it again it does not clear. EXPECT_CALL(*gl_, @@ -2934,15 +2676,8 @@ TEST_P( .Times(1) .RetiresOnSaturation(); TexImage2D cmd; - cmd.Init(GL_TEXTURE_2D, - 0, - GL_RGBA, - 2, - 2, - GL_RGBA, - GL_UNSIGNED_BYTE, - kSharedMemoryId, - kSharedMemoryOffset); + cmd.Init(GL_TEXTURE_2D, 0, GL_RGBA, 2, 2, GL_RGBA, GL_UNSIGNED_BYTE, + shared_memory_id_, kSharedMemoryOffset); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); } @@ -2959,17 +2694,8 @@ TEST_P( .Times(1) .RetiresOnSaturation(); TexSubImage2D cmd; - cmd.Init(GL_TEXTURE_2D, - 0, - 1, - 1, - 1, - 1, - GL_RGBA, - GL_UNSIGNED_BYTE, - kSharedMemoryId, - kSharedMemoryOffset, - GL_FALSE); + cmd.Init(GL_TEXTURE_2D, 0, 1, 1, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, + shared_memory_id_, kSharedMemoryOffset, GL_FALSE); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); // Test if we call it again it does not clear. EXPECT_CALL(*gl_, @@ -2990,16 +2716,8 @@ TEST_P( TEST_P(GLES2DecoderTest, TexSubImage2DClearsAfterTexImage2DWithDataThenNULL) { DoBindTexture(GL_TEXTURE_2D, client_texture_id_, kServiceTextureId); // Put in data (so it should be marked as cleared) - DoTexImage2D(GL_TEXTURE_2D, - 0, - GL_RGBA, - 2, - 2, - 0, - GL_RGBA, - GL_UNSIGNED_BYTE, - kSharedMemoryId, - kSharedMemoryOffset); + DoTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 2, 2, 0, GL_RGBA, GL_UNSIGNED_BYTE, + shared_memory_id_, kSharedMemoryOffset); // Put in no data. TexImage2D tex_cmd; tex_cmd.Init( @@ -3016,10 +2734,10 @@ TEST_P(GLES2DecoderTest, TexSubImage2DClearsAfterTexImage2DWithDataThenNULL) { .RetiresOnSaturation(); TexSubImage2D cmd; cmd.Init(GL_TEXTURE_2D, 0, 0, 0, 2, 1, GL_RGBA, GL_UNSIGNED_BYTE, - kSharedMemoryId, kSharedMemoryOffset, GL_FALSE); + shared_memory_id_, kSharedMemoryOffset, GL_FALSE); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); cmd.Init(GL_TEXTURE_2D, 0, 0, 1, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, - kSharedMemoryId, kSharedMemoryOffset, GL_FALSE); + shared_memory_id_, kSharedMemoryOffset, GL_FALSE); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); } @@ -3156,14 +2874,8 @@ TEST_P(GLES2DecoderManualInitTest, CompressedImage2DMarksTextureAsCleared) { .WillOnce(Return(GL_NO_ERROR)) .RetiresOnSaturation(); CompressedTexImage2D cmd; - cmd.Init(GL_TEXTURE_2D, - 0, - GL_COMPRESSED_RGB_S3TC_DXT1_EXT, - 4, - 4, - 8, - kSharedMemoryId, - kSharedMemoryOffset); + cmd.Init(GL_TEXTURE_2D, 0, GL_COMPRESSED_RGB_S3TC_DXT1_EXT, 4, 4, 8, + shared_memory_id_, kSharedMemoryOffset); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); TextureManager* manager = group().texture_manager(); TextureRef* texture_ref = manager->GetTexture(client_texture_id_); @@ -3508,15 +3220,8 @@ TEST_P(GLES2DecoderManualInitTest, DepthTextureBadArgs) { DoBindTexture(GL_TEXTURE_2D, client_texture_id_, kServiceTextureId); // Check trying to upload data fails. TexImage2D tex_cmd; - tex_cmd.Init(GL_TEXTURE_2D, - 0, - GL_DEPTH_COMPONENT, - 1, - 1, - GL_DEPTH_COMPONENT, - GL_UNSIGNED_INT, - kSharedMemoryId, - kSharedMemoryOffset); + tex_cmd.Init(GL_TEXTURE_2D, 0, GL_DEPTH_COMPONENT, 1, 1, GL_DEPTH_COMPONENT, + GL_UNSIGNED_INT, shared_memory_id_, kSharedMemoryOffset); EXPECT_EQ(error::kNoError, ExecuteCmd(tex_cmd)); EXPECT_EQ(GL_INVALID_OPERATION, GetGLError()); // Try level > 0. @@ -3546,16 +3251,8 @@ TEST_P(GLES2DecoderManualInitTest, DepthTextureBadArgs) { // Check that trying to update it fails. TexSubImage2D tex_sub_cmd; - tex_sub_cmd.Init(GL_TEXTURE_2D, - 0, - 0, - 0, - 1, - 1, - GL_DEPTH_COMPONENT, - GL_UNSIGNED_INT, - kSharedMemoryId, - kSharedMemoryOffset, + tex_sub_cmd.Init(GL_TEXTURE_2D, 0, 0, 0, 1, 1, GL_DEPTH_COMPONENT, + GL_UNSIGNED_INT, shared_memory_id_, kSharedMemoryOffset, GL_FALSE); EXPECT_EQ(error::kNoError, ExecuteCmd(tex_sub_cmd)); EXPECT_EQ(GL_INVALID_OPERATION, GetGLError()); @@ -3693,7 +3390,7 @@ TEST_P(GLES2DecoderTest, GLImageAttachedAfterSubTexImage2D) { GLint border = 0; GLenum format = GL_RGBA; GLenum type = GL_UNSIGNED_BYTE; - uint32_t pixels_shm_id = kSharedMemoryId; + uint32_t pixels_shm_id = shared_memory_id_; uint32_t pixels_shm_offset = kSharedMemoryOffset; GLboolean internal = 0; @@ -3738,7 +3435,7 @@ TEST_P(GLES2DecoderTest, GLImageAttachedAfterClearLevel) { GLint border = 0; GLenum format = GL_RGBA; GLenum type = GL_UNSIGNED_BYTE; - uint32_t pixels_shm_id = kSharedMemoryId; + uint32_t pixels_shm_id = shared_memory_id_; uint32_t pixels_shm_offset = kSharedMemoryOffset; // Define texture first. @@ -3848,16 +3545,8 @@ class MockGLImage : public gl::GLImage { TEST_P(GLES2DecoderWithShaderTest, CopyTexImage) { DoBindTexture(GL_TEXTURE_2D, client_texture_id_, kServiceTextureId); - DoTexImage2D(GL_TEXTURE_2D, - 0, - GL_RGBA, - 1, - 1, - 0, - GL_RGBA, - GL_UNSIGNED_BYTE, - kSharedMemoryId, - kSharedMemoryOffset); + DoTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 1, 1, 0, GL_RGBA, GL_UNSIGNED_BYTE, + shared_memory_id_, kSharedMemoryOffset); TextureRef* texture_ref = group().texture_manager()->GetTexture(client_texture_id_); @@ -4083,17 +3772,8 @@ TEST_P(GLES2DecoderManualInitTest, TexSubImage2DFloatOnGLES3) { .Times(1) .RetiresOnSaturation(); TexSubImage2D cmd; - cmd.Init(GL_TEXTURE_2D, - 0, - 0, - 0, - kWidth, - kHeight, - GL_RGBA, - GL_FLOAT, - kSharedMemoryId, - kSharedMemoryOffset, - GL_FALSE); + cmd.Init(GL_TEXTURE_2D, 0, 0, 0, kWidth, kHeight, GL_RGBA, GL_FLOAT, + shared_memory_id_, kSharedMemoryOffset, GL_FALSE); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(GL_NO_ERROR, GetGLError()); } @@ -4125,10 +3805,10 @@ TEST_P(GLES2DecoderManualInitTest, TexSubImage2DFloatDoesClearOnGLES3) { .RetiresOnSaturation(); TexSubImage2D cmd; cmd.Init(GL_TEXTURE_2D, 0, 0, 0, kWidth, kHeight - 1, GL_RGBA, GL_FLOAT, - kSharedMemoryId, kSharedMemoryOffset, GL_FALSE); + shared_memory_id_, kSharedMemoryOffset, GL_FALSE); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); cmd.Init(GL_TEXTURE_2D, 0, 0, kHeight - 1, kWidth - 1, 1, GL_RGBA, GL_FLOAT, - kSharedMemoryId, kSharedMemoryOffset, GL_FALSE); + shared_memory_id_, kSharedMemoryOffset, GL_FALSE); EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); EXPECT_EQ(GL_NO_ERROR, GetGLError()); } @@ -4482,7 +4162,7 @@ TEST_P(GLES3DecoderTest, TexImage3DValidArgs) { DoBindTexture(kTarget, client_texture_id_, kServiceTextureId); DoTexImage3D(kTarget, kLevel, kInternalFormat, kWidth, kHeight, kDepth, 0, - kFormat, kType, kSharedMemoryId, kSharedMemoryOffset); + kFormat, kType, shared_memory_id_, kSharedMemoryOffset); } TEST_P(GLES3DecoderTest, ClearLevel3DSingleCall) { diff --git a/gpu/command_buffer/service/mocks.cc b/gpu/command_buffer/service/mocks.cc index f095a8e647efce..89a795b8392355 100644 --- a/gpu/command_buffer/service/mocks.cc +++ b/gpu/command_buffer/service/mocks.cc @@ -2,10 +2,11 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. +#include "gpu/command_buffer/service/mocks.h" #include "base/threading/thread.h" #include "base/time/time.h" +#include "gpu/command_buffer/service/command_buffer_service.h" #include "gpu/command_buffer/service/command_executor.h" -#include "gpu/command_buffer/service/mocks.h" using testing::Invoke; using testing::_; @@ -35,12 +36,12 @@ error::Error AsyncAPIMock::FakeDoCommands(unsigned int num_commands, void AsyncAPIMock::SetToken(unsigned int command, unsigned int arg_count, const volatile void* _args) { - DCHECK(engine_); + DCHECK(command_buffer_service_); DCHECK_EQ(1u, command); DCHECK_EQ(1u, arg_count); const volatile cmd::SetToken* args = static_cast(_args); - engine_->set_token(args->token); + command_buffer_service_->SetToken(args->token); } namespace gles2 { diff --git a/gpu/command_buffer/service/mocks.h b/gpu/command_buffer/service/mocks.h index 5d309d7bcaa62e..f90194e7022799 100644 --- a/gpu/command_buffer/service/mocks.h +++ b/gpu/command_buffer/service/mocks.h @@ -18,7 +18,6 @@ #include "base/logging.h" #include "gpu/command_buffer/service/async_api_interface.h" -#include "gpu/command_buffer/service/cmd_buffer_engine.h" #include "gpu/command_buffer/service/memory_tracking.h" #include "gpu/command_buffer/service/program_cache.h" #include "gpu/command_buffer/service/shader_translator.h" @@ -26,6 +25,8 @@ namespace gpu { +class CommandBufferServiceBase; + // Mocks an AsyncAPIInterface, using GMock. class AsyncAPIMock : public AsyncAPIInterface { public: @@ -75,7 +76,10 @@ class AsyncAPIMock : public AsyncAPIInterface { }; // Sets the engine, to forward SetToken commands to it. - void set_engine(CommandBufferEngine *engine) { engine_ = engine; } + void set_command_buffer_service( + CommandBufferServiceBase* command_buffer_service) { + command_buffer_service_ = command_buffer_service; + } // Forwards the SetToken commands to the engine. void SetToken(unsigned int command, @@ -83,7 +87,7 @@ class AsyncAPIMock : public AsyncAPIInterface { const volatile void* _args); private: - CommandBufferEngine *engine_; + CommandBufferServiceBase* command_buffer_service_; }; namespace gles2 { diff --git a/gpu/command_buffer/service/query_manager_unittest.cc b/gpu/command_buffer/service/query_manager_unittest.cc index 34a7ce6c5a5359..798885f3f60cf3 100644 --- a/gpu/command_buffer/service/query_manager_unittest.cc +++ b/gpu/command_buffer/service/query_manager_unittest.cc @@ -7,8 +7,8 @@ #include +#include "gpu/command_buffer/client/client_test_helper.h" #include "gpu/command_buffer/common/gles2_cmd_format.h" -#include "gpu/command_buffer/service/cmd_buffer_engine.h" #include "gpu/command_buffer/service/error_state_mock.h" #include "gpu/command_buffer/service/feature_info.h" #include "gpu/command_buffer/service/gles2_cmd_decoder.h" @@ -32,12 +32,10 @@ namespace gles2 { class QueryManagerTest : public GpuServiceTest { public: - static const int32_t kSharedMemoryId = 401; static const uint32_t kSharedMemoryOffset = 132; - static const int32_t kSharedMemory2Id = 402; static const uint32_t kSharedMemory2Offset = 232; static const size_t kSharedBufferSize = 2048; - static const int32_t kInvalidSharedMemoryId = 403; + static const int32_t kInvalidSharedMemoryId = -1; static const uint32_t kInvalidSharedMemoryOffset = kSharedBufferSize + 1; static const uint32_t kInitialResult = 0xBDBDBDBDu; static const uint8_t kInitialMemoryValue = 0xBDu; @@ -58,14 +56,21 @@ class QueryManagerTest : public GpuServiceTest { decoder_.reset(); manager_->Destroy(false); manager_.reset(); - engine_.reset(); + command_buffer_service_.reset(); GpuServiceTest::TearDown(); } void SetUpMockGL(const char* extension_expectations) { - engine_.reset(new MockCommandBufferEngine()); + command_buffer_service_.reset(new FakeCommandBufferServiceBase()); + scoped_refptr buffer = + command_buffer_service_->CreateTransferBufferHelper(kSharedBufferSize, + &shared_memory_id_); + memset(buffer->memory(), kInitialMemoryValue, kSharedBufferSize); + buffer = command_buffer_service_->CreateTransferBufferHelper( + kSharedBufferSize, &shared_memory2_id_); + memset(buffer->memory(), kInitialMemoryValue, kSharedBufferSize); decoder_.reset(new MockGLES2Decoder()); - decoder_->set_engine(engine_.get()); + decoder_->set_command_buffer_service(command_buffer_service_.get()); TestHelper::SetupFeatureInfoInitExpectations( gl_.get(), extension_expectations); EXPECT_CALL(*decoder_.get(), GetGLContext()) @@ -102,49 +107,11 @@ class QueryManagerTest : public GpuServiceTest { std::unique_ptr decoder_; std::unique_ptr manager_; + int32_t shared_memory_id_ = 0; + int32_t shared_memory2_id_ = 0; + private: - class MockCommandBufferEngine : public CommandBufferEngine { - public: - MockCommandBufferEngine() { - std::unique_ptr shared_memory( - new base::SharedMemory()); - shared_memory->CreateAndMapAnonymous(kSharedBufferSize); - valid_buffer_ = MakeBufferFromSharedMemory(std::move(shared_memory), - kSharedBufferSize); - - std::unique_ptr shared_memory2( - new base::SharedMemory()); - shared_memory2->CreateAndMapAnonymous(kSharedBufferSize); - valid_buffer2_ = MakeBufferFromSharedMemory(std::move(shared_memory2), - kSharedBufferSize); - - ClearSharedMemory(); - } - - ~MockCommandBufferEngine() override {} - - scoped_refptr GetSharedMemoryBuffer(int32_t shm_id) override { - switch (shm_id) { - case kSharedMemoryId: return valid_buffer_; - case kSharedMemory2Id: return valid_buffer2_; - default: return invalid_buffer_; - } - } - - void ClearSharedMemory() { - memset(valid_buffer_->memory(), kInitialMemoryValue, kSharedBufferSize); - memset(valid_buffer2_->memory(), kInitialMemoryValue, kSharedBufferSize); - } - - void set_token(int32_t token) override { DCHECK(false); } - - private: - scoped_refptr valid_buffer_; - scoped_refptr valid_buffer2_; - scoped_refptr invalid_buffer_; - }; - - std::unique_ptr engine_; + std::unique_ptr command_buffer_service_; }; class QueryManagerManualSetupTest : public QueryManagerTest { @@ -156,9 +123,7 @@ class QueryManagerManualSetupTest : public QueryManagerTest { // GCC requires these declarations, but MSVC requires they not be present #ifndef COMPILER_MSVC -const int32_t QueryManagerTest::kSharedMemoryId; const uint32_t QueryManagerTest::kSharedMemoryOffset; -const int32_t QueryManagerTest::kSharedMemory2Id; const uint32_t QueryManagerTest::kSharedMemory2Offset; const size_t QueryManagerTest::kSharedBufferSize; const int32_t QueryManagerTest::kInvalidSharedMemoryId; @@ -175,8 +140,8 @@ TEST_F(QueryManagerTest, Basic) { EXPECT_FALSE(manager_->HavePendingQueries()); // Check we can create a Query. scoped_refptr query( - CreateQuery(GL_ANY_SAMPLES_PASSED_EXT, kClient1Id, - kSharedMemoryId, kSharedMemoryOffset, kService1Id)); + CreateQuery(GL_ANY_SAMPLES_PASSED_EXT, kClient1Id, shared_memory_id_, + kSharedMemoryOffset, kService1Id)); ASSERT_TRUE(query.get() != NULL); // Check we can get the same Query. EXPECT_EQ(query.get(), manager_->GetQuery(kClient1Id)); @@ -200,8 +165,8 @@ TEST_F(QueryManagerTest, Destroy) { // Create Query. scoped_refptr query( - CreateQuery(GL_ANY_SAMPLES_PASSED_EXT, kClient1Id, - kSharedMemoryId, kSharedMemoryOffset, kService1Id)); + CreateQuery(GL_ANY_SAMPLES_PASSED_EXT, kClient1Id, shared_memory_id_, + kSharedMemoryOffset, kService1Id)); ASSERT_TRUE(query.get() != NULL); EXPECT_CALL(*gl_, DeleteQueries(1, ::testing::Pointee(kService1Id))) .Times(1) @@ -220,15 +185,15 @@ TEST_F(QueryManagerTest, QueryBasic) { // Create Query. scoped_refptr query( - CreateQuery(kTarget, kClient1Id, - kSharedMemoryId, kSharedMemoryOffset, kService1Id)); + CreateQuery(kTarget, kClient1Id, shared_memory_id_, kSharedMemoryOffset, + kService1Id)); ASSERT_TRUE(query.get() != NULL); EXPECT_TRUE(query->IsValid()); EXPECT_FALSE(query->IsDeleted()); EXPECT_FALSE(query->IsPending()); EXPECT_EQ(kTarget, query->target()); - EXPECT_EQ(kSharedMemoryId, query->shm_id()); + EXPECT_EQ(shared_memory_id_, query->shm_id()); EXPECT_EQ(kSharedMemoryOffset, query->shm_offset()); } @@ -244,13 +209,13 @@ TEST_F(QueryManagerTest, ProcessPendingQuery) { // Create Query. scoped_refptr query( - CreateQuery(kTarget, kClient1Id, - kSharedMemoryId, kSharedMemoryOffset, kService1Id)); + CreateQuery(kTarget, kClient1Id, shared_memory_id_, kSharedMemoryOffset, + kService1Id)); ASSERT_TRUE(query.get() != NULL); // Setup shared memory like client would. QuerySync* sync = decoder_->GetSharedMemoryAs( - kSharedMemoryId, kSharedMemoryOffset, sizeof(*sync)); + shared_memory_id_, kSharedMemoryOffset, sizeof(*sync)); ASSERT_TRUE(sync != NULL); sync->Reset(); @@ -307,24 +272,21 @@ TEST_F(QueryManagerTest, ProcessPendingQueries) { // Setup shared memory like client would. QuerySync* sync1 = decoder_->GetSharedMemoryAs( - kSharedMemoryId, kSharedMemoryOffset, sizeof(*sync1) * 3); + shared_memory_id_, kSharedMemoryOffset, sizeof(*sync1) * 3); ASSERT_TRUE(sync1 != NULL); QuerySync* sync2 = sync1 + 1; QuerySync* sync3 = sync2 + 1; // Create Queries. scoped_refptr query1( - CreateQuery(kTarget, kClient1Id, - kSharedMemoryId, kSharedMemoryOffset + sizeof(*sync1) * 0, - kService1Id)); + CreateQuery(kTarget, kClient1Id, shared_memory_id_, + kSharedMemoryOffset + sizeof(*sync1) * 0, kService1Id)); scoped_refptr query2( - CreateQuery(kTarget, kClient2Id, - kSharedMemoryId, kSharedMemoryOffset + sizeof(*sync1) * 1, - kService2Id)); + CreateQuery(kTarget, kClient2Id, shared_memory_id_, + kSharedMemoryOffset + sizeof(*sync1) * 1, kService2Id)); scoped_refptr query3( - CreateQuery(kTarget, kClient3Id, - kSharedMemoryId, kSharedMemoryOffset + sizeof(*sync1) * 2, - kService3Id)); + CreateQuery(kTarget, kClient3Id, shared_memory_id_, + kSharedMemoryOffset + sizeof(*sync1) * 2, kService3Id)); ASSERT_TRUE(query1.get() != NULL); ASSERT_TRUE(query2.get() != NULL); ASSERT_TRUE(query3.get() != NULL); @@ -443,8 +405,8 @@ TEST_F(QueryManagerTest, ProcessPendingBadSharedMemoryOffset) { // Create Query. scoped_refptr query( - CreateQuery(kTarget, kClient1Id, - kSharedMemoryId, kInvalidSharedMemoryOffset, kService1Id)); + CreateQuery(kTarget, kClient1Id, shared_memory_id_, + kInvalidSharedMemoryOffset, kService1Id)); ASSERT_TRUE(query.get() != NULL); // Queue it @@ -470,8 +432,8 @@ TEST_F(QueryManagerTest, ExitWithPendingQuery) { // Create Query. scoped_refptr query( - CreateQuery(kTarget, kClient1Id, - kSharedMemoryId, kSharedMemoryOffset, kService1Id)); + CreateQuery(kTarget, kClient1Id, shared_memory_id_, kSharedMemoryOffset, + kService1Id)); ASSERT_TRUE(query.get() != NULL); // Queue it @@ -498,7 +460,7 @@ TEST_F(QueryManagerTest, ARBOcclusionQuery2) { .WillOnce(SetArgPointee<1>(kService1Id)) .RetiresOnSaturation(); QueryManager::Query* query = manager->CreateQuery( - kTarget, kClient1Id, kSharedMemoryId, kSharedMemoryOffset); + kTarget, kClient1Id, shared_memory_id_, kSharedMemoryOffset); ASSERT_TRUE(query != NULL); EXPECT_CALL(*gl_, BeginQuery(GL_ANY_SAMPLES_PASSED_EXT, kService1Id)) @@ -532,7 +494,7 @@ TEST_F(QueryManagerTest, ARBOcclusionQuery) { .WillOnce(SetArgPointee<1>(kService1Id)) .RetiresOnSaturation(); QueryManager::Query* query = manager->CreateQuery( - kTarget, kClient1Id, kSharedMemoryId, kSharedMemoryOffset); + kTarget, kClient1Id, shared_memory_id_, kSharedMemoryOffset); ASSERT_TRUE(query != NULL); EXPECT_CALL(*gl_, BeginQuery(GL_SAMPLES_PASSED_ARB, kService1Id)) @@ -565,7 +527,7 @@ TEST_F(QueryManagerTest, ARBOcclusionPauseResume) { .WillOnce(SetArgPointee<1>(kService1Id)) .RetiresOnSaturation(); QueryManager::Query* query = manager->CreateQuery( - kTarget, kClient1Id, kSharedMemoryId, kSharedMemoryOffset); + kTarget, kClient1Id, shared_memory_id_, kSharedMemoryOffset); ASSERT_TRUE(query != NULL); EXPECT_CALL(*gl_, BeginQuery(GL_SAMPLES_PASSED_ARB, kService1Id)) @@ -606,7 +568,7 @@ TEST_F(QueryManagerTest, ARBOcclusionPauseResume) { EXPECT_TRUE(query->IsFinished()); QuerySync* sync = decoder_->GetSharedMemoryAs( - kSharedMemoryId, kSharedMemoryOffset, sizeof(*sync)); + shared_memory_id_, kSharedMemoryOffset, sizeof(*sync)); EXPECT_EQ(1u, sync->result); // Make sure new query still works. @@ -648,7 +610,7 @@ TEST_F(QueryManagerTest, TimeElapsedQuery) { base::Bind(&gl::GPUTimingFake::GetFakeCPUTime)); QueryManager::Query* query = manager_->CreateQuery( - kTarget, kClient1Id, kSharedMemoryId, kSharedMemoryOffset); + kTarget, kClient1Id, shared_memory_id_, kSharedMemoryOffset); ASSERT_TRUE(query != NULL); fake_timing_queries.ExpectGPUTimerQuery(*gl_, true); @@ -663,7 +625,7 @@ TEST_F(QueryManagerTest, TimeElapsedQuery) { EXPECT_TRUE(query->IsFinished()); QuerySync* sync = decoder_->GetSharedMemoryAs( - kSharedMemoryId, kSharedMemoryOffset, sizeof(*sync)); + shared_memory_id_, kSharedMemoryOffset, sizeof(*sync)); const uint64_t expected_result = 100u * base::Time::kNanosecondsPerMicrosecond; EXPECT_EQ(expected_result, sync->result); @@ -680,7 +642,7 @@ TEST_F(QueryManagerTest, TimeElapsedPauseResume) { base::Bind(&gl::GPUTimingFake::GetFakeCPUTime)); QueryManager::Query* query = manager_->CreateQuery( - kTarget, kClient1Id, kSharedMemoryId, kSharedMemoryOffset); + kTarget, kClient1Id, shared_memory_id_, kSharedMemoryOffset); ASSERT_TRUE(query != NULL); fake_timing_queries.ExpectGPUTimerQuery(*gl_, true); @@ -705,7 +667,7 @@ TEST_F(QueryManagerTest, TimeElapsedPauseResume) { EXPECT_TRUE(query->IsFinished()); QuerySync* sync = decoder_->GetSharedMemoryAs( - kSharedMemoryId, kSharedMemoryOffset, sizeof(*sync)); + shared_memory_id_, kSharedMemoryOffset, sizeof(*sync)); const uint64_t expected_result = 300u * base::Time::kNanosecondsPerMicrosecond; EXPECT_EQ(expected_result, sync->result); @@ -736,10 +698,9 @@ TEST_F(QueryManagerManualSetupTest, TimeElapsedDisjoint) { SetUpMockGL("GL_EXT_disjoint_timer_query"); DisjointValueSync* disjoint_sync = - decoder_->GetSharedMemoryAs(kSharedMemory2Id, - kSharedMemory2Offset, - sizeof(*disjoint_sync)); - manager_->SetDisjointSync(kSharedMemory2Id, kSharedMemory2Offset); + decoder_->GetSharedMemoryAs( + shared_memory2_id_, kSharedMemory2Offset, sizeof(*disjoint_sync)); + manager_->SetDisjointSync(shared_memory2_id_, kSharedMemory2Offset); const uint32_t current_disjoint_value = disjoint_sync->GetDisjointCount(); ASSERT_EQ(0u, current_disjoint_value); @@ -749,7 +710,7 @@ TEST_F(QueryManagerManualSetupTest, TimeElapsedDisjoint) { const base::subtle::Atomic32 kSubmitCount = 123; QueryManager::Query* query = manager_->CreateQuery( - kTarget, kClient1Id, kSharedMemoryId, kSharedMemoryOffset); + kTarget, kClient1Id, shared_memory_id_, kSharedMemoryOffset); ASSERT_TRUE(query != NULL); // Disjoint happening before the query should not trigger a disjoint event. @@ -786,7 +747,7 @@ TEST_F(QueryManagerTest, TimeStampQuery) { base::Bind(&gl::GPUTimingFake::GetFakeCPUTime)); QueryManager::Query* query = manager_->CreateQuery( - kTarget, kClient1Id, kSharedMemoryId, kSharedMemoryOffset); + kTarget, kClient1Id, shared_memory_id_, kSharedMemoryOffset); ASSERT_TRUE(query != NULL); const uint64_t expected_result = @@ -797,7 +758,7 @@ TEST_F(QueryManagerTest, TimeStampQuery) { EXPECT_TRUE(manager_->ProcessPendingQueries(false)); QuerySync* sync = decoder_->GetSharedMemoryAs( - kSharedMemoryId, kSharedMemoryOffset, sizeof(*sync)); + shared_memory_id_, kSharedMemoryOffset, sizeof(*sync)); EXPECT_EQ(expected_result, sync->result); manager_->Destroy(false); @@ -813,7 +774,7 @@ TEST_F(QueryManagerTest, TimeStampQueryPending) { base::Bind(&gl::GPUTimingFake::GetFakeCPUTime)); QueryManager::Query* query = manager_->CreateQuery( - kTarget, kClient1Id, kSharedMemoryId, kSharedMemoryOffset); + kTarget, kClient1Id, shared_memory_id_, kSharedMemoryOffset); ASSERT_TRUE(query != NULL); const uint64_t expected_result = @@ -827,7 +788,7 @@ TEST_F(QueryManagerTest, TimeStampQueryPending) { EXPECT_TRUE(manager_->ProcessPendingQueries(false)); QuerySync* sync = decoder_->GetSharedMemoryAs( - kSharedMemoryId, kSharedMemoryOffset, sizeof(*sync)); + shared_memory_id_, kSharedMemoryOffset, sizeof(*sync)); EXPECT_EQ(expected_result, sync->result); manager_->Destroy(false); @@ -841,10 +802,9 @@ TEST_F(QueryManagerManualSetupTest, TimeStampDisjoint) { SetUpMockGL("GL_EXT_disjoint_timer_query"); DisjointValueSync* disjoint_sync = - decoder_->GetSharedMemoryAs(kSharedMemory2Id, - kSharedMemory2Offset, - sizeof(*disjoint_sync)); - manager_->SetDisjointSync(kSharedMemory2Id, kSharedMemory2Offset); + decoder_->GetSharedMemoryAs( + shared_memory2_id_, kSharedMemory2Offset, sizeof(*disjoint_sync)); + manager_->SetDisjointSync(shared_memory2_id_, kSharedMemory2Offset); const uint32_t current_disjoint_value = disjoint_sync->GetDisjointCount(); ASSERT_EQ(0u, current_disjoint_value); @@ -854,7 +814,7 @@ TEST_F(QueryManagerManualSetupTest, TimeStampDisjoint) { const base::subtle::Atomic32 kSubmitCount = 123; QueryManager::Query* query = manager_->CreateQuery( - kTarget, kClient1Id, kSharedMemoryId, kSharedMemoryOffset); + kTarget, kClient1Id, shared_memory_id_, kSharedMemoryOffset); ASSERT_TRUE(query != NULL); // Disjoint happening before the query should not trigger a disjoint event. @@ -887,10 +847,9 @@ TEST_F(QueryManagerManualSetupTest, DisjointContinualTest) { SetUpMockGL("GL_EXT_disjoint_timer_query"); DisjointValueSync* disjoint_sync = - decoder_->GetSharedMemoryAs(kSharedMemory2Id, - kSharedMemory2Offset, - sizeof(*disjoint_sync)); - manager_->SetDisjointSync(kSharedMemory2Id, kSharedMemory2Offset); + decoder_->GetSharedMemoryAs( + shared_memory2_id_, kSharedMemory2Offset, sizeof(*disjoint_sync)); + manager_->SetDisjointSync(shared_memory2_id_, kSharedMemory2Offset); const uint32_t current_disjoint_value = disjoint_sync->GetDisjointCount(); ASSERT_EQ(0u, current_disjoint_value); @@ -905,7 +864,7 @@ TEST_F(QueryManagerManualSetupTest, DisjointContinualTest) { const base::subtle::Atomic32 kSubmitCount = 123; QueryManager::Query* query = manager_->CreateQuery( - kTarget, kClient1Id, kSharedMemoryId, kSharedMemoryOffset); + kTarget, kClient1Id, shared_memory_id_, kSharedMemoryOffset); ASSERT_TRUE(query != NULL); fake_timing_queries.ExpectGPUTimeStampQuery(*gl_, false); @@ -932,12 +891,12 @@ TEST_F(QueryManagerTest, GetErrorQuery) { new QueryManager(decoder_.get(), feature_info.get())); QueryManager::Query* query = manager->CreateQuery( - kTarget, kClient1Id, kSharedMemoryId, kSharedMemoryOffset); + kTarget, kClient1Id, shared_memory_id_, kSharedMemoryOffset); ASSERT_TRUE(query != NULL); // Setup shared memory like client would. QuerySync* sync = decoder_->GetSharedMemoryAs( - kSharedMemoryId, kSharedMemoryOffset, sizeof(*sync)); + shared_memory_id_, kSharedMemoryOffset, sizeof(*sync)); ASSERT_TRUE(sync != NULL); sync->Reset(); @@ -976,7 +935,7 @@ TEST_F(QueryManagerTest, OcclusionQuery) { .WillOnce(SetArgPointee<1>(kService1Id)) .RetiresOnSaturation(); QueryManager::Query* query = manager->CreateQuery( - kTarget, kClient1Id, kSharedMemoryId, kSharedMemoryOffset); + kTarget, kClient1Id, shared_memory_id_, kSharedMemoryOffset); ASSERT_TRUE(query != NULL); EXPECT_CALL(*gl_, BeginQuery(GL_SAMPLES_PASSED_ARB, kService1Id)) diff --git a/gpu/command_buffer/tests/fuzzer_main.cc b/gpu/command_buffer/tests/fuzzer_main.cc index 30f72e5e818022..6b2aaecb8b1008 100644 --- a/gpu/command_buffer/tests/fuzzer_main.cc +++ b/gpu/command_buffer/tests/fuzzer_main.cc @@ -158,7 +158,7 @@ class CommandBufferSetup { decoder_.reset(gles2::GLES2Decoder::Create(context_group.get())); executor_.reset(new CommandExecutor(command_buffer_.get(), decoder_.get(), decoder_.get())); - decoder_->set_engine(executor_.get()); + decoder_->set_command_buffer_service(command_buffer_.get()); decoder_->SetFenceSyncReleaseCallback(base::Bind( &CommandBufferSetup::OnFenceSyncRelease, base::Unretained(this))); decoder_->SetWaitSyncTokenCallback(base::Bind( diff --git a/gpu/command_buffer/tests/gl_manager.cc b/gpu/command_buffer/tests/gl_manager.cc index 44d51b6be3aba6..fbe6b6200e1432 100644 --- a/gpu/command_buffer/tests/gl_manager.cc +++ b/gpu/command_buffer/tests/gl_manager.cc @@ -316,7 +316,7 @@ void GLManager::InitializeWithCommandLine( executor_.reset(new CommandExecutor(command_buffer_.get(), decoder_.get(), decoder_.get())); - decoder_->set_engine(executor_.get()); + decoder_->set_command_buffer_service(command_buffer_.get()); surface_ = gl::init::CreateOffscreenGLSurface(gfx::Size()); ASSERT_TRUE(surface_.get() != NULL) << "could not create offscreen surface"; diff --git a/gpu/gles2_conform_support/egl/context.cc b/gpu/gles2_conform_support/egl/context.cc index c815d8ab1060c8..d7fb1f3cbcf3b7 100644 --- a/gpu/gles2_conform_support/egl/context.cc +++ b/gpu/gles2_conform_support/egl/context.cc @@ -278,7 +278,7 @@ bool Context::CreateService(gl::GLSurface* gl_surface) { new gpu::CommandExecutor(command_buffer.get(), decoder.get(), decoder.get())); - decoder->set_engine(command_executor.get()); + decoder->set_command_buffer_service(command_buffer.get()); gl::GLContextAttribs context_attribs; context_attribs.gpu_preference = gl::PreferDiscreteGpu; diff --git a/gpu/ipc/in_process_command_buffer.cc b/gpu/ipc/in_process_command_buffer.cc index 73c720a673769f..4159e8170998ad 100644 --- a/gpu/ipc/in_process_command_buffer.cc +++ b/gpu/ipc/in_process_command_buffer.cc @@ -325,6 +325,7 @@ bool InProcessCommandBuffer::InitializeOnGpuThread( service_->discardable_manager()); decoder_.reset(gles2::GLES2Decoder::Create(context_group_.get())); + decoder_->set_command_buffer_service(command_buffer.get()); executor_.reset(new CommandExecutor(command_buffer.get(), decoder_.get(), decoder_.get())); @@ -332,7 +333,6 @@ bool InProcessCommandBuffer::InitializeOnGpuThread( &CommandExecutor::SetGetBuffer, base::Unretained(executor_.get()))); command_buffer_ = std::move(command_buffer); - decoder_->set_engine(executor_.get()); if (!surface_.get()) { if (params.is_offscreen) { diff --git a/gpu/ipc/in_process_command_buffer.h b/gpu/ipc/in_process_command_buffer.h index 166739dac6244a..ed7a3575b3941b 100644 --- a/gpu/ipc/in_process_command_buffer.h +++ b/gpu/ipc/in_process_command_buffer.h @@ -67,7 +67,6 @@ class ProgramCache; class ShaderTranslatorCache; } -class CommandBufferServiceBase; class GpuMemoryBufferManager; class CommandExecutor; class ImageFactory; @@ -317,7 +316,7 @@ class GPU_EXPORT InProcessCommandBuffer : public CommandBuffer, uint64_t flushed_fence_sync_release_; // Accessed on both threads: - std::unique_ptr command_buffer_; + std::unique_ptr command_buffer_; base::Lock command_buffer_lock_; base::WaitableEvent flush_event_; scoped_refptr service_; diff --git a/gpu/ipc/service/gpu_command_buffer_stub.cc b/gpu/ipc/service/gpu_command_buffer_stub.cc index a053895e465460..0e2bfd04eb1f20 100644 --- a/gpu/ipc/service/gpu_command_buffer_stub.cc +++ b/gpu/ipc/service/gpu_command_buffer_stub.cc @@ -525,7 +525,7 @@ void GpuCommandBufferStub::Destroy() { } if (decoder_) - decoder_->set_engine(NULL); + decoder_->set_command_buffer_service(nullptr); // The scheduler has raw references to the decoder and the command buffer so // destroy it before those. @@ -663,7 +663,7 @@ bool GpuCommandBufferStub::Initialize( base::Bind(&PreemptionFlag::IsSet, channel_->preempted_flag())); } - decoder_->set_engine(executor_.get()); + decoder_->set_command_buffer_service(command_buffer_.get()); if (offscreen) { // Do we want to create an offscreen rendering context suitable