| 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 // A class to emulate GLES2 over command buffers. | 5 // A class to emulate GLES2 over command buffers. |
| 6 | 6 |
| 7 #include "gpu/command_buffer/client/gles2_implementation.h" | 7 #include "gpu/command_buffer/client/gles2_implementation.h" |
| 8 | 8 |
| 9 #include <GLES2/gl2.h> | 9 #include <GLES2/gl2.h> |
| 10 #include <GLES2/gl2ext.h> | 10 #include <GLES2/gl2ext.h> |
| (...skipping 12 matching lines...) Expand all Loading... |
| 23 #include "base/trace_event/process_memory_dump.h" | 23 #include "base/trace_event/process_memory_dump.h" |
| 24 #include "gpu/command_buffer/client/buffer_tracker.h" | 24 #include "gpu/command_buffer/client/buffer_tracker.h" |
| 25 #include "gpu/command_buffer/client/gles2_cmd_helper.h" | 25 #include "gpu/command_buffer/client/gles2_cmd_helper.h" |
| 26 #include "gpu/command_buffer/client/gpu_control.h" | 26 #include "gpu/command_buffer/client/gpu_control.h" |
| 27 #include "gpu/command_buffer/client/program_info_manager.h" | 27 #include "gpu/command_buffer/client/program_info_manager.h" |
| 28 #include "gpu/command_buffer/client/query_tracker.h" | 28 #include "gpu/command_buffer/client/query_tracker.h" |
| 29 #include "gpu/command_buffer/client/transfer_buffer.h" | 29 #include "gpu/command_buffer/client/transfer_buffer.h" |
| 30 #include "gpu/command_buffer/client/vertex_array_object_manager.h" | 30 #include "gpu/command_buffer/client/vertex_array_object_manager.h" |
| 31 #include "gpu/command_buffer/common/gles2_cmd_utils.h" | 31 #include "gpu/command_buffer/common/gles2_cmd_utils.h" |
| 32 #include "gpu/command_buffer/common/id_allocator.h" | 32 #include "gpu/command_buffer/common/id_allocator.h" |
| 33 #include "gpu/command_buffer/common/sync_token.h" |
| 33 #include "gpu/command_buffer/common/trace_event.h" | 34 #include "gpu/command_buffer/common/trace_event.h" |
| 34 #include "ui/gfx/geometry/rect.h" | 35 #include "ui/gfx/geometry/rect.h" |
| 35 #include "ui/gfx/geometry/rect_f.h" | 36 #include "ui/gfx/geometry/rect_f.h" |
| 36 | 37 |
| 37 #if defined(GPU_CLIENT_DEBUG) | 38 #if defined(GPU_CLIENT_DEBUG) |
| 38 #include "base/command_line.h" | 39 #include "base/command_line.h" |
| 39 #include "gpu/command_buffer/client/gpu_switches.h" | 40 #include "gpu/command_buffer/client/gpu_switches.h" |
| 40 #endif | 41 #endif |
| 41 | 42 |
| 42 namespace gpu { | 43 namespace gpu { |
| (...skipping 5338 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5381 return; | 5382 return; |
| 5382 } else if (!gpu_control_->IsFenceSyncFlushed(fence_sync)) { | 5383 } else if (!gpu_control_->IsFenceSyncFlushed(fence_sync)) { |
| 5383 SetGLError(GL_INVALID_OPERATION, "glGenSyncTokenCHROMIUM", | 5384 SetGLError(GL_INVALID_OPERATION, "glGenSyncTokenCHROMIUM", |
| 5384 "fence sync must be flushed before generating sync token"); | 5385 "fence sync must be flushed before generating sync token"); |
| 5385 return; | 5386 return; |
| 5386 } | 5387 } |
| 5387 | 5388 |
| 5388 SyncToken* sync_token_data = reinterpret_cast<SyncToken*>(sync_token); | 5389 SyncToken* sync_token_data = reinterpret_cast<SyncToken*>(sync_token); |
| 5389 memset(sync_token_data, 0, sizeof(SyncToken)); | 5390 memset(sync_token_data, 0, sizeof(SyncToken)); |
| 5390 | 5391 |
| 5391 sync_token_data->namespace_id = gpu_control_->GetNamespaceID(); | 5392 sync_token_data->SetData(gpu_control_->GetNamespaceID(), |
| 5392 sync_token_data->command_buffer_id = gpu_control_->GetCommandBufferID(); | 5393 gpu_control_->GetCommandBufferID(), |
| 5393 sync_token_data->release_count = fence_sync; | 5394 fence_sync); |
| 5394 } | 5395 } |
| 5395 | 5396 |
| 5396 void GLES2Implementation::WaitSyncTokenCHROMIUM(const GLbyte* sync_token) { | 5397 void GLES2Implementation::WaitSyncTokenCHROMIUM(const GLbyte* sync_token) { |
| 5397 if (!sync_token) { | 5398 if (!sync_token) { |
| 5398 SetGLError(GL_INVALID_VALUE, "glWaitSyncTokenCHROMIUM", "empty sync_token"); | 5399 SetGLError(GL_INVALID_VALUE, "glWaitSyncTokenCHROMIUM", "empty sync_token"); |
| 5399 return; | 5400 return; |
| 5400 }; | 5401 }; |
| 5401 | 5402 |
| 5402 const SyncToken* sync_token_data = | 5403 const SyncToken* sync_token_data = |
| 5403 reinterpret_cast<const SyncToken*>(sync_token); | 5404 reinterpret_cast<const SyncToken*>(sync_token); |
| 5404 helper_->WaitSyncTokenCHROMIUM(sync_token_data->namespace_id, | 5405 helper_->WaitSyncTokenCHROMIUM(sync_token_data->GetNamespaceId(), |
| 5405 sync_token_data->command_buffer_id, | 5406 sync_token_data->GetCommandBufferId(), |
| 5406 sync_token_data->release_count); | 5407 sync_token_data->GetReleaseCount()); |
| 5407 } | 5408 } |
| 5408 | 5409 |
| 5409 namespace { | 5410 namespace { |
| 5410 | 5411 |
| 5411 bool ValidImageFormat(GLenum internalformat, | 5412 bool ValidImageFormat(GLenum internalformat, |
| 5412 const Capabilities& capabilities) { | 5413 const Capabilities& capabilities) { |
| 5413 switch (internalformat) { | 5414 switch (internalformat) { |
| 5414 case GL_ATC_RGB_AMD: | 5415 case GL_ATC_RGB_AMD: |
| 5415 case GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD: | 5416 case GL_ATC_RGBA_INTERPOLATED_ALPHA_AMD: |
| 5416 return capabilities.texture_format_atc; | 5417 return capabilities.texture_format_atc; |
| (...skipping 507 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 5924 CheckGLError(); | 5925 CheckGLError(); |
| 5925 } | 5926 } |
| 5926 | 5927 |
| 5927 // Include the auto-generated part of this file. We split this because it means | 5928 // Include the auto-generated part of this file. We split this because it means |
| 5928 // we can easily edit the non-auto generated parts right here in this file | 5929 // we can easily edit the non-auto generated parts right here in this file |
| 5929 // instead of having to edit some template or the code generator. | 5930 // instead of having to edit some template or the code generator. |
| 5930 #include "gpu/command_buffer/client/gles2_implementation_impl_autogen.h" | 5931 #include "gpu/command_buffer/client/gles2_implementation_impl_autogen.h" |
| 5931 | 5932 |
| 5932 } // namespace gles2 | 5933 } // namespace gles2 |
| 5933 } // namespace gpu | 5934 } // namespace gpu |
| OLD | NEW |