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

Issue 797347 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Aug 9
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 3
Type: Bug

Blocked on:
issue 803473
issue 813846


Participants' hotlists:
high-bit-depth


Sign in to add a comment

Add support for XR30 native GMBs on Mac

Project Member Reported by mcasas@chromium.org, Dec 22 2017

Issue description

Sibling but to 776093 for Mac.

Enable XR30 thingies and use them, in Mac
 
Status: Assigned (was: Unconfirmed)
ccameron@ left a comment in a CL [1] about checking if we can use 1010102 IOSurfaces
as overlays. From an incomplete perspective, I think it boils down to if
 -[CALayer setContents:]
would be happy with a 10bpc IOSurface, so I took the sample app in  crbug.com/510087  
and frankenstenised it [2,3] to make it work (it needed a file I didn't have so just
put some moving colors using glClearColor()). 

What I see is that 10bpc rasters nothing (black) on my MBP OS X 10.12.6 (Early 2015), 
whereas on my iMac 10.13.2 Late 2015, I can see the moving colors as intended. This
is, essentially matching capabilities, so if the OS supports 10 bpc the CALayer is
also happy accepting them, IIUC.

[1] https://chromium-review.googlesource.com/c/chromium/src/+/842948#message-2fc65b3d1bcfc3b28493c92533da609eead8edf8
[2] https://github.com/yellowdoge/screen_info/blob/master/texquad-iosurface.mm#L117
[3] https://github.com/yellowdoge/screen_info/blob/master/texquad-iosurface.mm#L155
Just upgraded my MBP early 2015 to 10.13.2 and now the micro demo
works: I can see the colors changing, so High Sierra has added 
logic to understand the 1010102 format.
Project Member

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

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

commit 877759a311eb7b92c1ebff9b3957994e27555e9f
Author: Miguel Casas-Sanchez <mcasas@chromium.org>
Date: Tue Jan 09 22:54:08 2018

io_surface mac cleanup: Remove |force_color_space|

|force_color_space| was added in [1] but its use was removed in [2].

[1] https://codereview.chromium.org/2871893002/diff/40001/ui/gfx/mac/io_surface.cc
[2] https://chromium-review.googlesource.com/c/chromium/src/+/698347/3/ui/gfx/mac/io_surface.cc

Bug:  797347 
Change-Id: I4671ddd669a5e6b20bd1b43e47555c8ffd85eab9
Reviewed-on: https://chromium-review.googlesource.com/857423
Commit-Queue: ccameron <ccameron@chromium.org>
Reviewed-by: ccameron <ccameron@chromium.org>
Cr-Commit-Position: refs/heads/master@{#528150}
[modify] https://crrev.com/877759a311eb7b92c1ebff9b3957994e27555e9f/ui/gfx/mac/io_surface.cc

Project Member

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

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

commit 5d682ec24e2f049d24867bbfccfe9be7ae67a00b
Author: Miguel Casas <mcasas@chromium.org>
Date: Fri Jan 12 17:30:26 2018

GLImageNativePixmap minor cleanup

This CL uses gfx::BufferFormatToString(format) in LOG(ERROR) statements
and changes an if(!bla) return false; return true; into return bla;

No new code, just a cleanup that arouse in crrev.com/c/862326.

Bug:  797347 
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: I5675a7c3646ca29211edb9efb39fd7571d347685
Reviewed-on: https://chromium-review.googlesource.com/863944
Reviewed-by: David Reveman <reveman@chromium.org>
Commit-Queue: Miguel Casas <mcasas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#528984}
[modify] https://crrev.com/5d682ec24e2f049d24867bbfccfe9be7ae67a00b/ui/gl/gl_image_native_pixmap.cc

Comment 6 by mcasas@chromium.org, Jan 16 2018

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

Comment 7 by mcasas@chromium.org, Jan 16 2018

Hopefully now with the "attached file" :-)
intel_kbl_display_formats.png
62.4 KB View Download
Project Member

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

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

commit 1a7b952b780b91dc853344b98a5c49b2e2ca01ed
Author: Miguel Casas-Sanchez <mcasas@chromium.org>
Date: Tue Jan 16 23:41:56 2018

GpuMemoryBuffer IOSurface: wire 1010102 format

