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

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

Issue 2134793002: Remove the command buffer method glGetImageivCHROMIUM. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Merge conflict. Created 4 years, 5 months 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> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <queue> 10 #include <queue>
(...skipping 666 matching lines...) Expand 10 before | Expand all | Expand 10 after
677 gpu_memory_buffer_manager_->GpuMemoryBufferFromClientBuffer(buffer); 677 gpu_memory_buffer_manager_->GpuMemoryBufferFromClientBuffer(buffer);
678 DCHECK(gpu_memory_buffer); 678 DCHECK(gpu_memory_buffer);
679 679
680 int32_t new_id = next_image_id_.GetNext(); 680 int32_t new_id = next_image_id_.GetNext();
681 681
682 DCHECK(gpu::IsGpuMemoryBufferFormatSupported(gpu_memory_buffer->GetFormat(), 682 DCHECK(gpu::IsGpuMemoryBufferFormatSupported(gpu_memory_buffer->GetFormat(),
683 capabilities_)); 683 capabilities_));
684 DCHECK(gpu::IsImageFormatCompatibleWithGpuMemoryBufferFormat( 684 DCHECK(gpu::IsImageFormatCompatibleWithGpuMemoryBufferFormat(
685 internalformat, gpu_memory_buffer->GetFormat())); 685 internalformat, gpu_memory_buffer->GetFormat()));
686 686
687 DCHECK(image_gmb_ids_map_.find(new_id) == image_gmb_ids_map_.end());
688 image_gmb_ids_map_[new_id] = gpu_memory_buffer->GetId().id;
689
690 // 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
691 // 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
692 // queuing of the CreateImage task below. 689 // queuing of the CreateImage task below.
693 bool requires_sync_point = false; 690 bool requires_sync_point = false;
694 gfx::GpuMemoryBufferHandle handle = 691 gfx::GpuMemoryBufferHandle handle =
695 ShareGpuMemoryBufferToGpuThread(gpu_memory_buffer->GetHandle(), 692 ShareGpuMemoryBufferToGpuThread(gpu_memory_buffer->GetHandle(),
696 &requires_sync_point); 693 &requires_sync_point);
697 694
698 SyncPointManager* sync_manager = service_->sync_point_manager(); 695 SyncPointManager* sync_manager = service_->sync_point_manager();
699 const uint32_t order_num = 696 const uint32_t order_num =
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
784 } 781 }
785 782
786 if (fence_sync) { 783 if (fence_sync) {
787 sync_point_client_->ReleaseFenceSync(fence_sync); 784 sync_point_client_->ReleaseFenceSync(fence_sync);
788 } 785 }
789 } 786 }
790 787
791 void InProcessCommandBuffer::DestroyImage(int32_t id) { 788 void InProcessCommandBuffer::DestroyImage(int32_t id) {
792 CheckSequencedThread(); 789 CheckSequencedThread();
793 790
794 auto it = image_gmb_ids_map_.find(id);
795 if (it != image_gmb_ids_map_.end())
796 image_gmb_ids_map_.erase(it);
797
798 QueueTask(base::Bind(&InProcessCommandBuffer::DestroyImageOnGpuThread, 791 QueueTask(base::Bind(&InProcessCommandBuffer::DestroyImageOnGpuThread,
799 base::Unretained(this), 792 base::Unretained(this),
800 id)); 793 id));
801 } 794 }
802 795
803 void InProcessCommandBuffer::DestroyImageOnGpuThread(int32_t id) { 796 void InProcessCommandBuffer::DestroyImageOnGpuThread(int32_t id) {
804 if (!decoder_) 797 if (!decoder_)
805 return; 798 return;
806 799
807 gpu::gles2::ImageManager* image_manager = decoder_->GetImageManager(); 800 gpu::gles2::ImageManager* image_manager = decoder_->GetImageManager();
(...skipping 18 matching lines...) Expand all
826 gpu_memory_buffer_manager_->AllocateGpuMemoryBuffer( 819 gpu_memory_buffer_manager_->AllocateGpuMemoryBuffer(
827 gfx::Size(width, height), 820 gfx::Size(width, height),
828 gpu::DefaultBufferFormatForImageFormat(internalformat), 821 gpu::DefaultBufferFormatForImageFormat(internalformat),
829 gfx::BufferUsage::SCANOUT, gpu::kNullSurfaceHandle)); 822 gfx::BufferUsage::SCANOUT, gpu::kNullSurfaceHandle));
830 if (!buffer) 823 if (!buffer)
831 return -1; 824 return -1;
832 825
833 return CreateImage(buffer->AsClientBuffer(), width, height, internalformat); 826 return CreateImage(buffer->AsClientBuffer(), width, height, internalformat);
834 } 827 }
835 828
836 int32_t InProcessCommandBuffer::GetImageGpuMemoryBufferId(unsigned image_id) {
837 CheckSequencedThread();
838 auto it = image_gmb_ids_map_.find(image_id);
839 if (it != image_gmb_ids_map_.end())
840 return it->second;
841 return -1;
842 }
843
844 void InProcessCommandBuffer::FenceSyncReleaseOnGpuThread(uint64_t release) { 829 void InProcessCommandBuffer::FenceSyncReleaseOnGpuThread(uint64_t release) {
845 DCHECK(!sync_point_client_->client_state()->IsFenceSyncReleased(release)); 830 DCHECK(!sync_point_client_->client_state()->IsFenceSyncReleased(release));
846 gles2::MailboxManager* mailbox_manager = 831 gles2::MailboxManager* mailbox_manager =
847 decoder_->GetContextGroup()->mailbox_manager(); 832 decoder_->GetContextGroup()->mailbox_manager();
848 if (mailbox_manager->UsesSync()) { 833 if (mailbox_manager->UsesSync()) {
849 SyncToken sync_token(GetNamespaceID(), GetExtraCommandBufferData(), 834 SyncToken sync_token(GetNamespaceID(), GetExtraCommandBufferData(),
850 GetCommandBufferID(), release); 835 GetCommandBufferID(), release);
851 mailbox_manager->PushTextureUpdates(sync_token); 836 mailbox_manager->PushTextureUpdates(sync_token);
852 } 837 }
853 838
(...skipping 215 matching lines...) Expand 10 before | Expand all | Expand 10 after
1069 framebuffer_completeness_cache_ = 1054 framebuffer_completeness_cache_ =
1070 new gpu::gles2::FramebufferCompletenessCache; 1055 new gpu::gles2::FramebufferCompletenessCache;
1071 return framebuffer_completeness_cache_; 1056 return framebuffer_completeness_cache_;
1072 } 1057 }
1073 1058
1074 SyncPointManager* GpuInProcessThread::sync_point_manager() { 1059 SyncPointManager* GpuInProcessThread::sync_point_manager() {
1075 return sync_point_manager_; 1060 return sync_point_manager_;
1076 } 1061 }
1077 1062
1078 } // namespace gpu 1063 } // namespace gpu
OLDNEW
« no previous file with comments | « gpu/command_buffer/service/in_process_command_buffer.h ('k') | gpu/command_buffer/tests/gl_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698