| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/in_process_command_buffer.h" | 5 #include "gpu/command_buffer/service/in_process_command_buffer.h" |
| 6 | 6 |
| 7 #include <queue> | 7 #include <queue> |
| 8 #include <set> | 8 #include <set> |
| 9 #include <utility> | 9 #include <utility> |
| 10 | 10 |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 47 | 47 |
| 48 #if defined(OS_WIN) | 48 #if defined(OS_WIN) |
| 49 #include <windows.h> | 49 #include <windows.h> |
| 50 #include "base/process/process_handle.h" | 50 #include "base/process/process_handle.h" |
| 51 #endif | 51 #endif |
| 52 | 52 |
| 53 namespace gpu { | 53 namespace gpu { |
| 54 | 54 |
| 55 namespace { | 55 namespace { |
| 56 | 56 |
| 57 base::StaticAtomicSequenceNumber g_next_command_buffer_id; |
| 58 |
| 57 template <typename T> | 59 template <typename T> |
| 58 static void RunTaskWithResult(base::Callback<T(void)> task, | 60 static void RunTaskWithResult(base::Callback<T(void)> task, |
| 59 T* result, | 61 T* result, |
| 60 base::WaitableEvent* completion) { | 62 base::WaitableEvent* completion) { |
| 61 *result = task.Run(); | 63 *result = task.Run(); |
| 62 completion->Signal(); | 64 completion->Signal(); |
| 63 } | 65 } |
| 64 | 66 |
| 65 struct GpuInProcessThreadHolder { | 67 struct GpuInProcessThreadHolder { |
| 66 GpuInProcessThreadHolder() | 68 GpuInProcessThreadHolder() |
| (...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 167 gfx::g_driver_gl.ext.b_GL_OES_get_program_binary) && | 169 gfx::g_driver_gl.ext.b_GL_OES_get_program_binary) && |
| 168 !base::CommandLine::ForCurrentProcess()->HasSwitch( | 170 !base::CommandLine::ForCurrentProcess()->HasSwitch( |
| 169 switches::kDisableGpuProgramCache)) { | 171 switches::kDisableGpuProgramCache)) { |
| 170 program_cache_.reset(new gpu::gles2::MemoryProgramCache()); | 172 program_cache_.reset(new gpu::gles2::MemoryProgramCache()); |
| 171 } | 173 } |
| 172 return program_cache_.get(); | 174 return program_cache_.get(); |
| 173 } | 175 } |
| 174 | 176 |
| 175 InProcessCommandBuffer::InProcessCommandBuffer( | 177 InProcessCommandBuffer::InProcessCommandBuffer( |
| 176 const scoped_refptr<Service>& service) | 178 const scoped_refptr<Service>& service) |
| 177 : context_lost_(false), | 179 : command_buffer_id_(g_next_command_buffer_id.GetNext()), |
| 180 context_lost_(false), |
| 178 delayed_work_pending_(false), | 181 delayed_work_pending_(false), |
| 179 image_factory_(nullptr), | 182 image_factory_(nullptr), |
| 180 last_put_offset_(-1), | 183 last_put_offset_(-1), |
| 181 gpu_memory_buffer_manager_(nullptr), | 184 gpu_memory_buffer_manager_(nullptr), |
| 182 flush_event_(false, false), | 185 flush_event_(false, false), |
| 183 service_(GetInitialService(service)), | 186 service_(GetInitialService(service)), |
| 184 gpu_thread_weak_ptr_factory_(this) { | 187 gpu_thread_weak_ptr_factory_(this) { |
| 185 DCHECK(service_.get()); | 188 DCHECK(service_.get()); |
| 186 next_image_id_.GetNext(); | 189 next_image_id_.GetNext(); |
| 187 } | 190 } |
| (...skipping 654 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 842 | 845 |
| 843 void InProcessCommandBuffer::SetLock(base::Lock*) { | 846 void InProcessCommandBuffer::SetLock(base::Lock*) { |
| 844 } | 847 } |
| 845 | 848 |
| 846 bool InProcessCommandBuffer::IsGpuChannelLost() { | 849 bool InProcessCommandBuffer::IsGpuChannelLost() { |
| 847 // There is no such channel to lose for in-process contexts. This only | 850 // There is no such channel to lose for in-process contexts. This only |
| 848 // makes sense for out-of-process command buffers. | 851 // makes sense for out-of-process command buffers. |
| 849 return false; | 852 return false; |
| 850 } | 853 } |
| 851 | 854 |
| 855 CommandBufferNamespace InProcessCommandBuffer::GetNamespaceID() const { |
| 856 return CommandBufferNamespace::IN_PROCESS; |
| 857 } |
| 858 |
| 859 uint64_t InProcessCommandBuffer::GetCommandBufferID() const { |
| 860 return command_buffer_id_; |
| 861 } |
| 862 |
| 852 uint32 InProcessCommandBuffer::CreateStreamTextureOnGpuThread( | 863 uint32 InProcessCommandBuffer::CreateStreamTextureOnGpuThread( |
| 853 uint32 client_texture_id) { | 864 uint32 client_texture_id) { |
| 854 #if defined(OS_ANDROID) | 865 #if defined(OS_ANDROID) |
| 855 return stream_texture_manager_->CreateStreamTexture( | 866 return stream_texture_manager_->CreateStreamTexture( |
| 856 client_texture_id, decoder_->GetContextGroup()->texture_manager()); | 867 client_texture_id, decoder_->GetContextGroup()->texture_manager()); |
| 857 #else | 868 #else |
| 858 return 0; | 869 return 0; |
| 859 #endif | 870 #endif |
| 860 } | 871 } |
| 861 | 872 |
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 956 framebuffer_completeness_cache_ = | 967 framebuffer_completeness_cache_ = |
| 957 new gpu::gles2::FramebufferCompletenessCache; | 968 new gpu::gles2::FramebufferCompletenessCache; |
| 958 return framebuffer_completeness_cache_; | 969 return framebuffer_completeness_cache_; |
| 959 } | 970 } |
| 960 | 971 |
| 961 SyncPointManager* GpuInProcessThread::sync_point_manager() { | 972 SyncPointManager* GpuInProcessThread::sync_point_manager() { |
| 962 return sync_point_manager_; | 973 return sync_point_manager_; |
| 963 } | 974 } |
| 964 | 975 |
| 965 } // namespace gpu | 976 } // namespace gpu |
| OLD | NEW |