New issue
Advanced search Search tips

Issue 829435 link

Starred by 6 users

Issue metadata

Status: Assigned
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Android , Windows , Chrome , Mac
Pri: 2
Type: Bug


Sign in to add a comment

Make RasterDecoder work with --use-cmd-decoder=passthrough

Project Member Reported by backer@chromium.org, Apr 5 2018

Issue description

The passthrough decoder is in the process of being launched on Windows. It uses ANGLE for validation instead of performing validation in the decoder.

When run with --use-cmd-decoder=passthrough, RasterDecoder can continue validating (e.g. don't need a separate non-validating RasterDecoder) but should work with GLES2DecoderPassthrough running the the same share group.

 
Comment from piman@ from an email thread:

We will need RasterDecoder to interact with the passthrough decoder to be able to ship OOPR on Windows, and in the short term that will mean being able to handle both versions of gpu::TextureBase when interacting with the MailboxManager (i.e. gpu::gles2::Texture, for the validating decoder, and gpu::gles2::TexturePassthrough for the passthrough decoder) - at least until we replace the MailboxManager to allow Vulkan (working on a design doc, but this is longer term anyway).
But I don't think that means we should fork the RasterDecoder into 2 versions. liberato@ from the media team is running into similar issues, and is implementing an abstraction layer on top of those (see https://chromium-review.googlesource.com/c/chromium/src/+/963298 as a WIP CL), maybe that can be reused/extended.
For CopySubTexture (I think that's what you meant, not CopyTexSubImage2D which doesn't exist on RasterInterface) specifically, I'm happy if we can use the ANGLE extension that provides the functionality when present, but that sounds like a much simpler problem than forking RasterDecoder.
Blocking: 789238

Comment 3 by backer@chromium.org, May 14 2018

Summary: Make RasterDecoder work with --use-cmd-decoder=passthrough (was: Make RasterDecoder worth with --use-cmd-decoder=passthrough)

Comment 4 by backer@chromium.org, Jun 11 2018

Blocking: -789238

Comment 5 by backer@chromium.org, Jun 12 2018

Cc: enne@chromium.org
+cc enne

Enne: I was considering doing this as part of a different task. Do you can any idea when you might want OOP-R on windows? Any info might help prioritize. Thanks.

I believe this is at most a day or two of work. I'd probably do it anyway.

Comment 6 by enne@chromium.org, Jun 12 2018

Probably next after Android, but that's going to be a release out at least.  So, this is not a high priority, but I would like to get it done at some point.
Project Member

Comment 7 by bugdroid1@chromium.org, Jul 20

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3b0e1ae53729583965ca8861f11c27f24ee393e5

commit 3b0e1ae53729583965ca8861f11c27f24ee393e5
Author: Jonathan Backer <backer@chromium.org>
Date: Fri Jul 20 13:43:23 2018

Add ANGLE bindings for Skia

This is in preparation of calling ANGLE directly using Skia in the GPU
process for OOP-R. This CL makes GrContext::MakeGL (and OOP-R) succeed
on desktop Linux running Chrome with these flags:

--use-gl=angle --use-angle=gl --enable-gpu-rasterization --enable-oop-rasterization

Previously we were failing in GrGLInterface.cpp:464

Bug: 829435
Change-Id: Id6a9d43fbe932e1506fe1b3d2fc7d9d67bcfefd8
Reviewed-on: https://chromium-review.googlesource.com/1144221
Reviewed-by: Antoine Labour <piman@chromium.org>
Commit-Queue: Jonathan Backer <backer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#576844}
[modify] https://crrev.com/3b0e1ae53729583965ca8861f11c27f24ee393e5/ui/gl/generate_bindings.py
[modify] https://crrev.com/3b0e1ae53729583965ca8861f11c27f24ee393e5/ui/gl/gl_bindings_api_autogen_gl.h
[modify] https://crrev.com/3b0e1ae53729583965ca8861f11c27f24ee393e5/ui/gl/gl_bindings_autogen_gl.cc
[modify] https://crrev.com/3b0e1ae53729583965ca8861f11c27f24ee393e5/ui/gl/gl_bindings_autogen_gl.h
[modify] https://crrev.com/3b0e1ae53729583965ca8861f11c27f24ee393e5/ui/gl/gl_bindings_autogen_mock.cc
[modify] https://crrev.com/3b0e1ae53729583965ca8861f11c27f24ee393e5/ui/gl/gl_bindings_autogen_mock.h
[modify] https://crrev.com/3b0e1ae53729583965ca8861f11c27f24ee393e5/ui/gl/gl_enums_implementation_autogen.h
[modify] https://crrev.com/3b0e1ae53729583965ca8861f11c27f24ee393e5/ui/gl/gl_mock_autogen_gl.h
[modify] https://crrev.com/3b0e1ae53729583965ca8861f11c27f24ee393e5/ui/gl/gl_stub_autogen_gl.h
[modify] https://crrev.com/3b0e1ae53729583965ca8861f11c27f24ee393e5/ui/gl/init/create_gr_gl_interface.cc

Status: Available (was: Assigned)
I'm OOO until early September. I'll mark as "available" in case anyone wants to pick this up. I'm happy to do it when I'm back at work as well.

I believe that it's possible to do development on Linux with this flags:

--use-gl=angle --use-angle=gl --use-cmd-decoder=passthrough --enable-gpu-rasterization --enable-oop-rasterization

You'd still have to test on Windows periodically because there may be differences when angle is running with GL backed vs DX backend.
Status: Assigned (was: Available)
Hi, I am also willing to help on this.

And I found one crash on Ubuntu:

Crash root cause analyze: 
The Producer generates a pass though texture (GLES2DecoderPassthroughImpl::DoProduceTextureDirectCHROMIUM).

While the consumer, RasterDecoderImpl::DoCreateAndConsumeTextureINTERNAL,
tried to consume it as a validating texture.


./out/Release/chrome --use-gl=angle --use-angle=gl --use-cmd-decoder=passthrough --enable-gpu-rasterization --enable-oop-rasterization

Crash logs:

#3 0x7fe5d8aa7b56 gpu::gles2::Texture::AddTextureRef()
#4 0x7fe5d8aad533 gpu::gles2::TextureManager::Consume()
#5 0x7fe5d8a9805f gpu::raster::RasterDecoderImpl::DoCreateAndConsumeTextureINTERNAL()
#6 0x7fe5d8a93250 gpu::raster::RasterDecoderImpl::HandleCreateAndConsumeTextureINTERNALImmediate()
#7 0x7fe5d8a96a38 gpu::raster::RasterDecoderImpl::DoCommandsImpl<>()
#8 0x7fe5e29d9b98 gpu::CommandBufferService::Flush()
#9 0x7fe5d8be0e31 gpu::CommandBufferStub::OnAsyncFlush()
#10 0x7fe5d8be0c54 _ZN3IPC8MessageTI35GpuCommandBufferMsg_AsyncFlush_MetaNSt3__15tupleIJijEEEvE8DispatchIN3gpu17CommandBufferStubES8_vMS8_FvijEEEbPKNS_7MessageEPT_PT0_PT1_T2_
#11 0x7fe5d8bdfb46 gpu::CommandBufferStub::OnMessageReceived()
#12 0x7fe5d8be9dc7 gpu::GpuChannel::HandleMessageHelper()
#13 0x7fe5d8be8195 gpu::GpuChannel::HandleMessage()
#14 0x7fe5e29ded25 gpu::Scheduler::RunNextTask()
#15 0x7fe5e5c5f209 base::debug::TaskAnnotator::RunTask()
#16 0x7fe5e5c7f3d2 base::MessageLoop::RunTask()
#17 0x7fe5e5c7f942 base::MessageLoop::DoWork()
#18 0x7fe5e5c8192f base::(anonymous namespace)::WorkSourceDispatch()
#19 0x7fe5dc08a197 g_main_context_dispatch
#20 0x7fe5dc08a3f0 <unknown>
#21 0x7fe5dc08a49c g_main_context_iteration
#22 0x7fe5e5c81772 base::MessagePumpGlib::Run()
#23 0x7fe5e5ca6845 base::RunLoop::Run()
#24 0x7fe5e3479817 content::GpuMain()
#25 0x7fe5e3fd5459 content::ContentMainRunnerImpl::Run()
#26 0x7fe5e5f7d6fb service_manager::Main()
#27 0x7fe5e3fd3651 content::ContentMain()
#28 0x55e89aaa01b3 ChromeMain


Cc: piman@chromium.org khushals...@chromium.org
I spent a little bit of time investigating this.  I am going to wait on this until after piman's sharable image / mailbox refactoring.

It's my understanding that that work will end up removing a good number of functions off of RasterDecoder, such as produce/consume mailbox and most of the texture binding/uploading functions.  I think there will still be a few things left (copying, and oop-r APIs) that will need some attention, but I think it will be a much smaller and different problem in the future.
 Issue 876815  has been merged into this issue.
I'm back from my leave. I expect that I will be able to resume work on this soon (this week). Let me know what you would like enne@
Yes, I think this would be good to get done.  However, I'm curious what you think, re: comment #11.  It seemed to me that finishing the mailbox refactoring would remove a large amount of code from RasterDecoder, and so making it robust to multiple types of TextureBase might be throwaway work once that's done.
I'll look into comment #11. This aligns with rjkroege@'s ask of me to help out with the mailbox refactoring. Makes sense to minimize throw away work.
Blockedon: 870116 882513
Blockedon: 890845
Cc: geoffl...@chromium.org
Blocking: 882580
Blocking: 898270
Labels: vulkanize
Labels: -vulkanize Proj-Vulkanize
Blocking: 892272
Project Member

Comment 23 by bugdroid1@chromium.org, Nov 22

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3c0dce00db07991ead1d57db86fa4300539c3075

commit 3c0dce00db07991ead1d57db86fa4300539c3075
Author: Jonathan Backer <backer@chromium.org>
Date: Thu Nov 22 17:19:20 2018

MakeCurrent before performDeferredCleanup

performDeferredCleanup may issue GL calls. This was causing
GL_INVALID_OPERATION errors with a passthrough decoder prototype because

(a) with passthrough, GL contexts may be in different service side share
groups and

(b) a GLES2 passthrough decoder may have just been made current before
ScheduleGrContextCleanup had run

No need to merge on branch because

(a) this change code wouldn't do anything unless we're using OOP-R
or SkRenderer&SkDDL and

(b) it's only necessary for platforms using passthrough (Windows), which
are not currently using OOP-R or SkRenderer.

Bug: 829435
Change-Id: I13802f7a5532bdebb07e1a05a9209d6c6730e4fa
Reviewed-on: https://chromium-review.googlesource.com/c/1348189
Reviewed-by: Peng Huang <penghuang@chromium.org>
Commit-Queue: Jonathan Backer <backer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#610447}
[modify] https://crrev.com/3c0dce00db07991ead1d57db86fa4300539c3075/gpu/command_buffer/service/gr_cache_controller.cc

Project Member

Comment 24 by bugdroid1@chromium.org, Jan 14

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0da668539c5a880a203609988404e27100bc4b55

commit 0da668539c5a880a203609988404e27100bc4b55
Author: Antoine Labour <piman@chromium.org>
Date: Mon Jan 14 22:32:38 2019

Rework RasterInterface::CopySubTexture

Pass mailboxes directyl instead of requiring CreateAndConsumeTexture +
DeleteTextures.
Simplify CreateAndConsumeTexture and DeleteTextures that are now only
used for GPU Raster.
Remove tracking structures in RasterDecoder and RasterImplementation*
which become entirely unnecessary.

Bug: 829435

Change-Id: I73c3155932fd417b4f95dd99e7fe8e3511685d61
Reviewed-on: https://chromium-review.googlesource.com/c/1407259
Reviewed-by: Jonathan Backer <backer@chromium.org>
Commit-Queue: Antoine Labour <piman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#622636}
[modify] https://crrev.com/0da668539c5a880a203609988404e27100bc4b55/cc/raster/gpu_raster_buffer_provider.cc
[modify] https://crrev.com/0da668539c5a880a203609988404e27100bc4b55/cc/raster/one_copy_raster_buffer_provider.cc
[modify] https://crrev.com/0da668539c5a880a203609988404e27100bc4b55/cc/raster/raster_buffer_provider_perftest.cc
[modify] https://crrev.com/0da668539c5a880a203609988404e27100bc4b55/cc/test/test_in_process_context_provider.cc
[modify] https://crrev.com/0da668539c5a880a203609988404e27100bc4b55/components/viz/test/test_context_provider.cc
[modify] https://crrev.com/0da668539c5a880a203609988404e27100bc4b55/gpu/command_buffer/build_raster_cmd_buffer.py
[modify] https://crrev.com/0da668539c5a880a203609988404e27100bc4b55/gpu/command_buffer/client/raster_cmd_helper_autogen.h
[modify] https://crrev.com/0da668539c5a880a203609988404e27100bc4b55/gpu/command_buffer/client/raster_implementation.cc
[modify] https://crrev.com/0da668539c5a880a203609988404e27100bc4b55/gpu/command_buffer/client/raster_implementation.h
[modify] https://crrev.com/0da668539c5a880a203609988404e27100bc4b55/gpu/command_buffer/client/raster_implementation_autogen.h
[modify] https://crrev.com/0da668539c5a880a203609988404e27100bc4b55/gpu/command_buffer/client/raster_implementation_gles.cc
[modify] https://crrev.com/0da668539c5a880a203609988404e27100bc4b55/gpu/command_buffer/client/raster_implementation_gles.h
[modify] https://crrev.com/0da668539c5a880a203609988404e27100bc4b55/gpu/command_buffer/client/raster_implementation_gles_unittest.cc
[modify] https://crrev.com/0da668539c5a880a203609988404e27100bc4b55/gpu/command_buffer/client/raster_implementation_impl_autogen.h
[modify] https://crrev.com/0da668539c5a880a203609988404e27100bc4b55/gpu/command_buffer/client/raster_implementation_unittest_autogen.h
[modify] https://crrev.com/0da668539c5a880a203609988404e27100bc4b55/gpu/command_buffer/client/raster_interface.h
[modify] https://crrev.com/0da668539c5a880a203609988404e27100bc4b55/gpu/command_buffer/client/raster_interface_autogen.h
[modify] https://crrev.com/0da668539c5a880a203609988404e27100bc4b55/gpu/command_buffer/common/raster_cmd_format_autogen.h
[modify] https://crrev.com/0da668539c5a880a203609988404e27100bc4b55/gpu/command_buffer/common/raster_cmd_format_test_autogen.h
[modify] https://crrev.com/0da668539c5a880a203609988404e27100bc4b55/gpu/command_buffer/common/raster_cmd_ids_autogen.h
[modify] https://crrev.com/0da668539c5a880a203609988404e27100bc4b55/gpu/command_buffer/raster_cmd_buffer_functions.txt
[modify] https://crrev.com/0da668539c5a880a203609988404e27100bc4b55/gpu/command_buffer/service/raster_decoder.cc
[modify] https://crrev.com/0da668539c5a880a203609988404e27100bc4b55/gpu/command_buffer/service/raster_decoder_autogen.h
[modify] https://crrev.com/0da668539c5a880a203609988404e27100bc4b55/gpu/command_buffer/service/raster_decoder_unittest.cc
[modify] https://crrev.com/0da668539c5a880a203609988404e27100bc4b55/gpu/command_buffer/service/raster_decoder_unittest_1_autogen.h
[modify] https://crrev.com/0da668539c5a880a203609988404e27100bc4b55/gpu/command_buffer/service/raster_decoder_unittest_base.cc
[modify] https://crrev.com/0da668539c5a880a203609988404e27100bc4b55/services/ws/public/cpp/gpu/context_provider_command_buffer.cc
[modify] https://crrev.com/0da668539c5a880a203609988404e27100bc4b55/ui/compositor/test/in_process_context_provider.cc

Project Member

Comment 25 by bugdroid1@chromium.org, Jan 15

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2aa2303669972f7f150b4eab9aafeaab11e3262d

commit 2aa2303669972f7f150b4eab9aafeaab11e3262d
Author: Jeremy Roman <jbroman@chromium.org>
Date: Tue Jan 15 15:49:57 2019

Revert "Rework RasterInterface::CopySubTexture"

This reverts commit 0da668539c5a880a203609988404e27100bc4b55.

Reason for revert: Speculative revert to fix Mac bots.

Original change's description:
> Rework RasterInterface::CopySubTexture
> 
> Pass mailboxes directyl instead of requiring CreateAndConsumeTexture +
> DeleteTextures.
> Simplify CreateAndConsumeTexture and DeleteTextures that are now only
> used for GPU Raster.
> Remove tracking structures in RasterDecoder and RasterImplementation*
> which become entirely unnecessary.
> 
> Bug: 829435
> 
> Change-Id: I73c3155932fd417b4f95dd99e7fe8e3511685d61
> Reviewed-on: https://chromium-review.googlesource.com/c/1407259
> Reviewed-by: Jonathan Backer <backer@chromium.org>
> Commit-Queue: Antoine Labour <piman@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#622636}

TBR=backer@chromium.org,piman@chromium.org

Change-Id: I044ecf68623faa5f6da4f2021f4f7440abd91ac0
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 829435, 922025 
Reviewed-on: https://chromium-review.googlesource.com/c/1412552
Reviewed-by: Jeremy Roman <jbroman@chromium.org>
Commit-Queue: Jeremy Roman <jbroman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#622869}
[modify] https://crrev.com/2aa2303669972f7f150b4eab9aafeaab11e3262d/cc/raster/gpu_raster_buffer_provider.cc
[modify] https://crrev.com/2aa2303669972f7f150b4eab9aafeaab11e3262d/cc/raster/one_copy_raster_buffer_provider.cc
[modify] https://crrev.com/2aa2303669972f7f150b4eab9aafeaab11e3262d/cc/raster/raster_buffer_provider_perftest.cc
[modify] https://crrev.com/2aa2303669972f7f150b4eab9aafeaab11e3262d/cc/test/test_in_process_context_provider.cc
[modify] https://crrev.com/2aa2303669972f7f150b4eab9aafeaab11e3262d/components/viz/test/test_context_provider.cc
[modify] https://crrev.com/2aa2303669972f7f150b4eab9aafeaab11e3262d/gpu/command_buffer/build_raster_cmd_buffer.py
[modify] https://crrev.com/2aa2303669972f7f150b4eab9aafeaab11e3262d/gpu/command_buffer/client/raster_cmd_helper_autogen.h
[modify] https://crrev.com/2aa2303669972f7f150b4eab9aafeaab11e3262d/gpu/command_buffer/client/raster_implementation.cc
[modify] https://crrev.com/2aa2303669972f7f150b4eab9aafeaab11e3262d/gpu/command_buffer/client/raster_implementation.h
[modify] https://crrev.com/2aa2303669972f7f150b4eab9aafeaab11e3262d/gpu/command_buffer/client/raster_implementation_autogen.h
[modify] https://crrev.com/2aa2303669972f7f150b4eab9aafeaab11e3262d/gpu/command_buffer/client/raster_implementation_gles.cc
[modify] https://crrev.com/2aa2303669972f7f150b4eab9aafeaab11e3262d/gpu/command_buffer/client/raster_implementation_gles.h
[modify] https://crrev.com/2aa2303669972f7f150b4eab9aafeaab11e3262d/gpu/command_buffer/client/raster_implementation_gles_unittest.cc
[modify] https://crrev.com/2aa2303669972f7f150b4eab9aafeaab11e3262d/gpu/command_buffer/client/raster_implementation_impl_autogen.h
[modify] https://crrev.com/2aa2303669972f7f150b4eab9aafeaab11e3262d/gpu/command_buffer/client/raster_implementation_unittest_autogen.h
[modify] https://crrev.com/2aa2303669972f7f150b4eab9aafeaab11e3262d/gpu/command_buffer/client/raster_interface.h
[modify] https://crrev.com/2aa2303669972f7f150b4eab9aafeaab11e3262d/gpu/command_buffer/client/raster_interface_autogen.h
[modify] https://crrev.com/2aa2303669972f7f150b4eab9aafeaab11e3262d/gpu/command_buffer/common/raster_cmd_format_autogen.h
[modify] https://crrev.com/2aa2303669972f7f150b4eab9aafeaab11e3262d/gpu/command_buffer/common/raster_cmd_format_test_autogen.h
[modify] https://crrev.com/2aa2303669972f7f150b4eab9aafeaab11e3262d/gpu/command_buffer/common/raster_cmd_ids_autogen.h
[modify] https://crrev.com/2aa2303669972f7f150b4eab9aafeaab11e3262d/gpu/command_buffer/raster_cmd_buffer_functions.txt
[modify] https://crrev.com/2aa2303669972f7f150b4eab9aafeaab11e3262d/gpu/command_buffer/service/raster_decoder.cc
[modify] https://crrev.com/2aa2303669972f7f150b4eab9aafeaab11e3262d/gpu/command_buffer/service/raster_decoder_autogen.h
[modify] https://crrev.com/2aa2303669972f7f150b4eab9aafeaab11e3262d/gpu/command_buffer/service/raster_decoder_unittest.cc
[modify] https://crrev.com/2aa2303669972f7f150b4eab9aafeaab11e3262d/gpu/command_buffer/service/raster_decoder_unittest_1_autogen.h
[modify] https://crrev.com/2aa2303669972f7f150b4eab9aafeaab11e3262d/gpu/command_buffer/service/raster_decoder_unittest_base.cc
[modify] https://crrev.com/2aa2303669972f7f150b4eab9aafeaab11e3262d/services/ws/public/cpp/gpu/context_provider_command_buffer.cc
[modify] https://crrev.com/2aa2303669972f7f150b4eab9aafeaab11e3262d/ui/compositor/test/in_process_context_provider.cc

Project Member

Comment 26 by bugdroid1@chromium.org, Jan 16

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/aeb4bd70e4321ad41ac16ed9466bfe5dae180ee0

commit aeb4bd70e4321ad41ac16ed9466bfe5dae180ee0
Author: Antoine Labour <piman@chromium.org>
Date: Wed Jan 16 02:33:28 2019

Reland "Rework RasterInterface::CopySubTexture"

This is a reland of 0da668539c5a880a203609988404e27100bc4b55

Original change's description:
> Rework RasterInterface::CopySubTexture
> 
> Pass mailboxes directyl instead of requiring CreateAndConsumeTexture +
> DeleteTextures.
> Simplify CreateAndConsumeTexture and DeleteTextures that are now only
> used for GPU Raster.
> Remove tracking structures in RasterDecoder and RasterImplementation*
> which become entirely unnecessary.
> 
> Bug: 829435
> 
> Change-Id: I73c3155932fd417b4f95dd99e7fe8e3511685d61
> Reviewed-on: https://chromium-review.googlesource.com/c/1407259
> Reviewed-by: Jonathan Backer <backer@chromium.org>
> Commit-Queue: Antoine Labour <piman@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#622636}

Bug: 829435
Change-Id: I7fab92bf09cb773d8200825d49020c5530ff7a5e
Reviewed-on: https://chromium-review.googlesource.com/c/1412974
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Jonathan Backer <backer@chromium.org>
Commit-Queue: Antoine Labour <piman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#623056}
[modify] https://crrev.com/aeb4bd70e4321ad41ac16ed9466bfe5dae180ee0/cc/raster/gpu_raster_buffer_provider.cc
[modify] https://crrev.com/aeb4bd70e4321ad41ac16ed9466bfe5dae180ee0/cc/raster/one_copy_raster_buffer_provider.cc
[modify] https://crrev.com/aeb4bd70e4321ad41ac16ed9466bfe5dae180ee0/cc/raster/raster_buffer_provider_perftest.cc
[modify] https://crrev.com/aeb4bd70e4321ad41ac16ed9466bfe5dae180ee0/cc/test/test_in_process_context_provider.cc
[modify] https://crrev.com/aeb4bd70e4321ad41ac16ed9466bfe5dae180ee0/components/viz/test/test_context_provider.cc
[modify] https://crrev.com/aeb4bd70e4321ad41ac16ed9466bfe5dae180ee0/gpu/command_buffer/build_raster_cmd_buffer.py
[modify] https://crrev.com/aeb4bd70e4321ad41ac16ed9466bfe5dae180ee0/gpu/command_buffer/client/raster_cmd_helper_autogen.h
[modify] https://crrev.com/aeb4bd70e4321ad41ac16ed9466bfe5dae180ee0/gpu/command_buffer/client/raster_implementation.cc
[modify] https://crrev.com/aeb4bd70e4321ad41ac16ed9466bfe5dae180ee0/gpu/command_buffer/client/raster_implementation.h
[modify] https://crrev.com/aeb4bd70e4321ad41ac16ed9466bfe5dae180ee0/gpu/command_buffer/client/raster_implementation_autogen.h
[modify] https://crrev.com/aeb4bd70e4321ad41ac16ed9466bfe5dae180ee0/gpu/command_buffer/client/raster_implementation_gles.cc
[modify] https://crrev.com/aeb4bd70e4321ad41ac16ed9466bfe5dae180ee0/gpu/command_buffer/client/raster_implementation_gles.h
[modify] https://crrev.com/aeb4bd70e4321ad41ac16ed9466bfe5dae180ee0/gpu/command_buffer/client/raster_implementation_gles_unittest.cc
[modify] https://crrev.com/aeb4bd70e4321ad41ac16ed9466bfe5dae180ee0/gpu/command_buffer/client/raster_implementation_impl_autogen.h
[modify] https://crrev.com/aeb4bd70e4321ad41ac16ed9466bfe5dae180ee0/gpu/command_buffer/client/raster_implementation_unittest_autogen.h
[modify] https://crrev.com/aeb4bd70e4321ad41ac16ed9466bfe5dae180ee0/gpu/command_buffer/client/raster_interface.h
[modify] https://crrev.com/aeb4bd70e4321ad41ac16ed9466bfe5dae180ee0/gpu/command_buffer/client/raster_interface_autogen.h
[modify] https://crrev.com/aeb4bd70e4321ad41ac16ed9466bfe5dae180ee0/gpu/command_buffer/common/raster_cmd_format_autogen.h
[modify] https://crrev.com/aeb4bd70e4321ad41ac16ed9466bfe5dae180ee0/gpu/command_buffer/common/raster_cmd_format_test_autogen.h
[modify] https://crrev.com/aeb4bd70e4321ad41ac16ed9466bfe5dae180ee0/gpu/command_buffer/common/raster_cmd_ids_autogen.h
[modify] https://crrev.com/aeb4bd70e4321ad41ac16ed9466bfe5dae180ee0/gpu/command_buffer/raster_cmd_buffer_functions.txt
[modify] https://crrev.com/aeb4bd70e4321ad41ac16ed9466bfe5dae180ee0/gpu/command_buffer/service/raster_decoder.cc
[modify] https://crrev.com/aeb4bd70e4321ad41ac16ed9466bfe5dae180ee0/gpu/command_buffer/service/raster_decoder_autogen.h
[modify] https://crrev.com/aeb4bd70e4321ad41ac16ed9466bfe5dae180ee0/gpu/command_buffer/service/raster_decoder_unittest.cc
[modify] https://crrev.com/aeb4bd70e4321ad41ac16ed9466bfe5dae180ee0/gpu/command_buffer/service/raster_decoder_unittest_1_autogen.h
[modify] https://crrev.com/aeb4bd70e4321ad41ac16ed9466bfe5dae180ee0/gpu/command_buffer/service/raster_decoder_unittest_base.cc
[modify] https://crrev.com/aeb4bd70e4321ad41ac16ed9466bfe5dae180ee0/services/ws/public/cpp/gpu/context_provider_command_buffer.cc
[modify] https://crrev.com/aeb4bd70e4321ad41ac16ed9466bfe5dae180ee0/ui/compositor/test/in_process_context_provider.cc

Project Member

Comment 27 by bugdroid1@chromium.org, Jan 17 (6 days ago)

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9ddf6ac09b41512336d3cc815e09e26f8670d2ea

commit 9ddf6ac09b41512336d3cc815e09e26f8670d2ea
Author: Antoine Labour <piman@chromium.org>
Date: Thu Jan 17 01:59:39 2019

RasterDecoder: simplify CopySubTexture

CreateAndConsumeTextureINTERNAL and DeleteTexturesINTERNAL are only
used in combination with CopySubTexture, so we can merge all 3
commands into a single one. This in turns simplifies the service
side, as we don't need to create TextureRefs.

Bug: 829435
Change-Id: Ie5a616ea57c6dd92c5ac8854af92878bec20c271
Reviewed-on: https://chromium-review.googlesource.com/c/1413618
Commit-Queue: Antoine Labour <piman@chromium.org>
Reviewed-by: Jonathan Backer <backer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#623509}
[modify] https://crrev.com/9ddf6ac09b41512336d3cc815e09e26f8670d2ea/gpu/command_buffer/build_raster_cmd_buffer.py
[modify] https://crrev.com/9ddf6ac09b41512336d3cc815e09e26f8670d2ea/gpu/command_buffer/client/raster_cmd_helper_autogen.h
[modify] https://crrev.com/9ddf6ac09b41512336d3cc815e09e26f8670d2ea/gpu/command_buffer/client/raster_implementation.cc
[modify] https://crrev.com/9ddf6ac09b41512336d3cc815e09e26f8670d2ea/gpu/command_buffer/common/raster_cmd_format_autogen.h
[modify] https://crrev.com/9ddf6ac09b41512336d3cc815e09e26f8670d2ea/gpu/command_buffer/common/raster_cmd_format_test_autogen.h
[modify] https://crrev.com/9ddf6ac09b41512336d3cc815e09e26f8670d2ea/gpu/command_buffer/common/raster_cmd_ids_autogen.h
[modify] https://crrev.com/9ddf6ac09b41512336d3cc815e09e26f8670d2ea/gpu/command_buffer/raster_cmd_buffer_functions.txt
[modify] https://crrev.com/9ddf6ac09b41512336d3cc815e09e26f8670d2ea/gpu/command_buffer/service/copy_texture_chromium_mock.h
[modify] https://crrev.com/9ddf6ac09b41512336d3cc815e09e26f8670d2ea/gpu/command_buffer/service/decoder_context.h
[modify] https://crrev.com/9ddf6ac09b41512336d3cc815e09e26f8670d2ea/gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.cc
[modify] https://crrev.com/9ddf6ac09b41512336d3cc815e09e26f8670d2ea/gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.h
[modify] https://crrev.com/9ddf6ac09b41512336d3cc815e09e26f8670d2ea/gpu/command_buffer/service/gles2_cmd_decoder.cc
[modify] https://crrev.com/9ddf6ac09b41512336d3cc815e09e26f8670d2ea/gpu/command_buffer/service/gles2_cmd_decoder_mock.h
[modify] https://crrev.com/9ddf6ac09b41512336d3cc815e09e26f8670d2ea/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc
[modify] https://crrev.com/9ddf6ac09b41512336d3cc815e09e26f8670d2ea/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.h
[modify] https://crrev.com/9ddf6ac09b41512336d3cc815e09e26f8670d2ea/gpu/command_buffer/service/gles2_cmd_srgb_converter.cc
[modify] https://crrev.com/9ddf6ac09b41512336d3cc815e09e26f8670d2ea/gpu/command_buffer/service/gles2_cmd_srgb_converter.h
[modify] https://crrev.com/9ddf6ac09b41512336d3cc815e09e26f8670d2ea/gpu/command_buffer/service/raster_decoder.cc
[modify] https://crrev.com/9ddf6ac09b41512336d3cc815e09e26f8670d2ea/gpu/command_buffer/service/raster_decoder_autogen.h
[modify] https://crrev.com/9ddf6ac09b41512336d3cc815e09e26f8670d2ea/gpu/command_buffer/service/raster_decoder_mock.h
[modify] https://crrev.com/9ddf6ac09b41512336d3cc815e09e26f8670d2ea/gpu/command_buffer/service/raster_decoder_unittest.cc
[modify] https://crrev.com/9ddf6ac09b41512336d3cc815e09e26f8670d2ea/gpu/command_buffer/service/raster_decoder_unittest_base.cc
[modify] https://crrev.com/9ddf6ac09b41512336d3cc815e09e26f8670d2ea/gpu/command_buffer/service/raster_decoder_unittest_base.h
[modify] https://crrev.com/9ddf6ac09b41512336d3cc815e09e26f8670d2ea/gpu/command_buffer/service/raster_decoder_unittest_context_lost.cc
[modify] https://crrev.com/9ddf6ac09b41512336d3cc815e09e26f8670d2ea/gpu/command_buffer/service/texture_manager.cc
[modify] https://crrev.com/9ddf6ac09b41512336d3cc815e09e26f8670d2ea/gpu/command_buffer/service/texture_manager.h
[modify] https://crrev.com/9ddf6ac09b41512336d3cc815e09e26f8670d2ea/gpu/command_buffer/service/webgpu_decoder.cc

Project Member

Comment 28 by bugdroid1@chromium.org, Jan 17 (5 days ago)

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/628d73f8129a038eb932a0e1ad80055027451db0

commit 628d73f8129a038eb932a0e1ad80055027451db0
Author: Jonathan Backer <backer@chromium.org>
Date: Thu Jan 17 17:34:18 2019

Use RasterDecoder with passthrough decoding

Notable changes:

- added --enable-passthrough-raster-decoder so that we can prevent
  malicious clients from enabling RasterDecoder with passthrough
  decoding until we've fuzzed it

- modify feature detection to disallow OOP-R for passthrough unless
  --enable-passthrough-raster-decoder

- support one copy raster & OOP-R with RasterDecoder

Only tested on Linux so far. These additional flags will make it run on
Linux chrome:

  --use-gl=angle --use-angle=gl --use-cmd-decoder=passthrough
  --enable-passthrough-raster-decoder

Bug: 829435
Change-Id: I90cbec485e8c4fa9a353e893aa8922d29d652515
Reviewed-on: https://chromium-review.googlesource.com/c/1403977
Reviewed-by: Ken Buchanan <kenrb@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Commit-Queue: Jonathan Backer <backer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#623738}
[modify] https://crrev.com/628d73f8129a038eb932a0e1ad80055027451db0/content/browser/renderer_host/render_process_host_impl.cc
[modify] https://crrev.com/628d73f8129a038eb932a0e1ad80055027451db0/content/public/browser/gpu_utils.cc
[modify] https://crrev.com/628d73f8129a038eb932a0e1ad80055027451db0/gpu/command_buffer/service/gpu_switches.cc
[modify] https://crrev.com/628d73f8129a038eb932a0e1ad80055027451db0/gpu/command_buffer/service/gpu_switches.h
[modify] https://crrev.com/628d73f8129a038eb932a0e1ad80055027451db0/gpu/command_buffer/service/gr_cache_controller_unittest.cc
[modify] https://crrev.com/628d73f8129a038eb932a0e1ad80055027451db0/gpu/command_buffer/service/raster_decoder.cc
[modify] https://crrev.com/628d73f8129a038eb932a0e1ad80055027451db0/gpu/command_buffer/service/raster_decoder_context_state.cc
[modify] https://crrev.com/628d73f8129a038eb932a0e1ad80055027451db0/gpu/command_buffer/service/raster_decoder_context_state.h
[modify] https://crrev.com/628d73f8129a038eb932a0e1ad80055027451db0/gpu/command_buffer/service/raster_decoder_unittest.cc
[modify] https://crrev.com/628d73f8129a038eb932a0e1ad80055027451db0/gpu/command_buffer/service/raster_decoder_unittest_base.cc
[modify] https://crrev.com/628d73f8129a038eb932a0e1ad80055027451db0/gpu/command_buffer/service/shared_image_backing_factory_ahardwarebuffer_unittest.cc
[modify] https://crrev.com/628d73f8129a038eb932a0e1ad80055027451db0/gpu/command_buffer/service/shared_image_backing_factory_gl_texture_unittest.cc
[modify] https://crrev.com/628d73f8129a038eb932a0e1ad80055027451db0/gpu/command_buffer/tests/fuzzer_main.cc
[modify] https://crrev.com/628d73f8129a038eb932a0e1ad80055027451db0/gpu/config/gpu_preferences.h
[modify] https://crrev.com/628d73f8129a038eb932a0e1ad80055027451db0/gpu/config/gpu_util.cc
[modify] https://crrev.com/628d73f8129a038eb932a0e1ad80055027451db0/gpu/ipc/common/gpu_preferences.mojom
[modify] https://crrev.com/628d73f8129a038eb932a0e1ad80055027451db0/gpu/ipc/common/gpu_preferences_struct_traits.h
[modify] https://crrev.com/628d73f8129a038eb932a0e1ad80055027451db0/gpu/ipc/in_process_command_buffer.cc
[modify] https://crrev.com/628d73f8129a038eb932a0e1ad80055027451db0/gpu/ipc/service/gpu_channel.cc
[modify] https://crrev.com/628d73f8129a038eb932a0e1ad80055027451db0/gpu/ipc/service/gpu_channel_manager.cc
[modify] https://crrev.com/628d73f8129a038eb932a0e1ad80055027451db0/gpu/ipc/service/raster_command_buffer_stub.cc
[modify] https://crrev.com/628d73f8129a038eb932a0e1ad80055027451db0/services/ws/public/cpp/gpu/context_provider_command_buffer.cc

Sign in to add a comment