platform/upstream/VK-GL-CTS.git
6 years agoMerge "GetDevices: Also allow `\-` to be part of the host name" into pi-dev
TreeHugger Robot [Thu, 17 May 2018 23:41:11 +0000 (23:41 +0000)]
Merge "GetDevices: Also allow `\-` to be part of the host name" into pi-dev

6 years agoMerge "Limit protected swapchain images based on memory" into pi-dev
TreeHugger Robot [Thu, 17 May 2018 21:56:33 +0000 (21:56 +0000)]
Merge "Limit protected swapchain images based on memory" into pi-dev

6 years agoMerge remote-tracking branch 'khronos/vulkan-cts-1.1.0' into pi-dev
Chris Forbes [Thu, 17 May 2018 14:40:06 +0000 (07:40 -0700)]
Merge remote-tracking branch 'khronos/vulkan-cts-1.1.0' into pi-dev

Bug: b/79920276
Test: CtsDeqpTestCases

Change-Id: I5278d1865efc379687d88a368d48ef64cce455bc

6 years agoLimit protected swapchain images based on memory
Jesse Hall [Wed, 16 May 2018 23:56:54 +0000 (16:56 -0700)]
Limit protected swapchain images based on memory

A surface's maxImageCount isn't based on the swapchain image extents
or format, so it's valid for swapchain creation to fail for
out-of-memory reasons even when the image count is within the
supported range.

This is particularly problematic for protected swapchains, since many
implementations have a limit on the total amount of protected memory
that can be allocated which is much smaller than total device memory.

This change estimates how much memory is used by protected swapchain
images, compares that to the size of heaps that support protected
memory types, and doesn't try to create swapchains that would have
more images than would fit within that size.

Components: Vulkan

VK-GL-CTS Issue: 1167

Affects:
    dEQP-VK.protected_memory.interaction.wsi.*.swapchain.create.min_image_count

Bug: 77319653
Test: dEQP-VK.protected_memory.interaction.wsi.android.swapchain.create.min_image_count
Change-Id: I6cc3bd25f7f22de8424f9e3375ade35fac26a884

6 years agoMerge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/vulkan-cts-1.1.0
Alexander Galazin [Fri, 11 May 2018 13:28:20 +0000 (15:28 +0200)]
Merge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/vulkan-cts-1.1.0

Change-Id: I06a95f88214707d9108a46f7374a5e8e0f9bdb59

6 years agoBackport AHB test changes from Khronos review
Chris Forbes [Thu, 10 May 2018 22:58:21 +0000 (15:58 -0700)]
Backport AHB test changes from Khronos review

Change-Id: I902646e380d18c8c4ee165a7bfe3c6aee6735aa6
Components: Vulkan
Bug: b/79540301
Test: CtsDeqpTestCases

6 years agoGetDevices: Also allow `\-` to be part of the host name
Nicolas Boichat [Wed, 9 May 2018 00:44:11 +0000 (08:44 +0800)]
GetDevices: Also allow `\-` to be part of the host name

Bug: b/79494592

Change-Id: I2e79a8389be53300296f07bcbae902a717da2d5e

6 years agoDon't leak ref to native handle in external memory tests
Chris Forbes [Thu, 3 May 2018 22:03:53 +0000 (15:03 -0700)]
Don't leak ref to native handle in external memory tests

Based on a later revision to https://gerrit.khronos.org/#/c/2455

Bug: b/79216732
Change-Id: I4aab353d1d9a8ecb818c682b60d274ce82ef6d38
Affects: dEQP-VK.api.external.memory.android_hardware_buffer.*
Components: Vulkan
Test: CtsDeqpTestCases

6 years ago[automerger skipped] Merge "DO NOT MERGE: Merge remote-tracking branch 'khronos/vulka...
android-build-prod (mdb) [Tue, 1 May 2018 17:41:35 +0000 (10:41 -0700)]
[automerger skipped] Merge "DO NOT MERGE: Merge remote-tracking branch 'khronos/vulkan-cts-1.0.2' into HEAD" into oreo-mr1-cts-dev am: ea8d8c6e51  -s ours
am: b42c18f792  -s ours

Change-Id: I2caad18103299cdd4a44db0ae4562442a5a711a8

6 years ago[automerger skipped] Merge "DO NOT MERGE: Merge remote-tracking branch 'khronos/vulka...
android-build-prod (mdb) [Tue, 1 May 2018 17:37:02 +0000 (10:37 -0700)]
[automerger skipped] Merge "DO NOT MERGE: Merge remote-tracking branch 'khronos/vulkan-cts-1.0.2' into HEAD" into oreo-mr1-cts-dev
am: ea8d8c6e51  -s ours

Change-Id: I4198a0ed4f80ff23cb9d55f7ff8e75ccf900a4f2

6 years agoMerge "DO NOT MERGE: Merge remote-tracking branch 'khronos/vulkan-cts-1.0.2' into...
android-build-prod (mdb) [Tue, 1 May 2018 17:23:07 +0000 (17:23 +0000)]
Merge "DO NOT MERGE: Merge remote-tracking branch 'khronos/vulkan-cts-1.0.2' into HEAD" into oreo-mr1-cts-dev

6 years agoAllow the window to be recreated in the middle of a test am: 30ef1bf331 am: 38611cff1...
Lloyd Pique [Mon, 30 Apr 2018 19:54:24 +0000 (12:54 -0700)]
Allow the window to be recreated in the middle of a test am: 30ef1bf331 am: 38611cff1b am: d7ea694527 am: 1d7d6b0558
am: edae3a9f2d

Change-Id: I60c1f1fab6359a7036d1f51fd879abb1c5fa9b20

6 years ago[automerger] Allow the window to be recreated in the middle of a test am: 30ef1bf331...
Lloyd Pique [Mon, 30 Apr 2018 19:54:00 +0000 (12:54 -0700)]
[automerger] Allow the window to be recreated in the middle of a test am: 30ef1bf331 am: 982b9bf1e4 am: 20d14be89f am: e00e690cfb am: 040aaa4dc6 am: 1213a776a6
am: b614d39194

Change-Id: I5d3ccd0767e7413341cfe6e9c1c1d0512a0d3e0a

6 years agoAllow the window to be recreated in the middle of a test am: 30ef1bf331 am: 38611cff1...
Lloyd Pique [Mon, 30 Apr 2018 19:44:45 +0000 (12:44 -0700)]
Allow the window to be recreated in the middle of a test am: 30ef1bf331 am: 38611cff1b am: d7ea694527
am: 1d7d6b0558

