| 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 18 matching lines...) Expand all Loading... |
| 29 #include "build/build_config.h" | 29 #include "build/build_config.h" |
| 30 #include "gpu/command_buffer/common/debug_marker_manager.h" | 30 #include "gpu/command_buffer/common/debug_marker_manager.h" |
| 31 #include "gpu/command_buffer/common/gles2_cmd_format.h" | 31 #include "gpu/command_buffer/common/gles2_cmd_format.h" |
| 32 #include "gpu/command_buffer/common/gles2_cmd_utils.h" | 32 #include "gpu/command_buffer/common/gles2_cmd_utils.h" |
| 33 #include "gpu/command_buffer/common/mailbox.h" | 33 #include "gpu/command_buffer/common/mailbox.h" |
| 34 #include "gpu/command_buffer/service/buffer_manager.h" | 34 #include "gpu/command_buffer/service/buffer_manager.h" |
| 35 #include "gpu/command_buffer/service/context_group.h" | 35 #include "gpu/command_buffer/service/context_group.h" |
| 36 #include "gpu/command_buffer/service/context_state.h" | 36 #include "gpu/command_buffer/service/context_state.h" |
| 37 #include "gpu/command_buffer/service/error_state.h" | 37 #include "gpu/command_buffer/service/error_state.h" |
| 38 #include "gpu/command_buffer/service/feature_info.h" | 38 #include "gpu/command_buffer/service/feature_info.h" |
| 39 #include "gpu/command_buffer/service/fence_manager.h" |
| 39 #include "gpu/command_buffer/service/framebuffer_manager.h" | 40 #include "gpu/command_buffer/service/framebuffer_manager.h" |
| 40 #include "gpu/command_buffer/service/gl_stream_texture_image.h" | 41 #include "gpu/command_buffer/service/gl_stream_texture_image.h" |
| 41 #include "gpu/command_buffer/service/gl_utils.h" | 42 #include "gpu/command_buffer/service/gl_utils.h" |
| 42 #include "gpu/command_buffer/service/gles2_cmd_apply_framebuffer_attachment_cmaa
_intel.h" | 43 #include "gpu/command_buffer/service/gles2_cmd_apply_framebuffer_attachment_cmaa
_intel.h" |
| 43 #include "gpu/command_buffer/service/gles2_cmd_clear_framebuffer.h" | 44 #include "gpu/command_buffer/service/gles2_cmd_clear_framebuffer.h" |
| 44 #include "gpu/command_buffer/service/gles2_cmd_copy_tex_image.h" | 45 #include "gpu/command_buffer/service/gles2_cmd_copy_tex_image.h" |
| 45 #include "gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.h" | 46 #include "gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.h" |
| 46 #include "gpu/command_buffer/service/gles2_cmd_decoder_passthrough.h" | 47 #include "gpu/command_buffer/service/gles2_cmd_decoder_passthrough.h" |
| 47 #include "gpu/command_buffer/service/gles2_cmd_srgb_converter.h" | 48 #include "gpu/command_buffer/service/gles2_cmd_srgb_converter.h" |
| 48 #include "gpu/command_buffer/service/gles2_cmd_validation.h" | 49 #include "gpu/command_buffer/service/gles2_cmd_validation.h" |
| (...skipping 514 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 563 void RestoreAllAttributes() const override; | 564 void RestoreAllAttributes() const override; |
| 564 | 565 |
| 565 QueryManager* GetQueryManager() override { return query_manager_.get(); } | 566 QueryManager* GetQueryManager() override { return query_manager_.get(); } |
| 566 TransformFeedbackManager* GetTransformFeedbackManager() override { | 567 TransformFeedbackManager* GetTransformFeedbackManager() override { |
| 567 return transform_feedback_manager_.get(); | 568 return transform_feedback_manager_.get(); |
| 568 } | 569 } |
| 569 VertexArrayManager* GetVertexArrayManager() override { | 570 VertexArrayManager* GetVertexArrayManager() override { |
| 570 return vertex_array_manager_.get(); | 571 return vertex_array_manager_.get(); |
| 571 } | 572 } |
| 572 ImageManager* GetImageManager() override { return image_manager_.get(); } | 573 ImageManager* GetImageManager() override { return image_manager_.get(); } |
| 574 FenceManager* GetFenceManager() override { return fence_manager_.get(); } |
| 573 | 575 |
| 574 bool HasPendingQueries() const override; | 576 bool HasPendingQueries() const override; |
| 575 void ProcessPendingQueries(bool did_finish) override; | 577 void ProcessPendingQueries(bool did_finish) override; |
| 576 | 578 |
| 577 bool HasMoreIdleWork() const override; | 579 bool HasMoreIdleWork() const override; |
| 578 void PerformIdleWork() override; | 580 void PerformIdleWork() override; |
| 579 | 581 |
| 580 bool HasPollingWork() const override; | 582 bool HasPollingWork() const override; |
| 581 void PerformPollingWork() override; | 583 void PerformPollingWork() override; |
| 582 | 584 |
| (...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 747 TextureManager* texture_manager() { | 749 TextureManager* texture_manager() { |
| 748 return group_->texture_manager(); | 750 return group_->texture_manager(); |
| 749 } | 751 } |
| 750 | 752 |
| 751 MailboxManager* mailbox_manager() { | 753 MailboxManager* mailbox_manager() { |
| 752 return group_->mailbox_manager(); | 754 return group_->mailbox_manager(); |
| 753 } | 755 } |
| 754 | 756 |
| 755 ImageManager* image_manager() { return image_manager_.get(); } | 757 ImageManager* image_manager() { return image_manager_.get(); } |
| 756 | 758 |
| 759 FenceManager* fence_manager() { return fence_manager_.get(); } |
| 760 |
| 757 VertexArrayManager* vertex_array_manager() { | 761 VertexArrayManager* vertex_array_manager() { |
| 758 return vertex_array_manager_.get(); | 762 return vertex_array_manager_.get(); |
| 759 } | 763 } |
| 760 | 764 |
| 761 MemoryTracker* memory_tracker() { | 765 MemoryTracker* memory_tracker() { |
| 762 return group_->memory_tracker(); | 766 return group_->memory_tracker(); |
| 763 } | 767 } |
| 764 | 768 |
| 765 const gl::GLVersionInfo& gl_version_info() { | 769 const gl::GLVersionInfo& gl_version_info() { |
| 766 return feature_info_->gl_version_info(); | 770 return feature_info_->gl_version_info(); |
| (...skipping 1459 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2226 | 2230 |
| 2227 // Whether the client requested an offscreen buffer with an alpha channel. | 2231 // Whether the client requested an offscreen buffer with an alpha channel. |
| 2228 bool offscreen_buffer_should_have_alpha_; | 2232 bool offscreen_buffer_should_have_alpha_; |
| 2229 | 2233 |
| 2230 std::unique_ptr<QueryManager> query_manager_; | 2234 std::unique_ptr<QueryManager> query_manager_; |
| 2231 | 2235 |
| 2232 std::unique_ptr<VertexArrayManager> vertex_array_manager_; | 2236 std::unique_ptr<VertexArrayManager> vertex_array_manager_; |
| 2233 | 2237 |
| 2234 std::unique_ptr<ImageManager> image_manager_; | 2238 std::unique_ptr<ImageManager> image_manager_; |
| 2235 | 2239 |
| 2240 std::unique_ptr<FenceManager> fence_manager_; |
| 2241 |
| 2236 FenceSyncReleaseCallback fence_sync_release_callback_; | 2242 FenceSyncReleaseCallback fence_sync_release_callback_; |
| 2237 WaitFenceSyncCallback wait_fence_sync_callback_; | 2243 WaitFenceSyncCallback wait_fence_sync_callback_; |
| 2238 NoParamCallback deschedule_until_finished_callback_; | 2244 NoParamCallback deschedule_until_finished_callback_; |
| 2239 NoParamCallback reschedule_after_finished_callback_; | 2245 NoParamCallback reschedule_after_finished_callback_; |
| 2240 | 2246 |
| 2241 ShaderCacheCallback shader_cache_callback_; | 2247 ShaderCacheCallback shader_cache_callback_; |
| 2242 | 2248 |
| 2243 // The format of the back buffer_ | 2249 // The format of the back buffer_ |
| 2244 GLenum back_buffer_color_format_; | 2250 GLenum back_buffer_color_format_; |
| 2245 bool back_buffer_has_depth_; | 2251 bool back_buffer_has_depth_; |
| (...skipping 886 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3132 group_->max_vertex_attribs(), | 3138 group_->max_vertex_attribs(), |
| 3133 workarounds().init_vertex_attributes); | 3139 workarounds().init_vertex_attributes); |
| 3134 | 3140 |
| 3135 // vertex_attrib_manager is set to default_vertex_attrib_manager by this call | 3141 // vertex_attrib_manager is set to default_vertex_attrib_manager by this call |
| 3136 DoBindVertexArrayOES(0); | 3142 DoBindVertexArrayOES(0); |
| 3137 | 3143 |
| 3138 query_manager_.reset(new QueryManager(this, feature_info_.get())); | 3144 query_manager_.reset(new QueryManager(this, feature_info_.get())); |
| 3139 | 3145 |
| 3140 image_manager_.reset(new ImageManager); | 3146 image_manager_.reset(new ImageManager); |
| 3141 | 3147 |
| 3148 fence_manager_.reset(new FenceManager); |
| 3149 |
| 3142 util_.set_num_compressed_texture_formats( | 3150 util_.set_num_compressed_texture_formats( |
| 3143 validators_->compressed_texture_format.GetValues().size()); | 3151 validators_->compressed_texture_format.GetValues().size()); |
| 3144 | 3152 |
| 3145 if (!gl_version_info().BehavesLikeGLES()) { | 3153 if (!gl_version_info().BehavesLikeGLES()) { |
| 3146 // We have to enable vertex array 0 on GL with compatibility profile or it | 3154 // We have to enable vertex array 0 on GL with compatibility profile or it |
| 3147 // won't render. Note that ES or GL with core profile does not have this | 3155 // won't render. Note that ES or GL with core profile does not have this |
| 3148 // issue. | 3156 // issue. |
| 3149 glEnableVertexAttribArray(0); | 3157 glEnableVertexAttribArray(0); |
| 3150 } | 3158 } |
| 3151 glGenBuffersARB(1, &attrib_0_buffer_id_); | 3159 glGenBuffersARB(1, &attrib_0_buffer_id_); |
| (...skipping 1601 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4753 if (transform_feedback_manager_.get()) { | 4761 if (transform_feedback_manager_.get()) { |
| 4754 if (!have_context) { | 4762 if (!have_context) { |
| 4755 transform_feedback_manager_->MarkContextLost(); | 4763 transform_feedback_manager_->MarkContextLost(); |
| 4756 } | 4764 } |
| 4757 transform_feedback_manager_->Destroy(); | 4765 transform_feedback_manager_->Destroy(); |
| 4758 transform_feedback_manager_.reset(); | 4766 transform_feedback_manager_.reset(); |
| 4759 } | 4767 } |
| 4760 | 4768 |
| 4761 image_manager_.reset(); | 4769 image_manager_.reset(); |
| 4762 | 4770 |
| 4771 if (fence_manager_.get()) { |
| 4772 fence_manager_->Destroy(have_context); |
| 4773 fence_manager_.reset(); |
| 4774 } |
| 4775 |
| 4763 offscreen_target_frame_buffer_.reset(); | 4776 offscreen_target_frame_buffer_.reset(); |
| 4764 offscreen_target_color_texture_.reset(); | 4777 offscreen_target_color_texture_.reset(); |
| 4765 offscreen_target_color_render_buffer_.reset(); | 4778 offscreen_target_color_render_buffer_.reset(); |
| 4766 offscreen_target_depth_render_buffer_.reset(); | 4779 offscreen_target_depth_render_buffer_.reset(); |
| 4767 offscreen_target_stencil_render_buffer_.reset(); | 4780 offscreen_target_stencil_render_buffer_.reset(); |
| 4768 offscreen_saved_frame_buffer_.reset(); | 4781 offscreen_saved_frame_buffer_.reset(); |
| 4769 offscreen_saved_color_texture_.reset(); | 4782 offscreen_saved_color_texture_.reset(); |
| 4770 offscreen_resolved_frame_buffer_.reset(); | 4783 offscreen_resolved_frame_buffer_.reset(); |
| 4771 offscreen_resolved_color_texture_.reset(); | 4784 offscreen_resolved_color_texture_.reset(); |
| 4772 | 4785 |
| (...skipping 14072 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 18845 } | 18858 } |
| 18846 | 18859 |
| 18847 // Include the auto-generated part of this file. We split this because it means | 18860 // Include the auto-generated part of this file. We split this because it means |
| 18848 // we can easily edit the non-auto generated parts right here in this file | 18861 // we can easily edit the non-auto generated parts right here in this file |
| 18849 // instead of having to edit some template or the code generator. | 18862 // instead of having to edit some template or the code generator. |
| 18850 #include "base/macros.h" | 18863 #include "base/macros.h" |
| 18851 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h" | 18864 #include "gpu/command_buffer/service/gles2_cmd_decoder_autogen.h" |
| 18852 | 18865 |
| 18853 } // namespace gles2 | 18866 } // namespace gles2 |
| 18854 } // namespace gpu | 18867 } // namespace gpu |
| OLD | NEW |