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

Side by Side Diff: cc/resources/resource_provider_unittest.cc

Issue 1548443002: Introducing gpu::CommandBufferId as a distinct, IdType<...>-based type. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@type-safe-save-package-id-self-contained
Patch Set: Rebasing... Created 4 years, 10 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
« no previous file with comments | « cc/output/gl_renderer_unittest.cc ('k') | cc/resources/video_resource_updater_unittest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 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 "cc/resources/resource_provider.h" 5 #include "cc/resources/resource_provider.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <algorithm> 10 #include <algorithm>
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
114 base::AutoLock lock(namespace_->lock); 114 base::AutoLock lock(namespace_->lock);
115 return namespace_->next_texture_id++; 115 return namespace_->next_texture_id++;
116 } 116 }
117 117
118 void RetireTextureId(GLuint) override {} 118 void RetireTextureId(GLuint) override {}
119 119
120 GLuint64 insertFenceSync() override { return next_fence_sync_++; } 120 GLuint64 insertFenceSync() override { return next_fence_sync_++; }
121 121
122 void genSyncToken(GLuint64 fence_sync, GLbyte* sync_token) override { 122 void genSyncToken(GLuint64 fence_sync, GLbyte* sync_token) override {
123 gpu::SyncToken sync_token_data(gpu::CommandBufferNamespace::GPU_IO, 0, 123 gpu::SyncToken sync_token_data(gpu::CommandBufferNamespace::GPU_IO, 0,
124 0x123, fence_sync); 124 gpu::CommandBufferId::FromUnsafeValue(0x123),
125 fence_sync);
125 sync_token_data.SetVerifyFlush(); 126 sync_token_data.SetVerifyFlush();
126 memcpy(sync_token, &sync_token_data, sizeof(sync_token_data)); 127 memcpy(sync_token, &sync_token_data, sizeof(sync_token_data));
127 } 128 }
128 129
129 GLuint64 GetNextFenceSync() const { return next_fence_sync_; } 130 GLuint64 GetNextFenceSync() const { return next_fence_sync_; }
130 131
131 GLuint64 next_fence_sync_ = 1; 132 GLuint64 next_fence_sync_ = 1;
132 }; 133 };
133 134
134 // Shared data between multiple ResourceProviderContext. This contains mailbox 135 // Shared data between multiple ResourceProviderContext. This contains mailbox
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
192 ContextSharedData* shared_data) { 193 ContextSharedData* shared_data) {
193 return make_scoped_ptr(new ResourceProviderContext(shared_data)); 194 return make_scoped_ptr(new ResourceProviderContext(shared_data));
194 } 195 }
195 196
196 GLuint64 insertFenceSync() override { 197 GLuint64 insertFenceSync() override {
197 return shared_data_->InsertFenceSync(); 198 return shared_data_->InsertFenceSync();
198 } 199 }
199 200
200 void genSyncToken(GLuint64 fence_sync, GLbyte* sync_token) override { 201 void genSyncToken(GLuint64 fence_sync, GLbyte* sync_token) override {
201 gpu::SyncToken sync_token_data(gpu::CommandBufferNamespace::GPU_IO, 0, 202 gpu::SyncToken sync_token_data(gpu::CommandBufferNamespace::GPU_IO, 0,
202 0x123, fence_sync); 203 gpu::CommandBufferId::FromUnsafeValue(0x123),
204 fence_sync);
203 sync_token_data.SetVerifyFlush(); 205 sync_token_data.SetVerifyFlush();
204 // Commit the produceTextureCHROMIUM calls at this point, so that 206 // Commit the produceTextureCHROMIUM calls at this point, so that
205 // they're associated with the sync point. 207 // they're associated with the sync point.
206 for (const scoped_ptr<PendingProduceTexture>& pending_texture : 208 for (const scoped_ptr<PendingProduceTexture>& pending_texture :
207 pending_produce_textures_) { 209 pending_produce_textures_) {
208 shared_data_->ProduceTexture(pending_texture->mailbox, sync_token_data, 210 shared_data_->ProduceTexture(pending_texture->mailbox, sync_token_data,
209 pending_texture->texture); 211 pending_texture->texture);
210 } 212 }
211 pending_produce_textures_.clear(); 213 pending_produce_textures_.clear();
212 memcpy(sync_token, &sync_token_data, sizeof(sync_token_data)); 214 memcpy(sync_token, &sync_token_data, sizeof(sync_token_data));
(...skipping 2615 matching lines...) Expand 10 before | Expand all | Expand 10 after
2828 scoped_ptr<OutputSurface> output_surface( 2830 scoped_ptr<OutputSurface> output_surface(
2829 FakeOutputSurface::Create3d(std::move(context_owned))); 2831 FakeOutputSurface::Create3d(std::move(context_owned)));
2830 CHECK(output_surface->BindToClient(&output_surface_client)); 2832 CHECK(output_surface->BindToClient(&output_surface_client));
2831 2833
2832 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( 2834 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
2833 output_surface.get(), shared_bitmap_manager, gpu_memory_buffer_manager, 2835 output_surface.get(), shared_bitmap_manager, gpu_memory_buffer_manager,
2834 main_thread_task_runner, 0, 1, use_gpu_memory_buffer_resources_, 2836 main_thread_task_runner, 0, 1, use_gpu_memory_buffer_resources_,
2835 use_image_texture_targets_)); 2837 use_image_texture_targets_));
2836 2838
2837 unsigned texture_id = 1; 2839 unsigned texture_id = 1;
2838 gpu::SyncToken sync_token(gpu::CommandBufferNamespace::GPU_IO, 0, 0x12, 2840 gpu::SyncToken sync_token(gpu::CommandBufferNamespace::GPU_IO, 0,
2841 gpu::CommandBufferId::FromUnsafeValue(0x12),
2839 0x34); 2842 0x34);
2840 unsigned target = GL_TEXTURE_2D; 2843 unsigned target = GL_TEXTURE_2D;
2841 const GLuint64 current_fence_sync = context->GetNextFenceSync(); 2844 const GLuint64 current_fence_sync = context->GetNextFenceSync();
2842 2845
2843 EXPECT_CALL(*context, bindTexture(_, _)).Times(0); 2846 EXPECT_CALL(*context, bindTexture(_, _)).Times(0);
2844 EXPECT_CALL(*context, waitSyncToken(_)).Times(0); 2847 EXPECT_CALL(*context, waitSyncToken(_)).Times(0);
2845 EXPECT_CALL(*context, produceTextureDirectCHROMIUM(_, _, _)).Times(0); 2848 EXPECT_CALL(*context, produceTextureDirectCHROMIUM(_, _, _)).Times(0);
2846 EXPECT_CALL(*context, createAndConsumeTextureCHROMIUM(_, _)).Times(0); 2849 EXPECT_CALL(*context, createAndConsumeTextureCHROMIUM(_, _)).Times(0);
2847 2850
2848 gpu::Mailbox gpu_mailbox; 2851 gpu::Mailbox gpu_mailbox;
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
2971 FakeOutputSurfaceClient output_surface_client; 2974 FakeOutputSurfaceClient output_surface_client;
2972 scoped_ptr<OutputSurface> output_surface( 2975 scoped_ptr<OutputSurface> output_surface(
2973 FakeOutputSurface::Create3d(std::move(context_owned))); 2976 FakeOutputSurface::Create3d(std::move(context_owned)));
2974 CHECK(output_surface->BindToClient(&output_surface_client)); 2977 CHECK(output_surface->BindToClient(&output_surface_client));
2975 2978
2976 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( 2979 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
2977 output_surface.get(), shared_bitmap_manager_.get(), 2980 output_surface.get(), shared_bitmap_manager_.get(),
2978 gpu_memory_buffer_manager_.get(), NULL, 0, 1, 2981 gpu_memory_buffer_manager_.get(), NULL, 0, 1,
2979 use_gpu_memory_buffer_resources_, use_image_texture_targets_)); 2982 use_gpu_memory_buffer_resources_, use_image_texture_targets_));
2980 2983
2981 gpu::SyncToken sync_token(gpu::CommandBufferNamespace::GPU_IO, 0, 0x12, 0x34); 2984 gpu::SyncToken sync_token(gpu::CommandBufferNamespace::GPU_IO, 0,
2985 gpu::CommandBufferId::FromUnsafeValue(0x12), 0x34);
2982 const GLuint64 current_fence_sync = context->GetNextFenceSync(); 2986 const GLuint64 current_fence_sync = context->GetNextFenceSync();
2983 unsigned target = GL_TEXTURE_EXTERNAL_OES; 2987 unsigned target = GL_TEXTURE_EXTERNAL_OES;
2984 2988
2985 EXPECT_CALL(*context, bindTexture(_, _)).Times(0); 2989 EXPECT_CALL(*context, bindTexture(_, _)).Times(0);
2986 EXPECT_CALL(*context, waitSyncToken(_)).Times(0); 2990 EXPECT_CALL(*context, waitSyncToken(_)).Times(0);
2987 EXPECT_CALL(*context, produceTextureDirectCHROMIUM(_, _, _)).Times(0); 2991 EXPECT_CALL(*context, produceTextureDirectCHROMIUM(_, _, _)).Times(0);
2988 EXPECT_CALL(*context, createAndConsumeTextureCHROMIUM(_, _)).Times(0); 2992 EXPECT_CALL(*context, createAndConsumeTextureCHROMIUM(_, _)).Times(0);
2989 2993
2990 gpu::Mailbox gpu_mailbox; 2994 gpu::Mailbox gpu_mailbox;
2991 memcpy(gpu_mailbox.name, "Hello world", strlen("Hello world") + 1); 2995 memcpy(gpu_mailbox.name, "Hello world", strlen("Hello world") + 1);
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
3040 FakeOutputSurfaceClient output_surface_client; 3044 FakeOutputSurfaceClient output_surface_client;
3041 scoped_ptr<OutputSurface> output_surface( 3045 scoped_ptr<OutputSurface> output_surface(
3042 FakeOutputSurface::Create3d(std::move(context_owned))); 3046 FakeOutputSurface::Create3d(std::move(context_owned)));
3043 CHECK(output_surface->BindToClient(&output_surface_client)); 3047 CHECK(output_surface->BindToClient(&output_surface_client));
3044 3048
3045 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create( 3049 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
3046 output_surface.get(), shared_bitmap_manager_.get(), 3050 output_surface.get(), shared_bitmap_manager_.get(),
3047 gpu_memory_buffer_manager_.get(), NULL, 0, 1, 3051 gpu_memory_buffer_manager_.get(), NULL, 0, 1,
3048 use_gpu_memory_buffer_resources_, use_image_texture_targets_)); 3052 use_gpu_memory_buffer_resources_, use_image_texture_targets_));
3049 3053
3050 gpu::SyncToken sync_token(gpu::CommandBufferNamespace::GPU_IO, 0, 0x12, 0x34); 3054 gpu::SyncToken sync_token(gpu::CommandBufferNamespace::GPU_IO, 0,
3055 gpu::CommandBufferId::FromUnsafeValue(0x12), 0x34);
3051 const GLuint64 current_fence_sync = context->GetNextFenceSync(); 3056 const GLuint64 current_fence_sync = context->GetNextFenceSync();
3052 unsigned target = GL_TEXTURE_2D; 3057 unsigned target = GL_TEXTURE_2D;
3053 3058
3054 EXPECT_CALL(*context, bindTexture(_, _)).Times(0); 3059 EXPECT_CALL(*context, bindTexture(_, _)).Times(0);
3055 EXPECT_CALL(*context, waitSyncToken(_)).Times(0); 3060 EXPECT_CALL(*context, waitSyncToken(_)).Times(0);
3056 EXPECT_CALL(*context, produceTextureDirectCHROMIUM(_, _, _)).Times(0); 3061 EXPECT_CALL(*context, produceTextureDirectCHROMIUM(_, _, _)).Times(0);
3057 EXPECT_CALL(*context, createAndConsumeTextureCHROMIUM(_, _)).Times(0); 3062 EXPECT_CALL(*context, createAndConsumeTextureCHROMIUM(_, _)).Times(0);
3058 3063
3059 gpu::Mailbox gpu_mailbox; 3064 gpu::Mailbox gpu_mailbox;
3060 memcpy(gpu_mailbox.name, "Hello world", strlen("Hello world") + 1); 3065 memcpy(gpu_mailbox.name, "Hello world", strlen("Hello world") + 1);
(...skipping 551 matching lines...) Expand 10 before | Expand all | Expand 10 after
3612 EXPECT_TRUE(resource_provider_->CanLockForWrite(id)); 3617 EXPECT_TRUE(resource_provider_->CanLockForWrite(id));
3613 EXPECT_FALSE(resource_provider_->InUseByConsumer(id)); 3618 EXPECT_FALSE(resource_provider_->InUseByConsumer(id));
3614 gpu_memory_buffer_manager_->SetGpuMemoryBufferIsInUseByMacOSWindowServer( 3619 gpu_memory_buffer_manager_->SetGpuMemoryBufferIsInUseByMacOSWindowServer(
3615 gpu_memory_buffer, true); 3620 gpu_memory_buffer, true);
3616 EXPECT_FALSE(resource_provider_->CanLockForWrite(id)); 3621 EXPECT_FALSE(resource_provider_->CanLockForWrite(id));
3617 EXPECT_TRUE(resource_provider_->InUseByConsumer(id)); 3622 EXPECT_TRUE(resource_provider_->InUseByConsumer(id));
3618 } 3623 }
3619 3624
3620 } // namespace 3625 } // namespace
3621 } // namespace cc 3626 } // namespace cc
OLDNEW
« no previous file with comments | « cc/output/gl_renderer_unittest.cc ('k') | cc/resources/video_resource_updater_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698