Change-Id: I63f4193542ed4b50ccbfa2b43edc589558a1abb4

6 years agoAllow the window to be recreated in the middle of a test am: 30ef1bf331 am: 38611cff1...
Lloyd Pique [Mon, 30 Apr 2018 19:44:30 +0000 (12:44 -0700)]
Allow the window to be recreated in the middle of a test am: 30ef1bf331 am: 38611cff1b am: 6eca3b9153
am: 5f0bdcf623

Change-Id: I4d05bd26ddde90158c564156ce4349696cc78489

6 years ago[automerger] Allow the window to be recreated in the middle of a test am: 30ef1bf331...
Lloyd Pique [Mon, 30 Apr 2018 19:44:27 +0000 (12:44 -0700)]
[automerger] Allow the window to be recreated in the middle of a test am: 30ef1bf331 am: 982b9bf1e4 am: 20d14be89f am: e00e690cfb am: 040aaa4dc6
am: 1213a776a6

Change-Id: I5a3e06a0da4005235b1a87c4e0770a2ef80150eb

6 years agoAllow the window to be recreated in the middle of a test am: 30ef1bf331 am: 38611cff1b
Lloyd Pique [Mon, 30 Apr 2018 19:43:51 +0000 (12:43 -0700)]
Allow the window to be recreated in the middle of a test am: 30ef1bf331 am: 38611cff1b
am: d7ea694527

Change-Id: I69f3211031c9704b0148edf26d1a598129bf3944

6 years agoAllow the window to be recreated in the middle of a test am: 30ef1bf331 am: 38611cff1b
Lloyd Pique [Mon, 30 Apr 2018 19:41:22 +0000 (12:41 -0700)]
Allow the window to be recreated in the middle of a test am: 30ef1bf331 am: 38611cff1b
am: 6eca3b9153

Change-Id: I5f508032fae03c0ab342e0b1547d77812f03e779

6 years ago[automerger] Allow the window to be recreated in the middle of a test am: 30ef1bf331...
Lloyd Pique [Mon, 30 Apr 2018 19:40:23 +0000 (12:40 -0700)]
[automerger] Allow the window to be recreated in the middle of a test am: 30ef1bf331 am: 982b9bf1e4 am: 20d14be89f am: e00e690cfb
am: 040aaa4dc6

Change-Id: Iad8cdf7b3cbdcc382a3d41df29369cf12ae32c8d

6 years agoAllow the window to be recreated in the middle of a test am: 30ef1bf331
Lloyd Pique [Mon, 30 Apr 2018 19:40:22 +0000 (12:40 -0700)]
Allow the window to be recreated in the middle of a test am: 30ef1bf331
am: 38611cff1b

Change-Id: If75c089eace7e4d67dbb28abfa7928a769decc6a

6 years ago[automerger] Allow the window to be recreated in the middle of a test am: 30ef1bf331...
Android Build Merger (Role) [Mon, 30 Apr 2018 19:33:00 +0000 (19:33 +0000)]
[automerger] Allow the window to be recreated in the middle of a test am: 30ef1bf331 am: 982b9bf1e4 am: 20d14be89f am: e00e690cfb

Change-Id: Ic5dc053bb7ea5d82429b4acaa54063c042049e52

6 years ago[automerger] Allow the window to be recreated in the middle of a test am: 30ef1bf331...
Android Build Merger (Role) [Mon, 30 Apr 2018 19:32:59 +0000 (19:32 +0000)]
[automerger] Allow the window to be recreated in the middle of a test am: 30ef1bf331 am: 982b9bf1e4 am: 20d14be89f

Change-Id: I62e863ad7c0e7408438f5f8f919472c58c2c8d32

6 years ago[automerger] Allow the window to be recreated in the middle of a test am: 30ef1bf331...
Android Build Merger (Role) [Mon, 30 Apr 2018 19:32:58 +0000 (19:32 +0000)]
[automerger] Allow the window to be recreated in the middle of a test am: 30ef1bf331 am: 982b9bf1e4

Change-Id: Ib4998ca20b55378973547524d86dbf2b6f0017cf

6 years agoAllow the window to be recreated in the middle of a test
Lloyd Pique [Mon, 30 Apr 2018 19:32:47 +0000 (12:32 -0700)]
Allow the window to be recreated in the middle of a test
am: 30ef1bf331

Change-Id: I8150c542b5735cddf900bfa0ac8b1118789d9ea3

6 years agoAllow the window to be recreated in the middle of a test am: 30ef1bf331
Lloyd Pique [Mon, 30 Apr 2018 19:30:50 +0000 (12:30 -0700)]
Allow the window to be recreated in the middle of a test am: 30ef1bf331
am: 38611cff1b

Change-Id: Ib6b7ff02fe67679472877a9cc5dff04f7d01a17a

6 years agoAllow the window to be recreated in the middle of a test
Lloyd Pique [Mon, 30 Apr 2018 19:26:18 +0000 (12:26 -0700)]
Allow the window to be recreated in the middle of a test
am: 30ef1bf331

Change-Id: Ic2683d5ad4515c3d65339b5027e76b1574374548

6 years ago[automerger skipped] Merge "DO NOT MERGE: Merge remote-tracking branch 'khronos/vulka...
android-build-prod (mdb) [Mon, 30 Apr 2018 17:52:35 +0000 (10:52 -0700)]
[automerger skipped] Merge "DO NOT MERGE: Merge remote-tracking branch 'khronos/vulkan-cts-1.0.2' into HEAD" into oreo-cts-dev am: 354706417a  -s ours am: d496dc5ba1 am: a3bacba8b1
am: 93b3acbf1e  -s ours

Change-Id: I817dfabfcdca5c9944053c10774dffd97c7ed2f8

6 years ago[automerger skipped] Merge "DO NOT MERGE: Merge remote-tracking branch 'khronos/vulka...
android-build-prod (mdb) [Mon, 30 Apr 2018 17:48:15 +0000 (10:48 -0700)]
[automerger skipped] Merge "DO NOT MERGE: Merge remote-tracking branch 'khronos/vulkan-cts-1.0.2' into HEAD" into oreo-cts-dev am: 354706417a  -s ours am: d496dc5ba1
am: a3bacba8b1

