1D and 3D image copy and blitting tests
authorRicardo Garcia <rgarcia@igalia.com>
Fri, 24 Jul 2020 19:01:33 +0000 (21:01 +0200)
committerAlexander Galazin <Alexander.Galazin@arm.com>
Wed, 29 Jul 2020 10:43:01 +0000 (06:43 -0400)
commitdb7d53b336a0fab9694ff59d59425496c8d61356
tree93f7b549843c118511029d690d027b5ec817e134
parent88c4609b3a33db4467c075f83f1d48d70a102e7a
1D and 3D image copy and blitting tests

This commit adds new tests to check image copy and blitting operations
work on 1D and 3D color images.

In order to minimize the number of tests being added, the new 1D and 3D
test groups only use copy and blitting operations with the same source
and destination image format. Cross-format tests are still present in
the 2D variants.

These new tests revealed problems in the way the Z coordinate is handled
in blitting operations in several implementations.

These implementations were also wrongly passing 1D and 3D depth/stencil
copy and blitting tests due to the source image depth value not
depending on the Z coordinate.

For this reason, this commit also modifies the way gradients are
generated for 3D images to make all color, depth and stencil channels
depend on the 3 coordinate values. Due to the gradient-filling operation
being used in many other tests, this change has been made by introducing
a new function, tcu::fillWithComponentGradients2, instead of replacing
the existing implementation. Other tests using the old
tcu::fillWithComponentGradients function should be incrementally changed
to use the new function if possible due to the improved coverage.

In addition, test variants for separate depth/stencil layouts that were
only being applied to 3D depth/stencil images are now also applied to 1D
and 2D images.

New tests:
dEQP-VK.api.copy_and_blit.*.image_to_image.all_formats.color.1d.*
dEQP-VK.api.copy_and_blit.*.image_to_image.all_formats.color.3d.*
dEQP-VK.api.copy_and_blit.*.blit_image.all_formats.color.1d.*
dEQP-VK.api.copy_and_blit.*.blit_image.all_formats.color.3d.*
dEQP-VK.api.copy_and_blit.*.image_to_image.all_formats.depth_stencil.1d.*_separate_layouts*
dEQP-VK.api.copy_and_blit.*.image_to_image.all_formats.depth_stencil.2d.*_separate_layouts*
dEQP-VK.api.copy_and_blit.*.blit_image.all_formats.depth_stencil.1d.*_separate_layouts*
dEQP-VK.api.copy_and_blit.*.blit_image.all_formats.depth_stencil.2d.*_separate_layouts*

Renamed tests:
Old: dEQP-VK.api.copy_and_blit.*.image_to_image.all_formats.color.*
New: dEQP-VK.api.copy_and_blit.*.image_to_image.all_formats.color.2d.*
Old: dEQP-VK.api.copy_and_blit.*.blit_image.all_formats.color.*
New: dEQP-VK.api.copy_and_blit.*.blit_image.all_formats.color.2d.*

Affected tests:
dEQP-VK.api.copy_and_blit.*

Components: Framework, Vulkan
VK-GL-CTS issue: 2391

Change-Id: Ica59c3522234cfa81774b5ac7befaa1727cc4401
android/cts/master/src/vk-master-2019-03-01.txt
android/cts/master/vk-master-2019-03-01.txt
android/cts/master/vk-master-2020-03-01.txt
android/cts/master/vk-master.txt
external/vulkancts/modules/vulkan/api/vktApiCopiesAndBlittingTests.cpp
external/vulkancts/mustpass/master/vk-default.txt
framework/common/tcuTextureUtil.cpp
framework/common/tcuTextureUtil.hpp