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

Unified Diff: gpu/command_buffer/service/in_process_command_buffer.cc

Issue 271763002: Clean up SyncCompositorFactory context creation (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;
}

Powered by Google App Engine
This is Rietveld 408576698