Change-Id: I15dbddb5b202e4a7eac6a67fb62fab4d3084ff9a

6 years ago[automerger skipped] Merge "DO NOT MERGE: Merge remote-tracking branch 'khronos/vulka...
android-build-prod (mdb) [Mon, 30 Apr 2018 17:44:08 +0000 (10:44 -0700)]
[automerger skipped] Merge "DO NOT MERGE: Merge remote-tracking branch 'khronos/vulkan-cts-1.0.2' into HEAD" into oreo-cts-dev am: 354706417a  -s ours
am: d496dc5ba1

Change-Id: Ide9aaa6f6834f5060f179188434c8f69d286ce68

6 years ago[automerger skipped] Merge "DO NOT MERGE: Merge remote-tracking branch 'khronos/vulka...
android-build-prod (mdb) [Mon, 30 Apr 2018 17:44:05 +0000 (10:44 -0700)]
[automerger skipped] Merge "DO NOT MERGE: Merge remote-tracking branch 'khronos/vulkan-cts-1.0.2' into HEAD" into oreo-cts-dev am: 354706417a  -s ours am: c78fc14ea5  -s ours
am: 64399483f6  -s ours

Change-Id: I0cd61f2281758f35ffa898bd299af36fc3b46e7b

6 years ago[automerger skipped] Merge "DO NOT MERGE: Merge remote-tracking branch 'khronos/vulka...
android-build-prod (mdb) [Mon, 30 Apr 2018 17:39:59 +0000 (10:39 -0700)]
[automerger skipped] Merge "DO NOT MERGE: Merge remote-tracking branch 'khronos/vulkan-cts-1.0.2' into HEAD" into oreo-cts-dev
am: 354706417a  -s ours

Change-Id: I302c847ae29c25072081d06b17e78671b7358df0

6 years ago[automerger skipped] Merge "DO NOT MERGE: Merge remote-tracking branch 'khronos/vulka...
android-build-prod (mdb) [Mon, 30 Apr 2018 17:39:59 +0000 (10:39 -0700)]
[automerger skipped] Merge "DO NOT MERGE: Merge remote-tracking branch 'khronos/vulkan-cts-1.0.2' into HEAD" into oreo-cts-dev am: 354706417a  -s ours
am: c78fc14ea5  -s ours

Change-Id: Ib2acbf2e335b712ea3f16c46168915079b16e6a2

6 years ago[automerger skipped] Merge "DO NOT MERGE: Merge remote-tracking branch 'khronos/vulka...
android-build-prod (mdb) [Mon, 30 Apr 2018 17:32:26 +0000 (10:32 -0700)]
[automerger skipped] Merge "DO NOT MERGE: Merge remote-tracking branch 'khronos/vulkan-cts-1.0.2' into HEAD" into oreo-cts-dev
am: 354706417a  -s ours

Change-Id: I37e6dad1ab2d2eb9bee4a529f16c77981afbb54b

6 years agoMerge "DO NOT MERGE: Merge remote-tracking branch 'khronos/vulkan-cts-1.0.2' into...
android-build-prod (mdb) [Mon, 30 Apr 2018 17:30:06 +0000 (17:30 +0000)]
Merge "DO NOT MERGE: Merge remote-tracking branch 'khronos/vulkan-cts-1.0.2' into HEAD" into oreo-cts-dev

6 years agoDO NOT MERGE: Merge remote-tracking branch 'khronos/vulkan-cts-1.0.2' into HEAD
Chris Forbes [Tue, 27 Feb 2018 00:31:59 +0000 (16:31 -0800)]
DO NOT MERGE: Merge remote-tracking branch 'khronos/vulkan-cts-1.0.2' into HEAD

Change-Id: Id624bed0598e117aff161ee6ed92a135095e33d7
Bug: b/73945443

6 years agoDo not fail plane tests when there is no display
Liam Middlebrook [Thu, 26 Apr 2018 21:43:25 +0000 (14:43 -0700)]
Do not fail plane tests when there is no display

Instead, we should mark these tests as not supported. The Vulkan spec
states that:
    Devices must support at least one plane on each display

If there are no displays connected, the driver is allowed to return 0
planes.

VK-GL-CTS issue: 1138

Change-Id: Ie7ddc35f4f11fbfa54f8c31cc3864f52adb1bb7f
Affects: dEQP-VK.wsi.display.get_display_plane_capabilities
Affects: dEQP-VK.wsi.display.create_display_plane_surface

6 years agoDo not fail display tests when there is no display
Damien Leone [Mon, 30 Oct 2017 23:15:25 +0000 (16:15 -0700)]
Do not fail display tests when there is no display

Instead, we should mark these tests as not supported. It is valid per the
Vulkan spec to have the extension report 0 displays connected.

Affects: dEQP-VK.wsi.display.*

Component: Vulkan

VK-GL-CTS issue: 1105

Change-Id: Iaae928a862dcc3827094d898a5455ecfe3920936

6 years agoDo not test CLEAR loadOp with read-only depth stencil image layouts
Slawomir Cygan [Tue, 24 Apr 2018 15:50:19 +0000 (17:50 +0200)]
Do not test CLEAR loadOp with read-only depth stencil image layouts

It is invalid to use implicit clears with depth stencil images, which first
render pass usage is in read only depth/stencil image layout

Spec:
"
For any member of pAttachments with a loadOp equal to VK_ATTACHMENT_LOAD_OP_CLEAR,
the first use of that attachment must not specify a layout equal to
VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL.

For any member of pAttachments with a stencilLoadOp equal to VK_ATTACHMENT_LOAD_OP_CLEAR,
the first use of that attachment must not specify a layout equal to
VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL."

Component: Vulkan

Affects:
dEQP-VK.renderpass.suballocation.formats.d*.clear.*_read_only

VK-GL-CTS Issue: 1144

Change-Id: Iad78473fe4bdf87dac5aff5bcc1c2b888e790cb8

6 years agoAllow the window to be recreated in the middle of a test
Lloyd Pique [Wed, 25 Apr 2018 02:08:39 +0000 (19:08 -0700)]
Allow the window to be recreated in the middle of a test

On ARC++ devices, some of the dEQP CTS tests were occasionally failing on
devices running in tablet mode, due to the timing of a WM relayout that
happens shortly after the orientation change is realized.

