New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 776093 link

Starred by 4 users

Issue metadata

Status: Started
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 3
Type: Bug


Participants' hotlists:
high-bit-depth


Sign in to add a comment

Add support for XR30 native GMBs on CrOS and Chromium.

Project Member Reported by dcasta...@chromium.org, Oct 18 2017

Issue description

10 bit per component buffers are supported on kbl.

Their usage can be rendering, texturing and scanout.

While the HW supports it, and we tested it, a few pieces are missing.
In particular:
- minigbm needs to add the formats to the list of supported format.
- mesa needs to be modified to allow the format as a render target, the change is trivial, but we might want to wait for upstream to do it: https://lists.freedesktop.org/archives/mesa-dev/2017-October/171929.html
- Chromium needs to add 10bit per components native GMBs support.

Additionally, useful but not necessary would be to:
- Fix modetest (in libdrm) to display something other than black with XR30. MAKE_RGBA macro is broken (it shifts by a negative number) in tests/util/pattern.c.
- Add 10 bit per component support to null_platform_test.


We already discussed that using 10bit per component formats for compositing is probably not a good idea.
We might still want to use them for high bit depth videos and this work would probably be helpful for future work needed to support half floats formats.
 
Components: OS>Kernel>Graphics
Labels: -OS-Linux OS-Chrome
Cc: marc...@chromium.org
Project Member

Comment 3 by bugdroid1@chromium.org, Oct 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/minigbm/+/7a2df9085b91ddbd85d6c3d8c1760dac1b7f54b6

commit 7a2df9085b91ddbd85d6c3d8c1760dac1b7f54b6
Author: Daniele Castagna <dcastagna@chromium.org>
Date: Fri Oct 20 02:06:12 2017

minigbm: i915: add XR30 and XB30 formats.

i915 supports 30bit per component formats.
This CL adds XR30 and XB30 to minigbm i915 backend.

This CL also sorts render_target_formats alphabetically.

BUG=chromium:776093
TEST=Ran a modifier version of null_platform_test that will be
uploaded soon.

Change-Id: If4f2f74cb10a0534023b9b6142ee84ced0ed8a38
Reviewed-on: https://chromium-review.googlesource.com/726318
Commit-Ready: Daniele Castagna <dcastagna@chromium.org>
Tested-by: Daniele Castagna <dcastagna@chromium.org>
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>

[modify] https://crrev.com/7a2df9085b91ddbd85d6c3d8c1760dac1b7f54b6/i915.c

Project Member

Comment 4 by bugdroid1@chromium.org, Oct 21 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/drm-tests/+/7272912837d6cd00992b497230ab36d203bb5123

commit 7272912837d6cd00992b497230ab36d203bb5123
Author: Daniele Castagna <dcastagna@chromium.org>
Date: Sat Oct 21 00:59:28 2017

Add <format> parameter to null_platform_test

Add the possibility to specify the fb formats to null_platform_test.
This can be useful to test 10 bit per component formats and switching
between different formats when pageflipping.

BUG=chromium:776093
TEST='null_platform_test -f XR30' on eve (with custom mesa).

Change-Id: I343cc6b820f62eebb52d22f39c98ba73157f1ab8
Reviewed-on: https://chromium-review.googlesource.com/726779
Commit-Ready: Daniele Castagna <dcastagna@chromium.org>
Tested-by: Daniele Castagna <dcastagna@chromium.org>
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>

[modify] https://crrev.com/7272912837d6cd00992b497230ab36d203bb5123/null_platform_test.c

Project Member

Comment 5 by bugdroid1@chromium.org, Oct 26 2017

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

commit 3a416dfb629efeaa6179ca01f9365ff49148ac3b
Author: Daniele Castagna <dcastagna@chromium.org>
Date: Thu Oct 26 19:23:49 2017

Add XR30 native pixmap GpuMemoryBuffer support.

This adds a new BGRX_1010102 buffer format that uses 10 bits per
component.

On some boards (e.g: Kaby Lake) we can texture from it, use it as
a render target, and scanout (with dithering).

Mesa needs to be updated with some patches from upstream to support
creating an image with XR30.

