| Index: content/common/gpu/client/command_buffer_proxy_impl.cc
|
| diff --git a/content/common/gpu/client/command_buffer_proxy_impl.cc b/content/common/gpu/client/command_buffer_proxy_impl.cc
|
| index b8785bc64a6fe12bee74f6c88a3e595c0b9084bc..c3c841924355e6beb7f1f3e4685d20e688248ff0 100644
|
| --- a/content/common/gpu/client/command_buffer_proxy_impl.cc
|
| +++ b/content/common/gpu/client/command_buffer_proxy_impl.cc
|
| @@ -400,7 +400,7 @@
|
| int32_t CommandBufferProxyImpl::CreateImage(ClientBuffer buffer,
|
| size_t width,
|
| size_t height,
|
| - unsigned internal_format) {
|
| + unsigned internalformat) {
|
| CheckLock();
|
| if (last_state_.error != gpu::error::kNoError)
|
| return -1;
|
| @@ -416,47 +416,29 @@
|
| // This handle is owned by the GPU process and must be passed to it or it
|
| // will leak. In otherwords, do not early out on error between here and the
|
| // sending of the CreateImage IPC below.
|
| - bool requires_sync_token = false;
|
| + bool requires_sync_point = false;
|
| gfx::GpuMemoryBufferHandle handle =
|
| channel_->ShareGpuMemoryBufferToGpuProcess(gpu_memory_buffer->GetHandle(),
|
| - &requires_sync_token);
|
| -
|
| - uint64_t image_fence_sync = 0;
|
| - if (requires_sync_token) {
|
| - image_fence_sync = GenerateFenceSyncRelease();
|
| -
|
| - // Make sure fence syncs were flushed before CreateImage() was called.
|
| - DCHECK_LE(image_fence_sync - 1, flushed_fence_sync_release_);
|
| - }
|
| + &requires_sync_point);
|
|
|
| DCHECK(gpu::ImageFactory::IsGpuMemoryBufferFormatSupported(
|
| gpu_memory_buffer->GetFormat(), capabilities_));
|
| DCHECK(gpu::ImageFactory::IsImageSizeValidForGpuMemoryBufferFormat(
|
| gfx::Size(width, height), gpu_memory_buffer->GetFormat()));
|
| DCHECK(gpu::ImageFactory::IsImageFormatCompatibleWithGpuMemoryBufferFormat(
|
| - internal_format, gpu_memory_buffer->GetFormat()));
|
| -
|
| - GpuCommandBufferMsg_CreateImage_Params params;
|
| - params.id = new_id;
|
| - params.gpu_memory_buffer = handle;
|
| - params.size = gfx::Size(width, height);
|
| - params.format = gpu_memory_buffer->GetFormat();
|
| - params.internal_format = internal_format;
|
| - params.image_release_count = image_fence_sync;
|
| -
|
| - if (!Send(new GpuCommandBufferMsg_CreateImage(route_id_, params)))
|
| + internalformat, gpu_memory_buffer->GetFormat()));
|
| + if (!Send(new GpuCommandBufferMsg_CreateImage(route_id_,
|
| + new_id,
|
| + handle,
|
| + gfx::Size(width, height),
|
| + gpu_memory_buffer->GetFormat(),
|
| + internalformat))) {
|
| return -1;
|
| -
|
| - if (image_fence_sync) {
|
| - gpu::SyncToken sync_token(GetNamespaceID(), GetCommandBufferID(),
|
| - image_fence_sync);
|
| -
|
| - // Force a synchronous IPC to validate sync token.
|
| - channel_->ValidateFlushIDReachedServer(stream_id_, true);
|
| - sync_token.SetVerifyFlush();
|
| -
|
| - gpu_memory_buffer_manager->SetDestructionSyncToken(gpu_memory_buffer,
|
| - sync_token);
|
| + }
|
| +
|
| + if (requires_sync_point) {
|
| + gpu_memory_buffer_manager->SetDestructionSyncPoint(gpu_memory_buffer,
|
| + InsertSyncPoint());
|
| }
|
|
|
| return new_id;
|
| @@ -473,18 +455,18 @@
|
| int32_t CommandBufferProxyImpl::CreateGpuMemoryBufferImage(
|
| size_t width,
|
| size_t height,
|
| - unsigned internal_format,
|
| + unsigned internalformat,
|
| unsigned usage) {
|
| CheckLock();
|
| scoped_ptr<gfx::GpuMemoryBuffer> buffer(
|
| channel_->gpu_memory_buffer_manager()->AllocateGpuMemoryBuffer(
|
| gfx::Size(width, height),
|
| - gpu::ImageFactory::DefaultBufferFormatForImageFormat(internal_format),
|
| + gpu::ImageFactory::DefaultBufferFormatForImageFormat(internalformat),
|
| gfx::BufferUsage::SCANOUT));
|
| if (!buffer)
|
| return -1;
|
|
|
| - return CreateImage(buffer->AsClientBuffer(), width, height, internal_format);
|
| + return CreateImage(buffer->AsClientBuffer(), width, height, internalformat);
|
| }
|
|
|
| uint32 CommandBufferProxyImpl::CreateStreamTexture(uint32 texture_id) {
|
| @@ -548,8 +530,7 @@
|
| return true;
|
|
|
| // Has not been validated, validate it now.
|
| - UpdateVerifiedReleases(
|
| - channel_->ValidateFlushIDReachedServer(stream_id_, false));
|
| + UpdateVerifiedReleases(channel_->ValidateFlushIDReachedServer(stream_id_));
|
| return release <= verified_fence_sync_release_;
|
| }
|
|
|
|
|