We traced it back to the dEQP test harness always expecting to see a
call from the system to onNativeWindowResized() after a call to
oNNativeWindowCreated(). It happened that the relayout on ARC++ devices
was not causing a size change, so this message was never received.

The result was that the test paused itself, and never completed. The
watchdog thread that the test harness creates ended up killing and
failing the test.

This patch adjusts the logic so that the activity only waits to process
the window creation for the very first call to onNativeWindowResized(),
as when the activity is first created that call is indeed made (but note
not really guaranteed). A subsequent call to onNativeWindowCreated()
will unpause the test (setting the READY state), as well as finish
processing the window creation.

Bug: 74371892
Test: dEQP-GLES3.functional.prerequisite#clear_color
Change-Id: I3c429aea272cbfee3f150a32c12233c9f38a7936

6 years agoDO NOT MERGE: Merge remote-tracking branch 'khronos/vulkan-cts-1.0.2' into HEAD
Chris Forbes [Tue, 27 Feb 2018 00:31:59 +0000 (16:31 -0800)]
DO NOT MERGE: Merge remote-tracking branch 'khronos/vulkan-cts-1.0.2' into HEAD

Change-Id: Id624bed0598e117aff161ee6ed92a135095e33d7
Bug: b/73945443

6 years agoRemove 4K min size from dedicated image tests
Jarred Davies [Thu, 12 Apr 2018 12:57:14 +0000 (13:57 +0100)]
Remove 4K min size from dedicated image tests

The tests dEQP-VK.memory.mapping.dedicated_alloc.image.*
all create an image with a minimum size of 4Kx4K, so the
tests in this subgroup  test the exact same image size
regardless of what size the test itself is supposed to be
testing.

This change removes the 4Kx4K minimum to enable
the test to actually test multiple sizes of images.

Affect:

dEQP-VK.memory.mapping.dedicated_alloc.image.*

Components: Vulkan

VK-GL-CTS issue: 1118

Change-Id: I2ba9fa671f20eeb9bfa8b14972c903ac20875425

6 years agoMissing pipeline barriers from fragment variants of dEQP-VK.subgroups.*
Panagiotis Apostolou [Mon, 26 Mar 2018 11:21:26 +0000 (13:21 +0200)]
Missing pipeline barriers from fragment variants of dEQP-VK.subgroups.*

This commit adds a missing image pipeline barrier in the fragment variant
of the subgroups test group. After the end of the renderpass and before the
vkCmdCopyImageToBuffer, a pipeline barrier is required to delay the copy
command so that all the writes to the color attachment are complete.

Tests affected:
dEQP-VK.subgroups.*

Components: Vulkan

VK-GL-CTS issue: 1135

Change-Id: I82a5179f97cf4435f96dd378f123f37bc26bd082

6 years agoRemove 4K min size from dedicated image tests
Jarred Davies [Thu, 12 Apr 2018 12:57:14 +0000 (13:57 +0100)]
Remove 4K min size from dedicated image tests

The tests dEQP-VK.memory.mapping.dedicated_alloc.image.*
all create an image with a minimum size of 4Kx4K, so the
tests in this subgroup  test the exact same image size
regardless of what size the test itself is supposed to be
testing.

This change removes the 4Kx4K minimum to enable
the test to actually test multiple sizes of images.

Affect:

dEQP-VK.memory.mapping.dedicated_alloc.image.*

Components: Vulkan

VK-GL-CTS issue: 1118

Change-Id: I2ba9fa671f20eeb9bfa8b14972c903ac20875425
Test: CtsDeqpTestCases on Pixel
Bug: b/78455246
Cherry-picked from Khronos change: https://gerrit.khronos.org/#/c/2466/

6 years agoMerge remote-tracking branch 'khronos/vulkan-cts-1.1.0' into pi-april-fixes
Chris Forbes [Mon, 23 Apr 2018 15:36:08 +0000 (08:36 -0700)]
Merge remote-tracking branch 'khronos/vulkan-cts-1.1.0' into pi-april-fixes

Change-Id: I67987219e362df91065a30e1ee319d0712e9a6f5
Test: CtsDeqpTestCases on Pixel
Bug: b/78455246

6 years agoMerge "Exclude unspecified precision GLES2/3 tests" into pi-dev
TreeHugger Robot [Tue, 17 Apr 2018 00:10:38 +0000 (00:10 +0000)]
Merge "Exclude unspecified precision GLES2/3 tests" into pi-dev

6 years agoExclude unspecified precision GLES2/3 tests
Chris Forbes [Mon, 16 Apr 2018 19:43:17 +0000 (12:43 -0700)]
Exclude unspecified precision GLES2/3 tests

Move from temporary to permanent exclusions for P. In a future release
we'll move these to GLES31.

Change-Id: Ib6918e888cf15014fb68b482937f578b01007d65
Component: AOSP
Bug: b/72992757
Test: mustpass change only

6 years agoRequest GPDP2 extension if required in shared presentable image tests
Chris Forbes [Thu, 12 Apr 2018 15:54:00 +0000 (08:54 -0700)]
Request GPDP2 extension if required in shared presentable image tests

Change-Id: Ifa4b19c6046d4f0b95a5fc65443bcd1df051b6a5
Components: Vulkan
Affects: dEQP-VK.wsi.*.shared_presentable_image.*
VK-GL-CTS: 1078

6 years agoMerge remote-tracking branch 'khronos/vulkan-cts-1.1.0' into pi-merge-fixes
Chris Forbes [Mon, 9 Apr 2018 19:24:26 +0000 (12:24 -0700)]
Merge remote-tracking branch 'khronos/vulkan-cts-1.1.0' into pi-merge-fixes

Bug: b/77812821
Test: run on pixel

Change-Id: If4833fd61a4e11b87152b1ff392490f839317da5

6 years agoTemporary AHB external memory exclusions
Jesse Hall [Wed, 4 Apr 2018 21:48:21 +0000 (14:48 -0700)]
Temporary AHB external memory exclusions

Bug: 77582727
Bug: 77596051
Test: scripts/build_android_mustpass.py
Change-Id: I24f39fa092781474027df3dcd4a99f0472321490

6 years agoTemporary exclusions for failing protected memory tests
Jesse Hall [Fri, 30 Mar 2018 17:15:08 +0000 (10:15 -0700)]
Temporary exclusions for failing protected memory tests

