| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |