VA-API accelerated JPEG decoding in Chrome OS |
|||||||||||
Issue descriptionThis is the tracking bug for the implementation of general JPEG decode acceleration in Chrome OS using the VA-API. Currently, acceleration is used for camera captures. ⛆ |
|
|
,
Aug 21
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/43c0e8adb8cd58c2f64c68066f88f9bff3087da1 commit 43c0e8adb8cd58c2f64c68066f88f9bff3087da1 Author: Andres Calderon Jaramillo <andrescj@chromium.org> Date: Tue Aug 21 02:46:23 2018 Add a feature guard to implement CrOS VA-API JPEG decode acceleration. This CL creates a base::Feature flag in content to guard the implementation of decode acceleration of JPEG images (as opposed to camera captures) in Chrome OS using the VA-API. Bug: 868400 Change-Id: I103a78bc9547862620fea59fb423582226f03d59 Reviewed-on: https://chromium-review.googlesource.com/1180292 Commit-Queue: Andres Calderon Jaramillo <andrescj@chromium.org> Reviewed-by: Avi Drissman <avi@chromium.org> Reviewed-by: Miguel Casas <mcasas@chromium.org> Cr-Commit-Position: refs/heads/master@{#584606} [modify] https://crrev.com/43c0e8adb8cd58c2f64c68066f88f9bff3087da1/chrome/browser/about_flags.cc [modify] https://crrev.com/43c0e8adb8cd58c2f64c68066f88f9bff3087da1/chrome/browser/flag_descriptions.cc [modify] https://crrev.com/43c0e8adb8cd58c2f64c68066f88f9bff3087da1/chrome/browser/flag_descriptions.h [modify] https://crrev.com/43c0e8adb8cd58c2f64c68066f88f9bff3087da1/content/public/common/content_features.cc [modify] https://crrev.com/43c0e8adb8cd58c2f64c68066f88f9bff3087da1/content/public/common/content_features.h [modify] https://crrev.com/43c0e8adb8cd58c2f64c68066f88f9bff3087da1/tools/metrics/histograms/enums.xml
,
Aug 22
,
Aug 22
,
Aug 24
,
Aug 27
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/e43eef10c4b17dc1705682639a1b25c3fecb9d86 commit e43eef10c4b17dc1705682639a1b25c3fecb9d86 Author: Andres Calderon Jaramillo <andrescj@chromium.org> Date: Mon Aug 27 23:34:37 2018 Add a UMA to track the size of JPEG images. This CL introduces the Blink.ImageDecoders.Jpeg.Area UMA which tracks the area (total # of pixels) of JPEG images. The rationale is that the area can be used as a proxy for how useful a JPEG decode accelerator will be: the larger the area, the more likely an accelerator is useful. Bug: 868400 Change-Id: I5252dea60107cd5160e01970b8f6c490c0931b9e Reviewed-on: https://chromium-review.googlesource.com/1172914 Reviewed-by: Mark Pearson <mpearson@chromium.org> Reviewed-by: Khushal <khushalsagar@chromium.org> Reviewed-by: Leon Scroggins <scroggo@chromium.org> Reviewed-by: Miguel Casas <mcasas@chromium.org> Commit-Queue: Andres Calderon Jaramillo <andrescj@chromium.org> Cr-Commit-Position: refs/heads/master@{#586491} [modify] https://crrev.com/e43eef10c4b17dc1705682639a1b25c3fecb9d86/third_party/blink/renderer/platform/image-decoders/DEPS [modify] https://crrev.com/e43eef10c4b17dc1705682639a1b25c3fecb9d86/third_party/blink/renderer/platform/image-decoders/jpeg/jpeg_image_decoder.cc [modify] https://crrev.com/e43eef10c4b17dc1705682639a1b25c3fecb9d86/tools/metrics/histograms/histograms.xml
,
Sep 5
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/605253db5c95e641c8b23693456856022bd0bed1 commit 605253db5c95e641c8b23693456856022bd0bed1 Author: Andres Calderon Jaramillo <andrescj@chromium.org> Date: Wed Sep 05 15:46:35 2018 Move features::kVaapiJpegImageDecodeAcceleration from content to gpu. This CL moves features::kVaapiJpegImageDecodeAcceleration so that it can be accessed easily by GpuServiceImpl. GpuServiceImpl will use it to decide whether it should instantiate an implementation of the image decode acceleration mojo interface when requested by a renderer. Bug: 868400 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: I93aa630792adae723236c8403ff807a31469ea8c Reviewed-on: https://chromium-review.googlesource.com/1203430 Reviewed-by: Camille Lamy <clamy@chromium.org> Reviewed-by: Miguel Casas <mcasas@chromium.org> Reviewed-by: Sunny Sachanandani <sunnyps@chromium.org> Commit-Queue: Andres Calderon Jaramillo <andrescj@chromium.org> Cr-Commit-Position: refs/heads/master@{#588877} [modify] https://crrev.com/605253db5c95e641c8b23693456856022bd0bed1/chrome/browser/about_flags.cc [modify] https://crrev.com/605253db5c95e641c8b23693456856022bd0bed1/content/public/common/content_features.cc [modify] https://crrev.com/605253db5c95e641c8b23693456856022bd0bed1/content/public/common/content_features.h [modify] https://crrev.com/605253db5c95e641c8b23693456856022bd0bed1/gpu/config/gpu_finch_features.cc [modify] https://crrev.com/605253db5c95e641c8b23693456856022bd0bed1/gpu/config/gpu_finch_features.h [modify] https://crrev.com/605253db5c95e641c8b23693456856022bd0bed1/gpu/config/gpu_preferences_unittest.cc
,
Sep 19
,
Sep 27
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/607ea4c4758bde294761dd6e3e5b09ae6f7f7bd6 commit 607ea4c4758bde294761dd6e3e5b09ae6f7f7bd6 Author: Miguel Casas-Sanchez <mcasas@chromium.org> Date: Thu Sep 27 08:50:31 2018 JPEGCodec{RobustSlow}::Decode: refactor to use unique_ptr. This CL removes the class DecompressDestroyer in favour of a unique_ptr<> with specific Deleter. Less lines of code. Functionality covered by gfx_unittest, also under asan bot. Bug: 868400 Change-Id: I7ac2d254d6f5771a81620b14db7e610ff3b7e4b9 Reviewed-on: https://chromium-review.googlesource.com/1245467 Commit-Queue: Miguel Casas <mcasas@chromium.org> Reviewed-by: Daniel Cheng <dcheng@chromium.org> Cr-Commit-Position: refs/heads/master@{#594638} [modify] https://crrev.com/607ea4c4758bde294761dd6e3e5b09ae6f7f7bd6/ui/gfx/codec/chromeos/jpeg_codec_robust_slow.cc [modify] https://crrev.com/607ea4c4758bde294761dd6e3e5b09ae6f7f7bd6/ui/gfx/codec/jpeg_codec.cc
,
Sep 27
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/2af305d3acd0b5ae5d04c78d82f2ab4211b4f8b7 commit 2af305d3acd0b5ae5d04c78d82f2ab4211b4f8b7 Author: Marina Ciocea <marinaciocea@chromium.org> Date: Thu Sep 27 11:57:14 2018 Revert "JPEGCodec{RobustSlow}::Decode: refactor to use unique_ptr." This reverts commit 607ea4c4758bde294761dd6e3e5b09ae6f7f7bd6. Reason for revert: breaks gfx_unittests on Linux Chromium OS ASan LSan bot. Findit analysis: https://findit-for-me.appspot.com/waterfall/failure?url=https://build.chromium.org/p/chromium.memory/builders/Linux%20Chromium%20OS%20ASan%20LSan%20Tests%20%281%29/builds/29208 Original change's description: > JPEGCodec{RobustSlow}::Decode: refactor to use unique_ptr. > > This CL removes the class DecompressDestroyer in favour of > a unique_ptr<> with specific Deleter. Less lines of code. > > Functionality covered by gfx_unittest, also under asan bot. > > Bug: 868400 > Change-Id: I7ac2d254d6f5771a81620b14db7e610ff3b7e4b9 > Reviewed-on: https://chromium-review.googlesource.com/1245467 > Commit-Queue: Miguel Casas <mcasas@chromium.org> > Reviewed-by: Daniel Cheng <dcheng@chromium.org> > Cr-Commit-Position: refs/heads/master@{#594638} TBR=dcheng@chromium.org,mcasas@chromium.org Change-Id: Ia8291bed9f539217969c7978c7dbc120c4fead43 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: 868400 Reviewed-on: https://chromium-review.googlesource.com/1249204 Reviewed-by: Marina Ciocea <marinaciocea@chromium.org> Commit-Queue: Marina Ciocea <marinaciocea@chromium.org> Cr-Commit-Position: refs/heads/master@{#594679} [modify] https://crrev.com/2af305d3acd0b5ae5d04c78d82f2ab4211b4f8b7/ui/gfx/codec/chromeos/jpeg_codec_robust_slow.cc [modify] https://crrev.com/2af305d3acd0b5ae5d04c78d82f2ab4211b4f8b7/ui/gfx/codec/jpeg_codec.cc
,
Sep 28
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/b6b590ae77285685ba8731fc4df5fecdb5ee6b57 commit b6b590ae77285685ba8731fc4df5fecdb5ee6b57 Author: Sunny Sachanandani <sunnyps@chromium.org> Date: Fri Sep 28 05:20:43 2018 Simplify GpuChannel initialization Removes the FilteredSender abstraction that was created specifically for tests, and replaces it with a simpler method to initialize GpuChannel for tests. Should make it simpler to change IPC channel initialization for associating image decode accelerator mojo interface. Bug: 868400 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: Ifc57407fe8fac36daa0ace155c88cd54c04b39b4 Reviewed-on: https://chromium-review.googlesource.com/1250139 Reviewed-by: Antoine Labour <piman@chromium.org> Commit-Queue: Sunny Sachanandani <sunnyps@chromium.org> Cr-Commit-Position: refs/heads/master@{#594991} [modify] https://crrev.com/b6b590ae77285685ba8731fc4df5fecdb5ee6b57/components/viz/service/gl/gpu_service_impl.cc [modify] https://crrev.com/b6b590ae77285685ba8731fc4df5fecdb5ee6b57/gpu/ipc/service/gpu_channel.cc [modify] https://crrev.com/b6b590ae77285685ba8731fc4df5fecdb5ee6b57/gpu/ipc/service/gpu_channel.h [modify] https://crrev.com/b6b590ae77285685ba8731fc4df5fecdb5ee6b57/gpu/ipc/service/gpu_channel_test_common.cc [modify] https://crrev.com/b6b590ae77285685ba8731fc4df5fecdb5ee6b57/gpu/ipc/service/gpu_channel_test_common.h
,
Sep 29
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/943c1b30f6f037f8d620a399467634ee5e7d511b commit 943c1b30f6f037f8d620a399467634ee5e7d511b Author: Miguel Casas-Sanchez <mcasas@chromium.org> Date: Sat Sep 29 00:37:08 2018 RELAND: JPEGCodec{RobustSlow}::Decode: refactor to use unique_ptr. crrev.com/c/1245467 got reverted due to a silly oversight -- I have to delete the pointer in the Deleter operator(). Solution is crrev.com/c/1249481/1..5 Original CL description ------------------------------------- JPEGCodec{RobustSlow}::Decode: refactor to use unique_ptr. This CL removes the class DecompressDestroyer in favour of a unique_ptr<> with specific Deleter. Less lines of code. Functionality covered by gfx_unittest, also under asan bot. Bug: 868400 Change-Id: I53ff80d4304b02c08719a1b0c5b1175e3a0d061d Reviewed-on: https://chromium-review.googlesource.com/1249481 Commit-Queue: Daniel Cheng <dcheng@chromium.org> Reviewed-by: Daniel Cheng <dcheng@chromium.org> Cr-Commit-Position: refs/heads/master@{#595271} [modify] https://crrev.com/943c1b30f6f037f8d620a399467634ee5e7d511b/ui/gfx/codec/chromeos/jpeg_codec_robust_slow.cc [modify] https://crrev.com/943c1b30f6f037f8d620a399467634ee5e7d511b/ui/gfx/codec/jpeg_codec.cc
,
Oct 9
I'm currently working on enabling HW JPEG decoding on Grunt: crbug.com/828119 crrev.com/c/1119742/20 It seems that not all JPEG chrome subsampling formats are supported by the HW decoder on Grunt (e.g. YUV444). I experimented with adding a fallback to SW in the HW decoder on failure. But this clutters up the code, yuv444 is not used in camera capture and yuv444 JPEGs are pretty rare. So for now I decided not to add the fallback. When general HW JPEG decoding is added, we should check what the effects of a failing YUV444 JPEG decode are.
,
Oct 9
dstaessens@ Thanks! I will have a way to convey to the renderer which formats are supported by the HW decoder, although I'm only expecting to work with YUV420 at the beginning. Take a look at the Blink.ImageDecoders.Jpeg.ColorSpace UMA that I landed recently. It shows the distribution of the subsampling formats for JPEGs decoded in Blink.
,
Oct 29
,
Oct 30
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/a36656853a8d5939f5a9cd9a019ed87d9de7ce09 commit a36656853a8d5939f5a9cd9a019ed87d9de7ce09 Author: Andres Calderon Jaramillo <andrescj@chromium.org> Date: Tue Oct 30 17:28:44 2018 IPC plumbing for hardware-accelerated image decodes. This CL creates a new GPU channel IPC message type, GpuChannelMsg_ScheduleImageDecode, which a renderer will eventually be able to use to request hardware-accelerated image decodes. Two classes are added and plumbed into the existing GPU channel architecture to help deal with this new message: 1) On the service side (GPU process), an ImageDecodeAcceleratorStub processes incoming messages. There is one such stub per GpuChannel, although it is owned by the GpuChannelMessageFilter because it expects to receive messages on the IO thread. 2) On the client side (renderer), an ImageDecodeAcceleratorProxy is associated with a GpuChannelHost. It's a thread-safe helper that allows components in the renderer to schedule image decodes and get back a SyncToken to synchronize on the completion of the decode. The processing of the new IPC message is guarded by the kVaapiJpegImageDecodeAcceleration feature flag: the stub refuses to handle that message if the feature is disabled. Bug: 868400 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: I5d24e661341b5744b30306aca22903f28a52d695 Reviewed-on: https://chromium-review.googlesource.com/c/1285610 Reviewed-by: Robert Sesek <rsesek@chromium.org> Reviewed-by: Sunny Sachanandani <sunnyps@chromium.org> Reviewed-by: Antoine Labour <piman@chromium.org> Commit-Queue: Andres Calderon Jaramillo <andrescj@chromium.org> Cr-Commit-Position: refs/heads/master@{#603944} [modify] https://crrev.com/a36656853a8d5939f5a9cd9a019ed87d9de7ce09/gpu/ipc/client/BUILD.gn [modify] https://crrev.com/a36656853a8d5939f5a9cd9a019ed87d9de7ce09/gpu/ipc/client/gpu_channel_host.cc [modify] https://crrev.com/a36656853a8d5939f5a9cd9a019ed87d9de7ce09/gpu/ipc/client/gpu_channel_host.h [add] https://crrev.com/a36656853a8d5939f5a9cd9a019ed87d9de7ce09/gpu/ipc/client/image_decode_accelerator_proxy.cc [add] https://crrev.com/a36656853a8d5939f5a9cd9a019ed87d9de7ce09/gpu/ipc/client/image_decode_accelerator_proxy.h [modify] https://crrev.com/a36656853a8d5939f5a9cd9a019ed87d9de7ce09/gpu/ipc/common/BUILD.gn [modify] https://crrev.com/a36656853a8d5939f5a9cd9a019ed87d9de7ce09/gpu/ipc/common/command_buffer_id.h [modify] https://crrev.com/a36656853a8d5939f5a9cd9a019ed87d9de7ce09/gpu/ipc/common/gpu_messages.h [modify] https://crrev.com/a36656853a8d5939f5a9cd9a019ed87d9de7ce09/gpu/ipc/service/BUILD.gn [modify] https://crrev.com/a36656853a8d5939f5a9cd9a019ed87d9de7ce09/gpu/ipc/service/gpu_channel.cc [modify] https://crrev.com/a36656853a8d5939f5a9cd9a019ed87d9de7ce09/gpu/ipc/service/gpu_channel.h [modify] https://crrev.com/a36656853a8d5939f5a9cd9a019ed87d9de7ce09/gpu/ipc/service/gpu_channel_manager_unittest.cc [modify] https://crrev.com/a36656853a8d5939f5a9cd9a019ed87d9de7ce09/gpu/ipc/service/gpu_channel_unittest.cc [add] https://crrev.com/a36656853a8d5939f5a9cd9a019ed87d9de7ce09/gpu/ipc/service/image_decode_accelerator_stub.cc [add] https://crrev.com/a36656853a8d5939f5a9cd9a019ed87d9de7ce09/gpu/ipc/service/image_decode_accelerator_stub.h
,
Nov 13
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/1e14110706a8693be3f78cd4ed998cc681473768 commit 1e14110706a8693be3f78cd4ed998cc681473768 Author: Andres Calderon Jaramillo <andrescj@chromium.org> Date: Tue Nov 13 02:07:18 2018 Let ClientTransferCache lock entries without creating on the service. This CL adds a method to ClientTransferCache that allows the client to get a ClientDiscardableHandle without ClientTransferCache::Client::IssueCreateTransferCacheEntry getting called so that the client can essentially start a locked entry but trigger the creation of the service-side entry using some other mechanism, e.g., an IPC message. This is needed for hardware-accelerated image decodes because the decode will be started by sending an IPC message, and the service-side cache entry shouldn't be created until the decode is done, so the usual flow of triggering the cache entry creation using the command buffer won't do. Additionally, some documentation is updated. Bug: 868400 Change-Id: I24cf9b921b8a0ea2e7038c1801f2b7c36fda1927 Reviewed-on: https://chromium-review.googlesource.com/c/1328184 Reviewed-by: Antoine Labour <piman@chromium.org> Reviewed-by: Khushal <khushalsagar@chromium.org> Commit-Queue: Andres Calderon Jaramillo <andrescj@chromium.org> Cr-Commit-Position: refs/heads/master@{#607438} [modify] https://crrev.com/1e14110706a8693be3f78cd4ed998cc681473768/gpu/command_buffer/client/client_transfer_cache.cc [modify] https://crrev.com/1e14110706a8693be3f78cd4ed998cc681473768/gpu/command_buffer/client/client_transfer_cache.h
,
Nov 21
,
Nov 27
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/8235453838db4d7f51a3181ce8a52a3cd51c51af commit 8235453838db4d7f51a3181ce8a52a3cd51c51af Author: Andres Calderon Jaramillo <andrescj@chromium.org> Date: Tue Nov 27 20:53:06 2018 RasterInterface plumbing for image decode acceleration. This CL adds a ScheduleImageDecode() method to RasterInterface that locks a transfer cache entry and sends an image decode request. This is done so that it's convenient for the GpuImageDecodeCache to eventually request image decodes. Note that a new interface was introduced: ImageDecodeAcceleratorInterface. This is necessary to allow RasterImplementation to use ImageDecodeAcceleratorProxy without breaking dependencies. Bug: 868400 Change-Id: Ib24ffa9f5855cc843e1bf83ef4cd2ebb039c04d8 Reviewed-on: https://chromium-review.googlesource.com/c/1313671 Reviewed-by: Robert Sesek <rsesek@chromium.org> Reviewed-by: Antoine Labour <piman@chromium.org> Reviewed-by: Sunny Sachanandani <sunnyps@chromium.org> Commit-Queue: Andres Calderon Jaramillo <andrescj@chromium.org> Cr-Commit-Position: refs/heads/master@{#611304} [modify] https://crrev.com/8235453838db4d7f51a3181ce8a52a3cd51c51af/gpu/command_buffer/client/BUILD.gn [modify] https://crrev.com/8235453838db4d7f51a3181ce8a52a3cd51c51af/gpu/command_buffer/client/client_transfer_cache.cc [modify] https://crrev.com/8235453838db4d7f51a3181ce8a52a3cd51c51af/gpu/command_buffer/client/client_transfer_cache.h [add] https://crrev.com/8235453838db4d7f51a3181ce8a52a3cd51c51af/gpu/command_buffer/client/image_decode_accelerator_interface.h [modify] https://crrev.com/8235453838db4d7f51a3181ce8a52a3cd51c51af/gpu/command_buffer/client/raster_implementation.cc [modify] https://crrev.com/8235453838db4d7f51a3181ce8a52a3cd51c51af/gpu/command_buffer/client/raster_implementation.h [modify] https://crrev.com/8235453838db4d7f51a3181ce8a52a3cd51c51af/gpu/command_buffer/client/raster_implementation_gles.cc [modify] https://crrev.com/8235453838db4d7f51a3181ce8a52a3cd51c51af/gpu/command_buffer/client/raster_implementation_gles.h [modify] https://crrev.com/8235453838db4d7f51a3181ce8a52a3cd51c51af/gpu/command_buffer/client/raster_implementation_unittest.cc [modify] https://crrev.com/8235453838db4d7f51a3181ce8a52a3cd51c51af/gpu/command_buffer/client/raster_interface.h [modify] https://crrev.com/8235453838db4d7f51a3181ce8a52a3cd51c51af/gpu/ipc/client/image_decode_accelerator_proxy.cc [modify] https://crrev.com/8235453838db4d7f51a3181ce8a52a3cd51c51af/gpu/ipc/client/image_decode_accelerator_proxy.h [modify] https://crrev.com/8235453838db4d7f51a3181ce8a52a3cd51c51af/gpu/ipc/common/command_buffer_id.h [modify] https://crrev.com/8235453838db4d7f51a3181ce8a52a3cd51c51af/gpu/ipc/raster_in_process_context.cc [modify] https://crrev.com/8235453838db4d7f51a3181ce8a52a3cd51c51af/services/ws/public/cpp/gpu/context_provider_command_buffer.cc
,
Dec 11
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/c8c2769f4dd8c5761af90b3a39529c338c149257 commit c8c2769f4dd8c5761af90b3a39529c338c149257 Author: Andres Calderon Jaramillo <andrescj@chromium.org> Date: Tue Dec 11 01:38:37 2018 Handle the release of sync tokens for image decode acceleration. This CL adds code to make the gpu::ImageDecodeAcceleratorStub use the gpu::Scheduler to release decode sync tokens when a decode is completed. A new interface is created, ImageDecodeAcceleratorWorker, which will eventually be implemented to carry out the actual hardware decode. Upon receiving an IPC request, the ImageDecodeAcceleratorStub does the following: 1) Schedule a task in the GPU scheduler to release the decode sync token. This task, encapsulated by the ProcessCompletedDecode() method, is not run until the decode completes. 2) Ask the ImageDecodeAcceleratorWorker to do the actual decode. Upon completion, the worker calls the OnCompletedDecode() method which enables the scheduler sequence so that the task created in (1) can run. Test: created unit tests for the added behavior. Bug: 868400 Change-Id: I562ed5a81badca578acb468864f67942eacf2f43 Reviewed-on: https://chromium-review.googlesource.com/c/1355528 Commit-Queue: Andres Calderon Jaramillo <andrescj@chromium.org> Reviewed-by: Antoine Labour <piman@chromium.org> Reviewed-by: Sunny Sachanandani <sunnyps@chromium.org> Cr-Commit-Position: refs/heads/master@{#615371} [modify] https://crrev.com/c8c2769f4dd8c5761af90b3a39529c338c149257/components/viz/service/gl/gpu_service_impl.cc [modify] https://crrev.com/c8c2769f4dd8c5761af90b3a39529c338c149257/gpu/BUILD.gn [modify] https://crrev.com/c8c2769f4dd8c5761af90b3a39529c338c149257/gpu/command_buffer/service/scheduler.cc [modify] https://crrev.com/c8c2769f4dd8c5761af90b3a39529c338c149257/gpu/ipc/service/BUILD.gn [modify] https://crrev.com/c8c2769f4dd8c5761af90b3a39529c338c149257/gpu/ipc/service/gpu_channel.cc [modify] https://crrev.com/c8c2769f4dd8c5761af90b3a39529c338c149257/gpu/ipc/service/gpu_channel.h [modify] https://crrev.com/c8c2769f4dd8c5761af90b3a39529c338c149257/gpu/ipc/service/gpu_channel_manager.cc [modify] https://crrev.com/c8c2769f4dd8c5761af90b3a39529c338c149257/gpu/ipc/service/gpu_channel_manager.h [modify] https://crrev.com/c8c2769f4dd8c5761af90b3a39529c338c149257/gpu/ipc/service/gpu_channel_test_common.cc [modify] https://crrev.com/c8c2769f4dd8c5761af90b3a39529c338c149257/gpu/ipc/service/gpu_channel_test_common.h [modify] https://crrev.com/c8c2769f4dd8c5761af90b3a39529c338c149257/gpu/ipc/service/image_decode_accelerator_stub.cc [modify] https://crrev.com/c8c2769f4dd8c5761af90b3a39529c338c149257/gpu/ipc/service/image_decode_accelerator_stub.h [add] https://crrev.com/c8c2769f4dd8c5761af90b3a39529c338c149257/gpu/ipc/service/image_decode_accelerator_stub_unittest.cc [add] https://crrev.com/c8c2769f4dd8c5761af90b3a39529c338c149257/gpu/ipc/service/image_decode_accelerator_worker.h
,
Dec 13
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/64f5ebbc492de150283631a0fc352868cb681f90 commit 64f5ebbc492de150283631a0fc352868cb681f90 Author: Andres Calderon Jaramillo <andrescj@chromium.org> Date: Thu Dec 13 02:20:33 2018 Validate release_count and output_size in a ScheduleImageDecode request. This CL adds code to make sure that a) ScheduleImageDecode requests are submitted in order, i.e., the release_count of the sync tokens is strictly increasing and starts at >= 1. b) The output_size parameter is at least 1x1. Additionally, the overflow check for the output data size is removed as that will be delegated to the ImageDecodeAcceleratorWorker later when it needs to calculate the data size and allocate memory for the output. Test: this CL adds unit tests for the validation code. Bug: 868400 Change-Id: Ia3348668a9f8df982d2ed31729bfcd1382282cd0 Reviewed-on: https://chromium-review.googlesource.com/c/1368595 Commit-Queue: Andres Calderon Jaramillo <andrescj@chromium.org> Reviewed-by: Robert Sesek <rsesek@chromium.org> Reviewed-by: Sunny Sachanandani <sunnyps@chromium.org> Cr-Commit-Position: refs/heads/master@{#616166} [modify] https://crrev.com/64f5ebbc492de150283631a0fc352868cb681f90/gpu/ipc/service/image_decode_accelerator_stub.cc [modify] https://crrev.com/64f5ebbc492de150283631a0fc352868cb681f90/gpu/ipc/service/image_decode_accelerator_stub.h [modify] https://crrev.com/64f5ebbc492de150283631a0fc352868cb681f90/gpu/ipc/service/image_decode_accelerator_stub_unittest.cc
,
Today
(12 hours ago)
|
||||||||
►
Sign in to add a comment |
|||||||||||
Comment 1 by andrescj@chromium.org
, Aug 10