Bug: 77319653
Bug: 77321170
Test: scripts/build_android_mustpass.py
Change-Id: I79494e4e389d0416ac2b9ad838f0c83e3149a787

6 years agoFix improper use of vkCmdWaitEvents
Peter Quayle [Wed, 28 Mar 2018 17:18:28 +0000 (18:18 +0100)]
Fix improper use of vkCmdWaitEvents

dEQP-VK.synchronization.smoke.events was calling vkCmdWaitEvents inside
a render-pass, which is not allowed if the event is later triggerd using
vkSetEvent. Additionally, the test was only waiting 1ns to determine if
a queue had made forward progress, which is too short to give the
implementation a chance to do any work.

Affects:

dEQP-VK.synchronization.smoke.events

Components: Vulkan

VK-GL-CTS issue: 1089

Change-Id: I6d9c9a635d82840f49fd3d9ed3736f91c4b6f88d

6 years agoMerge "Fix testrunner to cope with degenerate testlists" into pi-dev
TreeHugger Robot [Sat, 31 Mar 2018 02:13:28 +0000 (02:13 +0000)]
Merge "Fix testrunner to cope with degenerate testlists" into pi-dev

6 years agoFix testrunner to cope with degenerate testlists
Chris Forbes [Fri, 30 Mar 2018 20:21:20 +0000 (13:21 -0700)]
Fix testrunner to cope with degenerate testlists

When a testlist contained no tests (like master/gles31-master-risky
now does!), the host-side testrunner would explode trying to enumerate
test cases.

Change-Id: Icfd4cc952678dd9d2f21efc11d2221da6716ed9c
Test: cts-tradefed
Bug: b/77330743

6 years agoAdd AHardwareBuffer external memory test for format/usage flags.
Khushal [Fri, 23 Mar 2018 02:27:50 +0000 (19:27 -0700)]
Add AHardwareBuffer external memory test for format/usage flags.

Added tests:
dEQP-VK.api.external.memory.android_hardware_buffer.image_formats.r8g8b8a8_unorm
dEQP-VK.api.external.memory.android_hardware_buffer.image_formats.r5g6b5_unorm_pack16
dEQP-VK.api.external.memory.android_hardware_buffer.image_formats.r16g16b16a16_sfloat
dEQP-VK.api.external.memory.android_hardware_buffer.image_formats.a2b10g10r10_unorm_pack32

Components: Vulkan
cherry-picked from: https://googleplex-android-review.git.corp.google.com/c/platform/external/deqp/+/3815013
Test: Adds new tests.
BUG: 75981905

Change-Id: I4842adbb2486bf487665e1021e8fdf92a3ab58ca

6 years agoRemove obsolete temporary test exclusions
Chris Forbes [Fri, 30 Mar 2018 15:00:48 +0000 (08:00 -0700)]
Remove obsolete temporary test exclusions

Bug: b/72495913
Bug: b/72324588
Bug: b/73247948
Bug: b/73248373

Change-Id: I1be63c5f656613b52887e0a0b06a53fb256f3a39
Test: fixes verified on Pixel & Pixel 2

6 years agoMerge "Generate extra android mustpass list from risky set" into pi-dev
TreeHugger Robot [Fri, 30 Mar 2018 02:26:28 +0000 (02:26 +0000)]
Merge "Generate extra android mustpass list from risky set" into pi-dev

6 years agoMerge changes from topic "pi-findLSB-picks" into pi-dev
TreeHugger Robot [Wed, 28 Mar 2018 02:40:30 +0000 (02:40 +0000)]
Merge changes from topic "pi-findLSB-picks" into pi-dev

* changes:
  Fix ShaderUniformIntegerFunctionTest to not have bool precision
  Add tests for findLSB/findMSB applied to a uniform value.

6 years agoMerge "Require GL_EXT_sRGB_write_control for GL_FRAMEBUFFER_SRGB enable/disable"...
Kenneth Graunke [Wed, 28 Mar 2018 00:55:09 +0000 (00:55 +0000)]
Merge "Require GL_EXT_sRGB_write_control for GL_FRAMEBUFFER_SRGB enable/disable" into oreo-mr1-cts-dev am: c6b5415220
am: 0b5495e302

Change-Id: I837d04aa9953c5bf9e10c4e261cbbe70565386b9

6 years agoMerge "Require GL_EXT_sRGB_write_control for GL_FRAMEBUFFER_SRGB enable/disable"...
Kenneth Graunke [Wed, 28 Mar 2018 00:50:07 +0000 (00:50 +0000)]
Merge "Require GL_EXT_sRGB_write_control for GL_FRAMEBUFFER_SRGB enable/disable" into oreo-mr1-cts-dev
am: c6b5415220

Change-Id: I7f40c9c3ecab3328782cf0abe22906a4c60d1116

6 years agoFix ShaderUniformIntegerFunctionTest to not have bool precision
Raymond Chiu [Mon, 12 Mar 2018 17:49:10 +0000 (10:49 -0700)]
Fix ShaderUniformIntegerFunctionTest to not have bool precision

Bug: 71875560
Components: AOSP
Affects: dEQP-GLES31.functional.shaders.builtin_functions.uniform.*
Change-Id: I25325aa74090ec253da33ba2677ac281e3a6e01c
(cherry picked from commit 8ab1016d3d4fa98d2c8d74ef5580873d61161a43)

6 years agoMerge "Require GL_EXT_sRGB_write_control for GL_FRAMEBUFFER_SRGB enable/disable"...
Treehugger Robot [Wed, 28 Mar 2018 00:32:19 +0000 (00:32 +0000)]
Merge "Require GL_EXT_sRGB_write_control for GL_FRAMEBUFFER_SRGB enable/disable" into oreo-mr1-cts-dev

6 years agoMerge "Fixes to EGL.functional.hdr_metadata.* tests" into pi-dev
TreeHugger Robot [Wed, 28 Mar 2018 00:27:27 +0000 (00:27 +0000)]
Merge "Fixes to EGL.functional.hdr_metadata.* tests" into pi-dev

6 years agoMerge changes I3e77c422,Ic6712c73 into pi-dev
TreeHugger Robot [Wed, 28 Mar 2018 00:26:16 +0000 (00:26 +0000)]
Merge changes I3e77c422,Ic6712c73 into pi-dev

* changes:
  Whitelist VK_ANDROID_external_memory_android_hardware_buffer
  Temporarily exclude dEQP-VK.memory.mapping.dedicated_alloc.image.full.*

