Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(213)

Side by Side Diff: gpu/command_buffer/service/in_process_command_buffer.cc

Issue 1542513002: Switch to standard integer types in gpu/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 <stddef.h>
8 #include <stdint.h>
9
7 #include <queue> 10 #include <queue>
8 #include <set> 11 #include <set>
9 #include <utility> 12 #include <utility>
10 13
11 #include "base/bind.h" 14 #include "base/bind.h"
12 #include "base/bind_helpers.h" 15 #include "base/bind_helpers.h"
13 #include "base/command_line.h" 16 #include "base/command_line.h"
14 #include "base/lazy_instance.h" 17 #include "base/lazy_instance.h"
15 #include "base/location.h" 18 #include "base/location.h"
16 #include "base/logging.h" 19 #include "base/logging.h"
(...skipping 213 matching lines...) Expand 10 before | Expand all | Expand 10 after
230 void InProcessCommandBuffer::PumpCommands() { 233 void InProcessCommandBuffer::PumpCommands() {
231 CheckSequencedThread(); 234 CheckSequencedThread();
232 command_buffer_lock_.AssertAcquired(); 235 command_buffer_lock_.AssertAcquired();
233 236
234 if (!MakeCurrent()) 237 if (!MakeCurrent())
235 return; 238 return;
236 239
237 gpu_scheduler_->PutChanged(); 240 gpu_scheduler_->PutChanged();
238 } 241 }
239 242
240 bool InProcessCommandBuffer::GetBufferChanged(int32 transfer_buffer_id) { 243 bool InProcessCommandBuffer::GetBufferChanged(int32_t transfer_buffer_id) {
241 CheckSequencedThread(); 244 CheckSequencedThread();
242 command_buffer_lock_.AssertAcquired(); 245 command_buffer_lock_.AssertAcquired();
243 command_buffer_->SetGetBuffer(transfer_buffer_id); 246 command_buffer_->SetGetBuffer(transfer_buffer_id);
244 return true; 247 return true;
245 } 248 }
246 249
247 bool InProcessCommandBuffer::Initialize( 250 bool InProcessCommandBuffer::Initialize(
248 scoped_refptr<gfx::GLSurface> surface, 251 scoped_refptr<gfx::GLSurface> surface,
249 bool is_offscreen, 252 bool is_offscreen,
250 gfx::AcceleratedWidget window, 253 gfx::AcceleratedWidget window,
251 const gfx::Size& size, 254 const gfx::Size& size,
252 const std::vector<int32>& attribs, 255 const std::vector<int32_t>& attribs,
253 gfx::GpuPreference gpu_preference, 256 gfx::GpuPreference gpu_preference,
254 const base::Closure& context_lost_callback, 257 const base::Closure& context_lost_callback,
255 InProcessCommandBuffer* share_group, 258 InProcessCommandBuffer* share_group,
256 GpuMemoryBufferManager* gpu_memory_buffer_manager, 259 GpuMemoryBufferManager* gpu_memory_buffer_manager,
257 ImageFactory* image_factory) { 260 ImageFactory* image_factory) {
258 DCHECK(!share_group || service_.get() == share_group->service_.get()); 261 DCHECK(!share_group || service_.get() == share_group->service_.get());
259 context_lost_callback_ = WrapCallback(context_lost_callback); 262 context_lost_callback_ = WrapCallback(context_lost_callback);
260 263
261 if (surface.get()) { 264 if (surface.get()) {
262 // GPU thread must be the same as client thread due to GLSurface not being 265 // GPU thread must be the same as client thread due to GLSurface not being
(...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after
495 if (state_after_last_flush_.generation - last_state_.generation < 0x80000000U) 498 if (state_after_last_flush_.generation - last_state_.generation < 0x80000000U)
496 last_state_ = state_after_last_flush_; 499 last_state_ = state_after_last_flush_;
497 return last_state_; 500 return last_state_;
498 } 501 }
499 502
500 CommandBuffer::State InProcessCommandBuffer::GetLastState() { 503 CommandBuffer::State InProcessCommandBuffer::GetLastState() {
501 CheckSequencedThread(); 504 CheckSequencedThread();
502 return last_state_; 505 return last_state_;
503 } 506 }
504 507
505 int32 InProcessCommandBuffer::GetLastToken() { 508 int32_t InProcessCommandBuffer::GetLastToken() {
506 CheckSequencedThread(); 509 CheckSequencedThread();
507 GetStateFast(); 510 GetStateFast();
508 return last_state_.token; 511 return last_state_.token;
509 } 512 }
510 513
511 void InProcessCommandBuffer::FlushOnGpuThread(int32 put_offset, 514 void InProcessCommandBuffer::FlushOnGpuThread(int32_t put_offset,
512 uint32_t order_num) { 515 uint32_t order_num) {
513 CheckSequencedThread(); 516 CheckSequencedThread();
514 ScopedEvent handle_flush(&flush_event_); 517 ScopedEvent handle_flush(&flush_event_);
515 base::AutoLock lock(command_buffer_lock_); 518 base::AutoLock lock(command_buffer_lock_);
516 519
517 { 520 {
518 ScopedOrderNumberProcessor scoped_order_num(sync_point_order_data_.get(), 521 ScopedOrderNumberProcessor scoped_order_num(sync_point_order_data_.get(),
519 order_num); 522 order_num);
520 command_buffer_->Flush(put_offset); 523 command_buffer_->Flush(put_offset);
521 { 524 {
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
558 561
559 void InProcessCommandBuffer::ScheduleDelayedWorkOnGpuThread() { 562 void InProcessCommandBuffer::ScheduleDelayedWorkOnGpuThread() {
560 CheckSequencedThread(); 563 CheckSequencedThread();
561 if (delayed_work_pending_) 564 if (delayed_work_pending_)
562 return; 565 return;
563 delayed_work_pending_ = true; 566 delayed_work_pending_ = true;
564 service_->ScheduleDelayedWork(base::Bind( 567 service_->ScheduleDelayedWork(base::Bind(
565 &InProcessCommandBuffer::PerformDelayedWork, gpu_thread_weak_ptr_)); 568 &InProcessCommandBuffer::PerformDelayedWork, gpu_thread_weak_ptr_));
566 } 569 }
567 570
568 void InProcessCommandBuffer::Flush(int32 put_offset) { 571 void InProcessCommandBuffer::Flush(int32_t put_offset) {
569 CheckSequencedThread(); 572 CheckSequencedThread();
570 if (last_state_.error != gpu::error::kNoError) 573 if (last_state_.error != gpu::error::kNoError)
571 return; 574 return;
572 575
573 if (last_put_offset_ == put_offset) 576 if (last_put_offset_ == put_offset)
574 return; 577 return;
575 578
576 SyncPointManager* sync_manager = service_->sync_point_manager(); 579 SyncPointManager* sync_manager = service_->sync_point_manager();
577 const uint32_t order_num = 580 const uint32_t order_num =
578 sync_point_order_data_->GenerateUnprocessedOrderNumber(sync_manager); 581 sync_point_order_data_->GenerateUnprocessedOrderNumber(sync_manager);
579 last_put_offset_ = put_offset; 582 last_put_offset_ = put_offset;
580 base::Closure task = base::Bind(&InProcessCommandBuffer::FlushOnGpuThread, 583 base::Closure task = base::Bind(&InProcessCommandBuffer::FlushOnGpuThread,
581 gpu_thread_weak_ptr_, 584 gpu_thread_weak_ptr_,
582 put_offset, 585 put_offset,
583 order_num); 586 order_num);
584 QueueTask(task); 587 QueueTask(task);
585 588
586 flushed_fence_sync_release_ = next_fence_sync_release_ - 1; 589 flushed_fence_sync_release_ = next_fence_sync_release_ - 1;
587 } 590 }
588 591
589 void InProcessCommandBuffer::OrderingBarrier(int32 put_offset) { 592 void InProcessCommandBuffer::OrderingBarrier(int32_t put_offset) {
590 Flush(put_offset); 593 Flush(put_offset);
591 } 594 }
592 595
593 void InProcessCommandBuffer::WaitForTokenInRange(int32 start, int32 end) { 596 void InProcessCommandBuffer::WaitForTokenInRange(int32_t start, int32_t end) {
594 CheckSequencedThread(); 597 CheckSequencedThread();
595 while (!InRange(start, end, GetLastToken()) && 598 while (!InRange(start, end, GetLastToken()) &&
596 last_state_.error == gpu::error::kNoError) 599 last_state_.error == gpu::error::kNoError)
597 flush_event_.Wait(); 600 flush_event_.Wait();
598 } 601 }
599 602
600 void InProcessCommandBuffer::WaitForGetOffsetInRange(int32 start, int32 end) { 603 void InProcessCommandBuffer::WaitForGetOffsetInRange(int32_t start,
604 int32_t end) {
601 CheckSequencedThread(); 605 CheckSequencedThread();
602 606
603 GetStateFast(); 607 GetStateFast();
604 while (!InRange(start, end, last_state_.get_offset) && 608 while (!InRange(start, end, last_state_.get_offset) &&
605 last_state_.error == gpu::error::kNoError) { 609 last_state_.error == gpu::error::kNoError) {
606 flush_event_.Wait(); 610 flush_event_.Wait();
607 GetStateFast(); 611 GetStateFast();
608 } 612 }
609 } 613 }
610 614
611 void InProcessCommandBuffer::SetGetBuffer(int32 shm_id) { 615 void InProcessCommandBuffer::SetGetBuffer(int32_t shm_id) {
612 CheckSequencedThread(); 616 CheckSequencedThread();
613 if (last_state_.error != gpu::error::kNoError) 617 if (last_state_.error != gpu::error::kNoError)
614 return; 618 return;
615 619
616 base::WaitableEvent completion(true, false); 620 base::WaitableEvent completion(true, false);
617 base::Closure task = 621 base::Closure task =
618 base::Bind(&InProcessCommandBuffer::SetGetBufferOnGpuThread, 622 base::Bind(&InProcessCommandBuffer::SetGetBufferOnGpuThread,
619 base::Unretained(this), shm_id, &completion); 623 base::Unretained(this), shm_id, &completion);
620 QueueTask(task); 624 QueueTask(task);
621 completion.Wait(); 625 completion.Wait();
622 626
623 { 627 {
624 base::AutoLock lock(state_after_last_flush_lock_); 628 base::AutoLock lock(state_after_last_flush_lock_);
625 state_after_last_flush_ = command_buffer_->GetLastState(); 629 state_after_last_flush_ = command_buffer_->GetLastState();
626 } 630 }
627 } 631 }
628 632
629 void InProcessCommandBuffer::SetGetBufferOnGpuThread( 633 void InProcessCommandBuffer::SetGetBufferOnGpuThread(
630 int32 shm_id, 634 int32_t shm_id,
631 base::WaitableEvent* completion) { 635 base::WaitableEvent* completion) {
632 base::AutoLock lock(command_buffer_lock_); 636 base::AutoLock lock(command_buffer_lock_);
633 command_buffer_->SetGetBuffer(shm_id); 637 command_buffer_->SetGetBuffer(shm_id);
634 last_put_offset_ = 0; 638 last_put_offset_ = 0;
635 completion->Signal(); 639 completion->Signal();
636 } 640 }
637 641
638 scoped_refptr<Buffer> InProcessCommandBuffer::CreateTransferBuffer(size_t size, 642 scoped_refptr<Buffer> InProcessCommandBuffer::CreateTransferBuffer(
639 int32* id) { 643 size_t size,
644 int32_t* id) {
640 CheckSequencedThread(); 645 CheckSequencedThread();
641 base::AutoLock lock(command_buffer_lock_); 646 base::AutoLock lock(command_buffer_lock_);
642 return command_buffer_->CreateTransferBuffer(size, id); 647 return command_buffer_->CreateTransferBuffer(size, id);
643 } 648 }
644 649
645 void InProcessCommandBuffer::DestroyTransferBuffer(int32 id) { 650 void InProcessCommandBuffer::DestroyTransferBuffer(int32_t id) {
646 CheckSequencedThread(); 651 CheckSequencedThread();
647 base::Closure task = 652 base::Closure task =
648 base::Bind(&InProcessCommandBuffer::DestroyTransferBufferOnGpuThread, 653 base::Bind(&InProcessCommandBuffer::DestroyTransferBufferOnGpuThread,
649 base::Unretained(this), 654 base::Unretained(this),
650 id); 655 id);
651 656
652 QueueTask(task); 657 QueueTask(task);
653 } 658 }
654 659
655 void InProcessCommandBuffer::DestroyTransferBufferOnGpuThread(int32 id) { 660 void InProcessCommandBuffer::DestroyTransferBufferOnGpuThread(int32_t id) {
656 base::AutoLock lock(command_buffer_lock_); 661 base::AutoLock lock(command_buffer_lock_);
657 command_buffer_->DestroyTransferBuffer(id); 662 command_buffer_->DestroyTransferBuffer(id);
658 } 663 }
659 664
660 gpu::Capabilities InProcessCommandBuffer::GetCapabilities() { 665 gpu::Capabilities InProcessCommandBuffer::GetCapabilities() {
661 return capabilities_; 666 return capabilities_;
662 } 667 }
663 668
664 int32 InProcessCommandBuffer::CreateImage(ClientBuffer buffer, 669 int32_t InProcessCommandBuffer::CreateImage(ClientBuffer buffer,
665 size_t width, 670 size_t width,
666 size_t height, 671 size_t height,
667 unsigned internalformat) { 672 unsigned internalformat) {
668 CheckSequencedThread(); 673 CheckSequencedThread();
669 674
670 DCHECK(gpu_memory_buffer_manager_); 675 DCHECK(gpu_memory_buffer_manager_);
671 gfx::GpuMemoryBuffer* gpu_memory_buffer = 676 gfx::GpuMemoryBuffer* gpu_memory_buffer =
672 gpu_memory_buffer_manager_->GpuMemoryBufferFromClientBuffer(buffer); 677 gpu_memory_buffer_manager_->GpuMemoryBufferFromClientBuffer(buffer);
673 DCHECK(gpu_memory_buffer); 678 DCHECK(gpu_memory_buffer);
674 679
675 int32 new_id = next_image_id_.GetNext(); 680 int32_t new_id = next_image_id_.GetNext();
676 681
677 DCHECK(gpu::ImageFactory::IsGpuMemoryBufferFormatSupported( 682 DCHECK(gpu::ImageFactory::IsGpuMemoryBufferFormatSupported(
678 gpu_memory_buffer->GetFormat(), capabilities_)); 683 gpu_memory_buffer->GetFormat(), capabilities_));
679 DCHECK(gpu::ImageFactory::IsImageFormatCompatibleWithGpuMemoryBufferFormat( 684 DCHECK(gpu::ImageFactory::IsImageFormatCompatibleWithGpuMemoryBufferFormat(
680 internalformat, gpu_memory_buffer->GetFormat())); 685 internalformat, gpu_memory_buffer->GetFormat()));
681 686
682 // This handle is owned by the GPU thread and must be passed to it or it 687 // This handle is owned by the GPU thread and must be passed to it or it
683 // will leak. In otherwords, do not early out on error between here and the 688 // will leak. In otherwords, do not early out on error between here and the
684 // queuing of the CreateImage task below. 689 // queuing of the CreateImage task below.
685 bool requires_sync_point = false; 690 bool requires_sync_point = false;
(...skipping 24 matching lines...) Expand all
710 GetCommandBufferID(), fence_sync); 715 GetCommandBufferID(), fence_sync);
711 sync_token.SetVerifyFlush(); 716 sync_token.SetVerifyFlush();
712 gpu_memory_buffer_manager_->SetDestructionSyncToken(gpu_memory_buffer, 717 gpu_memory_buffer_manager_->SetDestructionSyncToken(gpu_memory_buffer,
713 sync_token); 718 sync_token);
714 } 719 }
715 720
716 return new_id; 721 return new_id;
717 } 722 }
718 723
719 void InProcessCommandBuffer::CreateImageOnGpuThread( 724 void InProcessCommandBuffer::CreateImageOnGpuThread(
720 int32 id, 725 int32_t id,
721 const gfx::GpuMemoryBufferHandle& handle, 726 const gfx::GpuMemoryBufferHandle& handle,
722 const gfx::Size& size, 727 const gfx::Size& size,
723 gfx::BufferFormat format, 728 gfx::BufferFormat format,
724 uint32 internalformat, 729 uint32_t internalformat,
725 uint32_t order_num, 730 uint32_t order_num,
726 uint64_t fence_sync) { 731 uint64_t fence_sync) {
727 ScopedOrderNumberProcessor scoped_order_num(sync_point_order_data_.get(), 732 ScopedOrderNumberProcessor scoped_order_num(sync_point_order_data_.get(),
728 order_num); 733 order_num);
729 if (!decoder_) 734 if (!decoder_)
730 return; 735 return;
731 736
732 gpu::gles2::ImageManager* image_manager = decoder_->GetImageManager(); 737 gpu::gles2::ImageManager* image_manager = decoder_->GetImageManager();
733 DCHECK(image_manager); 738 DCHECK(image_manager);
734 if (image_manager->LookupImage(id)) { 739 if (image_manager->LookupImage(id)) {
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
773 image_manager->AddImage(image.get(), id); 778 image_manager->AddImage(image.get(), id);
774 break; 779 break;
775 } 780 }
776 } 781 }
777 782
778 if (fence_sync) { 783 if (fence_sync) {
779 sync_point_client_->ReleaseFenceSync(fence_sync); 784 sync_point_client_->ReleaseFenceSync(fence_sync);
780 } 785 }
781 } 786 }
782 787
783 void InProcessCommandBuffer::DestroyImage(int32 id) { 788 void InProcessCommandBuffer::DestroyImage(int32_t id) {
784 CheckSequencedThread(); 789 CheckSequencedThread();
785 790
786 QueueTask(base::Bind(&InProcessCommandBuffer::DestroyImageOnGpuThread, 791 QueueTask(base::Bind(&InProcessCommandBuffer::DestroyImageOnGpuThread,
787 base::Unretained(this), 792 base::Unretained(this),
788 id)); 793 id));
789 } 794 }
790 795
791 void InProcessCommandBuffer::DestroyImageOnGpuThread(int32 id) { 796 void InProcessCommandBuffer::DestroyImageOnGpuThread(int32_t id) {
792 if (!decoder_) 797 if (!decoder_)
793 return; 798 return;
794 799
795 gpu::gles2::ImageManager* image_manager = decoder_->GetImageManager(); 800 gpu::gles2::ImageManager* image_manager = decoder_->GetImageManager();
796 DCHECK(image_manager); 801 DCHECK(image_manager);
797 if (!image_manager->LookupImage(id)) { 802 if (!image_manager->LookupImage(id)) {
798 LOG(ERROR) << "Image with ID doesn't exist."; 803 LOG(ERROR) << "Image with ID doesn't exist.";
799 return; 804 return;
800 } 805 }
801 806
802 image_manager->RemoveImage(id); 807 image_manager->RemoveImage(id);
803 } 808 }
804 809
805 int32 InProcessCommandBuffer::CreateGpuMemoryBufferImage( 810 int32_t InProcessCommandBuffer::CreateGpuMemoryBufferImage(
806 size_t width, 811 size_t width,
807 size_t height, 812 size_t height,
808 unsigned internalformat, 813 unsigned internalformat,
809 unsigned usage) { 814 unsigned usage) {
810 CheckSequencedThread(); 815 CheckSequencedThread();
811 816
812 DCHECK(gpu_memory_buffer_manager_); 817 DCHECK(gpu_memory_buffer_manager_);
813 scoped_ptr<gfx::GpuMemoryBuffer> buffer( 818 scoped_ptr<gfx::GpuMemoryBuffer> buffer(
814 gpu_memory_buffer_manager_->AllocateGpuMemoryBuffer( 819 gpu_memory_buffer_manager_->AllocateGpuMemoryBuffer(
815 gfx::Size(width, height), 820 gfx::Size(width, height),
816 gpu::ImageFactory::DefaultBufferFormatForImageFormat(internalformat), 821 gpu::ImageFactory::DefaultBufferFormatForImageFormat(internalformat),
817 gfx::BufferUsage::SCANOUT)); 822 gfx::BufferUsage::SCANOUT));
818 if (!buffer) 823 if (!buffer)
819 return -1; 824 return -1;
820 825
821 return CreateImage(buffer->AsClientBuffer(), width, height, internalformat); 826 return CreateImage(buffer->AsClientBuffer(), width, height, internalformat);
822 } 827 }
823 828
824 uint32 InProcessCommandBuffer::InsertSyncPoint() { 829 uint32_t InProcessCommandBuffer::InsertSyncPoint() {
825 uint32 sync_point = service_->sync_point_manager()->GenerateSyncPoint(); 830 uint32_t sync_point = service_->sync_point_manager()->GenerateSyncPoint();
826 QueueTask(base::Bind(&InProcessCommandBuffer::RetireSyncPointOnGpuThread, 831 QueueTask(base::Bind(&InProcessCommandBuffer::RetireSyncPointOnGpuThread,
827 base::Unretained(this), 832 base::Unretained(this),
828 sync_point)); 833 sync_point));
829 return sync_point; 834 return sync_point;
830 } 835 }
831 836
832 uint32 InProcessCommandBuffer::InsertFutureSyncPoint() { 837 uint32_t InProcessCommandBuffer::InsertFutureSyncPoint() {
833 return service_->sync_point_manager()->GenerateSyncPoint(); 838 return service_->sync_point_manager()->GenerateSyncPoint();
834 } 839 }
835 840
836 void InProcessCommandBuffer::RetireSyncPoint(uint32 sync_point) { 841 void InProcessCommandBuffer::RetireSyncPoint(uint32_t sync_point) {
837 QueueTask(base::Bind(&InProcessCommandBuffer::RetireSyncPointOnGpuThread, 842 QueueTask(base::Bind(&InProcessCommandBuffer::RetireSyncPointOnGpuThread,
838 base::Unretained(this), 843 base::Unretained(this),
839 sync_point)); 844 sync_point));
840 } 845 }
841 846
842 void InProcessCommandBuffer::RetireSyncPointOnGpuThread(uint32 sync_point) { 847 void InProcessCommandBuffer::RetireSyncPointOnGpuThread(uint32_t sync_point) {
843 gles2::MailboxManager* mailbox_manager = 848 gles2::MailboxManager* mailbox_manager =
844 decoder_->GetContextGroup()->mailbox_manager(); 849 decoder_->GetContextGroup()->mailbox_manager();
845 if (mailbox_manager->UsesSync()) { 850 if (mailbox_manager->UsesSync()) {
846 bool make_current_success = false; 851 bool make_current_success = false;
847 { 852 {
848 base::AutoLock lock(command_buffer_lock_); 853 base::AutoLock lock(command_buffer_lock_);
849 make_current_success = MakeCurrent(); 854 make_current_success = MakeCurrent();
850 } 855 }
851 if (make_current_success) { 856 if (make_current_success) {
852 // Old sync points are global and do not have a command buffer ID, 857 // Old sync points are global and do not have a command buffer ID,
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
1014 base::Unretained(this), 1019 base::Unretained(this),
1015 sync_token, 1020 sync_token,
1016 WrapCallback(callback))); 1021 WrapCallback(callback)));
1017 } 1022 }
1018 1023
1019 bool InProcessCommandBuffer::CanWaitUnverifiedSyncToken( 1024 bool InProcessCommandBuffer::CanWaitUnverifiedSyncToken(
1020 const SyncToken* sync_token) { 1025 const SyncToken* sync_token) {
1021 return false; 1026 return false;
1022 } 1027 }
1023 1028
1024 uint32 InProcessCommandBuffer::CreateStreamTextureOnGpuThread( 1029 uint32_t InProcessCommandBuffer::CreateStreamTextureOnGpuThread(
1025 uint32 client_texture_id) { 1030 uint32_t client_texture_id) {
1026 #if defined(OS_ANDROID) 1031 #if defined(OS_ANDROID)
1027 return stream_texture_manager_->CreateStreamTexture( 1032 return stream_texture_manager_->CreateStreamTexture(
1028 client_texture_id, decoder_->GetContextGroup()->texture_manager()); 1033 client_texture_id, decoder_->GetContextGroup()->texture_manager());
1029 #else 1034 #else
1030 return 0; 1035 return 0;
1031 #endif 1036 #endif
1032 } 1037 }
1033 1038
1034 gpu::error::Error InProcessCommandBuffer::GetLastError() { 1039 gpu::error::Error InProcessCommandBuffer::GetLastError() {
1035 CheckSequencedThread(); 1040 CheckSequencedThread();
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
1071 base::Bind(&RunOnTargetThread, base::Passed(&scoped_callback)); 1076 base::Bind(&RunOnTargetThread, base::Passed(&scoped_callback));
1072 base::Closure wrapped_callback = 1077 base::Closure wrapped_callback =
1073 base::Bind(&PostCallback, base::ThreadTaskRunnerHandle::IsSet() 1078 base::Bind(&PostCallback, base::ThreadTaskRunnerHandle::IsSet()
1074 ? base::ThreadTaskRunnerHandle::Get() 1079 ? base::ThreadTaskRunnerHandle::Get()
1075 : nullptr, 1080 : nullptr,
1076 callback_on_client_thread); 1081 callback_on_client_thread);
1077 return wrapped_callback; 1082 return wrapped_callback;
1078 } 1083 }
1079 1084
1080 #if defined(OS_ANDROID) 1085 #if defined(OS_ANDROID)
1081 scoped_refptr<gfx::SurfaceTexture> 1086 scoped_refptr<gfx::SurfaceTexture> InProcessCommandBuffer::GetSurfaceTexture(
1082 InProcessCommandBuffer::GetSurfaceTexture(uint32 stream_id) { 1087 uint32_t stream_id) {
1083 DCHECK(stream_texture_manager_); 1088 DCHECK(stream_texture_manager_);
1084 return stream_texture_manager_->GetSurfaceTexture(stream_id); 1089 return stream_texture_manager_->GetSurfaceTexture(stream_id);
1085 } 1090 }
1086 1091
1087 uint32 InProcessCommandBuffer::CreateStreamTexture(uint32 texture_id) { 1092 uint32_t InProcessCommandBuffer::CreateStreamTexture(uint32_t texture_id) {
1088 base::WaitableEvent completion(true, false); 1093 base::WaitableEvent completion(true, false);
1089 uint32 stream_id = 0; 1094 uint32_t stream_id = 0;
1090 base::Callback<uint32(void)> task = 1095 base::Callback<uint32_t(void)> task =
1091 base::Bind(&InProcessCommandBuffer::CreateStreamTextureOnGpuThread, 1096 base::Bind(&InProcessCommandBuffer::CreateStreamTextureOnGpuThread,
1092 base::Unretained(this), texture_id); 1097 base::Unretained(this), texture_id);
1093 QueueTask( 1098 QueueTask(
1094 base::Bind(&RunTaskWithResult<uint32>, task, &stream_id, &completion)); 1099 base::Bind(&RunTaskWithResult<uint32_t>, task, &stream_id, &completion));
1095 completion.Wait(); 1100 completion.Wait();
1096 return stream_id; 1101 return stream_id;
1097 } 1102 }
1098 #endif 1103 #endif
1099 1104
1100 GpuInProcessThread::GpuInProcessThread(SyncPointManager* sync_point_manager) 1105 GpuInProcessThread::GpuInProcessThread(SyncPointManager* sync_point_manager)
1101 : base::Thread("GpuThread"), sync_point_manager_(sync_point_manager) { 1106 : base::Thread("GpuThread"), sync_point_manager_(sync_point_manager) {
1102 Start(); 1107 Start();
1103 } 1108 }
1104 1109
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
1140 framebuffer_completeness_cache_ = 1145 framebuffer_completeness_cache_ =
1141 new gpu::gles2::FramebufferCompletenessCache; 1146 new gpu::gles2::FramebufferCompletenessCache;
1142 return framebuffer_completeness_cache_; 1147 return framebuffer_completeness_cache_;
1143 } 1148 }
1144 1149
1145 SyncPointManager* GpuInProcessThread::sync_point_manager() { 1150 SyncPointManager* GpuInProcessThread::sync_point_manager() {
1146 return sync_point_manager_; 1151 return sync_point_manager_;
1147 } 1152 }
1148 1153
1149 } // namespace gpu 1154 } // namespace gpu
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/in_process_command_buffer.h ('k') | gpu/command_buffer/service/logger.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698