New issue
Advanced search Search tips

Issue 789238 link

Starred by 3 users

Issue metadata

Status: Fixed
Owner:
Closed: Jun 2018
Cc:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Feature

Blocked on:
issue 828578
issue 829469

Blocking:
issue 877133
issue 757607



Sign in to add a comment

Use RasterDecoder instead of GLES2Decoder for oop-rasterization

Project Member Reported by backer@chromium.org, Nov 28 2017

Issue description

With OOP-R, most renderers will no longer issue raw GL. Rather, they will send higher level PaintOps that the GPU process will convert to GL and execute. Renderers will use RasterInterface on the client side to do this.  This FR is to implement a corresponding RasterDecoder/RasterStub on the service side.

WIP design doc is here: https://goo.gl/pctyPB

This is related to  crbug.com/757607 

 
Project Member

Comment 1 by bugdroid1@chromium.org, Nov 28 2017

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

commit d6b68e0cb043977ea2bcac176ba7eaf9738e79de
Author: Jonathan Backer <backer@chromium.org>
Date: Tue Nov 28 21:48:21 2017

Plumb through --enable-raster-decoder

For OOP-R, we will eventually have a separate decoder that only handles RasterInterface
(http://crrev.com/c/778242 and https://goo.gl/Qy3aPL), which is a subset of what
a GLES2Decoder handles. This new RasterDecoder will be simpler than a GLES2Decoder and will
eventually evolve into something less GL-like.

This CL adds a new temporary flag to ease development. In following CLs,
--enable-raster-decoder will create a RasterDecoder instead of a GLES2Decoder whenever
a client requests OOP-R (--enable-gpu-rasterization --enable-oop-rasterization from
the command line).

This plumbs through a flag and adds a VLOG where we make the decision to create
a GLES2Decoder.

Bug:  789238 
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: I1c37ecf2372f6770369ee0618fc221ba7f4b9ef9
Reviewed-on: https://chromium-review.googlesource.com/793985
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Victor Miura <vmiura@chromium.org>
Commit-Queue: Jonathan Backer <backer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#519856}
[modify] https://crrev.com/d6b68e0cb043977ea2bcac176ba7eaf9738e79de/content/public/browser/gpu_utils.cc
[modify] https://crrev.com/d6b68e0cb043977ea2bcac176ba7eaf9738e79de/gpu/command_buffer/service/gpu_preferences.h
[modify] https://crrev.com/d6b68e0cb043977ea2bcac176ba7eaf9738e79de/gpu/command_buffer/service/gpu_switches.cc
[modify] https://crrev.com/d6b68e0cb043977ea2bcac176ba7eaf9738e79de/gpu/command_buffer/service/gpu_switches.h
[modify] https://crrev.com/d6b68e0cb043977ea2bcac176ba7eaf9738e79de/gpu/ipc/common/gpu_preferences.mojom
[modify] https://crrev.com/d6b68e0cb043977ea2bcac176ba7eaf9738e79de/gpu/ipc/common/gpu_preferences_struct_traits.h
[modify] https://crrev.com/d6b68e0cb043977ea2bcac176ba7eaf9738e79de/gpu/ipc/service/gpu_channel.cc

Project Member

Comment 2 by bugdroid1@chromium.org, Dec 5 2017

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

commit b45f07cc434e5bf651669020390a78e68fc782e7
Author: Jonathan Backer <backer@chromium.org>
Date: Tue Dec 05 13:58:26 2017

Rename GpuCommandBufferStub to CommandBufferStub

This is part of a larger refactoring. The overall call is to have two Stub
implementations in the GPU process:
- a RasterInterface client will have a RasterCmdBuffStub on the server side and
- a GLES2Interface client will have a GLES2CmdBuffStub on the server side

Rationale for having different stubs are that they are coupled to the decoder,
context, and scheduling. In the future, the RasterInterface backend will diverge
from the GLES2Interface backed in these respects.

Step 1: Create CommandBufferStub class.
Step 2 (separate CL): Have GLES2CmdBuffStub and RasterCmdBuffStub inherit from
CommandBufferStub (see crrev.com/c/796951 for WIP patch).

BUG= 789238 

Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: Ic15f80bed7fc0e7e4637832378e6502a77568c73
Reviewed-on: https://chromium-review.googlesource.com/806719
Commit-Queue: Jonathan Backer <backer@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Frank Liberato <liberato@chromium.org>
Cr-Commit-Position: refs/heads/master@{#521683}
[modify] https://crrev.com/b45f07cc434e5bf651669020390a78e68fc782e7/content/browser/renderer_host/compositor_impl_android.cc
[modify] https://crrev.com/b45f07cc434e5bf651669020390a78e68fc782e7/gpu/ipc/common/gpu_messages.h
[modify] https://crrev.com/b45f07cc434e5bf651669020390a78e68fc782e7/gpu/ipc/service/BUILD.gn
[rename] https://crrev.com/b45f07cc434e5bf651669020390a78e68fc782e7/gpu/ipc/service/command_buffer_stub.cc
[rename] https://crrev.com/b45f07cc434e5bf651669020390a78e68fc782e7/gpu/ipc/service/command_buffer_stub.h
[modify] https://crrev.com/b45f07cc434e5bf651669020390a78e68fc782e7/gpu/ipc/service/gpu_channel.cc
[modify] https://crrev.com/b45f07cc434e5bf651669020390a78e68fc782e7/gpu/ipc/service/gpu_channel.h
[modify] https://crrev.com/b45f07cc434e5bf651669020390a78e68fc782e7/gpu/ipc/service/gpu_channel_manager.cc
[modify] https://crrev.com/b45f07cc434e5bf651669020390a78e68fc782e7/gpu/ipc/service/gpu_channel_manager_unittest.cc
[modify] https://crrev.com/b45f07cc434e5bf651669020390a78e68fc782e7/gpu/ipc/service/gpu_channel_unittest.cc
[modify] https://crrev.com/b45f07cc434e5bf651669020390a78e68fc782e7/gpu/ipc/service/image_transport_surface_overlay_mac.h
[modify] https://crrev.com/b45f07cc434e5bf651669020390a78e68fc782e7/gpu/ipc/service/stream_texture_android.cc
[modify] https://crrev.com/b45f07cc434e5bf651669020390a78e68fc782e7/gpu/ipc/service/stream_texture_android.h
[modify] https://crrev.com/b45f07cc434e5bf651669020390a78e68fc782e7/media/gpu/android/video_frame_factory.h
[modify] https://crrev.com/b45f07cc434e5bf651669020390a78e68fc782e7/media/gpu/android/video_frame_factory_impl.cc
[modify] https://crrev.com/b45f07cc434e5bf651669020390a78e68fc782e7/media/gpu/android/video_frame_factory_impl.h
[modify] https://crrev.com/b45f07cc434e5bf651669020390a78e68fc782e7/media/gpu/ipc/service/gpu_video_decode_accelerator.cc
[modify] https://crrev.com/b45f07cc434e5bf651669020390a78e68fc782e7/media/gpu/ipc/service/gpu_video_decode_accelerator.h
[modify] https://crrev.com/b45f07cc434e5bf651669020390a78e68fc782e7/media/gpu/ipc/service/gpu_video_encode_accelerator.cc
[modify] https://crrev.com/b45f07cc434e5bf651669020390a78e68fc782e7/media/gpu/ipc/service/gpu_video_encode_accelerator.h
[modify] https://crrev.com/b45f07cc434e5bf651669020390a78e68fc782e7/media/gpu/ipc/service/media_gpu_channel.cc
[modify] https://crrev.com/b45f07cc434e5bf651669020390a78e68fc782e7/media/gpu/windows/d3d11_video_decoder.cc
[modify] https://crrev.com/b45f07cc434e5bf651669020390a78e68fc782e7/media/gpu/windows/d3d11_video_decoder.h
[modify] https://crrev.com/b45f07cc434e5bf651669020390a78e68fc782e7/media/gpu/windows/d3d11_video_decoder_impl.cc
[modify] https://crrev.com/b45f07cc434e5bf651669020390a78e68fc782e7/media/gpu/windows/d3d11_video_decoder_impl.h
[modify] https://crrev.com/b45f07cc434e5bf651669020390a78e68fc782e7/media/mojo/interfaces/video_decoder.mojom
[modify] https://crrev.com/b45f07cc434e5bf651669020390a78e68fc782e7/media/mojo/services/gpu_mojo_media_client.cc

Project Member

Comment 3 by bugdroid1@chromium.org, Dec 5 2017

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

commit be0b63aac1a518cf1c68c5c20c9cd97671a79479
Author: Jonathan Backer <backer@chromium.org>
Date: Tue Dec 05 20:40:41 2017

Separate CommandBufferStub into {GLES2,Raster}CommanddBufferStub

This CL is part of the effort to have a separate RasterInterface implementation
in the the GPU process. After this CL, --enable-raster-decoder will cause
- a RasterInterface client to have a RasterCmdBuffStub on the server side and
- a GLES2Interface client to have a GLES2CmdBuffStub on the server side

With this CL, RasterCmdBuffStub and GLES2CmdBuffStub only differ in that
RasterCmdBuffStub insists on being associated with an offscreen context.

In the future, {Raster,GLES2}CmdBuffStub will diverge. Soon RasterCmdBuffStub
will have a special RasterDecoder decoder.

Bug:  789238 
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: I313868192ccbd1c17c102ae1bb91c46a528b178d
Reviewed-on: https://chromium-review.googlesource.com/796951
Reviewed-by: Victor Miura <vmiura@chromium.org>
Commit-Queue: Jonathan Backer <backer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#521816}
[modify] https://crrev.com/be0b63aac1a518cf1c68c5c20c9cd97671a79479/gpu/ipc/service/BUILD.gn
[modify] https://crrev.com/be0b63aac1a518cf1c68c5c20c9cd97671a79479/gpu/ipc/service/command_buffer_stub.cc
[modify] https://crrev.com/be0b63aac1a518cf1c68c5c20c9cd97671a79479/gpu/ipc/service/command_buffer_stub.h
[add] https://crrev.com/be0b63aac1a518cf1c68c5c20c9cd97671a79479/gpu/ipc/service/gles2_command_buffer_stub.cc
[add] https://crrev.com/be0b63aac1a518cf1c68c5c20c9cd97671a79479/gpu/ipc/service/gles2_command_buffer_stub.h
[modify] https://crrev.com/be0b63aac1a518cf1c68c5c20c9cd97671a79479/gpu/ipc/service/gpu_channel.cc
[modify] https://crrev.com/be0b63aac1a518cf1c68c5c20c9cd97671a79479/gpu/ipc/service/image_transport_surface_overlay_mac.mm
[add] https://crrev.com/be0b63aac1a518cf1c68c5c20c9cd97671a79479/gpu/ipc/service/raster_command_buffer_stub.cc
[add] https://crrev.com/be0b63aac1a518cf1c68c5c20c9cd97671a79479/gpu/ipc/service/raster_command_buffer_stub.h

Comment 4 by vmi...@chromium.org, Dec 13 2017

Blocking: 757607
Project Member

Comment 5 by bugdroid1@chromium.org, Dec 18 2017

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

commit 7f90dfb66aff2d725006318a06370416efa50a7f
Author: Jonathan Backer <backer@chromium.org>
Date: Mon Dec 18 16:52:04 2017

Stub out the RasterDecoder

If you patch in https://pastebin.com/k1MTXxYt, this is enough to get poster circle "running" with black tiles.

The magic set of flags to run with this stub are:
--enable-gpu-rasterization --enable-oop-rasterization --enable-gpu-async-worker-context --enable-raster-decoder

Sample LOGs from stub: https://pastebin.com/48sGk6cM

BUG= 789238 

Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: I5ce826f68acdfb7ca23a2fb7698d156bf1a7505c
Reviewed-on: https://chromium-review.googlesource.com/820150
Commit-Queue: Jonathan Backer <backer@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Victor Miura <vmiura@chromium.org>
Cr-Commit-Position: refs/heads/master@{#524728}
[modify] https://crrev.com/7f90dfb66aff2d725006318a06370416efa50a7f/gpu/command_buffer/service/BUILD.gn
[modify] https://crrev.com/7f90dfb66aff2d725006318a06370416efa50a7f/gpu/command_buffer/service/gl_utils.h
[add] https://crrev.com/7f90dfb66aff2d725006318a06370416efa50a7f/gpu/command_buffer/service/raster_decoder.cc
[add] https://crrev.com/7f90dfb66aff2d725006318a06370416efa50a7f/gpu/command_buffer/service/raster_decoder.h
[modify] https://crrev.com/7f90dfb66aff2d725006318a06370416efa50a7f/gpu/ipc/service/raster_command_buffer_stub.cc

Project Member

Comment 6 by bugdroid1@chromium.org, Dec 19 2017

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

commit 7472604eab2f6cbfda675947bfdf99d6a8c0b4e5
Author: Jonathan Backer <backer@chromium.org>
Date: Tue Dec 19 18:16:09 2017

Return ContextGroup instead of GLES2Decoder

As part of  crbug.com/789238 , I'm creating a new type of decoder
called a RasterDecoder that is different from a GLES2Decoder.

AFAICT, VDA just uses TextureManager (which is part of the
ContextGroup), not the full GLES2Decoder.

In this CL, I opted to return a ContextGroup instead of a
TextureManager because it indicates that it is accessing the
state for everything in the share group. But I'm happy to change
this.

TESTED=presubmits

Bug:  789238 
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: I0248a477ace75e9fb76425bef1f92bfd9dd8f5a3
Reviewed-on: https://chromium-review.googlesource.com/832707
Reviewed-by: Frank Liberato <liberato@chromium.org>
Commit-Queue: Jonathan Backer <backer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#525085}
[modify] https://crrev.com/7472604eab2f6cbfda675947bfdf99d6a8c0b4e5/media/gpu/android/android_video_decode_accelerator.cc
[modify] https://crrev.com/7472604eab2f6cbfda675947bfdf99d6a8c0b4e5/media/gpu/android/android_video_decode_accelerator.h
[modify] https://crrev.com/7472604eab2f6cbfda675947bfdf99d6a8c0b4e5/media/gpu/android/android_video_decode_accelerator_unittest.cc
[modify] https://crrev.com/7472604eab2f6cbfda675947bfdf99d6a8c0b4e5/media/gpu/android/avda_picture_buffer_manager.cc
[modify] https://crrev.com/7472604eab2f6cbfda675947bfdf99d6a8c0b4e5/media/gpu/android/avda_state_provider.h
[modify] https://crrev.com/7472604eab2f6cbfda675947bfdf99d6a8c0b4e5/media/gpu/gpu_video_decode_accelerator_factory.cc
[modify] https://crrev.com/7472604eab2f6cbfda675947bfdf99d6a8c0b4e5/media/gpu/gpu_video_decode_accelerator_factory.h
[modify] https://crrev.com/7472604eab2f6cbfda675947bfdf99d6a8c0b4e5/media/gpu/gpu_video_decode_accelerator_helpers.h
[modify] https://crrev.com/7472604eab2f6cbfda675947bfdf99d6a8c0b4e5/media/gpu/ipc/service/gpu_video_decode_accelerator.cc
[modify] https://crrev.com/7472604eab2f6cbfda675947bfdf99d6a8c0b4e5/media/gpu/ipc/service/gpu_video_decode_accelerator.h

Project Member

Comment 7 by bugdroid1@chromium.org, Jan 9 2018

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

commit 1d807a476d299b73cadec96d7561e8aba75cb966
Author: Jonathan Backer <backer@chromium.org>
Date: Tue Jan 09 14:56:42 2018

Pull out DecoderContext for GLES2Decoder dependencies

Following piman@ advice on a separate CL, I pulled out the
explicit dependencies into a new DecoderContext that
GLES2Decoder and RasterDecoder implement. This allowed me to
drop many unnecessary NOTIMPLEMENTED() from RasterDecoder.

I've commented in DecoderContext where the dependencies
come from. I'd like to follow up on removing/resolving them
in separate follow on CLs.

Bug:  789238 
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: Ic6dbf979641ada7bbfb06ac234dac2808ca99ceb
Reviewed-on: https://chromium-review.googlesource.com/836932
Commit-Queue: Jonathan Backer <backer@chromium.org>
Reviewed-by: Frank Liberato <liberato@chromium.org>
Reviewed-by: Victor Miura <vmiura@chromium.org>
Cr-Commit-Position: refs/heads/master@{#527990}
[modify] https://crrev.com/1d807a476d299b73cadec96d7561e8aba75cb966/gpu/command_buffer/service/BUILD.gn
[modify] https://crrev.com/1d807a476d299b73cadec96d7561e8aba75cb966/gpu/command_buffer/service/command_buffer_direct.h
[modify] https://crrev.com/1d807a476d299b73cadec96d7561e8aba75cb966/gpu/command_buffer/service/context_group.cc
[modify] https://crrev.com/1d807a476d299b73cadec96d7561e8aba75cb966/gpu/command_buffer/service/context_group.h
[add] https://crrev.com/1d807a476d299b73cadec96d7561e8aba75cb966/gpu/command_buffer/service/decoder_client.h
[add] https://crrev.com/1d807a476d299b73cadec96d7561e8aba75cb966/gpu/command_buffer/service/decoder_context.h
[modify] https://crrev.com/1d807a476d299b73cadec96d7561e8aba75cb966/gpu/command_buffer/service/gl_context_virtual.cc
[modify] https://crrev.com/1d807a476d299b73cadec96d7561e8aba75cb966/gpu/command_buffer/service/gl_context_virtual.h
[modify] https://crrev.com/1d807a476d299b73cadec96d7561e8aba75cb966/gpu/command_buffer/service/gl_state_restorer_impl.cc
[modify] https://crrev.com/1d807a476d299b73cadec96d7561e8aba75cb966/gpu/command_buffer/service/gl_state_restorer_impl.h
[modify] https://crrev.com/1d807a476d299b73cadec96d7561e8aba75cb966/gpu/command_buffer/service/gles2_cmd_decoder.cc
[modify] https://crrev.com/1d807a476d299b73cadec96d7561e8aba75cb966/gpu/command_buffer/service/gles2_cmd_decoder.h
[modify] https://crrev.com/1d807a476d299b73cadec96d7561e8aba75cb966/gpu/command_buffer/service/gles2_cmd_decoder_mock.cc
[modify] https://crrev.com/1d807a476d299b73cadec96d7561e8aba75cb966/gpu/command_buffer/service/gles2_cmd_decoder_mock.h
[modify] https://crrev.com/1d807a476d299b73cadec96d7561e8aba75cb966/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc
[modify] https://crrev.com/1d807a476d299b73cadec96d7561e8aba75cb966/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.h
[modify] https://crrev.com/1d807a476d299b73cadec96d7561e8aba75cb966/gpu/command_buffer/service/gles2_cmd_decoder_passthrough_doers.cc
[modify] https://crrev.com/1d807a476d299b73cadec96d7561e8aba75cb966/gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.h
[modify] https://crrev.com/1d807a476d299b73cadec96d7561e8aba75cb966/gpu/command_buffer/service/logger.cc
[modify] https://crrev.com/1d807a476d299b73cadec96d7561e8aba75cb966/gpu/command_buffer/service/logger.h
[modify] https://crrev.com/1d807a476d299b73cadec96d7561e8aba75cb966/gpu/command_buffer/service/memory_program_cache.cc
[modify] https://crrev.com/1d807a476d299b73cadec96d7561e8aba75cb966/gpu/command_buffer/service/memory_program_cache.h
[modify] https://crrev.com/1d807a476d299b73cadec96d7561e8aba75cb966/gpu/command_buffer/service/memory_program_cache_unittest.cc
[modify] https://crrev.com/1d807a476d299b73cadec96d7561e8aba75cb966/gpu/command_buffer/service/mocks.h
[modify] https://crrev.com/1d807a476d299b73cadec96d7561e8aba75cb966/gpu/command_buffer/service/passthrough_program_cache.cc
[modify] https://crrev.com/1d807a476d299b73cadec96d7561e8aba75cb966/gpu/command_buffer/service/passthrough_program_cache.h
[modify] https://crrev.com/1d807a476d299b73cadec96d7561e8aba75cb966/gpu/command_buffer/service/program_cache.h
[modify] https://crrev.com/1d807a476d299b73cadec96d7561e8aba75cb966/gpu/command_buffer/service/program_cache_unittest.cc
[modify] https://crrev.com/1d807a476d299b73cadec96d7561e8aba75cb966/gpu/command_buffer/service/program_manager.cc
[modify] https://crrev.com/1d807a476d299b73cadec96d7561e8aba75cb966/gpu/command_buffer/service/program_manager.h
[modify] https://crrev.com/1d807a476d299b73cadec96d7561e8aba75cb966/gpu/command_buffer/service/program_manager_unittest.cc
[modify] https://crrev.com/1d807a476d299b73cadec96d7561e8aba75cb966/gpu/command_buffer/service/raster_decoder.cc
[modify] https://crrev.com/1d807a476d299b73cadec96d7561e8aba75cb966/gpu/command_buffer/service/raster_decoder.h
[modify] https://crrev.com/1d807a476d299b73cadec96d7561e8aba75cb966/gpu/ipc/in_process_command_buffer.h
[modify] https://crrev.com/1d807a476d299b73cadec96d7561e8aba75cb966/gpu/ipc/service/command_buffer_stub.cc
[modify] https://crrev.com/1d807a476d299b73cadec96d7561e8aba75cb966/gpu/ipc/service/command_buffer_stub.h
[modify] https://crrev.com/1d807a476d299b73cadec96d7561e8aba75cb966/gpu/ipc/service/gles2_command_buffer_stub.cc
[modify] https://crrev.com/1d807a476d299b73cadec96d7561e8aba75cb966/gpu/ipc/service/gpu_channel.cc
[modify] https://crrev.com/1d807a476d299b73cadec96d7561e8aba75cb966/gpu/ipc/service/gpu_channel_manager.cc
[modify] https://crrev.com/1d807a476d299b73cadec96d7561e8aba75cb966/gpu/ipc/service/raster_command_buffer_stub.cc
[modify] https://crrev.com/1d807a476d299b73cadec96d7561e8aba75cb966/gpu/ipc/service/raster_command_buffer_stub.h
[modify] https://crrev.com/1d807a476d299b73cadec96d7561e8aba75cb966/gpu/ipc/service/stream_texture_android.cc
[modify] https://crrev.com/1d807a476d299b73cadec96d7561e8aba75cb966/media/gpu/android/video_frame_factory_impl.cc
[modify] https://crrev.com/1d807a476d299b73cadec96d7561e8aba75cb966/media/gpu/gles2_decoder_helper.cc
[modify] https://crrev.com/1d807a476d299b73cadec96d7561e8aba75cb966/media/gpu/gles2_decoder_helper.h
[modify] https://crrev.com/1d807a476d299b73cadec96d7561e8aba75cb966/media/gpu/ipc/service/gpu_video_decode_accelerator.cc

Project Member

Comment 8 by bugdroid1@chromium.org, Jan 9 2018

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

commit 4d9fb08430a1f94e315dd0ab79c42ae3f998ba99
Author: Jonathan Backer <backer@chromium.org>
Date: Tue Jan 09 20:50:39 2018

Make front buffer manipulation NOTREACHED

RasterInterface clients should not be manipulating the front buffer:
they don't draw, they just raster.

BUG= 789238 

Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: Iea7dd1ca362ed4d2f9261b16f48def7ea2b29e30
Reviewed-on: https://chromium-review.googlesource.com/857340
Reviewed-by: Victor Miura <vmiura@chromium.org>
Commit-Queue: Jonathan Backer <backer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#528096}
[modify] https://crrev.com/4d9fb08430a1f94e315dd0ab79c42ae3f998ba99/gpu/command_buffer/service/decoder_context.h
[modify] https://crrev.com/4d9fb08430a1f94e315dd0ab79c42ae3f998ba99/gpu/command_buffer/service/gles2_cmd_decoder.h
[modify] https://crrev.com/4d9fb08430a1f94e315dd0ab79c42ae3f998ba99/gpu/command_buffer/service/raster_decoder.cc
[modify] https://crrev.com/4d9fb08430a1f94e315dd0ab79c42ae3f998ba99/gpu/command_buffer/service/raster_decoder.h
[modify] https://crrev.com/4d9fb08430a1f94e315dd0ab79c42ae3f998ba99/gpu/ipc/service/command_buffer_stub.cc
[modify] https://crrev.com/4d9fb08430a1f94e315dd0ab79c42ae3f998ba99/gpu/ipc/service/command_buffer_stub.h
[modify] https://crrev.com/4d9fb08430a1f94e315dd0ab79c42ae3f998ba99/gpu/ipc/service/gles2_command_buffer_stub.cc
[modify] https://crrev.com/4d9fb08430a1f94e315dd0ab79c42ae3f998ba99/gpu/ipc/service/gles2_command_buffer_stub.h
[modify] https://crrev.com/4d9fb08430a1f94e315dd0ab79c42ae3f998ba99/gpu/ipc/service/raster_command_buffer_stub.cc
[modify] https://crrev.com/4d9fb08430a1f94e315dd0ab79c42ae3f998ba99/gpu/ipc/service/raster_command_buffer_stub.h

Project Member

Comment 9 by bugdroid1@chromium.org, Jan 11 2018

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

commit 12a3441b8fbd6972c7f687257ce82ef9e71fdafa
Author: Jonathan Backer <backer@chromium.org>
Date: Thu Jan 11 19:02:54 2018

Pass ~/depot_tools/pylint gpu/command_buffer/build_gles2_cmd_buffer.py

Fixes multiple issues. Most were one of these categories:
- unimplemented pure virtual (throws NotImplemented): added stub override
- unused method args: prepended _ which is consistent with other parts of
  codebase
- arguments and variables with same name as keywords (var, type): renamed

Tested by running:

$ python gpu/command_buffer/build_gles2_cmd_buffer
$ git cl format
$ git status

And seeing that generated code is the same.

Bug:  789238 
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: Idfed377891864827e386b2d39888245bee477470
Reviewed-on: https://chromium-review.googlesource.com/861908
Reviewed-by: Antoine Labour <piman@chromium.org>
Commit-Queue: Jonathan Backer <backer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#528695}
[modify] https://crrev.com/12a3441b8fbd6972c7f687257ce82ef9e71fdafa/gpu/command_buffer/build_gles2_cmd_buffer.py

Project Member

Comment 10 by bugdroid1@chromium.org, Jan 17 2018

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

commit 16cd536f319b75ed2e67457f847ba29396817675
Author: Jonathan Backer <backer@chromium.org>
Date: Wed Jan 17 17:00:10 2018

Fix autoformat and pylint presubmit

Three changes

1) Use depot_tools/clang-format --- it's different from clang-format on
your workstation. This makes "python
gpu/command_buffer/build_gles2_cmd_buffer.py" idempotent.

2) Run pylint as a presubmit step to keep the autogen python scripts
clean.

3) Fix up pylint errors other than redefined-builtin

BUG= 789238 

Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: I69da2da0e5b5b1c65085a00806e3733b98b19a2e
Reviewed-on: https://chromium-review.googlesource.com/867470
Commit-Queue: Jonathan Backer <backer@chromium.org>
Reviewed-by: Victor Miura <vmiura@chromium.org>
Cr-Commit-Position: refs/heads/master@{#529777}
[modify] https://crrev.com/16cd536f319b75ed2e67457f847ba29396817675/gpu/PRESUBMIT.py
[modify] https://crrev.com/16cd536f319b75ed2e67457f847ba29396817675/gpu/command_buffer/build_gles2_cmd_buffer.py
[modify] https://crrev.com/16cd536f319b75ed2e67457f847ba29396817675/gpu/config/process_json.py
[modify] https://crrev.com/16cd536f319b75ed2e67457f847ba29396817675/gpu/khronos_glcts_support/generate_khronos_glcts_tests.py

Project Member

Comment 11 by bugdroid1@chromium.org, Jan 17 2018

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

commit fcb239c30b2ed2809f5362c22b61725e87205950
Author: Jonathan Backer <backer@chromium.org>
Date: Wed Jan 17 17:08:56 2018

Plumb thru globals

Rather than access globals all over the place, this CL plumbs through
_FUNCTION_INFO, _NAMED_TYPE_INFO, _STATE_INFO through the various
classes.

This is in preparation of separate follow on CLs:
(1) separating code and state into separate files
(2) reusing the code for raster command autogen.

Bug:  789238 
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: I436828f5a2792477524f62899421f7c7d34f2a15
Reviewed-on: https://chromium-review.googlesource.com/866995
Commit-Queue: Jonathan Backer <backer@chromium.org>
Reviewed-by: Victor Miura <vmiura@chromium.org>
Cr-Commit-Position: refs/heads/master@{#529781}
[modify] https://crrev.com/fcb239c30b2ed2809f5362c22b61725e87205950/gpu/command_buffer/build_gles2_cmd_buffer.py

Project Member

Comment 12 by bugdroid1@chromium.org, Jan 18 2018

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

commit d0d20fd065d6d295a68a891f3065033b441d7932
Author: Jonathan Backer <backer@chromium.org>
Date: Thu Jan 18 00:00:58 2018

Split out data and codegen.

No other changes in order to make the CL easier to review. No change to autogen output.

Bug:  789238 
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: Ib908c7ced194a73c1997bd866c8d6eb1ab45dd70
Reviewed-on: https://chromium-review.googlesource.com/867472
Reviewed-by: Victor Miura <vmiura@chromium.org>
Commit-Queue: Jonathan Backer <backer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#529957}
[add] https://crrev.com/d0d20fd065d6d295a68a891f3065033b441d7932/gpu/command_buffer/build_cmd_buffer_lib.py
[modify] https://crrev.com/d0d20fd065d6d295a68a891f3065033b441d7932/gpu/command_buffer/build_gles2_cmd_buffer.py

Project Member

Comment 13 by bugdroid1@chromium.org, Jan 22 2018

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

commit db0d67742ab10d325349bccdda4d1cf4779c1377
Author: Jonathan Backer <backer@chromium.org>
Date: Mon Jan 22 21:46:25 2018

Parse raster commands for autogen

Added raster_cmd_buffer_functions.txt to matches current usage of
raster_implementation_gles.cc

Renamed cmd_buffer_functions.txt to gles_cmd_buffer_functions.txt

Copied build_gles2_cmd_buffer.py to build_raster_cmd_buffer.py and
pared down the python dicts to remove unnecessary entries.

Commented out the actual autogen of raster code. Small fixups are
required. Will uncomment with fixups in later CLs.

Bug:  789238 
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: I08548650f45dff1580318cfdd01af16faaea2aa3
Reviewed-on: https://chromium-review.googlesource.com/878982
Reviewed-by: Victor Miura <vmiura@chromium.org>
Commit-Queue: Jonathan Backer <backer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#531007}
[modify] https://crrev.com/db0d67742ab10d325349bccdda4d1cf4779c1377/gpu/command_buffer/build_gles2_cmd_buffer.py
[add] https://crrev.com/db0d67742ab10d325349bccdda4d1cf4779c1377/gpu/command_buffer/build_raster_cmd_buffer.py
[rename] https://crrev.com/db0d67742ab10d325349bccdda4d1cf4779c1377/gpu/command_buffer/gles2_cmd_buffer_functions.txt
[add] https://crrev.com/db0d67742ab10d325349bccdda4d1cf4779c1377/gpu/command_buffer/raster_cmd_buffer_functions.txt

Project Member

Comment 14 by bugdroid1@chromium.org, Jan 24 2018

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

commit 228781fc5ce473e9e4e19bc8f13f21355907d69e
Author: Jonathan Backer <backer@chromium.org>
Date: Wed Jan 24 15:53:30 2018

Autogenerate some raster cmd buffer code

No changes to gles2 autogen code.

This CL autogenerates cmd_ids, cmd_format, and a unittest to check it
compiles.

I opted to use module globals in build_cmd_buffer_lib.py for prefixes
because the plumbing of prefixes was a lot of work and hurt
readability. I did not do that for year because it's possible that we'll
want different years in the copyright notices in the future.

I opted to reuse GLES2Utils instead of creating a new RasterUtils. Most
of this GLES2Utils is either inlined marshalling or converting enums to
strings. It is also entangled with code like TextureManager that we will
probably want raster decoder to use.

Bug:  789238 
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: Ibdaac3eb09785b285e238fbc4ffe235e3ab9e077
Reviewed-on: https://chromium-review.googlesource.com/881264
Commit-Queue: Jonathan Backer <backer@chromium.org>
Reviewed-by: Victor Miura <vmiura@chromium.org>
Cr-Commit-Position: refs/heads/master@{#531541}
[modify] https://crrev.com/228781fc5ce473e9e4e19bc8f13f21355907d69e/gpu/BUILD.gn
[modify] https://crrev.com/228781fc5ce473e9e4e19bc8f13f21355907d69e/gpu/command_buffer/build_cmd_buffer_lib.py
[modify] https://crrev.com/228781fc5ce473e9e4e19bc8f13f21355907d69e/gpu/command_buffer/build_gles2_cmd_buffer.py
[modify] https://crrev.com/228781fc5ce473e9e4e19bc8f13f21355907d69e/gpu/command_buffer/build_raster_cmd_buffer.py
[add] https://crrev.com/228781fc5ce473e9e4e19bc8f13f21355907d69e/gpu/command_buffer/common/raster_cmd_format.h
[add] https://crrev.com/228781fc5ce473e9e4e19bc8f13f21355907d69e/gpu/command_buffer/common/raster_cmd_format_autogen.h
[add] https://crrev.com/228781fc5ce473e9e4e19bc8f13f21355907d69e/gpu/command_buffer/common/raster_cmd_format_test.cc
[add] https://crrev.com/228781fc5ce473e9e4e19bc8f13f21355907d69e/gpu/command_buffer/common/raster_cmd_format_test_autogen.h
[add] https://crrev.com/228781fc5ce473e9e4e19bc8f13f21355907d69e/gpu/command_buffer/common/raster_cmd_ids.h
[add] https://crrev.com/228781fc5ce473e9e4e19bc8f13f21355907d69e/gpu/command_buffer/common/raster_cmd_ids_autogen.h

Project Member

Comment 15 by bugdroid1@chromium.org, Jan 25 2018

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

commit 7471b2785c694040b3f48eb180c1778fe6902e28
Author: Jonathan Backer <backer@chromium.org>
Date: Thu Jan 25 18:14:19 2018

Update raster_decoder.cc to use autogen

This uses the new raster specific command IDs and autogen of boilerplate
handler code.

All of the handlers are stubbed out with NOTIMPLEMENTED().

Compiles and links.

Bug:  789238 
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: I791f1105d191197628273beaf0c6aa46c0c4b763
Reviewed-on: https://chromium-review.googlesource.com/884205
Commit-Queue: Jonathan Backer <backer@chromium.org>
Reviewed-by: Victor Miura <vmiura@chromium.org>
Cr-Commit-Position: refs/heads/master@{#531947}
[modify] https://crrev.com/7471b2785c694040b3f48eb180c1778fe6902e28/gpu/command_buffer/build_cmd_buffer_lib.py
[modify] https://crrev.com/7471b2785c694040b3f48eb180c1778fe6902e28/gpu/command_buffer/build_raster_cmd_buffer.py
[add] https://crrev.com/7471b2785c694040b3f48eb180c1778fe6902e28/gpu/command_buffer/service/raster_cmd_decoder_autogen.h
[modify] https://crrev.com/7471b2785c694040b3f48eb180c1778fe6902e28/gpu/command_buffer/service/raster_decoder.cc
[modify] https://crrev.com/7471b2785c694040b3f48eb180c1778fe6902e28/gpu/command_buffer/service/raster_decoder.h
[modify] https://crrev.com/7471b2785c694040b3f48eb180c1778fe6902e28/gpu/ipc/service/raster_command_buffer_stub.cc

Project Member

Comment 16 by bugdroid1@chromium.org, Jan 31 2018

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

commit a4568da19b09fe70e0d0c1fe4d7b2a465c58ce90
Author: Jonathan Backer <backer@chromium.org>
Date: Wed Jan 31 16:25:04 2018

Add RasterDecoder autogen unittests

This CL adds a few things:
- autogenerated unittests
- associated mocks
- associated test drivers
- enough implementation in raster_decoder.cc to make the tests pass

No changes to GLES2 autogen.

Bug:  789238 
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: Iac2ee4922a21f3bd11ff58693e2e5fb1fe26bd45
Reviewed-on: https://chromium-review.googlesource.com/891988
Commit-Queue: Jonathan Backer <backer@chromium.org>
Reviewed-by: Victor Miura <vmiura@chromium.org>
Cr-Commit-Position: refs/heads/master@{#533291}
[modify] https://crrev.com/a4568da19b09fe70e0d0c1fe4d7b2a465c58ce90/gpu/BUILD.gn
[modify] https://crrev.com/a4568da19b09fe70e0d0c1fe4d7b2a465c58ce90/gpu/command_buffer/build_cmd_buffer_lib.py
[modify] https://crrev.com/a4568da19b09fe70e0d0c1fe4d7b2a465c58ce90/gpu/command_buffer/build_raster_cmd_buffer.py
[modify] https://crrev.com/a4568da19b09fe70e0d0c1fe4d7b2a465c58ce90/gpu/command_buffer/common/BUILD.gn
[add] https://crrev.com/a4568da19b09fe70e0d0c1fe4d7b2a465c58ce90/gpu/command_buffer/common/raster_cmd_format.cc
[modify] https://crrev.com/a4568da19b09fe70e0d0c1fe4d7b2a465c58ce90/gpu/command_buffer/service/raster_decoder.cc
[modify] https://crrev.com/a4568da19b09fe70e0d0c1fe4d7b2a465c58ce90/gpu/command_buffer/service/raster_decoder.h
[add] https://crrev.com/a4568da19b09fe70e0d0c1fe4d7b2a465c58ce90/gpu/command_buffer/service/raster_decoder_autogen.h
[add] https://crrev.com/a4568da19b09fe70e0d0c1fe4d7b2a465c58ce90/gpu/command_buffer/service/raster_decoder_mock.cc
[add] https://crrev.com/a4568da19b09fe70e0d0c1fe4d7b2a465c58ce90/gpu/command_buffer/service/raster_decoder_mock.h
[add] https://crrev.com/a4568da19b09fe70e0d0c1fe4d7b2a465c58ce90/gpu/command_buffer/service/raster_decoder_unittest_0_autogen.h
[add] https://crrev.com/a4568da19b09fe70e0d0c1fe4d7b2a465c58ce90/gpu/command_buffer/service/raster_decoder_unittest_1.cc
[add] https://crrev.com/a4568da19b09fe70e0d0c1fe4d7b2a465c58ce90/gpu/command_buffer/service/raster_decoder_unittest_1_autogen.h
[add] https://crrev.com/a4568da19b09fe70e0d0c1fe4d7b2a465c58ce90/gpu/command_buffer/service/raster_decoder_unittest_base.cc
[add] https://crrev.com/a4568da19b09fe70e0d0c1fe4d7b2a465c58ce90/gpu/command_buffer/service/raster_decoder_unittest_base.h

Project Member

Comment 17 by bugdroid1@chromium.org, Feb 2 2018

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

commit 8bbdbe2d22c400026ee4629002796eb65d812aa7
Author: Jonathan Backer <backer@chromium.org>
Date: Fri Feb 02 01:08:23 2018

Autogen part of raster_interface.h

This is the start of autogenerating code for the client side to use
a raster command buffer.

The methods that I chose to autogenerate are unchanged in
crrev.com/c/895868

Bug:  789238 
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: I44d7187c45718ab1f5a9b32a047af95edccebb80
Reviewed-on: https://chromium-review.googlesource.com/897750
Commit-Queue: Jonathan Backer <backer@chromium.org>
Reviewed-by: Victor Miura <vmiura@chromium.org>
Cr-Commit-Position: refs/heads/master@{#533884}
[modify] https://crrev.com/8bbdbe2d22c400026ee4629002796eb65d812aa7/gpu/command_buffer/build_cmd_buffer_lib.py
[modify] https://crrev.com/8bbdbe2d22c400026ee4629002796eb65d812aa7/gpu/command_buffer/build_raster_cmd_buffer.py
[modify] https://crrev.com/8bbdbe2d22c400026ee4629002796eb65d812aa7/gpu/command_buffer/client/raster_interface.h
[add] https://crrev.com/8bbdbe2d22c400026ee4629002796eb65d812aa7/gpu/command_buffer/client/raster_interface_autogen.h
[modify] https://crrev.com/8bbdbe2d22c400026ee4629002796eb65d812aa7/gpu/command_buffer/common/raster_cmd_format_autogen.h
[modify] https://crrev.com/8bbdbe2d22c400026ee4629002796eb65d812aa7/gpu/command_buffer/common/raster_cmd_format_test_autogen.h
[modify] https://crrev.com/8bbdbe2d22c400026ee4629002796eb65d812aa7/gpu/command_buffer/common/raster_cmd_ids_autogen.h
[modify] https://crrev.com/8bbdbe2d22c400026ee4629002796eb65d812aa7/gpu/command_buffer/raster_cmd_buffer_functions.txt
[modify] https://crrev.com/8bbdbe2d22c400026ee4629002796eb65d812aa7/gpu/command_buffer/service/raster_decoder.cc
[modify] https://crrev.com/8bbdbe2d22c400026ee4629002796eb65d812aa7/gpu/command_buffer/service/raster_decoder_autogen.h
[modify] https://crrev.com/8bbdbe2d22c400026ee4629002796eb65d812aa7/gpu/command_buffer/service/raster_decoder_unittest_base.cc
[modify] https://crrev.com/8bbdbe2d22c400026ee4629002796eb65d812aa7/gpu/command_buffer/service/raster_decoder_unittest_base.h

Project Member

Comment 18 by bugdroid1@chromium.org, Feb 6 2018

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

commit 75285cc49b56a4a660be8cc7bc202e6e3dc51a32
Author: Jonathan Backer <backer@chromium.org>
Date: Tue Feb 06 21:44:50 2018

Refactor QueryTracker for reuse

QueryTracker was tightly coupled to GLES2Implementation. This CL adds
a new QueryTrackerClient interface that GLES2Implementation implements.
This will allow reuse by a RasterImplementation.

Bug:  789238 
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: I752663df76a29d026391190bdfb62e70e732d2e9
Reviewed-on: https://chromium-review.googlesource.com/902201
Commit-Queue: Jonathan Backer <backer@chromium.org>
Reviewed-by: Victor Miura <vmiura@chromium.org>
Cr-Commit-Position: refs/heads/master@{#534800}
[modify] https://crrev.com/75285cc49b56a4a660be8cc7bc202e6e3dc51a32/gpu/command_buffer/client/gles2_implementation.cc
[modify] https://crrev.com/75285cc49b56a4a660be8cc7bc202e6e3dc51a32/gpu/command_buffer/client/gles2_implementation.h
[modify] https://crrev.com/75285cc49b56a4a660be8cc7bc202e6e3dc51a32/gpu/command_buffer/client/query_tracker.cc
[modify] https://crrev.com/75285cc49b56a4a660be8cc7bc202e6e3dc51a32/gpu/command_buffer/client/query_tracker.h

Project Member

Comment 19 by bugdroid1@chromium.org, Feb 12 2018

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

commit f9493913c8138054ef379bfad1eeb0164fcda63d
Author: Jonathan Backer <backer@chromium.org>
Date: Mon Feb 12 23:00:09 2018

Refactor ClientTransferCache for reuse

ClientTransferCache was tightly coupled to GLES2Implementation. This CL
adds a new ClientTransferCache::Client interface that
GLES2Implementation implements.  This will allow reuse by a
RasterImplementation.

Very similar to crrev.com/75285cc49

Bug:  789238 
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: Ibc1be67fc52e10e4ae723dd16dc6aade84daa527
Reviewed-on: https://chromium-review.googlesource.com/908535
Reviewed-by: Victor Miura <vmiura@chromium.org>
Commit-Queue: Jonathan Backer <backer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#536226}
[modify] https://crrev.com/f9493913c8138054ef379bfad1eeb0164fcda63d/gpu/command_buffer/client/client_transfer_cache.cc
[modify] https://crrev.com/f9493913c8138054ef379bfad1eeb0164fcda63d/gpu/command_buffer/client/client_transfer_cache.h
[modify] https://crrev.com/f9493913c8138054ef379bfad1eeb0164fcda63d/gpu/command_buffer/client/gles2_implementation.cc
[modify] https://crrev.com/f9493913c8138054ef379bfad1eeb0164fcda63d/gpu/command_buffer/client/gles2_implementation.h

Project Member

Comment 20 by bugdroid1@chromium.org, Feb 21 2018

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

commit 1a55d47f4945223f686bece5201af4c3c7dcc94b
Author: Jonathan Backer <backer@chromium.org>
Date: Wed Feb 21 20:51:59 2018

Refactor --enable-gpu-client-logging for reuse.

This moves it out for easy reuse in crrev.com/c/914701

Bug:  789238 
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: I789f226d5825c49f73cd453f31327278c64c9fce
Reviewed-on: https://chromium-review.googlesource.com/929316
Reviewed-by: Victor Miura <vmiura@chromium.org>
Commit-Queue: Jonathan Backer <backer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#538202}
[modify] https://crrev.com/1a55d47f4945223f686bece5201af4c3c7dcc94b/gpu/command_buffer/client/BUILD.gn
[modify] https://crrev.com/1a55d47f4945223f686bece5201af4c3c7dcc94b/gpu/command_buffer/client/gles2_implementation.cc
[modify] https://crrev.com/1a55d47f4945223f686bece5201af4c3c7dcc94b/gpu/command_buffer/client/gles2_implementation.h
[add] https://crrev.com/1a55d47f4945223f686bece5201af4c3c7dcc94b/gpu/command_buffer/client/logging.cc
[add] https://crrev.com/1a55d47f4945223f686bece5201af4c3c7dcc94b/gpu/command_buffer/client/logging.h

Project Member

Comment 21 by bugdroid1@chromium.org, Feb 21 2018

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

commit a1be172d99a0336d553637d9299e178224310e01
Author: Jonathan Backer <backer@chromium.org>
Date: Wed Feb 21 23:28:16 2018

Some raster_implementation autogen.

This CL adds a ImplementationBase class for code that can be
shared between {GLES2,Raster}Implementation. There is enough
code in RasterImplementation to compile with the autogenerated
methods in RasterInterface.

Notable changes requiring scrutiny:
- there is no share group so texture IDs and query IDs are
  generated locally
- there is no share group so context lost only affects the
  one RasterImplementation --- failure in the backend would
  require backend to notify all RasterImplementations

No unittests as this CL is large enough. Tests coming in future
CLs.

Bug:  789238 
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: I45bb3d9d9db7d0c9f7b85feba7aeae270dd839b7
Reviewed-on: https://chromium-review.googlesource.com/914701
Commit-Queue: Jonathan Backer <backer@chromium.org>
Reviewed-by: Victor Miura <vmiura@chromium.org>
Cr-Commit-Position: refs/heads/master@{#538252}
[modify] https://crrev.com/a1be172d99a0336d553637d9299e178224310e01/gpu/command_buffer/build_cmd_buffer_lib.py
[modify] https://crrev.com/a1be172d99a0336d553637d9299e178224310e01/gpu/command_buffer/build_raster_cmd_buffer.py
[modify] https://crrev.com/a1be172d99a0336d553637d9299e178224310e01/gpu/command_buffer/client/BUILD.gn
[modify] https://crrev.com/a1be172d99a0336d553637d9299e178224310e01/gpu/command_buffer/client/gles2_implementation.cc
[modify] https://crrev.com/a1be172d99a0336d553637d9299e178224310e01/gpu/command_buffer/client/gles2_implementation.h
[add] https://crrev.com/a1be172d99a0336d553637d9299e178224310e01/gpu/command_buffer/client/implementation_base.cc
[add] https://crrev.com/a1be172d99a0336d553637d9299e178224310e01/gpu/command_buffer/client/implementation_base.h
[add] https://crrev.com/a1be172d99a0336d553637d9299e178224310e01/gpu/command_buffer/client/raster_cmd_helper.cc
[add] https://crrev.com/a1be172d99a0336d553637d9299e178224310e01/gpu/command_buffer/client/raster_cmd_helper.h
[add] https://crrev.com/a1be172d99a0336d553637d9299e178224310e01/gpu/command_buffer/client/raster_cmd_helper_autogen.h
[add] https://crrev.com/a1be172d99a0336d553637d9299e178224310e01/gpu/command_buffer/client/raster_implementation.cc
[add] https://crrev.com/a1be172d99a0336d553637d9299e178224310e01/gpu/command_buffer/client/raster_implementation.h
[add] https://crrev.com/a1be172d99a0336d553637d9299e178224310e01/gpu/command_buffer/client/raster_implementation_autogen.h
[add] https://crrev.com/a1be172d99a0336d553637d9299e178224310e01/gpu/command_buffer/client/raster_implementation_impl_autogen.h
[modify] https://crrev.com/a1be172d99a0336d553637d9299e178224310e01/gpu/command_buffer/common/raster_cmd_format_autogen.h
[modify] https://crrev.com/a1be172d99a0336d553637d9299e178224310e01/gpu/command_buffer/common/raster_cmd_format_test_autogen.h
[modify] https://crrev.com/a1be172d99a0336d553637d9299e178224310e01/gpu/command_buffer/common/raster_cmd_ids_autogen.h
[modify] https://crrev.com/a1be172d99a0336d553637d9299e178224310e01/gpu/command_buffer/raster_cmd_buffer_functions.txt
[modify] https://crrev.com/a1be172d99a0336d553637d9299e178224310e01/gpu/command_buffer/service/raster_decoder.cc

Project Member

Comment 22 by bugdroid1@chromium.org, Feb 22 2018

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

commit 05957f2309cea0c79e252e49c06aed2ecd4c3a39
Author: Jonathan Backer <backer@chromium.org>
Date: Thu Feb 22 21:24:55 2018

Add autogen RasterImplementation tests

Copy the unit tests from gles2_implmementation_unittests.cc that make
sense given the current state of RasterImplementation. Specifically,

- no tests for tex upload

- removed tests that checked for access of resources (like textures)
  within a share group

- added some basic implementations (e.g. BindTexture) on the client side
  with TODOs to send something to the service side (maybe irrelevent as
  the RasterInterface changes)

Bug:  789238 
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: I5c3654d407dc253f46035c11597e20b4daee29bc
Reviewed-on: https://chromium-review.googlesource.com/931933
Reviewed-by: Victor Miura <vmiura@chromium.org>
Commit-Queue: Jonathan Backer <backer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#538566}
[modify] https://crrev.com/05957f2309cea0c79e252e49c06aed2ecd4c3a39/gpu/BUILD.gn
[modify] https://crrev.com/05957f2309cea0c79e252e49c06aed2ecd4c3a39/gpu/command_buffer/build_raster_cmd_buffer.py
[modify] https://crrev.com/05957f2309cea0c79e252e49c06aed2ecd4c3a39/gpu/command_buffer/client/gles2_implementation.h
[modify] https://crrev.com/05957f2309cea0c79e252e49c06aed2ecd4c3a39/gpu/command_buffer/client/gles2_implementation_unittest.cc
[modify] https://crrev.com/05957f2309cea0c79e252e49c06aed2ecd4c3a39/gpu/command_buffer/client/implementation_base.h
[add] https://crrev.com/05957f2309cea0c79e252e49c06aed2ecd4c3a39/gpu/command_buffer/client/mock_transfer_buffer.cc
[add] https://crrev.com/05957f2309cea0c79e252e49c06aed2ecd4c3a39/gpu/command_buffer/client/mock_transfer_buffer.h
[modify] https://crrev.com/05957f2309cea0c79e252e49c06aed2ecd4c3a39/gpu/command_buffer/client/raster_implementation.cc
[modify] https://crrev.com/05957f2309cea0c79e252e49c06aed2ecd4c3a39/gpu/command_buffer/client/raster_implementation.h
[add] https://crrev.com/05957f2309cea0c79e252e49c06aed2ecd4c3a39/gpu/command_buffer/client/raster_implementation_unittest.cc
[add] https://crrev.com/05957f2309cea0c79e252e49c06aed2ecd4c3a39/gpu/command_buffer/client/raster_implementation_unittest_autogen.h

Project Member

Comment 23 by bugdroid1@chromium.org, Mar 6 2018

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

commit 9267bf1ec14bdf09aee282421ff20b53c96d8e94
Author: Jonathan Backer <backer@chromium.org>
Date: Tue Mar 06 19:56:50 2018

Autogen the new RasterInterface methods

- changed build_cmd_buffer_lib.py to handle C++ enums (including
  static_casts for enum class)

- generated separate param validators for Raster than the
  validators for GLES2 and used them for glTexParameteri

- created gpu/command_buffer/common:raster_sources to avoid adding a
  //components/viz/common:resource_format dependency on OS_NACL builds
  (this breaks the is_nacl build on transitive skia dependency). Moved
  this into gpu:gles2 component for now so that client and service
  can access it

Bug:  789238 
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: Idef2cf3a3ad23e630b792c1e12280b19fa485fdf
Reviewed-on: https://chromium-review.googlesource.com/948725
Reviewed-by: weiliangc <weiliangc@chromium.org>
Reviewed-by: Victor Miura <vmiura@chromium.org>
Commit-Queue: Jonathan Backer <backer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#541176}
[modify] https://crrev.com/9267bf1ec14bdf09aee282421ff20b53c96d8e94/gpu/BUILD.gn
[modify] https://crrev.com/9267bf1ec14bdf09aee282421ff20b53c96d8e94/gpu/command_buffer/build_cmd_buffer_lib.py
[modify] https://crrev.com/9267bf1ec14bdf09aee282421ff20b53c96d8e94/gpu/command_buffer/build_raster_cmd_buffer.py
[modify] https://crrev.com/9267bf1ec14bdf09aee282421ff20b53c96d8e94/gpu/command_buffer/client/BUILD.gn
[modify] https://crrev.com/9267bf1ec14bdf09aee282421ff20b53c96d8e94/gpu/command_buffer/client/raster_cmd_helper_autogen.h
[modify] https://crrev.com/9267bf1ec14bdf09aee282421ff20b53c96d8e94/gpu/command_buffer/client/raster_implementation.cc
[modify] https://crrev.com/9267bf1ec14bdf09aee282421ff20b53c96d8e94/gpu/command_buffer/client/raster_implementation.h
[modify] https://crrev.com/9267bf1ec14bdf09aee282421ff20b53c96d8e94/gpu/command_buffer/client/raster_implementation_autogen.h
[modify] https://crrev.com/9267bf1ec14bdf09aee282421ff20b53c96d8e94/gpu/command_buffer/client/raster_implementation_gles.cc
[modify] https://crrev.com/9267bf1ec14bdf09aee282421ff20b53c96d8e94/gpu/command_buffer/client/raster_implementation_gles.h
[modify] https://crrev.com/9267bf1ec14bdf09aee282421ff20b53c96d8e94/gpu/command_buffer/client/raster_implementation_impl_autogen.h
[modify] https://crrev.com/9267bf1ec14bdf09aee282421ff20b53c96d8e94/gpu/command_buffer/client/raster_implementation_unittest_autogen.h
[modify] https://crrev.com/9267bf1ec14bdf09aee282421ff20b53c96d8e94/gpu/command_buffer/client/raster_interface.h
[modify] https://crrev.com/9267bf1ec14bdf09aee282421ff20b53c96d8e94/gpu/command_buffer/client/raster_interface_autogen.h
[modify] https://crrev.com/9267bf1ec14bdf09aee282421ff20b53c96d8e94/gpu/command_buffer/common/BUILD.gn
[modify] https://crrev.com/9267bf1ec14bdf09aee282421ff20b53c96d8e94/gpu/command_buffer/common/DEPS
[modify] https://crrev.com/9267bf1ec14bdf09aee282421ff20b53c96d8e94/gpu/command_buffer/common/debug_marker_manager.h
[modify] https://crrev.com/9267bf1ec14bdf09aee282421ff20b53c96d8e94/gpu/command_buffer/common/raster_cmd_format.h
[modify] https://crrev.com/9267bf1ec14bdf09aee282421ff20b53c96d8e94/gpu/command_buffer/common/raster_cmd_format_autogen.h
[modify] https://crrev.com/9267bf1ec14bdf09aee282421ff20b53c96d8e94/gpu/command_buffer/common/raster_cmd_format_test_autogen.h
[modify] https://crrev.com/9267bf1ec14bdf09aee282421ff20b53c96d8e94/gpu/command_buffer/common/raster_cmd_ids_autogen.h
[modify] https://crrev.com/9267bf1ec14bdf09aee282421ff20b53c96d8e94/gpu/command_buffer/raster_cmd_buffer_functions.txt
[modify] https://crrev.com/9267bf1ec14bdf09aee282421ff20b53c96d8e94/gpu/command_buffer/service/BUILD.gn
[add] https://crrev.com/9267bf1ec14bdf09aee282421ff20b53c96d8e94/gpu/command_buffer/service/raster_cmd_validation.cc
[add] https://crrev.com/9267bf1ec14bdf09aee282421ff20b53c96d8e94/gpu/command_buffer/service/raster_cmd_validation.h
[add] https://crrev.com/9267bf1ec14bdf09aee282421ff20b53c96d8e94/gpu/command_buffer/service/raster_cmd_validation_autogen.h
[add] https://crrev.com/9267bf1ec14bdf09aee282421ff20b53c96d8e94/gpu/command_buffer/service/raster_cmd_validation_implementation_autogen.h
[modify] https://crrev.com/9267bf1ec14bdf09aee282421ff20b53c96d8e94/gpu/command_buffer/service/raster_decoder.cc
[modify] https://crrev.com/9267bf1ec14bdf09aee282421ff20b53c96d8e94/gpu/command_buffer/service/raster_decoder_autogen.h
[modify] https://crrev.com/9267bf1ec14bdf09aee282421ff20b53c96d8e94/gpu/command_buffer/service/raster_decoder_unittest_1.cc
[modify] https://crrev.com/9267bf1ec14bdf09aee282421ff20b53c96d8e94/gpu/command_buffer/service/raster_decoder_unittest_1_autogen.h
[modify] https://crrev.com/9267bf1ec14bdf09aee282421ff20b53c96d8e94/gpu/command_buffer/service/raster_decoder_unittest_base.cc

Project Member

Comment 24 by bugdroid1@chromium.org, Mar 14 2018

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

commit 4d51ebfaa877dfa02bf5bb744f674efac9454e17
Author: Jonathan Backer <backer@chromium.org>
Date: Wed Mar 14 14:11:14 2018

Plumb --enable-raster-decoder thru client

Pass the flag to the renderer and have the renderer pass the setting
down as a context attribute. This keeps the client and service side of
the command buffer in sync (e.g. use RasterImplementation with
RasterDecoder and GLES2Implementation with GLES2Decoder).

I've kept the GpuPreference plumbing from browser to GPU process in
place so that a compromised renderer cannot unilaterally turn on the
RasterDecoder.

Bug:  789238 
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: Ia8923f1adfe41495d818d83b3ff6c9c0e62f255c
Reviewed-on: https://chromium-review.googlesource.com/952080
Commit-Queue: Jonathan Backer <backer@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Dan Erat <derat@chromium.org>
Cr-Commit-Position: refs/heads/master@{#543071}
[modify] https://crrev.com/4d51ebfaa877dfa02bf5bb744f674efac9454e17/chrome/browser/chromeos/login/chrome_restart_request.cc
[modify] https://crrev.com/4d51ebfaa877dfa02bf5bb744f674efac9454e17/content/browser/renderer_host/render_process_host_impl.cc
[modify] https://crrev.com/4d51ebfaa877dfa02bf5bb744f674efac9454e17/content/renderer/render_thread_impl.cc
[modify] https://crrev.com/4d51ebfaa877dfa02bf5bb744f674efac9454e17/gpu/command_buffer/client/gles2_implementation.cc
[modify] https://crrev.com/4d51ebfaa877dfa02bf5bb744f674efac9454e17/gpu/command_buffer/client/gles2_implementation.h
[modify] https://crrev.com/4d51ebfaa877dfa02bf5bb744f674efac9454e17/gpu/command_buffer/client/implementation_base.cc
[modify] https://crrev.com/4d51ebfaa877dfa02bf5bb744f674efac9454e17/gpu/command_buffer/client/implementation_base.h
[modify] https://crrev.com/4d51ebfaa877dfa02bf5bb744f674efac9454e17/gpu/command_buffer/client/raster_implementation.cc
[modify] https://crrev.com/4d51ebfaa877dfa02bf5bb744f674efac9454e17/gpu/command_buffer/client/raster_implementation.h
[modify] https://crrev.com/4d51ebfaa877dfa02bf5bb744f674efac9454e17/gpu/command_buffer/common/context_creation_attribs.h
[modify] https://crrev.com/4d51ebfaa877dfa02bf5bb744f674efac9454e17/gpu/command_buffer/service/gpu_switches.cc
[modify] https://crrev.com/4d51ebfaa877dfa02bf5bb744f674efac9454e17/gpu/command_buffer/service/gpu_switches.h
[modify] https://crrev.com/4d51ebfaa877dfa02bf5bb744f674efac9454e17/gpu/config/gpu_switches.cc
[modify] https://crrev.com/4d51ebfaa877dfa02bf5bb744f674efac9454e17/gpu/config/gpu_switches.h
[modify] https://crrev.com/4d51ebfaa877dfa02bf5bb744f674efac9454e17/gpu/ipc/common/gpu_command_buffer_traits_multi.h
[modify] https://crrev.com/4d51ebfaa877dfa02bf5bb744f674efac9454e17/gpu/ipc/service/gpu_channel.cc
[modify] https://crrev.com/4d51ebfaa877dfa02bf5bb744f674efac9454e17/services/ui/public/cpp/gpu/context_provider_command_buffer.cc
[modify] https://crrev.com/4d51ebfaa877dfa02bf5bb744f674efac9454e17/services/ui/public/cpp/gpu/context_provider_command_buffer.h

Project Member

Comment 25 by bugdroid1@chromium.org, Mar 14 2018

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

commit 016bd97edf0ee5c1689d484b095a8fc5591bb443
Author: Jonathan Backer <backer@chromium.org>
Date: Wed Mar 14 15:26:39 2018

Add query support to RasterDecoder

Refactored QueryManager into QueryManager and GLES2QueryManager, where
GLES2QueryManager is a subclass QueryManager that accesses a
GLES2Decoder.

Added unittests to test query on the service side. This is a copy of
existing tests for GLES2.

Moved all manual service side tests into raster_decoder_unittest.cc

Bug:  789238 
Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: I8207b8f738e8d8cac921c333fb99d5bf9e574772
Reviewed-on: https://chromium-review.googlesource.com/956085
Commit-Queue: Jonathan Backer <backer@chromium.org>
Reviewed-by: Victor Miura <vmiura@chromium.org>
Cr-Commit-Position: refs/heads/master@{#543089}
[modify] https://crrev.com/016bd97edf0ee5c1689d484b095a8fc5591bb443/gpu/BUILD.gn
[modify] https://crrev.com/016bd97edf0ee5c1689d484b095a8fc5591bb443/gpu/command_buffer/common/BUILD.gn
[add] https://crrev.com/016bd97edf0ee5c1689d484b095a8fc5591bb443/gpu/command_buffer/common/common_cmd_format.h
[modify] https://crrev.com/016bd97edf0ee5c1689d484b095a8fc5591bb443/gpu/command_buffer/common/gles2_cmd_format.h
[modify] https://crrev.com/016bd97edf0ee5c1689d484b095a8fc5591bb443/gpu/command_buffer/common/raster_cmd_format.h
[modify] https://crrev.com/016bd97edf0ee5c1689d484b095a8fc5591bb443/gpu/command_buffer/service/BUILD.gn
[modify] https://crrev.com/016bd97edf0ee5c1689d484b095a8fc5591bb443/gpu/command_buffer/service/decoder_context.h
[modify] https://crrev.com/016bd97edf0ee5c1689d484b095a8fc5591bb443/gpu/command_buffer/service/gles2_cmd_decoder.cc
[modify] https://crrev.com/016bd97edf0ee5c1689d484b095a8fc5591bb443/gpu/command_buffer/service/gles2_cmd_decoder.h
[modify] https://crrev.com/016bd97edf0ee5c1689d484b095a8fc5591bb443/gpu/command_buffer/service/gles2_cmd_decoder_mock.h
[modify] https://crrev.com/016bd97edf0ee5c1689d484b095a8fc5591bb443/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc
[modify] https://crrev.com/016bd97edf0ee5c1689d484b095a8fc5591bb443/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.h
[modify] https://crrev.com/016bd97edf0ee5c1689d484b095a8fc5591bb443/gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.h
[add] https://crrev.com/016bd97edf0ee5c1689d484b095a8fc5591bb443/gpu/command_buffer/service/gles2_query_manager.cc
[add] https://crrev.com/016bd97edf0ee5c1689d484b095a8fc5591bb443/gpu/command_buffer/service/gles2_query_manager.h
[modify] https://crrev.com/016bd97edf0ee5c1689d484b095a8fc5591bb443/gpu/command_buffer/service/query_manager.cc
[modify] https://crrev.com/016bd97edf0ee5c1689d484b095a8fc5591bb443/gpu/command_buffer/service/query_manager.h
[modify] https://crrev.com/016bd97edf0ee5c1689d484b095a8fc5591bb443/gpu/command_buffer/service/query_manager_unittest.cc
[modify] https://crrev.com/016bd97edf0ee5c1689d484b095a8fc5591bb443/gpu/command_buffer/service/raster_decoder.cc
[modify] https://crrev.com/016bd97edf0ee5c1689d484b095a8fc5591bb443/gpu/command_buffer/service/raster_decoder_mock.h
[add] https://crrev.com/016bd97edf0ee5c1689d484b095a8fc5591bb443/gpu/command_buffer/service/raster_decoder_unittest.cc
[modify] https://crrev.com/016bd97edf0ee5c1689d484b095a8fc5591bb443/gpu/command_buffer/service/raster_decoder_unittest_1.cc
[modify] https://crrev.com/016bd97edf0ee5c1689d484b095a8fc5591bb443/gpu/command_buffer/service/raster_decoder_unittest_base.cc
[modify] https://crrev.com/016bd97edf0ee5c1689d484b095a8fc5591bb443/gpu/ipc/in_process_command_buffer.cc
[modify] https://crrev.com/016bd97edf0ee5c1689d484b095a8fc5591bb443/gpu/ipc/service/command_buffer_stub.cc

Project Member

Comment 26 by bugdroid1@chromium.org, Mar 21 2018

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

commit a07c4a9e9c89e3613d6f8346133ee48a6ddc9910
Author: Jonathan Backer <backer@chromium.org>
Date: Wed Mar 21 15:13:16 2018

Implement RasterDecoder::Create(AndConsume)Texture

Plumbs it through from client to service side. We track some
TextureMetadata on the service side. I've opted to keep the separate
from the per level metadata that TextureManager tracks. This will be
used in future CLs that implement TexStorage2D and BindTexImage2D.

Left a TODO for more validation in CreateAndConsumeTexture for
validation of BufferUsage and ResourceFormat because it can't be tested
until we implement TexStorage2D and/or BindTexImage2D.

Bug:  789238 
Cq-Include-Trybots: luci.chromium.try:linux_optional_gpu_tests_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: I6012c0351b69eb86504102aba6bff94afe07d3e7
Reviewed-on: https://chromium-review.googlesource.com/963285
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Reviewed-by: weiliangc <weiliangc@chromium.org>
Commit-Queue: Jonathan Backer <backer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#544705}
[modify] https://crrev.com/a07c4a9e9c89e3613d6f8346133ee48a6ddc9910/gpu/command_buffer/build_cmd_buffer_lib.py
[modify] https://crrev.com/a07c4a9e9c89e3613d6f8346133ee48a6ddc9910/gpu/command_buffer/build_raster_cmd_buffer.py
[modify] https://crrev.com/a07c4a9e9c89e3613d6f8346133ee48a6ddc9910/gpu/command_buffer/client/raster_cmd_helper_autogen.h
[modify] https://crrev.com/a07c4a9e9c89e3613d6f8346133ee48a6ddc9910/gpu/command_buffer/client/raster_implementation.cc
[modify] https://crrev.com/a07c4a9e9c89e3613d6f8346133ee48a6ddc9910/gpu/command_buffer/common/raster_cmd_format_autogen.h
[modify] https://crrev.com/a07c4a9e9c89e3613d6f8346133ee48a6ddc9910/gpu/command_buffer/common/raster_cmd_format_test_autogen.h
[modify] https://crrev.com/a07c4a9e9c89e3613d6f8346133ee48a6ddc9910/gpu/command_buffer/common/raster_cmd_ids_autogen.h
[modify] https://crrev.com/a07c4a9e9c89e3613d6f8346133ee48a6ddc9910/gpu/command_buffer/raster_cmd_buffer_functions.txt
[modify] https://crrev.com/a07c4a9e9c89e3613d6f8346133ee48a6ddc9910/gpu/command_buffer/service/DEPS
[modify] https://crrev.com/a07c4a9e9c89e3613d6f8346133ee48a6ddc9910/gpu/command_buffer/service/gles2_cmd_decoder.cc
[modify] https://crrev.com/a07c4a9e9c89e3613d6f8346133ee48a6ddc9910/gpu/command_buffer/service/raster_decoder.cc
[modify] https://crrev.com/a07c4a9e9c89e3613d6f8346133ee48a6ddc9910/gpu/command_buffer/service/raster_decoder_autogen.h
[modify] https://crrev.com/a07c4a9e9c89e3613d6f8346133ee48a6ddc9910/gpu/command_buffer/service/raster_decoder_unittest.cc

Project Member

Comment 27 by bugdroid1@chromium.org, Mar 21 2018

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

commit c2b0efa1e91222aebaf6d2b82b1931f6f5e5bbbb
Author: Jonathan Backer <backer@chromium.org>
Date: Wed Mar 21 16:58:35 2018

Implement a few NOTIMPLEMENTED() in RasterDecoder

Until we decide to implement {Begin,End}TraceCHROMIUM we can eliminate
many of the NOTIMPLEMENTED() because we don't need to do anything.
AFAICT, these extensions are used by pepper and client side GPU raster.

This CL in combination with http://crrev.com/c/963285 will prevent a
Linux build from crashing with RasterDecoder when run with these flags:

--enable-oop-rasterization --enable-raster-decoder
  --use_virtualized_gl_contexts=0

Bug:  789238 
Cq-Include-Trybots: luci.chromium.try:linux_optional_gpu_tests_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: I4da61b39f4e058bf86501607b29140ec2bdd5538
Reviewed-on: https://chromium-review.googlesource.com/963387
Commit-Queue: Jonathan Backer <backer@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#544740}
[modify] https://crrev.com/c2b0efa1e91222aebaf6d2b82b1931f6f5e5bbbb/gpu/command_buffer/service/raster_decoder.cc

Project Member

Comment 28 by bugdroid1@chromium.org, Mar 22 2018

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

commit 1994ff2edf640a6b19f32ba60806ab01dbf0d4e5
Author: Jonathan Backer <backer@chromium.org>
Date: Thu Mar 22 21:24:33 2018

Implement TexStorage2D

This handles the case where we aren't using GLImages. That case will be
handled in a separate CL. Both the glTexImage2D and glTexStorage2DEXT
code paths have been manually tested on device (linux release build with
DCHECK enabled).

BUG= 789238 

Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: Iec3c77d05185d49086a7c7138a341428209b5a27
Reviewed-on: https://chromium-review.googlesource.com/974087
Commit-Queue: Jonathan Backer <backer@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#545254}
[modify] https://crrev.com/1994ff2edf640a6b19f32ba60806ab01dbf0d4e5/gpu/command_buffer/service/raster_decoder.cc
[modify] https://crrev.com/1994ff2edf640a6b19f32ba60806ab01dbf0d4e5/gpu/command_buffer/service/raster_decoder_unittest.cc
[modify] https://crrev.com/1994ff2edf640a6b19f32ba60806ab01dbf0d4e5/gpu/command_buffer/service/raster_decoder_unittest_base.cc
[modify] https://crrev.com/1994ff2edf640a6b19f32ba60806ab01dbf0d4e5/gpu/command_buffer/service/raster_decoder_unittest_base.h

Project Member

Comment 29 by bugdroid1@chromium.org, Mar 27 2018

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

commit 34008d88598608842b00fd4374832661b597d1cf
Author: Jonathan Backer <backer@chromium.org>
Date: Tue Mar 27 18:57:55 2018

Reuse some texture copying code

Allow RasterDecoderImpl to use some texture copying code by adding
methods to DecoderContext (common interface implemented by RasterDecoder
and GLES2Decoder). Implement some of the NOTIMPLEMENTED() state
restoration code by copying from GLES2DecoderImpl.

BUG= 789238 

Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: Ic23665e8f1d63f20905334dedefdeb77e90c3c40
Reviewed-on: https://chromium-review.googlesource.com/981075
Commit-Queue: Jonathan Backer <backer@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#546191}
[modify] https://crrev.com/34008d88598608842b00fd4374832661b597d1cf/gpu/command_buffer/service/decoder_context.h
[modify] https://crrev.com/34008d88598608842b00fd4374832661b597d1cf/gpu/command_buffer/service/gles2_cmd_copy_tex_image.cc
[modify] https://crrev.com/34008d88598608842b00fd4374832661b597d1cf/gpu/command_buffer/service/gles2_cmd_copy_tex_image.h
[modify] https://crrev.com/34008d88598608842b00fd4374832661b597d1cf/gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.cc
[modify] https://crrev.com/34008d88598608842b00fd4374832661b597d1cf/gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.h
[modify] https://crrev.com/34008d88598608842b00fd4374832661b597d1cf/gpu/command_buffer/service/gles2_cmd_decoder.cc
[modify] https://crrev.com/34008d88598608842b00fd4374832661b597d1cf/gpu/command_buffer/service/gles2_cmd_decoder.h
[modify] https://crrev.com/34008d88598608842b00fd4374832661b597d1cf/gpu/command_buffer/service/raster_decoder.cc
[modify] https://crrev.com/34008d88598608842b00fd4374832661b597d1cf/gpu/command_buffer/service/raster_decoder_mock.h

Project Member

Comment 30 by bugdroid1@chromium.org, Mar 27 2018

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

commit ac62dde1c3cf4f1ba87b481e3ff3723b39cfadeb
Author: Jonathan Backer <backer@chromium.org>
Date: Tue Mar 27 21:26:09 2018

Implement {Bind,Release}TexImage2DCHROMIUM

Pretty much a copy-and-paste from gles2_cmd_decoder.cc w/ unittest.

Bug:  789238 
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: Ie1198944994239bbf581df3120bbe655f27f1788
Reviewed-on: https://chromium-review.googlesource.com/981091
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Commit-Queue: Jonathan Backer <backer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#546265}
[modify] https://crrev.com/ac62dde1c3cf4f1ba87b481e3ff3723b39cfadeb/gpu/command_buffer/service/raster_decoder.cc
[modify] https://crrev.com/ac62dde1c3cf4f1ba87b481e3ff3723b39cfadeb/gpu/command_buffer/service/raster_decoder.h
[modify] https://crrev.com/ac62dde1c3cf4f1ba87b481e3ff3723b39cfadeb/gpu/command_buffer/service/raster_decoder_mock.h
[modify] https://crrev.com/ac62dde1c3cf4f1ba87b481e3ff3723b39cfadeb/gpu/command_buffer/service/raster_decoder_unittest.cc
[modify] https://crrev.com/ac62dde1c3cf4f1ba87b481e3ff3723b39cfadeb/gpu/command_buffer/service/raster_decoder_unittest_base.h

Project Member

Comment 31 by bugdroid1@chromium.org, Mar 29 2018

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

commit c26060eaafb05ad5d5743cc51437018dff3be878
Author: Jonathan Backer <backer@chromium.org>
Date: Thu Mar 29 15:06:29 2018

Switch Texture to DecoderContext

This will allow RasterDecoder to ClearLevels, which is necessary to
implement CopySubTexture2DCHROMIUM. RasterDecoderImpl copies from
GLES2DecoderImpl for IsCompressedTextureFormat, ClearLevel, and
ClearCompressedTextureLevel. The only difference is in ClearLevel, where
RasterDecoderImpl does not support depth.

Bug:  789238 
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: Ife64cfc20501df90e8f03bcc8c3a25acf7c9fc4c
Reviewed-on: https://chromium-review.googlesource.com/984033
Commit-Queue: Jonathan Backer <backer@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#546834}
[modify] https://crrev.com/c26060eaafb05ad5d5743cc51437018dff3be878/gpu/command_buffer/service/decoder_context.h
[modify] https://crrev.com/c26060eaafb05ad5d5743cc51437018dff3be878/gpu/command_buffer/service/gl_utils.cc
[modify] https://crrev.com/c26060eaafb05ad5d5743cc51437018dff3be878/gpu/command_buffer/service/gl_utils.h
[modify] https://crrev.com/c26060eaafb05ad5d5743cc51437018dff3be878/gpu/command_buffer/service/gles2_cmd_decoder.cc
[modify] https://crrev.com/c26060eaafb05ad5d5743cc51437018dff3be878/gpu/command_buffer/service/gles2_cmd_decoder.h
[modify] https://crrev.com/c26060eaafb05ad5d5743cc51437018dff3be878/gpu/command_buffer/service/raster_decoder.cc
[modify] https://crrev.com/c26060eaafb05ad5d5743cc51437018dff3be878/gpu/command_buffer/service/raster_decoder_mock.h
[modify] https://crrev.com/c26060eaafb05ad5d5743cc51437018dff3be878/gpu/command_buffer/service/raster_decoder_unittest.cc
[modify] https://crrev.com/c26060eaafb05ad5d5743cc51437018dff3be878/gpu/command_buffer/service/raster_decoder_unittest_base.cc
[modify] https://crrev.com/c26060eaafb05ad5d5743cc51437018dff3be878/gpu/command_buffer/service/raster_decoder_unittest_base.h
[modify] https://crrev.com/c26060eaafb05ad5d5743cc51437018dff3be878/gpu/command_buffer/service/texture_manager.cc
[modify] https://crrev.com/c26060eaafb05ad5d5743cc51437018dff3be878/gpu/command_buffer/service/texture_manager.h

Blockedon: 828578
Project Member

Comment 33 by bugdroid1@chromium.org, Apr 4 2018

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

commit 8629c39ba3ed66ace77a938187ce9745d4f817b2
Author: Jonathan Backer <backer@chromium.org>
Date: Wed Apr 04 23:01:03 2018

Relocate and mock texture copier

This is for reuse by RasterDecoder in a subsequent CL. The test added
for GLES2DecoderImpl is similar to what will be added for
RasterDecoderImpl.

Changes:
- made CopyTextureMethod an enum class for easy forward decl
- moved ValidateCopyTexFormatHelper and GetCopyTextureCHROMIUMMethod for
  future reuse
- added mock for texture copying
- added unittest to make sure that texture copying clears source and
  destination textures appropriately

Bug:  789238 
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: I44a1ca37ad48d065acfd9d94b737ac1d925d99e5
Reviewed-on: https://chromium-review.googlesource.com/993592
Commit-Queue: Jonathan Backer <backer@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#548228}
[modify] https://crrev.com/8629c39ba3ed66ace77a938187ce9745d4f817b2/gpu/BUILD.gn
[add] https://crrev.com/8629c39ba3ed66ace77a938187ce9745d4f817b2/gpu/command_buffer/service/copy_texture_chromium_mock.cc
[add] https://crrev.com/8629c39ba3ed66ace77a938187ce9745d4f817b2/gpu/command_buffer/service/copy_texture_chromium_mock.h
[modify] https://crrev.com/8629c39ba3ed66ace77a938187ce9745d4f817b2/gpu/command_buffer/service/gl_utils.cc
[modify] https://crrev.com/8629c39ba3ed66ace77a938187ce9745d4f817b2/gpu/command_buffer/service/gl_utils.h
[modify] https://crrev.com/8629c39ba3ed66ace77a938187ce9745d4f817b2/gpu/command_buffer/service/gles2_cmd_apply_framebuffer_attachment_cmaa_intel.cc
[modify] https://crrev.com/8629c39ba3ed66ace77a938187ce9745d4f817b2/gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.cc
[modify] https://crrev.com/8629c39ba3ed66ace77a938187ce9745d4f817b2/gpu/command_buffer/service/gles2_cmd_copy_texture_chromium.h
[modify] https://crrev.com/8629c39ba3ed66ace77a938187ce9745d4f817b2/gpu/command_buffer/service/gles2_cmd_decoder.cc
[modify] https://crrev.com/8629c39ba3ed66ace77a938187ce9745d4f817b2/gpu/command_buffer/service/gles2_cmd_decoder.h
[modify] https://crrev.com/8629c39ba3ed66ace77a938187ce9745d4f817b2/gpu/command_buffer/service/gles2_cmd_decoder_mock.h
[modify] https://crrev.com/8629c39ba3ed66ace77a938187ce9745d4f817b2/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc
[modify] https://crrev.com/8629c39ba3ed66ace77a938187ce9745d4f817b2/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.h
[modify] https://crrev.com/8629c39ba3ed66ace77a938187ce9745d4f817b2/gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.cc
[modify] https://crrev.com/8629c39ba3ed66ace77a938187ce9745d4f817b2/gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.h
[modify] https://crrev.com/8629c39ba3ed66ace77a938187ce9745d4f817b2/gpu/command_buffer/service/gles2_cmd_decoder_unittest_textures.cc

Project Member

Comment 34 by bugdroid1@chromium.org, Apr 4 2018

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

commit 10821a81c9027117f37122413fe5bce20e93b146
Author: Jonathan Backer <backer@chromium.org>
Date: Wed Apr 04 23:56:03 2018

Implement CopySubTexture in RasterDecoderImpl

This is largely a copy-and-paste from GLES2DecoderImpl, with some minor
cleanup.

- added a vertex array manager to RasterDecoderImpl and copied
  associated boilerplate because it was required by
  CopyTextureCHROMIUMResourceManager

- copied GLES2DecoderImpl::CopySubTextureHelper as
  RasterDecoderImpl::CopySubTexture with very minor modification
  (e.g. raster is given a destination texture ID instead of the target
  that GLES2 takes)

- added a unittest to verify that source and destination textures are
  cleared appropriately

Bug:  789238 
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Change-Id: I1eb50e43cc52ee9931a483ab89f9cdbdf47e2332
Reviewed-on: https://chromium-review.googlesource.com/993763
Commit-Queue: Jonathan Backer <backer@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#548258}
[modify] https://crrev.com/10821a81c9027117f37122413fe5bce20e93b146/gpu/command_buffer/service/raster_decoder.cc
[modify] https://crrev.com/10821a81c9027117f37122413fe5bce20e93b146/gpu/command_buffer/service/raster_decoder.h
[modify] https://crrev.com/10821a81c9027117f37122413fe5bce20e93b146/gpu/command_buffer/service/raster_decoder_mock.h
[modify] https://crrev.com/10821a81c9027117f37122413fe5bce20e93b146/gpu/command_buffer/service/raster_decoder_unittest.cc
[modify] https://crrev.com/10821a81c9027117f37122413fe5bce20e93b146/gpu/command_buffer/service/raster_decoder_unittest_base.cc
[modify] https://crrev.com/10821a81c9027117f37122413fe5bce20e93b146/gpu/command_buffer/service/raster_decoder_unittest_base.h

Blockedon: 829435
Blockedon: 829469
Project Member

Comment 37 by bugdroid1@chromium.org, Apr 12 2018

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

commit 8956ccef6f8bedcbb80fdda0dfe6c1f56ad68c03
Author: Jonathan Backer <backer@chromium.org>
Date: Thu Apr 12 22:14:22 2018

Reset context on RasterDecoder::Initialize

This is copying from GLES2Decoder. The state_ resets were introduced in
https://chromiumcodereview.appspot.com/10573004/ as part of https://bugs.chromium.org/p/chromium/issues/detail?id=130617

This bug is WebGL specific. However, RasterDecoder uses GL for texture
copying (e.g. gles2_cmd_copy_texture_chromium.cc) and some basic state
restoration for virtual contexts. It's possible that this change is not
strictly required, but it certainly doesn't hurt and it keeps the
GLES2DecoderImpl and RasterDecoderImpl as similar as possible to
maximize compatibility when sharing code.

Bug:  789238 
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I036b6f864d20aaa6bb8a0d85b2feb74b595c5ece
Reviewed-on: https://chromium-review.googlesource.com/1010766
Commit-Queue: Jonathan Backer <backer@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#550385}
[modify] https://crrev.com/8956ccef6f8bedcbb80fdda0dfe6c1f56ad68c03/gpu/command_buffer/build_cmd_buffer_lib.py
[modify] https://crrev.com/8956ccef6f8bedcbb80fdda0dfe6c1f56ad68c03/gpu/command_buffer/build_gles2_cmd_buffer.py
[modify] https://crrev.com/8956ccef6f8bedcbb80fdda0dfe6c1f56ad68c03/gpu/command_buffer/build_raster_cmd_buffer.py
[modify] https://crrev.com/8956ccef6f8bedcbb80fdda0dfe6c1f56ad68c03/gpu/command_buffer/service/raster_decoder.cc
[modify] https://crrev.com/8956ccef6f8bedcbb80fdda0dfe6c1f56ad68c03/gpu/command_buffer/service/raster_decoder_unittest_0_autogen.h
[modify] https://crrev.com/8956ccef6f8bedcbb80fdda0dfe6c1f56ad68c03/gpu/command_buffer/service/raster_decoder_unittest_base.cc
[modify] https://crrev.com/8956ccef6f8bedcbb80fdda0dfe6c1f56ad68c03/gpu/command_buffer/service/raster_decoder_unittest_base.h

Project Member

Comment 38 by bugdroid1@chromium.org, Apr 17 2018

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

commit 0cd1c432d20e657d7eae5e3ae0a2ac44b2161dc3
Author: Jonathan Backer <backer@chromium.org>
Date: Tue Apr 17 16:57:10 2018

Add TransferCache methods to RasterDecoder

This CL does several things:

- Adds TransferCache methods to RasterDecoderImpl. This is
  copy-and-paste from GLES2DecoderImpl (including OOP-R setup).

- Switches InProcCommandBuffer to use either RasterDecoder or
  GLES2Decoder based on ContextCreationAttribs. Logic for decision
  copied from GpuChannel.

- Adds RasterInProcessContext for use by tests (copy-and-paste from
  GLInProcessContext but simpler).

- Parameterizes TransferCacheTest to test both RasterDecoder and
  GLES2Decoder

Bug:  789238 
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I2629f0a9469abfaaf10b10ae28076d3e0881eb66
Reviewed-on: https://chromium-review.googlesource.com/1011104
Reviewed-by: kylechar <kylechar@chromium.org>
Commit-Queue: Jonathan Backer <backer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#551368}
[modify] https://crrev.com/0cd1c432d20e657d7eae5e3ae0a2ac44b2161dc3/cc/paint/transfer_cache_unittest.cc
[modify] https://crrev.com/0cd1c432d20e657d7eae5e3ae0a2ac44b2161dc3/gpu/BUILD.gn
[modify] https://crrev.com/0cd1c432d20e657d7eae5e3ae0a2ac44b2161dc3/gpu/command_buffer/service/decoder_context.h
[modify] https://crrev.com/0cd1c432d20e657d7eae5e3ae0a2ac44b2161dc3/gpu/command_buffer/service/gles2_cmd_decoder.cc
[modify] https://crrev.com/0cd1c432d20e657d7eae5e3ae0a2ac44b2161dc3/gpu/command_buffer/service/gles2_cmd_decoder.h
[modify] https://crrev.com/0cd1c432d20e657d7eae5e3ae0a2ac44b2161dc3/gpu/command_buffer/service/raster_decoder.cc
[modify] https://crrev.com/0cd1c432d20e657d7eae5e3ae0a2ac44b2161dc3/gpu/command_buffer/service/raster_decoder.h
[modify] https://crrev.com/0cd1c432d20e657d7eae5e3ae0a2ac44b2161dc3/gpu/command_buffer/service/raster_decoder_mock.h
[modify] https://crrev.com/0cd1c432d20e657d7eae5e3ae0a2ac44b2161dc3/gpu/ipc/BUILD.gn
[modify] https://crrev.com/0cd1c432d20e657d7eae5e3ae0a2ac44b2161dc3/gpu/ipc/gl_in_process_context.cc
[modify] https://crrev.com/0cd1c432d20e657d7eae5e3ae0a2ac44b2161dc3/gpu/ipc/gl_in_process_context.h
[modify] https://crrev.com/0cd1c432d20e657d7eae5e3ae0a2ac44b2161dc3/gpu/ipc/in_process_command_buffer.cc
[modify] https://crrev.com/0cd1c432d20e657d7eae5e3ae0a2ac44b2161dc3/gpu/ipc/in_process_command_buffer.h
[add] https://crrev.com/0cd1c432d20e657d7eae5e3ae0a2ac44b2161dc3/gpu/ipc/raster_in_process_context.cc
[add] https://crrev.com/0cd1c432d20e657d7eae5e3ae0a2ac44b2161dc3/gpu/ipc/raster_in_process_context.h
[modify] https://crrev.com/0cd1c432d20e657d7eae5e3ae0a2ac44b2161dc3/gpu/ipc/service/gles2_command_buffer_stub.cc
[modify] https://crrev.com/0cd1c432d20e657d7eae5e3ae0a2ac44b2161dc3/gpu/ipc/service/raster_command_buffer_stub.cc

Project Member

Comment 39 by bugdroid1@chromium.org, Apr 17 2018

Labels: merge-merged-testbranch
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8956ccef6f8bedcbb80fdda0dfe6c1f56ad68c03

commit 8956ccef6f8bedcbb80fdda0dfe6c1f56ad68c03
Author: Jonathan Backer <backer@chromium.org>
Date: Thu Apr 12 22:14:22 2018

Reset context on RasterDecoder::Initialize

This is copying from GLES2Decoder. The state_ resets were introduced in
https://chromiumcodereview.appspot.com/10573004/ as part of https://bugs.chromium.org/p/chromium/issues/detail?id=130617

This bug is WebGL specific. However, RasterDecoder uses GL for texture
copying (e.g. gles2_cmd_copy_texture_chromium.cc) and some basic state
restoration for virtual contexts. It's possible that this change is not
strictly required, but it certainly doesn't hurt and it keeps the
GLES2DecoderImpl and RasterDecoderImpl as similar as possible to
maximize compatibility when sharing code.

Bug:  789238 
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I036b6f864d20aaa6bb8a0d85b2feb74b595c5ece
Reviewed-on: https://chromium-review.googlesource.com/1010766
Commit-Queue: Jonathan Backer <backer@chromium.org>
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Cr-Commit-Position: refs/heads/master@{#550385}
[modify] https://crrev.com/8956ccef6f8bedcbb80fdda0dfe6c1f56ad68c03/gpu/command_buffer/build_cmd_buffer_lib.py
[modify] https://crrev.com/8956ccef6f8bedcbb80fdda0dfe6c1f56ad68c03/gpu/command_buffer/build_gles2_cmd_buffer.py
[modify] https://crrev.com/8956ccef6f8bedcbb80fdda0dfe6c1f56ad68c03/gpu/command_buffer/build_raster_cmd_buffer.py
[modify] https://crrev.com/8956ccef6f8bedcbb80fdda0dfe6c1f56ad68c03/gpu/command_buffer/service/raster_decoder.cc
[modify] https://crrev.com/8956ccef6f8bedcbb80fdda0dfe6c1f56ad68c03/gpu/command_buffer/service/raster_decoder_unittest_0_autogen.h
[modify] https://crrev.com/8956ccef6f8bedcbb80fdda0dfe6c1f56ad68c03/gpu/command_buffer/service/raster_decoder_unittest_base.cc
[modify] https://crrev.com/8956ccef6f8bedcbb80fdda0dfe6c1f56ad68c03/gpu/command_buffer/service/raster_decoder_unittest_base.h

Project Member

Comment 40 by bugdroid1@chromium.org, Apr 18 2018

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

commit e19973e8bc2f4b551c05a2484bd08be57da81ce0
Author: Jonathan Backer <backer@chromium.org>
Date: Wed Apr 18 20:08:09 2018

Implement OOP-R on RasterDecoder.

This CL makes --enable-oop-rasterization --enable-raster-decoder work on
desktop linux builds of chromium.

Changes:

- Update raster_cmd_buffer_functions.txt with changes in
  gles2_cmd_buffer_functions.txt and regenerate autogen files.

- Copy code from RasterImplementationGLES into RasterImplementation.

- Copy code from GLES2DecoderImpl into RasterDecoderImpl

Bug:  789238 
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: Ia7b50acc843ecd641a8a74927d94303138849e86
Reviewed-on: https://chromium-review.googlesource.com/1011203
Reviewed-by: kylechar <kylechar@chromium.org>
Commit-Queue: Jonathan Backer <backer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#551797}
[modify] https://crrev.com/e19973e8bc2f4b551c05a2484bd08be57da81ce0/cc/paint/display_item_list.h
[modify] https://crrev.com/e19973e8bc2f4b551c05a2484bd08be57da81ce0/gpu/command_buffer/client/raster_cmd_helper_autogen.h
[modify] https://crrev.com/e19973e8bc2f4b551c05a2484bd08be57da81ce0/gpu/command_buffer/client/raster_implementation.cc
[modify] https://crrev.com/e19973e8bc2f4b551c05a2484bd08be57da81ce0/gpu/command_buffer/client/raster_implementation.h
[modify] https://crrev.com/e19973e8bc2f4b551c05a2484bd08be57da81ce0/gpu/command_buffer/common/raster_cmd_format_autogen.h
[modify] https://crrev.com/e19973e8bc2f4b551c05a2484bd08be57da81ce0/gpu/command_buffer/common/raster_cmd_format_test_autogen.h
[modify] https://crrev.com/e19973e8bc2f4b551c05a2484bd08be57da81ce0/gpu/command_buffer/raster_cmd_buffer_functions.txt
[modify] https://crrev.com/e19973e8bc2f4b551c05a2484bd08be57da81ce0/gpu/command_buffer/service/gles2_cmd_decoder.cc
[modify] https://crrev.com/e19973e8bc2f4b551c05a2484bd08be57da81ce0/gpu/command_buffer/service/raster_decoder.cc
[modify] https://crrev.com/e19973e8bc2f4b551c05a2484bd08be57da81ce0/gpu/command_buffer/service/raster_decoder_autogen.h

Project Member

Comment 41 by bugdroid1@chromium.org, Apr 19 2018

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

commit f0ec6de8951149e30d573e4d0b9e14bb5d6aeea9
Author: Jonathan Backer <backer@chromium.org>
Date: Thu Apr 19 19:56:44 2018

Make oop_pixeltest.cc cover RasterDecoder

This CL updates oop_pixeltest.cc to test OOP-R on both GLES2Decoder
and RasterDecoder. Once --enable-raster-decoder is always enabled for
--enable-oop-rasterization we can simplify and only test RasterDecoder.

Bug:  789238 
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I4a240d23805729607aaebf33a09e9b858b691bee
Reviewed-on: https://chromium-review.googlesource.com/1019357
Commit-Queue: Jonathan Backer <backer@chromium.org>
Reviewed-by: enne <enne@chromium.org>
Cr-Commit-Position: refs/heads/master@{#552131}
[modify] https://crrev.com/f0ec6de8951149e30d573e4d0b9e14bb5d6aeea9/cc/paint/oop_pixeltest.cc
[modify] https://crrev.com/f0ec6de8951149e30d573e4d0b9e14bb5d6aeea9/cc/test/layer_tree_pixel_test.cc
[modify] https://crrev.com/f0ec6de8951149e30d573e4d0b9e14bb5d6aeea9/cc/test/pixel_test.cc
[modify] https://crrev.com/f0ec6de8951149e30d573e4d0b9e14bb5d6aeea9/cc/test/test_in_process_context_provider.cc
[modify] https://crrev.com/f0ec6de8951149e30d573e4d0b9e14bb5d6aeea9/cc/test/test_in_process_context_provider.h
[modify] https://crrev.com/f0ec6de8951149e30d573e4d0b9e14bb5d6aeea9/cc/trees/layer_tree_host_pixeltest_scrollbars.cc
[modify] https://crrev.com/f0ec6de8951149e30d573e4d0b9e14bb5d6aeea9/gpu/command_buffer/client/raster_implementation.cc
[modify] https://crrev.com/f0ec6de8951149e30d573e4d0b9e14bb5d6aeea9/gpu/command_buffer/service/raster_decoder.cc
[modify] https://crrev.com/f0ec6de8951149e30d573e4d0b9e14bb5d6aeea9/gpu/ipc/raster_in_process_context.cc

Project Member

Comment 42 by bugdroid1@chromium.org, Apr 23 2018

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

commit fa3a845d2a2c0d81d2cc1c098a6b624ffde9fbd1
Author: Jonathan Backer <backer@chromium.org>
Date: Mon Apr 23 18:20:33 2018

Remove worker context from main context share group

This is a deplumbing CL where we remove the unnecessary passing of
nullptr around. We don't use client side share groups now that we use
mailboxes.

Removing this preps for the eventual switch over to RasterDecoder
backend for RasterInterface because RasterImplementation is always in
it's own client side share group.

TBR=boliu@chromium.org,kenrb@chromium.org,haraken@chromium.org,rbyers@chromium.org,sky@chromium.org

Bug:  789238 
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel;master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I86bd2e2d9c42064da3d2d3bd1a7881d5392a1b38
Reviewed-on: https://chromium-review.googlesource.com/1015701
Commit-Queue: Jonathan Backer <backer@chromium.org>
Reviewed-by: danakj <danakj@chromium.org>
Cr-Commit-Position: refs/heads/master@{#552755}
[modify] https://crrev.com/fa3a845d2a2c0d81d2cc1c098a6b624ffde9fbd1/android_webview/browser/aw_render_thread_context_provider.cc
[modify] https://crrev.com/fa3a845d2a2c0d81d2cc1c098a6b624ffde9fbd1/cc/paint/oop_pixeltest.cc
[modify] https://crrev.com/fa3a845d2a2c0d81d2cc1c098a6b624ffde9fbd1/cc/test/layer_tree_pixel_test.cc
[modify] https://crrev.com/fa3a845d2a2c0d81d2cc1c098a6b624ffde9fbd1/cc/test/pixel_test.cc
[modify] https://crrev.com/fa3a845d2a2c0d81d2cc1c098a6b624ffde9fbd1/cc/test/test_in_process_context_provider.cc
[modify] https://crrev.com/fa3a845d2a2c0d81d2cc1c098a6b624ffde9fbd1/cc/test/test_in_process_context_provider.h
[modify] https://crrev.com/fa3a845d2a2c0d81d2cc1c098a6b624ffde9fbd1/cc/trees/layer_tree_host_pixeltest_scrollbars.cc
[modify] https://crrev.com/fa3a845d2a2c0d81d2cc1c098a6b624ffde9fbd1/components/viz/common/gl_helper_benchmark.cc
[modify] https://crrev.com/fa3a845d2a2c0d81d2cc1c098a6b624ffde9fbd1/components/viz/common/gl_helper_unittest.cc
[modify] https://crrev.com/fa3a845d2a2c0d81d2cc1c098a6b624ffde9fbd1/components/viz/common/yuv_readback_unittest.cc
[modify] https://crrev.com/fa3a845d2a2c0d81d2cc1c098a6b624ffde9fbd1/components/viz/service/display_embedder/gpu_display_provider.cc
[modify] https://crrev.com/fa3a845d2a2c0d81d2cc1c098a6b624ffde9fbd1/components/viz/service/display_embedder/viz_process_context_provider.cc
[modify] https://crrev.com/fa3a845d2a2c0d81d2cc1c098a6b624ffde9fbd1/components/viz/service/display_embedder/viz_process_context_provider.h
[modify] https://crrev.com/fa3a845d2a2c0d81d2cc1c098a6b624ffde9fbd1/content/browser/compositor/gpu_process_transport_factory.cc
[modify] https://crrev.com/fa3a845d2a2c0d81d2cc1c098a6b624ffde9fbd1/content/browser/compositor/test/test_image_transport_factory.cc
[modify] https://crrev.com/fa3a845d2a2c0d81d2cc1c098a6b624ffde9fbd1/content/browser/compositor/viz_process_transport_factory.cc
[modify] https://crrev.com/fa3a845d2a2c0d81d2cc1c098a6b624ffde9fbd1/content/browser/renderer_host/compositor_impl_android.cc
[modify] https://crrev.com/fa3a845d2a2c0d81d2cc1c098a6b624ffde9fbd1/content/renderer/render_thread_impl.cc
[modify] https://crrev.com/fa3a845d2a2c0d81d2cc1c098a6b624ffde9fbd1/content/renderer/renderer_blink_platform_impl.cc
[modify] https://crrev.com/fa3a845d2a2c0d81d2cc1c098a6b624ffde9fbd1/content/renderer/renderer_blink_platform_impl.h
[modify] https://crrev.com/fa3a845d2a2c0d81d2cc1c098a6b624ffde9fbd1/content/shell/test_runner/test_plugin.cc
[modify] https://crrev.com/fa3a845d2a2c0d81d2cc1c098a6b624ffde9fbd1/content/test/gpu_browsertest_helpers.cc
[modify] https://crrev.com/fa3a845d2a2c0d81d2cc1c098a6b624ffde9fbd1/content/test/layouttest_support.cc
[modify] https://crrev.com/fa3a845d2a2c0d81d2cc1c098a6b624ffde9fbd1/gpu/ipc/client/gpu_in_process_context_tests.cc
[modify] https://crrev.com/fa3a845d2a2c0d81d2cc1c098a6b624ffde9fbd1/gpu/ipc/gl_in_process_context.cc
[modify] https://crrev.com/fa3a845d2a2c0d81d2cc1c098a6b624ffde9fbd1/gpu/ipc/gl_in_process_context.h
[modify] https://crrev.com/fa3a845d2a2c0d81d2cc1c098a6b624ffde9fbd1/services/ui/public/cpp/gpu/context_provider_command_buffer.cc
[modify] https://crrev.com/fa3a845d2a2c0d81d2cc1c098a6b624ffde9fbd1/services/ui/public/cpp/gpu/context_provider_command_buffer.h
[modify] https://crrev.com/fa3a845d2a2c0d81d2cc1c098a6b624ffde9fbd1/services/ui/public/cpp/gpu/gpu.cc
[modify] https://crrev.com/fa3a845d2a2c0d81d2cc1c098a6b624ffde9fbd1/third_party/blink/public/platform/platform.h
[modify] https://crrev.com/fa3a845d2a2c0d81d2cc1c098a6b624ffde9fbd1/third_party/blink/renderer/modules/webgl/webgl_rendering_context_base.cc
[modify] https://crrev.com/fa3a845d2a2c0d81d2cc1c098a6b624ffde9fbd1/third_party/blink/renderer/platform/exported/platform.cc
[modify] https://crrev.com/fa3a845d2a2c0d81d2cc1c098a6b624ffde9fbd1/third_party/blink/renderer/platform/graphics/gpu/shared_gpu_context.cc
[modify] https://crrev.com/fa3a845d2a2c0d81d2cc1c098a6b624ffde9fbd1/ui/compositor/test/in_process_context_factory.cc
[modify] https://crrev.com/fa3a845d2a2c0d81d2cc1c098a6b624ffde9fbd1/ui/compositor/test/in_process_context_provider.cc
[modify] https://crrev.com/fa3a845d2a2c0d81d2cc1c098a6b624ffde9fbd1/ui/compositor/test/in_process_context_provider.h

Project Member

Comment 43 by bugdroid1@chromium.org, Apr 25 2018

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

commit 4f9ee5fbd2b3711a5d7ec94a6e1a80222164c51c
Author: Jonathan Backer <backer@chromium.org>
Date: Wed Apr 25 14:03:38 2018

Implement raster context loss methods

Notable changes in this CL:

- mark all RasterDecoderImpl class final (maybe compiler can
  devirtualize)

- copy over context loss related methods from GLES2DecoderImpl to
  RasterDecoderImpl

- port over GLES2Decoder context loss unit tests to RasterDecoder

Bug:  789238 
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I919163ce459603109b12ee864561debb136ff594
Reviewed-on: https://chromium-review.googlesource.com/1025961
Commit-Queue: Jonathan Backer <backer@chromium.org>
Reviewed-by: Peng Huang <penghuang@chromium.org>
Cr-Commit-Position: refs/heads/master@{#553538}
[modify] https://crrev.com/4f9ee5fbd2b3711a5d7ec94a6e1a80222164c51c/gpu/BUILD.gn
[modify] https://crrev.com/4f9ee5fbd2b3711a5d7ec94a6e1a80222164c51c/gpu/command_buffer/service/gles2_cmd_decoder_unittest_context_lost.cc
[modify] https://crrev.com/4f9ee5fbd2b3711a5d7ec94a6e1a80222164c51c/gpu/command_buffer/service/raster_decoder.cc
[modify] https://crrev.com/4f9ee5fbd2b3711a5d7ec94a6e1a80222164c51c/gpu/command_buffer/service/raster_decoder_unittest.cc
[modify] https://crrev.com/4f9ee5fbd2b3711a5d7ec94a6e1a80222164c51c/gpu/command_buffer/service/raster_decoder_unittest_base.cc
[modify] https://crrev.com/4f9ee5fbd2b3711a5d7ec94a6e1a80222164c51c/gpu/command_buffer/service/raster_decoder_unittest_base.h
[add] https://crrev.com/4f9ee5fbd2b3711a5d7ec94a6e1a80222164c51c/gpu/command_buffer/service/raster_decoder_unittest_context_lost.cc

Project Member

Comment 44 by bugdroid1@chromium.org, Apr 25 2018

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

commit 6307cee92c0244840864eefd8d1f6f0c21832185
Author: Jonathan Backer <backer@chromium.org>
Date: Wed Apr 25 19:53:43 2018

Implement raster SetColorSpaceMetadata

This implements SetColorSpaceMetadata for
Raster{Implementation,Decoder}. Mostly copy paste from
GLES2{Implementation,Decoder}. Other changes:

- parameterize raster_in_process_context_tests.cc to test
  both RasterDecoder and GLES2Decoder

- added a new
  RasterInProcessCommandBufferTest.SetColorSpaceMetadata to
  cover the new RasterDecoder codepath and the prior
  GLES2Decoder path

Bug:  789238 
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: I437955dfc0821866e251aa15efa2adbfbb9ad8ed
Reviewed-on: https://chromium-review.googlesource.com/1024607
Reviewed-by: kylechar <kylechar@chromium.org>
Commit-Queue: Jonathan Backer <backer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#553706}
[modify] https://crrev.com/6307cee92c0244840864eefd8d1f6f0c21832185/gpu/BUILD.gn
[modify] https://crrev.com/6307cee92c0244840864eefd8d1f6f0c21832185/gpu/command_buffer/client/raster_implementation.cc
[modify] https://crrev.com/6307cee92c0244840864eefd8d1f6f0c21832185/gpu/command_buffer/service/raster_decoder.cc
[modify] https://crrev.com/6307cee92c0244840864eefd8d1f6f0c21832185/gpu/ipc/client/DEPS
[modify] https://crrev.com/6307cee92c0244840864eefd8d1f6f0c21832185/gpu/ipc/client/gpu_in_process_context_tests.cc
[add] https://crrev.com/6307cee92c0244840864eefd8d1f6f0c21832185/gpu/ipc/client/raster_in_process_context_tests.cc

Project Member

Comment 45 by bugdroid1@chromium.org, May 3 2018

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

commit 76dfd502f1d1ae2288746e01fac1aa69751741de
Author: Jonathan Backer <backer@chromium.org>
Date: Thu May 03 18:34:31 2018

Implement TexStorage2DImage

This is supported on OSX and was triggered when running with
--enable-oop-rasterization and --enable-raster-decoder. This CL is
necessary before we can land http://crrev.com/c/1031012

Notable changes:

- shuffled some code from compositor_util to gpu_memory_support so that
  we can use it in a lower layer

- add proper gpu memory buffer support to InProcCmdBuffer

- add a raster_in_process_context_tests to give us some basic code
  coverage

- copy-pasta from GLES2DecoderImpl to RasterDecoderImpl to implement
  TexStorage2DImage

Bug:  789238 
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel
Change-Id: Iee75adbfd922ab0c94f2e563fe4fbdbf4c84f231
Reviewed-on: https://chromium-review.googlesource.com/964894
Reviewed-by: Zhenyao Mo <zmo@chromium.org>
Commit-Queue: Jonathan Backer <backer@chromium.org>
Cr-Commit-Position: refs/heads/master@{#555825}
[modify] https://crrev.com/76dfd502f1d1ae2288746e01fac1aa69751741de/content/browser/gpu/compositor_util.cc
[modify] https://crrev.com/76dfd502f1d1ae2288746e01fac1aa69751741de/content/browser/gpu/compositor_util.h
[modify] https://crrev.com/76dfd502f1d1ae2288746e01fac1aa69751741de/content/browser/gpu/gpu_data_manager_impl_private.cc
[modify] https://crrev.com/76dfd502f1d1ae2288746e01fac1aa69751741de/gpu/BUILD.gn
[modify] https://crrev.com/76dfd502f1d1ae2288746e01fac1aa69751741de/gpu/command_buffer/service/raster_decoder.cc
[modify] https://crrev.com/76dfd502f1d1ae2288746e01fac1aa69751741de/gpu/ipc/BUILD.gn
[modify] https://crrev.com/76dfd502f1d1ae2288746e01fac1aa69751741de/gpu/ipc/client/raster_in_process_context_tests.cc
[modify] https://crrev.com/76dfd502f1d1ae2288746e01fac1aa69751741de/gpu/ipc/host/gpu_memory_buffer_support.cc
[modify] https://crrev.com/76dfd502f1d1ae2288746e01fac1aa69751741de/gpu/ipc/host/gpu_memory_buffer_support.h
[modify] https://crrev.com/76dfd502f1d1ae2288746e01fac1aa69751741de/gpu/ipc/in_process_command_buffer.cc

Project Member

Comment 46 by bugdroid1@chromium.org, May 3 2018

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

commit eba6af489863ad51cb697a24b381d3d98cbafab3
Author: Jonathan Backer <backer@chromium.org>
Date: Thu May 03 22:47:43 2018

Enable RasterDecoder whenever --enable-oop-rasterization

This CL turns removes --enable-raster-decoder and turns on RasterDecoder
whenever --enable-oop-rasterization is passed from the command line
when starting chrome.

This is not yet true for tests. We will still use
RasterImplementationGLES and GLES2Decoder if
attribs.enable_oop_rasterization and attribs.enable_gles2_interface.
This was done to maintain coverage of both RasterImplementationGLES and
RasterImplementation.  I will clean this up in separate CLs as I rip out
OOP-R code from GLES2{Impl,Decoder}.

TBR: achuith@chromium.org, sadrul@chromium.org
Bug:  789238 
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;luci.chromium.try:linux_optional_gpu_tests_rel;luci.chromium.try:mac_optional_gpu_tests_rel;luci.chromium.try:win_optional_gpu_tests_rel;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I3e0bd4606c70f4bb9c52117c5aa0baa6ded37665
Reviewed-on: https://chromium-review.googlesource.com/1031012
Commit-Queue: Jonathan Backer <backer@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: enne <enne@chromium.org>
Cr-Commit-Position: refs/heads/master@{#555894}
[modify] https://crrev.com/eba6af489863ad51cb697a24b381d3d98cbafab3/cc/paint/oop_pixeltest.cc
[modify] https://crrev.com/eba6af489863ad51cb697a24b381d3d98cbafab3/cc/paint/transfer_cache_unittest.cc
[modify] https://crrev.com/eba6af489863ad51cb697a24b381d3d98cbafab3/cc/test/test_in_process_context_provider.cc
[modify] https://crrev.com/eba6af489863ad51cb697a24b381d3d98cbafab3/chrome/browser/chromeos/login/chrome_restart_request.cc
[modify] https://crrev.com/eba6af489863ad51cb697a24b381d3d98cbafab3/content/browser/renderer_host/render_process_host_impl.cc
[modify] https://crrev.com/eba6af489863ad51cb697a24b381d3d98cbafab3/content/gpu/gpu_main.cc
[modify] https://crrev.com/eba6af489863ad51cb697a24b381d3d98cbafab3/content/renderer/render_thread_impl.cc
[modify] https://crrev.com/eba6af489863ad51cb697a24b381d3d98cbafab3/gpu/command_buffer/common/context_creation_attribs.h
[modify] https://crrev.com/eba6af489863ad51cb697a24b381d3d98cbafab3/gpu/command_buffer/service/gpu_preferences.h
[modify] https://crrev.com/eba6af489863ad51cb697a24b381d3d98cbafab3/gpu/command_buffer/service/raster_decoder.cc
[modify] https://crrev.com/eba6af489863ad51cb697a24b381d3d98cbafab3/gpu/command_buffer/service/service_utils.cc
[modify] https://crrev.com/eba6af489863ad51cb697a24b381d3d98cbafab3/gpu/config/gpu_switches.cc
[modify] https://crrev.com/eba6af489863ad51cb697a24b381d3d98cbafab3/gpu/config/gpu_switches.h
[modify] https://crrev.com/eba6af489863ad51cb697a24b381d3d98cbafab3/gpu/ipc/client/raster_in_process_context_tests.cc
[modify] https://crrev.com/eba6af489863ad51cb697a24b381d3d98cbafab3/gpu/ipc/common/gpu_command_buffer_traits_multi.h
[modify] https://crrev.com/eba6af489863ad51cb697a24b381d3d98cbafab3/gpu/ipc/common/gpu_preferences.mojom
[modify] https://crrev.com/eba6af489863ad51cb697a24b381d3d98cbafab3/gpu/ipc/common/gpu_preferences_struct_traits.h
[modify] https://crrev.com/eba6af489863ad51cb697a24b381d3d98cbafab3/gpu/ipc/common/gpu_preferences_util_unittest.cc
[modify] https://crrev.com/eba6af489863ad51cb697a24b381d3d98cbafab3/gpu/ipc/in_process_command_buffer.cc
[modify] https://crrev.com/eba6af489863ad51cb697a24b381d3d98cbafab3/gpu/ipc/raster_in_process_context.cc
[modify] https://crrev.com/eba6af489863ad51cb697a24b381d3d98cbafab3/gpu/ipc/service/gpu_channel.cc
[modify] https://crrev.com/eba6af489863ad51cb697a24b381d3d98cbafab3/services/ui/public/cpp/gpu/context_provider_command_buffer.cc

Blockedon: -829435
Status: Fixed (was: Started)
I'm unblocking this on supporting passthrough. Passthrough still needs to be done, but it's not blocking android finch.
Blocking: 877133

Sign in to add a comment