6 years agoFixes to EGL.functional.hdr_metadata.* tests
Tapani Pälli [Mon, 26 Mar 2018 12:10:16 +0000 (15:10 +0300)]
Fixes to EGL.functional.hdr_metadata.* tests

- Adjust given values to fit uint16_t (range used in smpte2086
  and cta861.3 specs).

- Allow EGL_BAD_PARAMETER error happen when setting parameters,
  per spec this means values passed are not supported by the
  implementation. Output attribute and given values in this
  case for debugging purposes.

v2: skip unsupported but check supported attributes (Courtney)

Change-Id: I1f386b414c95e65d3532bf10719dc7671e826489
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
(cherry picked from commit 07048b63e90dc2c1e89c069535bb7958a128f887)

Bug: 77150763
Change-Id: Ia0401e760d863a85707f98dd2a1e7e7f268f5597
Test: run on pixel

6 years agoWhitelist VK_ANDROID_external_memory_android_hardware_buffer
Jesse Hall [Tue, 27 Mar 2018 18:58:02 +0000 (11:58 -0700)]
Whitelist VK_ANDROID_external_memory_android_hardware_buffer

Bug: 62708246
Test: dEQP-VK.api.info.android.no_unknown_extensions
Change-Id: I3e77c422b88e891ebfde33996c3d73d4e76e47a7

6 years agoTemporarily exclude dEQP-VK.memory.mapping.dedicated_alloc.image.full.*
Jesse Hall [Tue, 27 Mar 2018 18:55:31 +0000 (11:55 -0700)]
Temporarily exclude dEQP-VK.memory.mapping.dedicated_alloc.image.full.*

Test: cts-tradefed dEQP-VK.*
Bug: 77139965
Change-Id: Ic6712c73812e2840fce0d57bde064cc430a636bc

6 years agoFixed rounding issue in spirv_assembly tests
Dae Kim [Tue, 27 Mar 2018 09:54:23 +0000 (10:54 +0100)]
Fixed rounding issue in spirv_assembly tests

The test assumes that the host system and the device use the same
rounding mode. When this is not the case, the derived rounding errors
make the test fail unexpectedly. By rounding the input values down we
avoid differences in the test output caused by the rounding modes in
use.

Affects:

dEQP-VK.spirv_assembly.instruction.compute.loop_control.dependency_infinite

Components: Vulkan

VK-GL-CTS issue: 1097

Change-Id: I3678e38cbe5c6d57cecef91e7398df0d04763851

6 years agoAdd AHardwareBuffer support to external memory tests
Khushal [Fri, 23 Mar 2018 23:57:18 +0000 (16:57 -0700)]
Add AHardwareBuffer support to external memory tests

Added tests:
* dEQP-VK.api.external.memory.android_hardware_buffer.*

Components: Vulkan
VK-GL-CTS issue: 109
Test: Adds tests.
BUG: 75981905

Cherry-picked from: https://gerrit.khronos.org/#/c/1455/

Change-Id: Ibb6016eb932500c36309bf0937306ce84a4bae0c
(cherry picked from commit 0da925f6b91802440c735b3c6bc8f97b03268c32)

6 years agoHandle gcc 7 warnings am: 3677383919 am: 8597705aa9 am: 7092baa549
Caio Marcelo de Oliveira Filho [Fri, 23 Mar 2018 00:49:54 +0000 (00:49 +0000)]
Handle gcc 7 warnings am: 3677383919 am: 8597705aa9 am: 7092baa549
am: 7ac08ab012

Change-Id: I73ed7c960fdc28795c50d12e504097940fffad9f

6 years agoHandle gcc 7 warnings am: 3677383919 am: 8597705aa9
Caio Marcelo de Oliveira Filho [Fri, 23 Mar 2018 00:37:51 +0000 (00:37 +0000)]
Handle gcc 7 warnings am: 3677383919 am: 8597705aa9
am: 7092baa549

Change-Id: Ic8743e2508ae476ac56c4c1422d8d0d57ad8b671

6 years agoHandle gcc 7 warnings am: 3677383919 am: 2d4c86a43b
Caio Marcelo de Oliveira Filho [Fri, 23 Mar 2018 00:31:21 +0000 (00:31 +0000)]
Handle gcc 7 warnings am: 3677383919 am: 2d4c86a43b
am: 7e29f6b4fb

Change-Id: I32c3b40b9e2786d217e28ea8330b3a67b2d11c08

6 years agoHandle gcc 7 warnings am: 3677383919
Caio Marcelo de Oliveira Filho [Fri, 23 Mar 2018 00:26:27 +0000 (00:26 +0000)]
Handle gcc 7 warnings am: 3677383919
am: 8597705aa9

Change-Id: I6c48d554d080eca12650c66cca00c32bd34231f2

6 years agoHandle gcc 7 warnings am: 3677383919
Caio Marcelo de Oliveira Filho [Fri, 23 Mar 2018 00:23:08 +0000 (00:23 +0000)]
Handle gcc 7 warnings am: 3677383919
am: 2d4c86a43b

Change-Id: Icf0c152a839ff1de7259784ec82fa0be77cd76a6

6 years agoHandle gcc 7 warnings
Caio Marcelo de Oliveira Filho [Fri, 23 Mar 2018 00:19:51 +0000 (00:19 +0000)]
Handle gcc 7 warnings
am: 3677383919

Change-Id: I4ea9a65bf430fadf5753bf260df13ee7ca250f9c

6 years agoHandle gcc 7 warnings
Caio Marcelo de Oliveira Filho [Fri, 23 Mar 2018 00:10:32 +0000 (00:10 +0000)]
Handle gcc 7 warnings
am: 3677383919

Change-Id: I058154400ec6755a9eaf873a6421942fcad4cd11

6 years agoHandle gcc 7 warnings
Caio Marcelo de Oliveira Filho [Thu, 22 Feb 2018 01:54:57 +0000 (17:54 -0800)]
Handle gcc 7 warnings

- "-Wimplicit-fallthrough" warns on case conditions that
  fallthrough. GCC does have a way to accept conditions that have a
  comment about falling through inside the cases, but the codebase has
  other cases where a single comment explains the fallthrough for the
  whole switch. This warning is being ignored. It was not possible to
  use "-Wno-error=WARNING" because older GCCs fail -- but they do
  accept "-Wno-WARNING" where WARNING is unknown (since at least gcc
  4.6.4).

