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

Side by Side Diff: gpu/command_buffer/service/gles2_cmd_decoder.cc

Issue 2056413003: Fix a bug in the implementation of DescheduleUntilFinishedCHROMIUM. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: compile error on windows. Created 4 years, 6 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "gpu/command_buffer/service/gles2_cmd_decoder.h" 5 #include "gpu/command_buffer/service/gles2_cmd_decoder.h"
6 6
7 #include <limits.h> 7 #include <limits.h>
8 #include <stddef.h> 8 #include <stddef.h>
9 #include <stdint.h> 9 #include <stdint.h>
10 #include <stdio.h> 10 #include <stdio.h>
(...skipping 605 matching lines...) Expand 10 before | Expand all | Expand 10 after
616 return vertex_array_manager_.get(); 616 return vertex_array_manager_.get();
617 } 617 }
618 ImageManager* GetImageManager() override { return image_manager_.get(); } 618 ImageManager* GetImageManager() override { return image_manager_.get(); }
619 619
620 bool HasPendingQueries() const override; 620 bool HasPendingQueries() const override;
621 void ProcessPendingQueries(bool did_finish) override; 621 void ProcessPendingQueries(bool did_finish) override;
622 622
623 bool HasMoreIdleWork() const override; 623 bool HasMoreIdleWork() const override;
624 void PerformIdleWork() override; 624 void PerformIdleWork() override;
625 625
626 bool HasPollingWork() const override;
627 void PerformPollingWork() override;
628
626 void WaitForReadPixels(base::Closure callback) override; 629 void WaitForReadPixels(base::Closure callback) override;
627 630
628 Logger* GetLogger() override; 631 Logger* GetLogger() override;
629 632
630 void BeginDecoding() override; 633 void BeginDecoding() override;
631 void EndDecoding() override; 634 void EndDecoding() override;
632 635
633 ErrorState* GetErrorState() override; 636 ErrorState* GetErrorState() override;
634 const ContextState* GetContextState() override { return &state_; } 637 const ContextState* GetContextState() override { return &state_; }
635 638
(...skipping 13402 matching lines...) Expand 10 before | Expand all | Expand 10 after
14038 if (!deschedule_until_finished_fence_->HasCompleted()) 14041 if (!deschedule_until_finished_fence_->HasCompleted())
14039 return; 14042 return;
14040 14043
14041 TRACE_EVENT_ASYNC_END0("cc", "GLES2DecoderImpl::DescheduleUntilFinished", 14044 TRACE_EVENT_ASYNC_END0("cc", "GLES2DecoderImpl::DescheduleUntilFinished",
14042 this); 14045 this);
14043 deschedule_until_finished_fence_.reset(); 14046 deschedule_until_finished_fence_.reset();
14044 reschedule_after_finished_callback_.Run(); 14047 reschedule_after_finished_callback_.Run();
14045 } 14048 }
14046 14049
14047 bool GLES2DecoderImpl::HasMoreIdleWork() const { 14050 bool GLES2DecoderImpl::HasMoreIdleWork() const {
14048 return deschedule_until_finished_fence_ || 14051 return !pending_readpixel_fences_.empty() ||
14049 !pending_readpixel_fences_.empty() ||
14050 gpu_tracer_->HasTracesToProcess(); 14052 gpu_tracer_->HasTracesToProcess();
14051 } 14053 }
14052 14054
14053 void GLES2DecoderImpl::PerformIdleWork() { 14055 void GLES2DecoderImpl::PerformIdleWork() {
14054 gpu_tracer_->ProcessTraces(); 14056 gpu_tracer_->ProcessTraces();
14055 ProcessPendingReadPixels(false); 14057 ProcessPendingReadPixels(false);
14058 }
14059
14060 bool GLES2DecoderImpl::HasPollingWork() const {
14061 return !!deschedule_until_finished_fence_.get();
14062 }
14063
14064 void GLES2DecoderImpl::PerformPollingWork() {
14056 ProcessDescheduleUntilFinished(); 14065 ProcessDescheduleUntilFinished();
14057 } 14066 }
14058 14067
14059 error::Error GLES2DecoderImpl::HandleBeginQueryEXT(uint32_t immediate_data_size, 14068 error::Error GLES2DecoderImpl::HandleBeginQueryEXT(uint32_t immediate_data_size,
14060 const void* cmd_data) { 14069 const void* cmd_data) {
14061 const gles2::cmds::BeginQueryEXT& c = 14070 const gles2::cmds::BeginQueryEXT& c =
14062 *static_cast<const gles2::cmds::BeginQueryEXT*>(cmd_data); 14071 *static_cast<const gles2::cmds::BeginQueryEXT*>(cmd_data);
14063 GLenum target = static_cast<GLenum>(c.target); 14072 GLenum target = static_cast<GLenum>(c.target);
14064 GLuint client_id = static_cast<GLuint>(c.id); 14073 GLuint client_id = static_cast<GLuint>(c.id);
14065 int32_t sync_shm_id = static_cast<int32_t>(c.sync_data_shm_id); 14074 int32_t sync_shm_id = static_cast<int32_t>(c.sync_data_shm_id);
(...skipping 2951 matching lines...) Expand 10 before | Expand all | Expand 10 after
17017 } 17026 }
17018 17027
17019 // Include the auto-generated part of this file. We split this because it means 17028 // Include the auto-generated part of this file. We split this because it means
17020 // we can easily edit the non-auto generated parts right here in this file 17029 // we can easily edit the non-auto generated parts right here in this file
17021 // instead of having to edit some template or the code generator. 17030 // instead of having to edit some template or the code generator.
17022 #include "base/macros.h" 17031 #include "base/macros.h"
17023 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h" 17032 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h"
17024 17033
17025 } // namespace gles2 17034 } // namespace gles2
17026 } // namespace gpu 17035 } // namespace gpu
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/gles2_cmd_decoder.h ('k') | gpu/command_buffer/service/gles2_cmd_decoder_mock.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698