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