- "-Wint-in-bool-context" warns (among other things) about result of
  multiplication being used in boolean context. Code was changed to
  use de::max() instead.

- "-Wmaybe-uninitialized" warned about some attributes of a struct not
  being initialized depending on the case. Code was changed to
  initialize the struct in question.

Components: Framework, Vulkan

Bug: b/74405145

Change-Id: Iabb26f01e047353c6e2a704ab27b673e85b185be
(cherry picked from commit f1ee9253e64f7434cdba7c8ac048c0e9baccc133)

6 years agoRequire GL_EXT_sRGB_write_control for GL_FRAMEBUFFER_SRGB enable/disable
Kenneth Graunke [Sat, 9 Sep 2017 06:26:15 +0000 (23:26 -0700)]
Require GL_EXT_sRGB_write_control for GL_FRAMEBUFFER_SRGB enable/disable

This test required GL_EXT_sRGB_write_control or ES 3.2.  But glEnable
and glDisable of GL_FRAMEBUFFER_SRGB requires the extension - ES 3.2
doesn't provide that functionality.  ES 3.2 implementations without the
extension would fail.  Now they report NotSupported.

Affects:
dEQP-GLES31.functional.fbo.srgb_write_control.framebuffer_srgb_enabled

Components: AOSP

Bug: b/75898891

Change-Id: I9d6b3fba892288354620ecbbc51ef7a351507e43
(cherry picked from commit f5bc215a968512ba967ce68cc3640c45bc776f2c)

6 years agoMerge remote-tracking branch 'goog/upstream-vulkan-cts-next' into pi-dev
Chris Forbes [Fri, 16 Mar 2018 18:32:25 +0000 (11:32 -0700)]
Merge remote-tracking branch 'goog/upstream-vulkan-cts-next' into pi-dev

Change-Id: Ib4eee63a0f56aa0fe3f11b9af551946e15f80038
Bug: b/75279981
Test: helper script only, manually tested.

6 years agoMerge tag 'vulkan-cts-1.1.0.3' into HEAD
Chris Forbes [Tue, 13 Mar 2018 00:00:42 +0000 (17:00 -0700)]
Merge tag 'vulkan-cts-1.1.0.3' into HEAD

Test: make cts, run on pixel
Bug: b/74544379

Change-Id: I0ec419667905d7d9c795e3bc30210e2bf3315406

6 years agoFetch new tags when fetching new Git sources
Caio Marcelo de Oliveira Filho [Mon, 12 Mar 2018 17:25:58 +0000 (10:25 -0700)]
Fetch new tags when fetching new Git sources

Change-Id: I1a906ebf2698eac33c3acbf1da74df9642b775a2
Component: Framework
(cherry picked from commit 204d597504c94fa52ed0f5a2c21895482236d5cc)

6 years agoGenerate extra android mustpass list from risky set
Chris Forbes [Tue, 13 Mar 2018 23:59:45 +0000 (16:59 -0700)]
Generate extra android mustpass list from risky set

Previously we'd just separated the short term exclusions into their own
list, but they weren't included in any other list that cts-tradefed
could run. This change puts that next step of the plumbing in place.

Test: mustpass change only.
Bug: b/73004594
Change-Id: I58997dc1e62929dc4b7243ceae3a90e55f8c962e
Components: AOSP

6 years agoAdd tests for findLSB/findMSB applied to a uniform value.
Raymond Chiu [Tue, 13 Feb 2018 23:13:47 +0000 (15:13 -0800)]
Add tests for findLSB/findMSB applied to a uniform value.

Ensure that findLSB/findMSB work correctly when:

Argument is a uniform value, of various precisions
Result is written out directly
Result is compared to a fixed value

Components: AOSP
Bug: 71875560
New Tests: dEQP-GLES31.functional.shaders.builtin_functions.uniform.*

Change-Id: I0dc83b291d1ecaed5e451b76e4b41827116218c6
(cherry picked from commit db61ef6d9e35710b30c6494b6e1a9110dbda6ea7)

6 years agoeglGetFrameTimestamps: Don't require reads done to be monotonic. am: e8634c9254 am...
Brian Anderson [Mon, 12 Mar 2018 18:52:38 +0000 (18:52 +0000)]
eglGetFrameTimestamps: Don't require reads done to be monotonic. am: e8634c9254 am: c89ef2911b am: 6c7926cc85
am: e259b46e87

Change-Id: Ic23aa598b9ed405814db1f3407aa1f217c14065a

6 years agoeglGetFrameTimestamps: Don't require reads done to be monotonic. am: e8634c9254 am...
Brian Anderson [Mon, 12 Mar 2018 18:47:30 +0000 (18:47 +0000)]
eglGetFrameTimestamps: Don't require reads done to be monotonic. am: e8634c9254 am: c89ef2911b
am: 6c7926cc85

Change-Id: Ie7ee1b6e9d65880ed0ecd5f387f11d7dc2869c19

6 years agoeglGetFrameTimestamps: Don't require reads done to be monotonic. am: e8634c9254
Brian Anderson [Mon, 12 Mar 2018 18:40:59 +0000 (18:40 +0000)]
eglGetFrameTimestamps: Don't require reads done to be monotonic. am: e8634c9254
am: c89ef2911b

Change-Id: I4eb4a0f114e28e84b9d52e26c607c1c6ec124644

6 years agoeglGetFrameTimestamps: Don't require reads done to be monotonic.
Brian Anderson [Mon, 12 Mar 2018 18:32:20 +0000 (18:32 +0000)]
eglGetFrameTimestamps: Don't require reads done to be monotonic.
am: e8634c9254

Change-Id: I37191536ba133e83204935cfcebe7746675ef4f7

6 years agoeglGetFrameTimestamps: Don't require reads done to be monotonic. am: e8634c9254 am...
Brian Anderson [Mon, 12 Mar 2018 18:12:53 +0000 (18:12 +0000)]
eglGetFrameTimestamps: Don't require reads done to be monotonic. am: e8634c9254 am: 24f69aed49
am: b4d417c7b7

Change-Id: If69252cd54c1780b5d76d1d1d7033a811d165e50