This CL teaches GpuMemoryBuffers on Mac to recognize the RGB 1010102
format and also adds the translations to the appropriate GL formats
so that it can be bound by CGLTexImageIOSurface2D. It also extends
the current GLImageIOSurfaceTests.

The value 'R10k' is actually taken from CoreVideo Framework [1],
while the internal format, format and type used in CGLTexImage2D()
can be found in CGLIOSurface.h, e.g. [2]

CQ-DEPEND=CL:860618

[1] https://developer.apple.com/documentation/corevideo/1563591-pixel_format_identifiers/kcvpixelformattype_30rgb?language=objc
[2] https://github.com/phracker/MacOSX-SDKs/blob/HEAD/MacOSX10.12.sdk/System/Library/Frameworks/OpenGL.framework/Versions/A/Headers/CGLIOSurface.h#L102

Bug:  797347 
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: Ibf0fa42f5692f67e0fac1d0345e3ff730866c2c2
Reviewed-on: https://chromium-review.googlesource.com/842948
Commit-Queue: Miguel Casas <mcasas@chromium.org>
Reviewed-by: David Reveman <reveman@chromium.org>
Reviewed-by: Daniele Castagna <dcastagna@chromium.org>
Reviewed-by: ccameron <ccameron@chromium.org>
Cr-Commit-Position: refs/heads/master@{#529520}
[modify] https://crrev.com/1a7b952b780b91dc853344b98a5c49b2e2ca01ed/ui/gfx/mac/io_surface.cc
[modify] https://crrev.com/1a7b952b780b91dc853344b98a5c49b2e2ca01ed/ui/gl/gl_image_io_surface.mm
[modify] https://crrev.com/1a7b952b780b91dc853344b98a5c49b2e2ca01ed/ui/gl/gl_image_io_surface_unittest.cc

Comment 9 by mcasas@chromium.org, Jan 18 2018

Blockedon: 803473
Project Member

Comment 10 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

Cc: piman@chromium.org
Project Member

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

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

commit a208cabada5ea8aef741ebcca208af018bf292b0
Author: Miguel Casas-Sanchez <mcasas@chromium.org>
Date: Sat Jan 20 03:23:19 2018

Roll src/third_party/libyuv 50f9e61..09db0c4 📈

09db0c4 H010ToAR30 in 1 step with SSSE3 assembly by Frank Barchard
37f9721 Add LibYUVConvertTest.TestH010ToAR30 unittest by Frank Barchard
ecab543 Remove MEMOPREG x64 NaCL macros by Frank Barchard
b33e0f9 Remove MEMOPMEM x64 NaCL macros by Frank Barchard
a875ed1 Remove VMEMOPREG x64 NaCL macros by Frank Barchard
030042a Remove VEXTOPMEM x64 NaCL macros by Frank Barchard
5088f00 Remove MEMACCESS x64 NaCL macros by Frank Barchard
e3797d1 Remove MEMOPARG x64 NaCL macros by Frank Barchard
c682abe libyuv: fix undefined mul overflow by Frank Barchard
caeb9dc [ndk] Add android ndk deps in libyuv DEPS by Shenghua Zhang
3694891 Remove MEMLEA x64 NaCL macros by Frank Barchard
a214214 Remove x64 native_client macros. by Frank Barchard
00d526d H010ToARGB_AVX2 optimized conversion by Frank Barchard
55310f9 Remove NACL_R14 macro by Frank Barchard

Bug:  797347 ,  libyuv:751 
Change-Id: I9d325bef1dea9d378cd0a25aa2e8a57338698d5b
Reviewed-on: https://chromium-review.googlesource.com/876446
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Commit-Queue: Miguel Casas <mcasas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#530740}
[modify] https://crrev.com/a208cabada5ea8aef741ebcca208af018bf292b0/DEPS

Project Member

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

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

commit dacf14c4bd19bcc4d5b74daeca97344ef6a31a5e
Author: Miguel Casas-Sanchez <mcasas@chromium.org>
Date: Tue Jan 23 19:02:36 2018

Mac: teach GpuMemoryBufferVideoFramePool to handle XR30

This CL teaches GpuMemoryBufferVideoFramePool to handle XR30
formats, when context capabilities' image_xr30 is enabled
and the incoming data is of 10 bit per component type.

This CL also enables the necessary checks in the gles2 and
GpuMemoryBuffer support to recongnise this format in Mac only
(other platforms coming soon).

Test with high bit depth videos e.g.:
'http://crosvideo.appspot.com?codec=vp9.2&loop=true'
and media/test/data/...
- bear-320x180-hi10p-vp9.webm
- bear-320x180-hi10p.mp4 (this is an H.264 part 10, 10bpc)
- blackwhite_yuv420p_hi10p.mp4
- bear-320x180-hi12p-vp9.webm

Also covered in e.g. content_browsertests'
 MediaColorTest.Yuv420pHighBitDepth
which would fail if the colors were inverted.

Bug:  797347 
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: I8e73a7558d5506875d1547983d4e5e796a543aeb
Reviewed-on: https://chromium-review.googlesource.com/862326
Reviewed-by: Daniele Castagna <dcastagna@chromium.org>
Reviewed-by: Robert Sesek <rsesek@chromium.org>
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Reviewed-by: Antoine Labour <piman@chromium.org>
Commit-Queue: Miguel Casas <mcasas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#531293}
[modify] https://crrev.com/dacf14c4bd19bcc4d5b74daeca97344ef6a31a5e/content/renderer/media/gpu/gpu_video_accelerator_factories_impl.cc
[modify] https://crrev.com/dacf14c4bd19bcc4d5b74daeca97344ef6a31a5e/gpu/command_buffer/client/gles2_implementation.cc
[modify] https://crrev.com/dacf14c4bd19bcc4d5b74daeca97344ef6a31a5e/gpu/ipc/common/gpu_memory_buffer_support.cc
[modify] https://crrev.com/dacf14c4bd19bcc4d5b74daeca97344ef6a31a5e/media/video/gpu_memory_buffer_video_frame_pool.cc
[modify] https://crrev.com/dacf14c4bd19bcc4d5b74daeca97344ef6a31a5e/media/video/gpu_memory_buffer_video_frame_pool_unittest.cc
[modify] https://crrev.com/dacf14c4bd19bcc4d5b74daeca97344ef6a31a5e/media/video/gpu_video_accelerator_factories.h
[modify] https://crrev.com/dacf14c4bd19bcc4d5b74daeca97344ef6a31a5e/media/video/mock_gpu_video_accelerator_factories.cc
[modify] https://crrev.com/dacf14c4bd19bcc4d5b74daeca97344ef6a31a5e/ui/gl/gl_image_io_surface.mm

Project Member

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

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

commit 692b3b47879c75c1321ec759cb10fdd3f59e9fcc
Author: Joe Downing <joedow@chromium.org>
Date: Tue Jan 23 21:26:28 2018

Revert "Mac: teach GpuMemoryBufferVideoFramePool to handle XR30"

This reverts commit dacf14c4bd19bcc4d5b74daeca97344ef6a31a5e.

Reason for revert: Causing failure on Linux MSAN builder:
https://uberchromegw.corp.google.com/i/chromium.memory/builders/Linux%20MSan%20Tests/builds/7431

Original change's description:
> Mac: teach GpuMemoryBufferVideoFramePool to handle XR30
> 
> This CL teaches GpuMemoryBufferVideoFramePool to handle XR30
> formats, when context capabilities' image_xr30 is enabled
> and the incoming data is of 10 bit per component type.
> 
> This CL also enables the necessary checks in the gles2 and
> GpuMemoryBuffer support to recongnise this format in Mac only
> (other platforms coming soon).
> 
> Test with high bit depth videos e.g.:
> 'http://crosvideo.appspot.com?codec=vp9.2&loop=true'
> and media/test/data/...
> - bear-320x180-hi10p-vp9.webm
> - bear-320x180-hi10p.mp4 (this is an H.264 part 10, 10bpc)
> - blackwhite_yuv420p_hi10p.mp4
> - bear-320x180-hi12p-vp9.webm
> 
> Also covered in e.g. content_browsertests'
>  MediaColorTest.Yuv420pHighBitDepth
> which would fail if the colors were inverted.
> 
> Bug:  797347 
> 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: I8e73a7558d5506875d1547983d4e5e796a543aeb
> Reviewed-on: https://chromium-review.googlesource.com/862326
> Reviewed-by: Daniele Castagna <dcastagna@chromium.org>
> Reviewed-by: Robert Sesek <rsesek@chromium.org>
> Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
> Reviewed-by: Antoine Labour <piman@chromium.org>
> Commit-Queue: Miguel Casas <mcasas@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#531293}

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

Change-Id: Ibc1979309377edc919206dbffd9f8a1258bf6acd
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  797347 
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/881588
Reviewed-by: Joe Downing <joedow@chromium.org>
Commit-Queue: Joe Downing <joedow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#531355}
[modify] https://crrev.com/692b3b47879c75c1321ec759cb10fdd3f59e9fcc/content/renderer/media/gpu/gpu_video_accelerator_factories_impl.cc
[modify] https://crrev.com/692b3b47879c75c1321ec759cb10fdd3f59e9fcc/gpu/command_buffer/client/gles2_implementation.cc
[modify] https://crrev.com/692b3b47879c75c1321ec759cb10fdd3f59e9fcc/gpu/ipc/common/gpu_memory_buffer_support.cc
[modify] https://crrev.com/692b3b47879c75c1321ec759cb10fdd3f59e9fcc/media/video/gpu_memory_buffer_video_frame_pool.cc
[modify] https://crrev.com/692b3b47879c75c1321ec759cb10fdd3f59e9fcc/media/video/gpu_memory_buffer_video_frame_pool_unittest.cc
[modify] https://crrev.com/692b3b47879c75c1321ec759cb10fdd3f59e9fcc/media/video/gpu_video_accelerator_factories.h
[modify] https://crrev.com/692b3b47879c75c1321ec759cb10fdd3f59e9fcc/media/video/mock_gpu_video_accelerator_factories.cc
[modify] https://crrev.com/692b3b47879c75c1321ec759cb10fdd3f59e9fcc/ui/gl/gl_image_io_surface.mm

Project Member

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

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

commit e257e8e2361d35d69a8df96d468e81cda33c998a
Author: Miguel Casas-Sanchez <mcasas@chromium.org>
Date: Wed Jan 24 03:23:16 2018

RELAND: Mac: teach GpuMemoryBufferVideoFramePool to handle XR30

Original CL got reverted due to MSAN finding a use-of-unitialized-value;
PS4 initializes it before use.

TBR=piman@chromium.org, dcastagna@chromium.org, rsesek@chromium.org, dalecurtis@chromium.org
˘
Original CL description: -----------------------------------------------
This CL teaches GpuMemoryBufferVideoFramePool to handle XR30
formats, when context capabilities' image_xr30 is enabled
and the incoming data is of 10 bit per component type.

This CL also enables the necessary checks in the gles2 and
GpuMemoryBuffer support to recongnise this format in Mac only
(other platforms coming soon).

Test with high bit depth videos e.g.:
'http://crosvideo.appspot.com?codec=vp9.2&loop=true'
and media/test/data/...
- bear-320x180-hi10p-vp9.webm
- bear-320x180-hi10p.mp4 (this is an H.264 part 10, 10bpc)
- blackwhite_yuv420p_hi10p.mp4
- bear-320x180-hi12p-vp9.webm

Also covered in e.g. content_browsertests'
 MediaColorTest.Yuv420pHighBitDepth
which would fail if the colors were inverted.

Bug:  797347 
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: I1283095909daca8cb96e024b2812d77de52ac008

NOTRY=true (because ios-simulator keeps failing).

Change-Id: I1283095909daca8cb96e024b2812d77de52ac008
Reviewed-on: https://chromium-review.googlesource.com/882081
Commit-Queue: Miguel Casas <mcasas@chromium.org>
Reviewed-by: Miguel Casas <mcasas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#531408}
[modify] https://crrev.com/e257e8e2361d35d69a8df96d468e81cda33c998a/content/renderer/media/gpu/gpu_video_accelerator_factories_impl.cc
[modify] https://crrev.com/e257e8e2361d35d69a8df96d468e81cda33c998a/gpu/command_buffer/client/gles2_implementation.cc
[modify] https://crrev.com/e257e8e2361d35d69a8df96d468e81cda33c998a/gpu/ipc/common/gpu_memory_buffer_support.cc
[modify] https://crrev.com/e257e8e2361d35d69a8df96d468e81cda33c998a/media/video/gpu_memory_buffer_video_frame_pool.cc
[modify] https://crrev.com/e257e8e2361d35d69a8df96d468e81cda33c998a/media/video/gpu_memory_buffer_video_frame_pool_unittest.cc
[modify] https://crrev.com/e257e8e2361d35d69a8df96d468e81cda33c998a/media/video/gpu_video_accelerator_factories.h
[modify] https://crrev.com/e257e8e2361d35d69a8df96d468e81cda33c998a/media/video/mock_gpu_video_accelerator_factories.cc
[modify] https://crrev.com/e257e8e2361d35d69a8df96d468e81cda33c998a/ui/gl/gl_image_io_surface.mm

Project Member

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

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

commit a1110c20b0613375803ef728b7a54f755c073703
Author: Frank Barchard <fbarchard@google.com>
Date: Wed Jan 24 21:41:42 2018

Roll libyuv r1691 for C99 types.

Switch types to C99 int8_t etc
Types are defined in basic_types.h
Also optimizes I420ToAR30 26% faster

92e22cf Lint cleanup after C99 change CL
f1c5345 Define basic_types backward compatible layer
7e38988 Switch to C99 types
13771ff basic_types.h - remove unused macros
a11ffa1 NV12 format documentation added.
8af6ea4 I420ToAR30 in 1 step SSSE3 assembly

Bug:  797347 ,  libyuv:774 ,  libyuv:751 
Test: try bots passed for local libyuv build

Change-Id: If1060f71882886c237a46e1bb7791e3f5f419073
Reviewed-on: https://chromium-review.googlesource.com/881922
Reviewed-by: Miguel Casas <mcasas@chromium.org>
Commit-Queue: Miguel Casas <mcasas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#531693}
[modify] https://crrev.com/a1110c20b0613375803ef728b7a54f755c073703/DEPS

Project Member

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

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

commit 45c6a9b671b191c2bcdfe876b0d0398d92d26795
Author: Miguel Casas-Sanchez <mcasas@chromium.org>
Date: Thu Jan 25 18:13:58 2018

GpuMemoryBufferVideoFramePool: correct color space correction

crrev.com/c/882081 landed a correction of the incoming VideoFrame
colorspace [1,2], to have a MatrixID::RGB matrix. This was (and is)
not needed and wrong, because we might lose container color space
information, and in reality what we want is to tell VideoResourceUpdater
to manipulate this resource as RGB, so this CL corrects this situation.

[1] https://cs.chromium.org/chromium/src/media/video/gpu_memory_buffer_video_frame_pool.cc?sq=package:chromium&dr=CSs&l=451
[2] https://cs.chromium.org/chromium/src/media/video/gpu_memory_buffer_video_frame_pool.cc?sq=package:chromium&dr=CSs&l=462

Bug:  797347 
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel
Change-Id: I3f22fdc82395ece5181cb2ce198ed2c838cf49a7
Reviewed-on: https://chromium-review.googlesource.com/885041
Reviewed-by: ccameron <ccameron@chromium.org>
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Commit-Queue: Miguel Casas <mcasas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#531946}
[modify] https://crrev.com/45c6a9b671b191c2bcdfe876b0d0398d92d26795/cc/resources/video_resource_updater.cc
[modify] https://crrev.com/45c6a9b671b191c2bcdfe876b0d0398d92d26795/media/video/gpu_memory_buffer_video_frame_pool.cc

Project Member

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

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

commit 78800d85df7918f82562dceb901d182c90f0a1d1
Author: Miguel Casas-Sanchez <mcasas@chromium.org>
Date: Tue Jan 30 00:05:58 2018

XR30 correct IOSurface and GMBVideoFramePool component ordering

This CL corrects the wrong UV ordering for the call to x010ToAR30() in
GpuMemoryBufferVideoFramePool, and also corrects the IOSurface format
used for creation, from 'R10k' to 'l10r' [1], the latter having the
correct channel endianness (i.e. XR30 == BGRX2101010 [2] .

tested via e.g.
./out/gn/Chromium.app/Contents/MacOS/Chromium 'http://crosvideo.appspot.com?codec=vp9.2&loop=true'
./out/gn/Chromium.app/Contents/MacOS/Chromium 'http://crosvideo.appspot.com?codec=vp9.2&loop=true' --disable-mac-overlays

both showing correct colors :-)

[1] https://github.com/phracker/MacOSX-SDKs/blob/HEAD/MacOSX10.13.sdk/System/Library/Frameworks/CoreVideo.framework/Versions/A/Headers/CVPixelBuffer.h#L83
[2] https://github.com/torvalds/linux/blob/master/include/uapi/drm/drm_fourcc.h#L98

Bug:  797347 
Change-Id: I56c06fc06bef950ba2053750cdd7aee937e3c00b
Reviewed-on: https://chromium-review.googlesource.com/891521
Reviewed-by: ccameron <ccameron@chromium.org>
Reviewed-by: Frank Barchard <fbarchard@chromium.org>
Reviewed-by: Dale Curtis <dalecurtis@chromium.org>
Commit-Queue: Miguel Casas <mcasas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#532675}
[modify] https://crrev.com/78800d85df7918f82562dceb901d182c90f0a1d1/media/video/gpu_memory_buffer_video_frame_pool.cc
[modify] https://crrev.com/78800d85df7918f82562dceb901d182c90f0a1d1/ui/gfx/mac/io_surface.cc

Project Member

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

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

commit d1823b5b0ee13dd8883fda3eff4de541806bbdaf
Author: Frank Barchard <fbarchard@google.com>
Date: Tue Jan 30 15:09:50 2018

Roll libyuv r1694 for AVX2 10 bit YUV

AVX2 version of H010ToAR30_Opt is 42% faster on Broadwell.
Add ABGRToAR30 fully optimized for AVX2 and SSSE3.
Add AR30ToABGR, unoptimized,

1000 iterations of 720p:
Was SSSE3 H010ToAR30_Opt (635 ms)
Was SSSE3 I420ToAR30_Opt (635 ms)

Now AVX2  H010ToAR30_Opt (448 ms)
Now AVX2  I420ToAR30_Opt (446 ms)

ffec313 ABGRToAR30 used AVX2 with reversed shuffler
ff8ab9b AR30ToABGR for 10 to 8 bit RGB on Android
ed96b7b AVX2 port of H010ToAR30_AVX2
c95fd57 AVX2 port of I010ToAR30_AVX2
3f43ecc Add H420ToAR30 and a test that does a histogram

Bug:  797347 ,  libyuv:751 
Test: try bots passed for local libyuv build
Change-Id: I2ea965b65b6757dc31ab1cdb706dc02c68afeab3
Reviewed-on: https://chromium-review.googlesource.com/892340
Commit-Queue: Miguel Casas <mcasas@chromium.org>
Reviewed-by: Miguel Casas <mcasas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#532876}
[modify] https://crrev.com/d1823b5b0ee13dd8883fda3eff4de541806bbdaf/DEPS

Project Member

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

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

commit 48222f94328b91c70ebc3613d7aea6ebdfdb90cb
Author: Miguel Casas-Sanchez <mcasas@chromium.org>
Date: Mon Feb 05 23:20:22 2018

IOSurface colour space: Use explicit ICC for HDR

This CL uses the 2020 CGColorSpaceRef when playing back
high bit depth content that is labelled as having e.g.
transfer function SMPTE ST.2084 [1]. (This is Mac specific
because other platforms use the shaders in [2]).

[1] http://go/bt.2100 , table 4
[2] https://cs.chromium.org/chromium/src/ui/gfx/color_transform.cc?type=cs&q=SMPTEST2084&sq=package:chromium&l=617

Bug:  797347 
Change-Id: I943b41a8b7372f6eb641524fac85be8da58afa11
Reviewed-on: https://chromium-review.googlesource.com/896719
Reviewed-by: ccameron <ccameron@chromium.org>
Commit-Queue: Miguel Casas <mcasas@chromium.org>
Cr-Commit-Position: refs/heads/master@{#534528}
[modify] https://crrev.com/48222f94328b91c70ebc3613d7aea6ebdfdb90cb/ui/gfx/mac/io_surface.cc

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

Blockedon: 813846
Status: Fixed (was: Assigned)

Sign in to add a comment