| Index: gpu/command_buffer/service/in_process_command_buffer.cc
|
| diff --git a/gpu/command_buffer/service/in_process_command_buffer.cc b/gpu/command_buffer/service/in_process_command_buffer.cc
|
| index 20766db4b28b428b9ecff4cf77d2a0838ac3d49b..3799746a5c98f772f8d58ab3110a9ec6c2c19f97 100644
|
| --- a/gpu/command_buffer/service/in_process_command_buffer.cc
|
| +++ b/gpu/command_buffer/service/in_process_command_buffer.cc
|
| @@ -224,13 +224,11 @@ InProcessCommandBuffer::~InProcessCommandBuffer() {
|
| }
|
|
|
| void InProcessCommandBuffer::OnResizeView(gfx::Size size, float scale_factor) {
|
| - CheckSequencedThread();
|
| DCHECK(!surface_->IsOffscreen());
|
| surface_->Resize(size);
|
| }
|
|
|
| bool InProcessCommandBuffer::MakeCurrent() {
|
| - CheckSequencedThread();
|
| command_buffer_lock_.AssertAcquired();
|
|
|
| if (!context_lost_ && decoder_->MakeCurrent())
|
| @@ -242,7 +240,6 @@ bool InProcessCommandBuffer::MakeCurrent() {
|
| }
|
|
|
| void InProcessCommandBuffer::PumpCommands() {
|
| - CheckSequencedThread();
|
| command_buffer_lock_.AssertAcquired();
|
|
|
| if (!MakeCurrent())
|
| @@ -252,14 +249,13 @@ void InProcessCommandBuffer::PumpCommands() {
|
| }
|
|
|
| bool InProcessCommandBuffer::GetBufferChanged(int32 transfer_buffer_id) {
|
| - CheckSequencedThread();
|
| command_buffer_lock_.AssertAcquired();
|
| command_buffer_->SetGetBuffer(transfer_buffer_id);
|
| return true;
|
| }
|
|
|
| bool InProcessCommandBuffer::Initialize(
|
| - scoped_refptr<gfx::GLSurface> surface,
|
| + gfx::GLSurface* surface,
|
| bool is_offscreen,
|
| gfx::AcceleratedWidget window,
|
| const gfx::Size& size,
|
| @@ -270,15 +266,9 @@ bool InProcessCommandBuffer::Initialize(
|
| DCHECK(!share_group || service_ == share_group->service_);
|
| context_lost_callback_ = WrapCallback(context_lost_callback);
|
|
|
| - if (surface) {
|
| - // GPU thread must be the same as client thread due to GLSurface not being
|
| - // thread safe.
|
| - sequence_checker_.reset(new base::SequenceChecker);
|
| - surface_ = surface;
|
| - }
|
| -
|
| gpu::Capabilities capabilities;
|
| - InitializeOnGpuThreadParams params(is_offscreen,
|
| + InitializeOnGpuThreadParams params(surface,
|
| + is_offscreen,
|
| window,
|
| size,
|
| attribs,
|
| @@ -307,11 +297,12 @@ bool InProcessCommandBuffer::Initialize(
|
|
|
| bool InProcessCommandBuffer::InitializeOnGpuThread(
|
| const InitializeOnGpuThreadParams& params) {
|
| - CheckSequencedThread();
|
| gpu_thread_weak_ptr_ = gpu_thread_weak_ptr_factory_.GetWeakPtr();
|
|
|
| DCHECK(params.size.width() >= 0 && params.size.height() >= 0);
|
|
|
| + surface_ = params.surface;
|
| +
|
| TransferBufferManager* manager = new TransferBufferManager();
|
| transfer_buffer_manager_.reset(manager);
|
| manager->Initialize();
|
| @@ -429,8 +420,6 @@ bool InProcessCommandBuffer::InitializeOnGpuThread(
|
| }
|
|
|
| void InProcessCommandBuffer::Destroy() {
|
| - CheckSequencedThread();
|
| -
|
| base::WaitableEvent completion(true, false);
|
| bool result = false;
|
| base::Callback<bool(void)> destroy_task = base::Bind(
|
| @@ -441,7 +430,6 @@ void InProcessCommandBuffer::Destroy() {
|
| }
|
|
|
| bool InProcessCommandBuffer::DestroyOnGpuThread() {
|
| - CheckSequencedThread();
|
| gpu_thread_weak_ptr_factory_.InvalidateWeakPtrs();
|
| command_buffer_.reset();
|
| // Clean up GL resources if possible.
|
| @@ -460,13 +448,7 @@ bool InProcessCommandBuffer::DestroyOnGpuThread() {
|
| return true;
|
| }
|
|
|
| -void InProcessCommandBuffer::CheckSequencedThread() {
|
| - DCHECK(!sequence_checker_ ||
|
| - sequence_checker_->CalledOnValidSequencedThread());
|
| -}
|
| -
|
| void InProcessCommandBuffer::OnContextLost() {
|
| - CheckSequencedThread();
|
| if (!context_lost_callback_.is_null()) {
|
| context_lost_callback_.Run();
|
| context_lost_callback_.Reset();
|
| @@ -476,7 +458,6 @@ void InProcessCommandBuffer::OnContextLost() {
|
| }
|
|
|
| CommandBuffer::State InProcessCommandBuffer::GetStateFast() {
|
| - CheckSequencedThread();
|
| base::AutoLock lock(state_after_last_flush_lock_);
|
| if (state_after_last_flush_.generation - last_state_.generation < 0x80000000U)
|
| last_state_ = state_after_last_flush_;
|
| @@ -484,18 +465,15 @@ CommandBuffer::State InProcessCommandBuffer::GetStateFast() {
|
| }
|
|
|
| CommandBuffer::State InProcessCommandBuffer::GetLastState() {
|
| - CheckSequencedThread();
|
| return last_state_;
|
| }
|
|
|
| int32 InProcessCommandBuffer::GetLastToken() {
|
| - CheckSequencedThread();
|
| GetStateFast();
|
| return last_state_.token;
|
| }
|
|
|
| void InProcessCommandBuffer::FlushOnGpuThread(int32 put_offset) {
|
| - CheckSequencedThread();
|
| ScopedEvent handle_flush(&flush_event_);
|
| base::AutoLock lock(command_buffer_lock_);
|
| command_buffer_->Flush(put_offset);
|
| @@ -518,7 +496,6 @@ void InProcessCommandBuffer::FlushOnGpuThread(int32 put_offset) {
|
| }
|
|
|
| void InProcessCommandBuffer::ScheduleMoreIdleWork() {
|
| - CheckSequencedThread();
|
| base::AutoLock lock(command_buffer_lock_);
|
| if (gpu_scheduler_->HasMoreWork()) {
|
| gpu_scheduler_->PerformIdleWork();
|
| @@ -529,7 +506,6 @@ void InProcessCommandBuffer::ScheduleMoreIdleWork() {
|
| }
|
|
|
| void InProcessCommandBuffer::Flush(int32 put_offset) {
|
| - CheckSequencedThread();
|
| if (last_state_.error != gpu::error::kNoError)
|
| return;
|
|
|
| @@ -544,15 +520,12 @@ void InProcessCommandBuffer::Flush(int32 put_offset) {
|
| }
|
|
|
| void InProcessCommandBuffer::WaitForTokenInRange(int32 start, int32 end) {
|
| - CheckSequencedThread();
|
| while (!InRange(start, end, GetLastToken()) &&
|
| last_state_.error == gpu::error::kNoError)
|
| flush_event_.Wait();
|
| }
|
|
|
| void InProcessCommandBuffer::WaitForGetOffsetInRange(int32 start, int32 end) {
|
| - CheckSequencedThread();
|
| -
|
| GetStateFast();
|
| while (!InRange(start, end, last_state_.get_offset) &&
|
| last_state_.error == gpu::error::kNoError) {
|
| @@ -562,7 +535,6 @@ void InProcessCommandBuffer::WaitForGetOffsetInRange(int32 start, int32 end) {
|
| }
|
|
|
| void InProcessCommandBuffer::SetGetBuffer(int32 shm_id) {
|
| - CheckSequencedThread();
|
| if (last_state_.error != gpu::error::kNoError)
|
| return;
|
|
|
| @@ -579,13 +551,11 @@ void InProcessCommandBuffer::SetGetBuffer(int32 shm_id) {
|
|
|
| scoped_refptr<Buffer> InProcessCommandBuffer::CreateTransferBuffer(size_t size,
|
| int32* id) {
|
| - CheckSequencedThread();
|
| base::AutoLock lock(command_buffer_lock_);
|
| return command_buffer_->CreateTransferBuffer(size, id);
|
| }
|
|
|
| void InProcessCommandBuffer::DestroyTransferBuffer(int32 id) {
|
| - CheckSequencedThread();
|
| base::Closure task =
|
| base::Bind(&InProcessCommandBuffer::DestroyTransferBufferOnGputhread,
|
| base::Unretained(this),
|
| @@ -609,7 +579,6 @@ gfx::GpuMemoryBuffer* InProcessCommandBuffer::CreateGpuMemoryBuffer(
|
| unsigned internalformat,
|
| unsigned usage,
|
| int32* id) {
|
| - CheckSequencedThread();
|
|
|
| *id = -1;
|
| linked_ptr<gfx::GpuMemoryBuffer> buffer =
|
| @@ -636,7 +605,6 @@ gfx::GpuMemoryBuffer* InProcessCommandBuffer::CreateGpuMemoryBuffer(
|
| }
|
|
|
| void InProcessCommandBuffer::DestroyGpuMemoryBuffer(int32 id) {
|
| - CheckSequencedThread();
|
| GpuMemoryBufferMap::iterator it = gpu_memory_buffers_.find(id);
|
| if (it != gpu_memory_buffers_.end())
|
| gpu_memory_buffers_.erase(it);
|
| @@ -665,7 +633,6 @@ void InProcessCommandBuffer::RetireSyncPointOnGpuThread(uint32 sync_point) {
|
|
|
| void InProcessCommandBuffer::SignalSyncPoint(unsigned sync_point,
|
| const base::Closure& callback) {
|
| - CheckSequencedThread();
|
| QueueTask(base::Bind(&InProcessCommandBuffer::SignalSyncPointOnGpuThread,
|
| base::Unretained(this),
|
| sync_point,
|
| @@ -688,7 +655,6 @@ void InProcessCommandBuffer::SignalSyncPointOnGpuThread(
|
|
|
| void InProcessCommandBuffer::SignalQuery(unsigned query,
|
| const base::Closure& callback) {
|
| - CheckSequencedThread();
|
| QueueTask(base::Bind(&GpuControlService::SignalQuery,
|
| base::Unretained(gpu_control_.get()),
|
| query,
|
| @@ -729,7 +695,6 @@ uint32 InProcessCommandBuffer::CreateStreamTextureOnGpuThread(
|
| }
|
|
|
| gpu::error::Error InProcessCommandBuffer::GetLastError() {
|
| - CheckSequencedThread();
|
| return last_state_.error;
|
| }
|
|
|
|
|