Bug: 776093
Test: ozone_gl_unittests --gtest_also_run_disabled_tests with patched mesa.
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: Id21007b4c3bc13e83f09a2e9f55459c1dcd1811f
Reviewed-on: https://chromium-review.googlesource.com/738555
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Reviewed-by: David Reveman <reveman@chromium.org>
Commit-Queue: Daniele Castagna <dcastagna@chromium.org>
Cr-Commit-Position: refs/heads/master@{#511918}
[modify] https://crrev.com/3a416dfb629efeaa6179ca01f9365ff49148ac3b/components/exo/buffer.cc
[modify] https://crrev.com/3a416dfb629efeaa6179ca01f9365ff49148ac3b/content/browser/gpu/gpu_internals_ui.cc
[modify] https://crrev.com/3a416dfb629efeaa6179ca01f9365ff49148ac3b/gpu/command_buffer/common/gpu_memory_buffer_support.cc
[modify] https://crrev.com/3a416dfb629efeaa6179ca01f9365ff49148ac3b/gpu/command_buffer/tests/gl_gpu_memory_buffer_unittest.cc
[modify] https://crrev.com/3a416dfb629efeaa6179ca01f9365ff49148ac3b/gpu/ipc/client/gpu_memory_buffer_impl_shared_memory.cc
[modify] https://crrev.com/3a416dfb629efeaa6179ca01f9365ff49148ac3b/gpu/ipc/host/gpu_memory_buffer_support.cc
[modify] https://crrev.com/3a416dfb629efeaa6179ca01f9365ff49148ac3b/ui/gfx/buffer_format_util.cc
[modify] https://crrev.com/3a416dfb629efeaa6179ca01f9365ff49148ac3b/ui/gfx/buffer_types.h
[modify] https://crrev.com/3a416dfb629efeaa6179ca01f9365ff49148ac3b/ui/gfx/mac/io_surface.cc
[modify] https://crrev.com/3a416dfb629efeaa6179ca01f9365ff49148ac3b/ui/gfx/mojo/buffer_types.mojom
[modify] https://crrev.com/3a416dfb629efeaa6179ca01f9365ff49148ac3b/ui/gfx/mojo/buffer_types_struct_traits.h
[modify] https://crrev.com/3a416dfb629efeaa6179ca01f9365ff49148ac3b/ui/gl/gl_image_io_surface.mm
[modify] https://crrev.com/3a416dfb629efeaa6179ca01f9365ff49148ac3b/ui/gl/gl_image_memory.cc
[modify] https://crrev.com/3a416dfb629efeaa6179ca01f9365ff49148ac3b/ui/gl/gl_image_native_pixmap.cc
[modify] https://crrev.com/3a416dfb629efeaa6179ca01f9365ff49148ac3b/ui/gl/test/gl_image_test_support.cc
[modify] https://crrev.com/3a416dfb629efeaa6179ca01f9365ff49148ac3b/ui/ozone/gl/gl_image_ozone_native_pixmap_unittest.cc
[modify] https://crrev.com/3a416dfb629efeaa6179ca01f9365ff49148ac3b/ui/ozone/platform/drm/common/drm_util.cc

Project Member

Comment 6 by bugdroid1@chromium.org, Oct 26 2017

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

commit a7921c03adaad09eb9d0fffc99848178be249703
Author: Daniele Castagna <dcastagna@chromium.org>
Date: Thu Oct 26 19:53:39 2017

ozone: GLImageNativePixmapTestDelegate nits addressed.

In crrev.com/c/738555 some nits (a blank line and a const) didn't get
addressed properly (git cl upload failed).

This CL addresses those nits.

Bug: 776093
Change-Id: I84709960b72c18bdcc367926fe0862460ad2d16b
Tbr: mcasas@chromium.org
Reviewed-on: https://chromium-review.googlesource.com/740182
Commit-Queue: Daniele Castagna <dcastagna@chromium.org>
Reviewed-by: Daniele Castagna <dcastagna@chromium.org>
Cr-Commit-Position: refs/heads/master@{#511930}
[modify] https://crrev.com/a7921c03adaad09eb9d0fffc99848178be249703/ui/ozone/gl/gl_image_ozone_native_pixmap_unittest.cc

Project Member

Comment 7 by bugdroid1@chromium.org, Nov 2 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/platform/drm-tests/+/95d027fb650c426b51db72efbe5b6d30f31bc7b3

commit 95d027fb650c426b51db72efbe5b6d30f31bc7b3
Author: Daniele Castagna <dcastagna@chromium.org>
Date: Thu Nov 02 18:07:14 2017

drm-tests: Init secondary format with invalid value

null_platform_test can test pageflipping between different formats.

This CL initializes the secondary pageflip format to invalid, in this
way the primary format is used for all the buffers when a secondary
format is not specified via command line.

BUG=chromium:776093
TEST='null_platform_test -f XR30' on eve (with crrev.com/c/747509).

Change-Id: Iac650756b691782615f7407e5fc77cc28abb2796
Reviewed-on: https://chromium-review.googlesource.com/750382
Commit-Ready: Daniele Castagna <dcastagna@chromium.org>
Tested-by: Daniele Castagna <dcastagna@chromium.org>
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>

[modify] https://crrev.com/95d027fb650c426b51db72efbe5b6d30f31bc7b3/null_platform_test.c

With crrev.com/c/749703 and crrev.com/c/747509 it's possible to test Chrome compositing with XR30.

We checked power consumption (while scrolling a webpage), and with XR30 compositing DRAM power consumption is consistently .1 Watts above than with XR24.
It's about 3% more power (excluding the screen) used.
Are we talking about a total of ~200-300mW? If so that's FBC.
We're talking about ~100mW.
We also thought the difference should be that with XR30 we can't use FBC.
Sister bug in 797347 for Mac thingies.
H010ToAR30 optimized to 2 step conversion
https://chromium-review.googlesource.com/c/libyuv/libyuv/+/853288

3 step conversion:
[ RUN      ] LibYUVConvertTest.H010ToAR30_Any
[       OK ] LibYUVConvertTest.H010ToAR30_Any (1263 ms)
[ RUN      ] LibYUVConvertTest.H010ToAR30_Unaligned
[       OK ] LibYUVConvertTest.H010ToAR30_Unaligned (951 ms)
[ RUN      ] LibYUVConvertTest.H010ToAR30_Invert
[       OK ] LibYUVConvertTest.H010ToAR30_Invert (913 ms)
[ RUN      ] LibYUVConvertTest.H010ToAR30_Opt
[       OK ] LibYUVConvertTest.H010ToAR30_Opt (901 ms)

2 step conversion:
[ RUN      ] LibYUVConvertTest.H010ToAR30_Any
[       OK ] LibYUVConvertTest.H010ToAR30_Any (853 ms)
[ RUN      ] LibYUVConvertTest.H010ToAR30_Unaligned
[       OK ] LibYUVConvertTest.H010ToAR30_Unaligned (811 ms)
[ RUN      ] LibYUVConvertTest.H010ToAR30_Invert
[       OK ] LibYUVConvertTest.H010ToAR30_Invert (781 ms)
[ RUN      ] LibYUVConvertTest.H010ToAR30_Opt
[       OK ] LibYUVConvertTest.H010ToAR30_Opt (755 ms)

Of note here is the mesa uprev b/71811478
Components: Internals>GPU>Video
The comment [0] in the sibling XR30-in-Mac bug is relevant here:
> After some more testing and re-reading the documentation we know
> believe that AR30 is indeed not supported in intel KBL (nor in SKL,
> for the case); attaching the appropriate snapshot taken from [1],
> "Volume 12: Display".
>
> [1] https://01.org/linuxgraphics/hardware-specification-prms/2016-intelr-processors-based-kaby-lake-platform

[0] https://bugs.chromium.org/p/chromium/issues/detail?id=797347#c6

intel_kbl_display_formats.png
62.4 KB View Download
Project Member

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

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

commit 5f81c6ec4cfe9024df59d91496d036231f9d9791
Author: Miguel Casas <mcasas@chromium.org>
Date: Fri Jan 19 02:52:06 2018

Add FeatureFlags chromium_image_xr30 capability

This CL adds a FeatureInfo::FeatureFlags.chromium_image_xr30 to
indicate that XR30 (aka BGRX_2101010) is supported, and propagates
it to the context's gpu::Capabilities.chromium_image_ar30, and
teaches a few other context-related classes about this format.

Bug:  797347 ,776093
Test: unit tests and crrev.com/c/862326.
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: I8794aa2a45eb47f4809eeee18a1fc3a3bfcce5ed
Reviewed-on: https://chromium-review.googlesource.com/868172
Commit-Queue: Miguel Casas <mcasas@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Cr-Commit-Position: refs/heads/master@{#530402}
[modify] https://crrev.com/5f81c6ec4cfe9024df59d91496d036231f9d9791/gpu/command_buffer/common/capabilities.h
[modify] https://crrev.com/5f81c6ec4cfe9024df59d91496d036231f9d9791/gpu/command_buffer/common/gpu_memory_buffer_support.cc
[modify] https://crrev.com/5f81c6ec4cfe9024df59d91496d036231f9d9791/gpu/command_buffer/service/feature_info.cc
[modify] https://crrev.com/5f81c6ec4cfe9024df59d91496d036231f9d9791/gpu/command_buffer/service/feature_info.h
[modify] https://crrev.com/5f81c6ec4cfe9024df59d91496d036231f9d9791/gpu/command_buffer/service/gles2_cmd_decoder.cc
[modify] https://crrev.com/5f81c6ec4cfe9024df59d91496d036231f9d9791/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc
[modify] https://crrev.com/5f81c6ec4cfe9024df59d91496d036231f9d9791/gpu/command_buffer/service/texture_manager.cc
[modify] https://crrev.com/5f81c6ec4cfe9024df59d91496d036231f9d9791/gpu/command_buffer/tests/gl_unittest.cc
[modify] https://crrev.com/5f81c6ec4cfe9024df59d91496d036231f9d9791/gpu/ipc/common/gpu_command_buffer_traits_multi.h
[modify] https://crrev.com/5f81c6ec4cfe9024df59d91496d036231f9d9791/ui/gl/gl_bindings.h

Components: Internals>GPU
Project Member

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

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

commit 673d8eb65e0b08e9af8c68012b9b1a165d605c5b
Author: Miguel Casas <mcasas@chromium.org>
Date: Sun Feb 18 13:58:28 2018

GpuMemoryBuffer: add image_xb30 capability and RGBX_1010102 BufferFormat

This CL adds a new Gpu FeatureInfo::FeatureFlags and command buffer
Capabilities to signal support for image_xb30, in parallel to the
existing image_xr30. The new flag is used on platforms supporting
glTexImage2D() with data format GL_RGB(A), namely >=gles3, >=gl3.3
or those with the appropriate GL extension.

This CL also adds a new GpuMemoryBuffer format RGBX_1010102 to
be used where image_xb30 is signalled.

With all this, Mac will use image_xr30 <-> BGRX_1010102, and the
GLES3+/GL3.3+ platforms will use image_xb30 <-> RGBX_1010102.

Bug:  803975 , 776093, 803451,  808172 
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_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: I00c834b68ce81d93e0f55694d891186ed3b75611
Reviewed-on: https://chromium-review.googlesource.com/920361
Reviewed-by: David Reveman <reveman@chromium.org>
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Daniele Castagna <dcastagna@chromium.org>
Commit-Queue: Miguel Casas <mcasas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#537561}
[modify] https://crrev.com/673d8eb65e0b08e9af8c68012b9b1a165d605c5b/cc/resources/video_resource_updater.cc
[modify] https://crrev.com/673d8eb65e0b08e9af8c68012b9b1a165d605c5b/components/exo/buffer.cc
[modify] https://crrev.com/673d8eb65e0b08e9af8c68012b9b1a165d605c5b/content/renderer/media/gpu/gpu_video_accelerator_factories_impl.cc
[modify] https://crrev.com/673d8eb65e0b08e9af8c68012b9b1a165d605c5b/gpu/command_buffer/client/gles2_implementation.cc
[modify] https://crrev.com/673d8eb65e0b08e9af8c68012b9b1a165d605c5b/gpu/command_buffer/common/capabilities.h
[modify] https://crrev.com/673d8eb65e0b08e9af8c68012b9b1a165d605c5b/gpu/command_buffer/common/gpu_memory_buffer_support.cc
[modify] https://crrev.com/673d8eb65e0b08e9af8c68012b9b1a165d605c5b/gpu/command_buffer/service/feature_info.cc
[modify] https://crrev.com/673d8eb65e0b08e9af8c68012b9b1a165d605c5b/gpu/command_buffer/service/feature_info.h
[modify] https://crrev.com/673d8eb65e0b08e9af8c68012b9b1a165d605c5b/gpu/command_buffer/service/gles2_cmd_decoder.cc
[modify] https://crrev.com/673d8eb65e0b08e9af8c68012b9b1a165d605c5b/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc
[modify] https://crrev.com/673d8eb65e0b08e9af8c68012b9b1a165d605c5b/gpu/command_buffer/service/texture_manager.cc
[modify] https://crrev.com/673d8eb65e0b08e9af8c68012b9b1a165d605c5b/gpu/command_buffer/tests/gl_gpu_memory_buffer_unittest.cc
[modify] https://crrev.com/673d8eb65e0b08e9af8c68012b9b1a165d605c5b/gpu/command_buffer/tests/gl_unittest.cc
[modify] https://crrev.com/673d8eb65e0b08e9af8c68012b9b1a165d605c5b/gpu/ipc/client/gpu_memory_buffer_impl_shared_memory.cc
[modify] https://crrev.com/673d8eb65e0b08e9af8c68012b9b1a165d605c5b/gpu/ipc/common/gpu_command_buffer_traits_multi.h
[modify] https://crrev.com/673d8eb65e0b08e9af8c68012b9b1a165d605c5b/gpu/ipc/host/gpu_memory_buffer_support.cc
[modify] https://crrev.com/673d8eb65e0b08e9af8c68012b9b1a165d605c5b/media/base/video_frame.cc
[modify] https://crrev.com/673d8eb65e0b08e9af8c68012b9b1a165d605c5b/media/video/gpu_memory_buffer_video_frame_pool.cc
[modify] https://crrev.com/673d8eb65e0b08e9af8c68012b9b1a165d605c5b/media/video/gpu_memory_buffer_video_frame_pool_unittest.cc
[modify] https://crrev.com/673d8eb65e0b08e9af8c68012b9b1a165d605c5b/media/video/gpu_video_accelerator_factories.h
[modify] https://crrev.com/673d8eb65e0b08e9af8c68012b9b1a165d605c5b/media/video/mock_gpu_video_accelerator_factories.cc
[modify] https://crrev.com/673d8eb65e0b08e9af8c68012b9b1a165d605c5b/ui/gfx/buffer_format_util.cc
[modify] https://crrev.com/673d8eb65e0b08e9af8c68012b9b1a165d605c5b/ui/gfx/buffer_types.h
[modify] https://crrev.com/673d8eb65e0b08e9af8c68012b9b1a165d605c5b/ui/gfx/mac/io_surface.cc
[modify] https://crrev.com/673d8eb65e0b08e9af8c68012b9b1a165d605c5b/ui/gfx/mojo/buffer_types.mojom
[modify] https://crrev.com/673d8eb65e0b08e9af8c68012b9b1a165d605c5b/ui/gfx/mojo/buffer_types_struct_traits.h
[modify] https://crrev.com/673d8eb65e0b08e9af8c68012b9b1a165d605c5b/ui/gl/gl_image_io_surface.mm
[modify] https://crrev.com/673d8eb65e0b08e9af8c68012b9b1a165d605c5b/ui/gl/gl_image_memory.cc
[modify] https://crrev.com/673d8eb65e0b08e9af8c68012b9b1a165d605c5b/ui/gl/gl_image_native_pixmap.cc
[modify] https://crrev.com/673d8eb65e0b08e9af8c68012b9b1a165d605c5b/ui/gl/gl_image_shared_memory_unittest.cc
[modify] https://crrev.com/673d8eb65e0b08e9af8c68012b9b1a165d605c5b/ui/gl/test/gl_image_test_support.cc

Project Member

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

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

commit d703a382302681ad0c8443ccb8a9bac86ea4b4c1
Author: Takeshi Yoshino <tyoshino@chromium.org>
Date: Mon Feb 19 05:49:11 2018

Revert "GpuMemoryBuffer: add image_xb30 capability and RGBX_1010102 BufferFormat"

This reverts commit 673d8eb65e0b08e9af8c68012b9b1a165d605c5b.

Reason for revert: Looks this has broken linux-chromeos-rel build. See https://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=EGLApiTest.DisabledExtensionBitTest&testType=gl_unittests_ozone

Original change's description:
> GpuMemoryBuffer: add image_xb30 capability and RGBX_1010102 BufferFormat
> 
> This CL adds a new Gpu FeatureInfo::FeatureFlags and command buffer
> Capabilities to signal support for image_xb30, in parallel to the
> existing image_xr30. The new flag is used on platforms supporting
> glTexImage2D() with data format GL_RGB(A), namely >=gles3, >=gl3.3
> or those with the appropriate GL extension.
> 
> This CL also adds a new GpuMemoryBuffer format RGBX_1010102 to
> be used where image_xb30 is signalled.
> 
> With all this, Mac will use image_xr30 <-> BGRX_1010102, and the
> GLES3+/GL3.3+ platforms will use image_xb30 <-> RGBX_1010102.
> 
> Bug:  803975 , 776093, 803451,  808172 
> Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_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: I00c834b68ce81d93e0f55694d891186ed3b75611
> Reviewed-on: https://chromium-review.googlesource.com/920361
> Reviewed-by: David Reveman <reveman@chromium.org>
> Reviewed-by: Robert Sesek <rsesek@chromium.org>
> Reviewed-by: Avi Drissman <avi@chromium.org>
> Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
> Reviewed-by: Antoine Labour <piman@chromium.org>
> Reviewed-by: Daniele Castagna <dcastagna@chromium.org>
> Commit-Queue: Miguel Casas <mcasas@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#537561}

TBR=avi@chromium.org,reveman@chromium.org,dalecurtis@chromium.org,mcasas@chromium.org,dcastagna@chromium.org,rsesek@chromium.org,piman@chromium.org

Change-Id: I08563c74c65ed18ea7dd78e41220a3607b7c9ad5
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  803975 , 776093, 803451,  808172 
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_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
Reviewed-on: https://chromium-review.googlesource.com/923448
Reviewed-by: Takeshi Yoshino <tyoshino@chromium.org>
Commit-Queue: Takeshi Yoshino <tyoshino@chromium.org>
Cr-Commit-Position: refs/heads/master@{#537583}
[modify] https://crrev.com/d703a382302681ad0c8443ccb8a9bac86ea4b4c1/cc/resources/video_resource_updater.cc
[modify] https://crrev.com/d703a382302681ad0c8443ccb8a9bac86ea4b4c1/components/exo/buffer.cc
[modify] https://crrev.com/d703a382302681ad0c8443ccb8a9bac86ea4b4c1/content/renderer/media/gpu/gpu_video_accelerator_factories_impl.cc
[modify] https://crrev.com/d703a382302681ad0c8443ccb8a9bac86ea4b4c1/gpu/command_buffer/client/gles2_implementation.cc
[modify] https://crrev.com/d703a382302681ad0c8443ccb8a9bac86ea4b4c1/gpu/command_buffer/common/capabilities.h
[modify] https://crrev.com/d703a382302681ad0c8443ccb8a9bac86ea4b4c1/gpu/command_buffer/common/gpu_memory_buffer_support.cc
[modify] https://crrev.com/d703a382302681ad0c8443ccb8a9bac86ea4b4c1/gpu/command_buffer/service/feature_info.cc
[modify] https://crrev.com/d703a382302681ad0c8443ccb8a9bac86ea4b4c1/gpu/command_buffer/service/feature_info.h
[modify] https://crrev.com/d703a382302681ad0c8443ccb8a9bac86ea4b4c1/gpu/command_buffer/service/gles2_cmd_decoder.cc
[modify] https://crrev.com/d703a382302681ad0c8443ccb8a9bac86ea4b4c1/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc
[modify] https://crrev.com/d703a382302681ad0c8443ccb8a9bac86ea4b4c1/gpu/command_buffer/service/texture_manager.cc
[modify] https://crrev.com/d703a382302681ad0c8443ccb8a9bac86ea4b4c1/gpu/command_buffer/tests/gl_gpu_memory_buffer_unittest.cc
[modify] https://crrev.com/d703a382302681ad0c8443ccb8a9bac86ea4b4c1/gpu/command_buffer/tests/gl_unittest.cc
[modify] https://crrev.com/d703a382302681ad0c8443ccb8a9bac86ea4b4c1/gpu/ipc/client/gpu_memory_buffer_impl_shared_memory.cc
[modify] https://crrev.com/d703a382302681ad0c8443ccb8a9bac86ea4b4c1/gpu/ipc/common/gpu_command_buffer_traits_multi.h
[modify] https://crrev.com/d703a382302681ad0c8443ccb8a9bac86ea4b4c1/gpu/ipc/host/gpu_memory_buffer_support.cc
[modify] https://crrev.com/d703a382302681ad0c8443ccb8a9bac86ea4b4c1/media/base/video_frame.cc
[modify] https://crrev.com/d703a382302681ad0c8443ccb8a9bac86ea4b4c1/media/video/gpu_memory_buffer_video_frame_pool.cc
[modify] https://crrev.com/d703a382302681ad0c8443ccb8a9bac86ea4b4c1/media/video/gpu_memory_buffer_video_frame_pool_unittest.cc
[modify] https://crrev.com/d703a382302681ad0c8443ccb8a9bac86ea4b4c1/media/video/gpu_video_accelerator_factories.h
[modify] https://crrev.com/d703a382302681ad0c8443ccb8a9bac86ea4b4c1/media/video/mock_gpu_video_accelerator_factories.cc
[modify] https://crrev.com/d703a382302681ad0c8443ccb8a9bac86ea4b4c1/ui/gfx/buffer_format_util.cc
[modify] https://crrev.com/d703a382302681ad0c8443ccb8a9bac86ea4b4c1/ui/gfx/buffer_types.h
[modify] https://crrev.com/d703a382302681ad0c8443ccb8a9bac86ea4b4c1/ui/gfx/mac/io_surface.cc
[modify] https://crrev.com/d703a382302681ad0c8443ccb8a9bac86ea4b4c1/ui/gfx/mojo/buffer_types.mojom
[modify] https://crrev.com/d703a382302681ad0c8443ccb8a9bac86ea4b4c1/ui/gfx/mojo/buffer_types_struct_traits.h
[modify] https://crrev.com/d703a382302681ad0c8443ccb8a9bac86ea4b4c1/ui/gl/gl_image_io_surface.mm
[modify] https://crrev.com/d703a382302681ad0c8443ccb8a9bac86ea4b4c1/ui/gl/gl_image_memory.cc
[modify] https://crrev.com/d703a382302681ad0c8443ccb8a9bac86ea4b4c1/ui/gl/gl_image_native_pixmap.cc
[modify] https://crrev.com/d703a382302681ad0c8443ccb8a9bac86ea4b4c1/ui/gl/gl_image_shared_memory_unittest.cc
[modify] https://crrev.com/d703a382302681ad0c8443ccb8a9bac86ea4b4c1/ui/gl/test/gl_image_test_support.cc

Project Member

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

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

commit 02290321d15a90a00f942444672ac8aed31dd8bc
Author: Miguel Casas <mcasas@chromium.org>
Date: Tue Feb 20 21:35:23 2018

RELAND: GpuMemoryBuffer: add image_xb30 capability and RGBX_1010102 BufferFormat

The original CL was reverted due to two gl_unittests_ozone failures:
 EGLApiTest.DisabledExtensionBitTest
 EGLApiTest.DisabledExtensionStringTest
these two tests also fail on my soraka ToT, so I think they're just
flaky. The fix is to check for GetSurfaceFactoryOzone() before using
it in HasGLOzone():
http://crrev.com/c/926862/1..3/ui/gl/init/ozone_util.h

TBR=reveman@chromium.org, piman@chromium.org, rsesek@chromium.org, dalecurtis@chomium.org
since the code they reviewed and LGTM'd hasn't changed.

Original CL description ------------------------------------------------

This CL adds a new Gpu FeatureInfo::FeatureFlags and command buffer
Capabilities to signal support for image_xb30, in parallel to the
existing image_xr30. The new flag is used on platforms supporting
glTexImage2D() with data format GL_RGB(A), namely >=gles3, >=gl3.3
or those with the appropriate GL extension.

This CL also adds a new GpuMemoryBuffer format RGBX_1010102 to
be used where image_xb30 is signalled.

With all this, Mac will use image_xr30 <-> BGRX_1010102, and the
GLES3+/GL3.3+ platforms will use image_xb30 <-> RGBX_1010102.

Bug:  803975 , 776093, 803451,  808172 
Change-Id: I8a5a047aabf08f08f6f6fa1d27196e29ddc67120
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_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
Reviewed-on: https://chromium-review.googlesource.com/920361
Reviewed-by: David Reveman <reveman@chromium.org>
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Reviewed-by: Daniele Castagna <dcastagna@chromium.org>
Commit-Queue: Miguel Casas <mcasas@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#537561}
Reviewed-on: https://chromium-review.googlesource.com/926862
Cr-Commit-Position: refs/heads/master@{#537893}
[modify] https://crrev.com/02290321d15a90a00f942444672ac8aed31dd8bc/cc/resources/video_resource_updater.cc
[modify] https://crrev.com/02290321d15a90a00f942444672ac8aed31dd8bc/components/exo/buffer.cc
[modify] https://crrev.com/02290321d15a90a00f942444672ac8aed31dd8bc/content/renderer/media/gpu/gpu_video_accelerator_factories_impl.cc
[modify] https://crrev.com/02290321d15a90a00f942444672ac8aed31dd8bc/gpu/command_buffer/client/gles2_implementation.cc
[modify] https://crrev.com/02290321d15a90a00f942444672ac8aed31dd8bc/gpu/command_buffer/common/capabilities.h
[modify] https://crrev.com/02290321d15a90a00f942444672ac8aed31dd8bc/gpu/command_buffer/common/gpu_memory_buffer_support.cc
[modify] https://crrev.com/02290321d15a90a00f942444672ac8aed31dd8bc/gpu/command_buffer/service/feature_info.cc
[modify] https://crrev.com/02290321d15a90a00f942444672ac8aed31dd8bc/gpu/command_buffer/service/feature_info.h
[modify] https://crrev.com/02290321d15a90a00f942444672ac8aed31dd8bc/gpu/command_buffer/service/gles2_cmd_decoder.cc
[modify] https://crrev.com/02290321d15a90a00f942444672ac8aed31dd8bc/gpu/command_buffer/service/gles2_cmd_decoder_passthrough.cc
[modify] https://crrev.com/02290321d15a90a00f942444672ac8aed31dd8bc/gpu/command_buffer/service/texture_manager.cc
[modify] https://crrev.com/02290321d15a90a00f942444672ac8aed31dd8bc/gpu/command_buffer/tests/gl_gpu_memory_buffer_unittest.cc
[modify] https://crrev.com/02290321d15a90a00f942444672ac8aed31dd8bc/gpu/command_buffer/tests/gl_unittest.cc
[modify] https://crrev.com/02290321d15a90a00f942444672ac8aed31dd8bc/gpu/ipc/client/gpu_memory_buffer_impl_shared_memory.cc
[modify] https://crrev.com/02290321d15a90a00f942444672ac8aed31dd8bc/gpu/ipc/common/gpu_command_buffer_traits_multi.h
[modify] https://crrev.com/02290321d15a90a00f942444672ac8aed31dd8bc/gpu/ipc/host/gpu_memory_buffer_support.cc
[modify] https://crrev.com/02290321d15a90a00f942444672ac8aed31dd8bc/media/base/video_frame.cc
[modify] https://crrev.com/02290321d15a90a00f942444672ac8aed31dd8bc/media/video/gpu_memory_buffer_video_frame_pool.cc
[modify] https://crrev.com/02290321d15a90a00f942444672ac8aed31dd8bc/media/video/gpu_memory_buffer_video_frame_pool_unittest.cc
[modify] https://crrev.com/02290321d15a90a00f942444672ac8aed31dd8bc/media/video/gpu_video_accelerator_factories.h
[modify] https://crrev.com/02290321d15a90a00f942444672ac8aed31dd8bc/media/video/mock_gpu_video_accelerator_factories.cc
[modify] https://crrev.com/02290321d15a90a00f942444672ac8aed31dd8bc/ui/gfx/buffer_format_util.cc
[modify] https://crrev.com/02290321d15a90a00f942444672ac8aed31dd8bc/ui/gfx/buffer_types.h
[modify] https://crrev.com/02290321d15a90a00f942444672ac8aed31dd8bc/ui/gfx/mac/io_surface.cc
[modify] https://crrev.com/02290321d15a90a00f942444672ac8aed31dd8bc/ui/gfx/mojo/buffer_types.mojom
[modify] https://crrev.com/02290321d15a90a00f942444672ac8aed31dd8bc/ui/gfx/mojo/buffer_types_struct_traits.h
[modify] https://crrev.com/02290321d15a90a00f942444672ac8aed31dd8bc/ui/gl/gl_image_io_surface.mm
[modify] https://crrev.com/02290321d15a90a00f942444672ac8aed31dd8bc/ui/gl/gl_image_memory.cc
[modify] https://crrev.com/02290321d15a90a00f942444672ac8aed31dd8bc/ui/gl/gl_image_native_pixmap.cc
[modify] https://crrev.com/02290321d15a90a00f942444672ac8aed31dd8bc/ui/gl/gl_image_shared_memory_unittest.cc
[modify] https://crrev.com/02290321d15a90a00f942444672ac8aed31dd8bc/ui/gl/init/ozone_util.h
[modify] https://crrev.com/02290321d15a90a00f942444672ac8aed31dd8bc/ui/gl/test/gl_image_test_support.cc

Project Member

Comment 21 by bugdroid1@chromium.org, May 1 2018

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

commit fe1a3e71185ac352ffacbe0ca13c8d236fa13aa0
Author: Miguel Casas <mcasas@chromium.org>
Date: Tue May 01 22:38:39 2018

gpu_memory_buffer_factory_native_pixmap: printout internalformat in error

This CL adds a human readable |internalformat| printout to some errors in
gpu_memory_buffer_factory_native_pixmap, e.g.:

[... :ERROR:gpu_memory_buffer_factory_native_pixmap.cc(129)] \
  Failed to create GLImage 1280x768, RGBX_1010102, |internalformat| GL_RGB10_A2_EXT

Added it during crrev.com/c/897894 but I think it's a good debugging aid.

Bug: 776093
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: Icd286f873e268ab2016d7f0376aeaa658d01ebea
Reviewed-on: https://chromium-review.googlesource.com/1038243
Reviewed-by: Kenneth Russell <kbr@chromium.org>
Commit-Queue: Miguel Casas <mcasas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#555202}
[modify] https://crrev.com/fe1a3e71185ac352ffacbe0ca13c8d236fa13aa0/gpu/ipc/service/gpu_memory_buffer_factory_native_pixmap.cc

Owner: mcasas@chromium.org
Project Member

Comment 23 by bugdroid1@chromium.org, May 23 2018

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

commit fc991896f6be0313810cf2a3b23d938ed0bc0af0
Author: Miguel Casas <mcasas@chromium.org>
Date: Wed May 23 18:38:27 2018

cc/resource and VideoFrame: Improve debugging messages

Trivial improvement/correction of debug messages.
Extracted from a larger CL.

Bug: 776093
Cq-Include-Trybots: luci.chromium.try:android_optional_gpu_tests_rel;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I583f86b0b2f97b98cd838aba930e667029e40d90
Reviewed-on: https://chromium-review.googlesource.com/1070429
Reviewed-by: weiliangc <weiliangc@chromium.org>
Reviewed-by: Dan Sanders <sandersd@chromium.org>
Commit-Queue: Miguel Casas <mcasas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#561173}
[modify] https://crrev.com/fc991896f6be0313810cf2a3b23d938ed0bc0af0/cc/resources/video_resource_updater.cc
[modify] https://crrev.com/fc991896f6be0313810cf2a3b23d938ed0bc0af0/media/base/video_frame.cc

Project Member

Comment 24 by bugdroid1@chromium.org, May 24 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/overlays/chromiumos-overlay/+/b9c1952f8030f8c39578a365f20619d0bd7eb851

commit b9c1952f8030f8c39578a365f20619d0bd7eb851
Author: Miguel Casas <mcasas@chromium.org>
Date: Thu May 24 22:44:36 2018

media-libs/mesa: backport XB30/AB30 support

This CL backports two upstream patches to our mesa package
to teach it to handle XB30/AB30 formats in general ([1]) and
for intel i965 ([2]).
Up until now only XR30/AR30 were supported.

[1] https://cgit.freedesktop.org/mesa/mesa/commit/?id=432df741e0b85c021da0ac027aa25cd4dc1454c6
[2] https://cgit.freedesktop.org/mesa/mesa/commit/?id=b73b340c37c6b3f1ac0636b385a5403c62a9777e

BUG=chromium:776093
TEST=emerge-nautilus mesa

Change-Id: Ib11936ca586cfa4c806d0b7aafd61039456a8b30
Reviewed-on: https://chromium-review.googlesource.com/1067799
Commit-Ready: Miguel Casas <mcasas@chromium.org>
Tested-by: Miguel Casas <mcasas@chromium.org>
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>

[add] https://crrev.com/b9c1952f8030f8c39578a365f20619d0bd7eb851/media-libs/mesa/files/18.1-i965-add-X-A-BGR2101010-to-intel_image_formats.patch
[modify] https://crrev.com/b9c1952f8030f8c39578a365f20619d0bd7eb851/media-libs/mesa/mesa-18.1_pre1.ebuild
[modify] https://crrev.com/b9c1952f8030f8c39578a365f20619d0bd7eb851/media-libs/mesa/mesa-9999.ebuild
[add] https://crrev.com/b9c1952f8030f8c39578a365f20619d0bd7eb851/media-libs/mesa/files/18.1-dri_util-Add-R10G10B10-A-X-2-translation-between_DRI.patch
[rename] https://crrev.com/b9c1952f8030f8c39578a365f20619d0bd7eb851/media-libs/mesa/mesa-18.1_pre1-r10.ebuild

Project Member

Comment 25 by bugdroid1@chromium.org, May 29 2018

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

commit ade6cc516562a35f1588e700954867d1585f5a74
Author: Miguel Casas <mcasas@chromium.org>
Date: Tue May 29 17:27:44 2018

Add support for XB30 buffers on CrOs x86 (and remove XR30)

This CL adds support/mappings for gfx::BufferFormat::RGBX_1010102
(XB30) for x86 ChromeOS.  This format is needed because GLES3+/GL3.3+
platforms support RGB10_A2 (as internal format) which should map to
either AB30 or XB30, not XR30/AR30 (those should only be used on
Mac, see e.g. [1]).

Test: simple chrome on Eve, run crosvideo VP9.2 w/
hardware decoder turned off.

[1] https://cs.chromium.org/chromium/src/gpu/command_buffer/service/feature_info.cc?type=cs&sq=package:chromium&l=1093
CQ-DEPENDS=CL:1067799

Bug: 776093
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: I5a5f6161cd57de6212b78a1882c79162355b52b5
Reviewed-on: https://chromium-review.googlesource.com/897894
Commit-Queue: Miguel Casas <mcasas@chromium.org>
Reviewed-by: Daniele Castagna <dcastagna@chromium.org>
Reviewed-by: Dan Sanders <sandersd@chromium.org>
Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org>
Cr-Commit-Position: refs/heads/master@{#562485}
[modify] https://crrev.com/ade6cc516562a35f1588e700954867d1585f5a74/content/renderer/media/gpu/gpu_video_accelerator_factories_impl.cc
[modify] https://crrev.com/ade6cc516562a35f1588e700954867d1585f5a74/media/video/gpu_memory_buffer_video_frame_pool.cc
[modify] https://crrev.com/ade6cc516562a35f1588e700954867d1585f5a74/ui/gfx/linux/client_native_pixmap_factory_dmabuf.cc
[modify] https://crrev.com/ade6cc516562a35f1588e700954867d1585f5a74/ui/gl/gl_image_native_pixmap.cc
[modify] https://crrev.com/ade6cc516562a35f1588e700954867d1585f5a74/ui/ozone/common/linux/drm_util_linux.cc
[modify] https://crrev.com/ade6cc516562a35f1588e700954867d1585f5a74/ui/ozone/gl/gl_image_ozone_native_pixmap_unittest.cc
[modify] https://crrev.com/ade6cc516562a35f1588e700954867d1585f5a74/ui/ozone/platform/drm/common/drm_util.cc

Project Member

Comment 26 by bugdroid1@chromium.org, May 29 2018

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

commit 3b81b85f3120fab9a4681ba685f726025ac9c7ff
Author: Miguel Casas <mcasas@chromium.org>
Date: Tue May 29 19:16:50 2018

Remove support for XR30 from gl_image_native_pixmap

Removed handling of gfx::BufferFormat::BGRX_1010102 from gl_image_native_pixmap,
because we support XB30 instead.

Bug: 776093
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: I07a54ca42af9469df10469776ff3e3f4d3b0b09c
Reviewed-on: https://chromium-review.googlesource.com/1073052
Reviewed-by: Avi Drissman <avi@chromium.org>
Reviewed-by: Daniele Castagna <dcastagna@chromium.org>
Commit-Queue: Miguel Casas <mcasas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#562541}
[modify] https://crrev.com/3b81b85f3120fab9a4681ba685f726025ac9c7ff/ui/gl/gl_image_egl.cc
[modify] https://crrev.com/3b81b85f3120fab9a4681ba685f726025ac9c7ff/ui/gl/gl_image_native_pixmap.cc
[modify] https://crrev.com/3b81b85f3120fab9a4681ba685f726025ac9c7ff/ui/ozone/gl/gl_image_ozone_native_pixmap_unittest.cc

Sign in to add a comment