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