| 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/tests/gl_manager.h" | 5 #include "gpu/command_buffer/tests/gl_manager.h" |
| 6 | 6 |
| 7 #include <GLES2/gl2.h> | 7 #include <GLES2/gl2.h> |
| 8 #include <GLES2/gl2ext.h> | 8 #include <GLES2/gl2ext.h> |
| 9 #include <GLES2/gl2extchromium.h> | 9 #include <GLES2/gl2extchromium.h> |
| 10 #include <stddef.h> |
| 11 #include <stdint.h> |
| 10 | 12 |
| 11 #include <vector> | 13 #include <vector> |
| 12 | 14 |
| 13 #include "base/at_exit.h" | 15 #include "base/at_exit.h" |
| 14 #include "base/bind.h" | 16 #include "base/bind.h" |
| 15 #include "base/memory/ref_counted_memory.h" | 17 #include "base/memory/ref_counted_memory.h" |
| 16 #include "gpu/command_buffer/client/gles2_cmd_helper.h" | 18 #include "gpu/command_buffer/client/gles2_cmd_helper.h" |
| 17 #include "gpu/command_buffer/client/gles2_implementation.h" | 19 #include "gpu/command_buffer/client/gles2_implementation.h" |
| 18 #include "gpu/command_buffer/client/gles2_lib.h" | 20 #include "gpu/command_buffer/client/gles2_lib.h" |
| 19 #include "gpu/command_buffer/client/transfer_buffer.h" | 21 #include "gpu/command_buffer/client/transfer_buffer.h" |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 57 | 59 |
| 58 // Overridden from gfx::GpuMemoryBuffer: | 60 // Overridden from gfx::GpuMemoryBuffer: |
| 59 bool Map() override { | 61 bool Map() override { |
| 60 DCHECK(!mapped_); | 62 DCHECK(!mapped_); |
| 61 mapped_ = true; | 63 mapped_ = true; |
| 62 return true; | 64 return true; |
| 63 } | 65 } |
| 64 void* memory(size_t plane) override { | 66 void* memory(size_t plane) override { |
| 65 DCHECK(mapped_); | 67 DCHECK(mapped_); |
| 66 DCHECK_LT(plane, gfx::NumberOfPlanesForBufferFormat(format_)); | 68 DCHECK_LT(plane, gfx::NumberOfPlanesForBufferFormat(format_)); |
| 67 return reinterpret_cast<uint8*>(&bytes_->data().front()) + | 69 return reinterpret_cast<uint8_t*>(&bytes_->data().front()) + |
| 68 gfx::BufferOffsetForBufferFormat(size_, format_, plane); | 70 gfx::BufferOffsetForBufferFormat(size_, format_, plane); |
| 69 } | 71 } |
| 70 void Unmap() override { | 72 void Unmap() override { |
| 71 DCHECK(mapped_); | 73 DCHECK(mapped_); |
| 72 mapped_ = false; | 74 mapped_ = false; |
| 73 } | 75 } |
| 74 gfx::Size GetSize() const override { return size_; } | 76 gfx::Size GetSize() const override { return size_; } |
| 75 gfx::BufferFormat GetFormat() const override { return format_; } | 77 gfx::BufferFormat GetFormat() const override { return format_; } |
| 76 int stride(size_t plane) const override { | 78 int stride(size_t plane) const override { |
| 77 DCHECK_LT(plane, gfx::NumberOfPlanesForBufferFormat(format_)); | 79 DCHECK_LT(plane, gfx::NumberOfPlanesForBufferFormat(format_)); |
| 78 return gfx::RowSizeForBufferFormat(size_.width(), format_, plane); | 80 return gfx::RowSizeForBufferFormat(size_.width(), format_, plane); |
| (...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 140 delete base_context_; | 142 delete base_context_; |
| 141 base_context_ = NULL; | 143 base_context_ = NULL; |
| 142 } | 144 } |
| 143 } | 145 } |
| 144 } | 146 } |
| 145 | 147 |
| 146 // static | 148 // static |
| 147 scoped_ptr<gfx::GpuMemoryBuffer> GLManager::CreateGpuMemoryBuffer( | 149 scoped_ptr<gfx::GpuMemoryBuffer> GLManager::CreateGpuMemoryBuffer( |
| 148 const gfx::Size& size, | 150 const gfx::Size& size, |
| 149 gfx::BufferFormat format) { | 151 gfx::BufferFormat format) { |
| 150 std::vector<uint8> data(gfx::BufferSizeForBufferFormat(size, format), 0); | 152 std::vector<uint8_t> data(gfx::BufferSizeForBufferFormat(size, format), 0); |
| 151 scoped_refptr<base::RefCountedBytes> bytes(new base::RefCountedBytes(data)); | 153 scoped_refptr<base::RefCountedBytes> bytes(new base::RefCountedBytes(data)); |
| 152 return make_scoped_ptr<gfx::GpuMemoryBuffer>( | 154 return make_scoped_ptr<gfx::GpuMemoryBuffer>( |
| 153 new GpuMemoryBufferImpl(bytes.get(), size, format)); | 155 new GpuMemoryBufferImpl(bytes.get(), size, format)); |
| 154 } | 156 } |
| 155 | 157 |
| 156 void GLManager::Initialize(const GLManager::Options& options) { | 158 void GLManager::Initialize(const GLManager::Options& options) { |
| 157 InitializeWithCommandLine(options, nullptr); | 159 InitializeWithCommandLine(options, nullptr); |
| 158 } | 160 } |
| 159 | 161 |
| 160 void GLManager::InitializeWithCommandLine(const GLManager::Options& options, | 162 void GLManager::InitializeWithCommandLine(const GLManager::Options& options, |
| 161 base::CommandLine* command_line) { | 163 base::CommandLine* command_line) { |
| 162 const int32 kCommandBufferSize = 1024 * 1024; | 164 const int32_t kCommandBufferSize = 1024 * 1024; |
| 163 const size_t kStartTransferBufferSize = 4 * 1024 * 1024; | 165 const size_t kStartTransferBufferSize = 4 * 1024 * 1024; |
| 164 const size_t kMinTransferBufferSize = 1 * 256 * 1024; | 166 const size_t kMinTransferBufferSize = 1 * 256 * 1024; |
| 165 const size_t kMaxTransferBufferSize = 16 * 1024 * 1024; | 167 const size_t kMaxTransferBufferSize = 16 * 1024 * 1024; |
| 166 | 168 |
| 167 context_lost_allowed_ = options.context_lost_allowed; | 169 context_lost_allowed_ = options.context_lost_allowed; |
| 168 | 170 |
| 169 gles2::MailboxManager* mailbox_manager = NULL; | 171 gles2::MailboxManager* mailbox_manager = NULL; |
| 170 if (options.share_mailbox_manager) { | 172 if (options.share_mailbox_manager) { |
| 171 mailbox_manager = options.share_mailbox_manager->mailbox_manager(); | 173 mailbox_manager = options.share_mailbox_manager->mailbox_manager(); |
| 172 } else if (options.share_group_manager) { | 174 } else if (options.share_group_manager) { |
| (...skipping 19 matching lines...) Expand all Loading... |
| 192 if (options.virtual_manager) { | 194 if (options.virtual_manager) { |
| 193 real_gl_context = options.virtual_manager->context(); | 195 real_gl_context = options.virtual_manager->context(); |
| 194 } | 196 } |
| 195 | 197 |
| 196 mailbox_manager_ = | 198 mailbox_manager_ = |
| 197 mailbox_manager ? mailbox_manager : new gles2::MailboxManagerImpl; | 199 mailbox_manager ? mailbox_manager : new gles2::MailboxManagerImpl; |
| 198 share_group_ = | 200 share_group_ = |
| 199 share_group ? share_group : new gfx::GLShareGroup; | 201 share_group ? share_group : new gfx::GLShareGroup; |
| 200 | 202 |
| 201 gfx::GpuPreference gpu_preference(gfx::PreferDiscreteGpu); | 203 gfx::GpuPreference gpu_preference(gfx::PreferDiscreteGpu); |
| 202 std::vector<int32> attribs; | 204 std::vector<int32_t> attribs; |
| 203 gles2::ContextCreationAttribHelper attrib_helper; | 205 gles2::ContextCreationAttribHelper attrib_helper; |
| 204 attrib_helper.red_size = 8; | 206 attrib_helper.red_size = 8; |
| 205 attrib_helper.green_size = 8; | 207 attrib_helper.green_size = 8; |
| 206 attrib_helper.blue_size = 8; | 208 attrib_helper.blue_size = 8; |
| 207 attrib_helper.alpha_size = 8; | 209 attrib_helper.alpha_size = 8; |
| 208 attrib_helper.depth_size = 16; | 210 attrib_helper.depth_size = 16; |
| 209 attrib_helper.stencil_size = 8; | 211 attrib_helper.stencil_size = 8; |
| 210 attrib_helper.context_type = options.context_type; | 212 attrib_helper.context_type = options.context_type; |
| 211 | 213 |
| 212 attrib_helper.Serialize(&attribs); | 214 attrib_helper.Serialize(&attribs); |
| (...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 410 if (!context_lost_allowed_) { | 412 if (!context_lost_allowed_) { |
| 411 ASSERT_EQ(::gpu::error::kNoError, state.error); | 413 ASSERT_EQ(::gpu::error::kNoError, state.error); |
| 412 } | 414 } |
| 413 | 415 |
| 414 if (sync_point_manager_) { | 416 if (sync_point_manager_) { |
| 415 // Finish processing order number here. | 417 // Finish processing order number here. |
| 416 sync_point_order_data_->FinishProcessingOrderNumber(order_num); | 418 sync_point_order_data_->FinishProcessingOrderNumber(order_num); |
| 417 } | 419 } |
| 418 } | 420 } |
| 419 | 421 |
| 420 bool GLManager::GetBufferChanged(int32 transfer_buffer_id) { | 422 bool GLManager::GetBufferChanged(int32_t transfer_buffer_id) { |
| 421 return gpu_scheduler_->SetGetBuffer(transfer_buffer_id); | 423 return gpu_scheduler_->SetGetBuffer(transfer_buffer_id); |
| 422 } | 424 } |
| 423 | 425 |
| 424 Capabilities GLManager::GetCapabilities() { | 426 Capabilities GLManager::GetCapabilities() { |
| 425 return decoder_->GetCapabilities(); | 427 return decoder_->GetCapabilities(); |
| 426 } | 428 } |
| 427 | 429 |
| 428 int32 GLManager::CreateImage(ClientBuffer buffer, | 430 int32_t GLManager::CreateImage(ClientBuffer buffer, |
| 429 size_t width, | 431 size_t width, |
| 430 size_t height, | 432 size_t height, |
| 431 unsigned internalformat) { | 433 unsigned internalformat) { |
| 432 GpuMemoryBufferImpl* gpu_memory_buffer = | 434 GpuMemoryBufferImpl* gpu_memory_buffer = |
| 433 GpuMemoryBufferImpl::FromClientBuffer(buffer); | 435 GpuMemoryBufferImpl::FromClientBuffer(buffer); |
| 434 | 436 |
| 435 scoped_refptr<gl::GLImageRefCountedMemory> image( | 437 scoped_refptr<gl::GLImageRefCountedMemory> image( |
| 436 new gl::GLImageRefCountedMemory(gfx::Size(width, height), | 438 new gl::GLImageRefCountedMemory(gfx::Size(width, height), |
| 437 internalformat)); | 439 internalformat)); |
| 438 if (!image->Initialize(gpu_memory_buffer->bytes(), | 440 if (!image->Initialize(gpu_memory_buffer->bytes(), |
| 439 gpu_memory_buffer->GetFormat())) { | 441 gpu_memory_buffer->GetFormat())) { |
| 440 return -1; | 442 return -1; |
| 441 } | 443 } |
| 442 | 444 |
| 443 static int32 next_id = 1; | 445 static int32_t next_id = 1; |
| 444 int32 new_id = next_id++; | 446 int32_t new_id = next_id++; |
| 445 | 447 |
| 446 gpu::gles2::ImageManager* image_manager = decoder_->GetImageManager(); | 448 gpu::gles2::ImageManager* image_manager = decoder_->GetImageManager(); |
| 447 DCHECK(image_manager); | 449 DCHECK(image_manager); |
| 448 image_manager->AddImage(image.get(), new_id); | 450 image_manager->AddImage(image.get(), new_id); |
| 449 return new_id; | 451 return new_id; |
| 450 } | 452 } |
| 451 | 453 |
| 452 int32 GLManager::CreateGpuMemoryBufferImage(size_t width, | 454 int32_t GLManager::CreateGpuMemoryBufferImage(size_t width, |
| 453 size_t height, | 455 size_t height, |
| 454 unsigned internalformat, | 456 unsigned internalformat, |
| 455 unsigned usage) { | 457 unsigned usage) { |
| 456 DCHECK_EQ(usage, static_cast<unsigned>(GL_READ_WRITE_CHROMIUM)); | 458 DCHECK_EQ(usage, static_cast<unsigned>(GL_READ_WRITE_CHROMIUM)); |
| 457 scoped_ptr<gfx::GpuMemoryBuffer> buffer = GLManager::CreateGpuMemoryBuffer( | 459 scoped_ptr<gfx::GpuMemoryBuffer> buffer = GLManager::CreateGpuMemoryBuffer( |
| 458 gfx::Size(width, height), gfx::BufferFormat::RGBA_8888); | 460 gfx::Size(width, height), gfx::BufferFormat::RGBA_8888); |
| 459 return CreateImage(buffer->AsClientBuffer(), width, height, internalformat); | 461 return CreateImage(buffer->AsClientBuffer(), width, height, internalformat); |
| 460 } | 462 } |
| 461 | 463 |
| 462 void GLManager::DestroyImage(int32 id) { | 464 void GLManager::DestroyImage(int32_t id) { |
| 463 gpu::gles2::ImageManager* image_manager = decoder_->GetImageManager(); | 465 gpu::gles2::ImageManager* image_manager = decoder_->GetImageManager(); |
| 464 DCHECK(image_manager); | 466 DCHECK(image_manager); |
| 465 image_manager->RemoveImage(id); | 467 image_manager->RemoveImage(id); |
| 466 } | 468 } |
| 467 | 469 |
| 468 uint32 GLManager::InsertSyncPoint() { | 470 uint32_t GLManager::InsertSyncPoint() { |
| 469 NOTIMPLEMENTED(); | 471 NOTIMPLEMENTED(); |
| 470 return 0u; | 472 return 0u; |
| 471 } | 473 } |
| 472 | 474 |
| 473 uint32 GLManager::InsertFutureSyncPoint() { | 475 uint32_t GLManager::InsertFutureSyncPoint() { |
| 474 NOTIMPLEMENTED(); | 476 NOTIMPLEMENTED(); |
| 475 return 0u; | 477 return 0u; |
| 476 } | 478 } |
| 477 | 479 |
| 478 void GLManager::RetireSyncPoint(uint32 sync_point) { | 480 void GLManager::RetireSyncPoint(uint32_t sync_point) { |
| 479 NOTIMPLEMENTED(); | 481 NOTIMPLEMENTED(); |
| 480 } | 482 } |
| 481 | 483 |
| 482 void GLManager::SignalSyncPoint(uint32 sync_point, | 484 void GLManager::SignalSyncPoint(uint32_t sync_point, |
| 483 const base::Closure& callback) { | 485 const base::Closure& callback) { |
| 484 NOTIMPLEMENTED(); | 486 NOTIMPLEMENTED(); |
| 485 } | 487 } |
| 486 | 488 |
| 487 void GLManager::SignalQuery(uint32 query, const base::Closure& callback) { | 489 void GLManager::SignalQuery(uint32_t query, const base::Closure& callback) { |
| 488 NOTIMPLEMENTED(); | 490 NOTIMPLEMENTED(); |
| 489 } | 491 } |
| 490 | 492 |
| 491 void GLManager::SetLock(base::Lock*) { | 493 void GLManager::SetLock(base::Lock*) { |
| 492 NOTIMPLEMENTED(); | 494 NOTIMPLEMENTED(); |
| 493 } | 495 } |
| 494 | 496 |
| 495 bool GLManager::IsGpuChannelLost() { | 497 bool GLManager::IsGpuChannelLost() { |
| 496 NOTIMPLEMENTED(); | 498 NOTIMPLEMENTED(); |
| 497 return false; | 499 return false; |
| (...skipping 30 matching lines...) Expand all Loading... |
| 528 void GLManager::SignalSyncToken(const gpu::SyncToken& sync_token, | 530 void GLManager::SignalSyncToken(const gpu::SyncToken& sync_token, |
| 529 const base::Closure& callback) { | 531 const base::Closure& callback) { |
| 530 NOTIMPLEMENTED(); | 532 NOTIMPLEMENTED(); |
| 531 } | 533 } |
| 532 | 534 |
| 533 bool GLManager::CanWaitUnverifiedSyncToken(const gpu::SyncToken* sync_token) { | 535 bool GLManager::CanWaitUnverifiedSyncToken(const gpu::SyncToken* sync_token) { |
| 534 return false; | 536 return false; |
| 535 } | 537 } |
| 536 | 538 |
| 537 } // namespace gpu | 539 } // namespace gpu |
| OLD | NEW |