6 years agoeglGetFrameTimestamps: Don't require reads done to be monotonic. am: e8634c9254
Brian Anderson [Mon, 12 Mar 2018 18:09:15 +0000 (18:09 +0000)]
eglGetFrameTimestamps: Don't require reads done to be monotonic. am: e8634c9254
am: 24f69aed49

Change-Id: Iab3e70c081836b7219962477fdda27c730c5e0ae

6 years agoeglGetFrameTimestamps: Don't require reads done to be monotonic.
Brian Anderson [Mon, 12 Mar 2018 17:54:36 +0000 (17:54 +0000)]
eglGetFrameTimestamps: Don't require reads done to be monotonic.
am: e8634c9254

Change-Id: I68606ee22f516db51b60db205cd7ebb28cc563f6

6 years agoeglGetFrameTimestamps: Don't require reads done to be monotonic.
Brian Anderson [Fri, 9 Mar 2018 18:25:08 +0000 (10:25 -0800)]
eglGetFrameTimestamps: Don't require reads done to be monotonic.

Reads done is usually monotonic, but only under the assumption
that every buffer of the surface is being consumed by the same
unit. It is possible for a surface to switch between being an
overlay and being composited by the GPU. It's also possible a
driver will maintain a shadow copy of a frame that will further
affect when reads from a buffer might finish.

Remove the overly strict check.

Bug: 7033485174184639
Test: --deqp-case=dEQP-EGL*get_frame_timestamps*
Change-Id: I8e242a9fd649720b4d8059797c71163329b7b92c

6 years agoCompile shaders for 1.0-compatible tests as SPIRV 1.0, not max supported
Chris Forbes [Fri, 2 Mar 2018 21:22:20 +0000 (13:22 -0800)]
Compile shaders for 1.0-compatible tests as SPIRV 1.0, not max supported

Test: rebuild prebuilts, inspect. CtsDeqpTestCases against Pixel & Pixel2
Bug: b/74431715

Change-Id: I5a440f97f79be0e6d37d89018ae8b611e9d4e7c1

6 years agoExclude gles2 unspecified precision tests temporarily
Chris Forbes [Thu, 8 Mar 2018 23:51:14 +0000 (15:51 -0800)]
Exclude gles2 unspecified precision tests temporarily

Bug: b/72992757
Test: mustpass change only
Change-Id: I1a02bbf2d60ec9f18b6948b70f94992551e8d8d3

6 years agoHandle gcc 7 warnings
Caio Marcelo de Oliveira Filho [Thu, 22 Feb 2018 01:54:57 +0000 (17:54 -0800)]
Handle gcc 7 warnings

- "-Wimplicit-fallthrough" warns on case conditions that
  fallthrough. GCC does have a way to accept conditions that have a
  comment about falling through inside the cases, but the codebase has
  other cases where a single comment explains the fallthrough for the
  whole switch. This warning is being ignored. It was not possible to
  use "-Wno-error=WARNING" because older GCCs fail -- but they do
  accept "-Wno-WARNING" where WARNING is unknown (since at least gcc
  4.6.4).

- "-Wint-in-bool-context" warns (among other things) about result of
  multiplication being used in boolean context. Code was changed to
  use de::max() instead.

- "-Wmaybe-uninitialized" warned about some attributes of a struct not
  being initialized depending on the case. Code was changed to
  initialize the struct in question.

Components: Framework, Vulkan
(Cherry-picked from Khronos change c3342293855b8cdb093408d867b44d0cc6b42155)
Test: python scripts/check_build_sanity.py with gcc-7
Bug: b/74405145

Change-Id: Iabb26f01e047353c6e2a704ab27b673e85b185be

6 years agoMerge remote-tracking branch 'goog/upstream-vulkan-cts-next' into vulkan-cts-1.1...
Chris Forbes [Thu, 1 Mar 2018 18:35:28 +0000 (10:35 -0800)]
Merge remote-tracking branch 'goog/upstream-vulkan-cts-next' into vulkan-cts-1.1.0.x-feb-merge

Bug: b/74387723
Test: run CtsDeqpTestCases on pixel
Change-Id: If184707fe64486b5cbb5cdace861319b309ba187

6 years agoUpdate glslang, SPIR-V commits
Alexander Galazin [Wed, 7 Mar 2018 15:45:21 +0000 (16:45 +0100)]
Update glslang, SPIR-V commits

Components: Framework

Affects: dEQP-VK.*

Change-Id: If5830108278597a28f8043dd947bed3c20c9688d

6 years agoFix egl config filtering of config_id am: 4bed9578e1 am: 5a6ee650a2
Rosen Zhelev [Sat, 3 Mar 2018 03:11:43 +0000 (03:11 +0000)]
Fix egl config filtering of config_id am: 4bed9578e1 am: 5a6ee650a2
am: cc7877f215

Change-Id: Ie06b7fc485d0e3c293c82332df403bea465c1718

6 years agoFix egl config filtering of config_id am: 4bed9578e1
Rosen Zhelev [Sat, 3 Mar 2018 03:01:28 +0000 (03:01 +0000)]
Fix egl config filtering of config_id am: 4bed9578e1
am: 5a6ee650a2

Change-Id: I1c1fb1b0ef52d4eb628b31a0e75353f97e87d09d

6 years agoFix egl config filtering of config_id
Rosen Zhelev [Sat, 3 Mar 2018 02:57:15 +0000 (02:57 +0000)]
Fix egl config filtering of config_id
am: 4bed9578e1

Change-Id: Icb3058fd28dace4166f7113c7e291c74879ebc63

6 years agoAdd a note to the README
Alexander Galazin [Fri, 2 Mar 2018 11:17:24 +0000 (12:17 +0100)]
Add a note to the README

Explain that the verification scrpt will report a warning
for a correctly generated git-log

Components: Vulkan

Change-Id: Ie8e0ab090f50c776150f9a7f4ce7d69583186953

6 years agoValidation errors fix in copying 3d images
Marcin Rogucki [Thu, 18 Jan 2018 09:55:07 +0000 (10:55 +0100)]
Validation errors fix in copying 3d images

A minor chages to fix validation errors.
Two tests are not passing currently!

Affected tests:
dEQP-VK.api.copy_and_blit.dedicated_allocation.image_to_image.3d_images.*

Components: Vulkan

VK-GL-CTS issue: 208

Change-Id: Id3c5ec869d52db6b1229f45bbeacf24e35e75e48
(cherry picked from commit c23ba94d7978ba84f9ffd2e75b6afbf8e3395633)