platform/upstream/VK-GL-CTS.git
4 years agoMerge vk-gl-cts/vulkan-cts-1.1.6 into vk-gl-cts/master
Alexander Galazin [Fri, 6 Dec 2019 19:28:58 +0000 (20:28 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.6 into vk-gl-cts/master

Change-Id: Ia42787234c2094a0e7f92b0b40ae00edf3ae9361

4 years agoAdd tests to check blend constant clamping
Ricardo Garcia [Wed, 20 Nov 2019 17:19:23 +0000 (18:19 +0100)]
Add tests to check blend constant clamping

Add tests to check unsigned and signed normalized values for the source
color and blend constants are clamped to the proper ranges when using
color blending, as required by the spec.

New tests:
dEQP-VK.pipeline.blend.clamp.*

Components: Vulkan
VK-GL-CTS issue: 2021

Change-Id: I76abb5f720564d3c5c0f6c965a97276638fe923c

4 years agoAdd tests for VK_EXT_display_control
Piotr Byszewski [Tue, 12 Nov 2019 08:27:04 +0000 (09:27 +0100)]
Add tests for VK_EXT_display_control

VK-GL-CTS issue: 1680

Components: Vulkan

Affects:
dEQP-VK.wsi.display_control.*

Change-Id: I56ca004a884f459958287a96ff342c51a0962075

4 years agodEQP-VK.graphicsfuzz.discard-in-loop
Alastair Donaldson [Fri, 1 Nov 2019 11:26:48 +0000 (11:26 +0000)]
dEQP-VK.graphicsfuzz.discard-in-loop

Components: Vulkan

New Tests:

dEQP-VK.graphicsfuzz.discard-in-loop

Change-Id: I7ff8a88209bba73932f86fbf397b721e994c4c18

4 years agoWhitelist Vulkan CTS 1.1.6.3
Alexander Galazin [Thu, 5 Dec 2019 10:48:22 +0000 (11:48 +0100)]
Whitelist Vulkan CTS 1.1.6.3

Affects: dEQP-VK.api.driver_properties.properties

Components: Vulkan

Change-Id: Ib46d2ea03898930641539bd0ad1cf657c2994aa4

4 years agouvec2 tests for VK_KHR_buffer_device_address
Jeff Bolz [Tue, 24 Sep 2019 22:01:10 +0000 (17:01 -0500)]
uvec2 tests for VK_KHR_buffer_device_address

Add variants of the 'convert' tests that convert to and from uvec2
rather than uint64_t.

Components: Vulkan
VK-GL-CTS Issue: 2018

Affects: dEQP-VK.binding_model.buffer_device_address.*
Change-Id: I9e1a2f031e295b9200faff571aae2fc5cbb9005c
(cherry picked from commit bcc3bf2dee4bcd8505c1b0c16ee05cafad185749)

4 years agoTests for VK_KHR_buffer_device_address
Jeff Bolz [Tue, 9 Jul 2019 04:09:44 +0000 (23:09 -0500)]
Tests for VK_KHR_buffer_device_address

Components: Vulkan
Affects: dEQP-VK.binding_model.buffer_device_address*
Affects: dEQP-VK.compute.cooperative_matrix*phys*
Affects: dEQP-VK.memory_model.*phys*
Affects: dEQP-VK.ssbo.*phys*
Affects: dEQP-VK.spirv_assembly.*phys*
Change-Id: I045b5832e9857f6e826957e204237a32e0bcbce4
(cherry picked from commit 86db0cf343430c2b434f9313c6c4ef5188d9bc23)

4 years agoBump timeout for the basic fence tests
Ben Clayton [Wed, 4 Dec 2019 17:13:41 +0000 (17:13 +0000)]
Bump timeout for the basic fence tests

10ms for the LONG_FENCE_WAIT could cause spurious test failures for CPU-based
Vulkan implementations when the CPU is under heavy load.
This is now bumped to a second, but assuming the test passes, this should never
block for the entire second.

Affects: dEQP-VK.synchronization.basic.fence.*

Components: Vulkan
Change-Id: Ice07a1697b57e789b9f57f4a5da663c83a0c132a

4 years agoTemporarily remove lines_wide tests
Alexander Galazin [Thu, 5 Dec 2019 16:22:40 +0000 (17:22 +0100)]
Temporarily remove lines_wide tests

Components: Vulkan

Affects:
dEQP-VK.rasterization.primitives.no_stipple.smooth_lines_wide
dEQP-VK.rasterization.primitives_multisample_2_bit.no_stipple.smooth_lines_wide
dEQP-VK.rasterization.primitives_multisample_4_bit.no_stipple.smooth_lines_wide
dEQP-VK.rasterization.primitives_multisample_8_bit.no_stipple.rectangular_line_strip_wide
dEQP-VK.rasterization.primitives_multisample_8_bit.no_stipple.smooth_lines_wide
dEQP-VK.rasterization.primitives_multisample_16_bit.no_stipple.smooth_lines_wide

Change-Id: Id74c00f56519d03fb300a4a06bc20f8f0365bd3e

4 years agodEQP-VK.graphicsfuzz.modf-gl-color
Paul Thomson [Mon, 9 Sep 2019 14:20:33 +0000 (15:20 +0100)]
dEQP-VK.graphicsfuzz.modf-gl-color

Components: Vulkan

New Tests:

dEQP-VK.graphicsfuzz.modf-gl-color

Change-Id: I8394577742339f2c02a6c1e2d1b7a7093542c68e

4 years agoMerge vk-gl-cts/vulkan-cts-1.1.6 into vk-gl-cts/master
Alexander Galazin [Thu, 5 Dec 2019 11:19:21 +0000 (12:19 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.6 into vk-gl-cts/master

Change-Id: I551ad86d1ae9ea8c9ff8fbd04402ee9c7c0e5a89

4 years agoRemove todo in vktYCbCrFormatTests
Samuel Iglesias Gonsálvez [Mon, 2 Dec 2019 11:11:48 +0000 (12:11 +0100)]
Remove todo in vktYCbCrFormatTests

VK_IMAGE_TILING_LINEAR and all shader stages are already tested.

Components: Vulkan
VK-GL-CTS issue: 1065

Change-Id: Ie23f53bf8e108799575b12c49149399d89bdde61

4 years agoRemove memory alias todo in YCbCr tests
Samuel Iglesias Gonsálvez [Mon, 2 Dec 2019 11:06:56 +0000 (12:06 +0100)]
Remove memory alias todo in YCbCr tests

There are already tests implemented to test memory alias.

Components: Vulkan
VK-GL-CTS issue: 1064

Change-Id: I4ceee106fabb9945b9a77a8eedd46b6c07f9afb9

4 years agodEQP-VK.graphicsfuzz.discard-in-loop-in-function
Alastair Donaldson [Fri, 1 Nov 2019 11:43:40 +0000 (11:43 +0000)]
dEQP-VK.graphicsfuzz.discard-in-loop-in-function

Components: Vulkan

New Tests:

dEQP-VK.graphicsfuzz.discard-in-loop-in-function

Change-Id: Ic486aa7665e01ba71d12f35dad66a668cb22554b

4 years agoGenerate a non-zero exit code on test failure
Piers Daniell [Mon, 21 Oct 2019 22:47:25 +0000 (16:47 -0600)]
Generate a non-zero exit code on test failure

If there are any failed tests, or the test run was not
compelte, the process will now generate EXIT_FAILURE (1)
instead of EXIT_SUCCESS (0).

Affects:

cts-runner

Components: Framework

VK-GL-CTS issue: 1982

Change-Id: I50fb7d51c095a09f53476b5ba56b72835337f339

4 years agoFix uninitialized index array
Courtney Goeltzenleuchter [Thu, 21 Nov 2019 17:07:41 +0000 (10:07 -0700)]
Fix uninitialized index array

The test is doing a glDrawRangeElements using uninitialized data for
the element array. ANGLE validates that the indices fall within the
specified range. Data needs to be initialized to ensure that happens.

The spec says:
It is an error for index values (other than the primitive restart index,
when primitive restart is enabled) to lie outside the range [start, end], but
implementations are not required to check for this. Such indices will cause
implementation-dependent behavior.

Either the test needs to allow for an error or initialize the data so
as to be valid for the call.

Affected Test:
    dEQP-GLES31.functional.debug.negative_coverage.get_error.vertex_array.draw_range_elements

Components: OpenGL ES
VK-GL-CTS issue: 2118

Change-Id: I51f8abb86f088b67990001454bb00d59313200c2

4 years agoMerge vk-gl-cts/vulkan-cts-1.1.5 into vk-gl-cts/vulkan-cts-1.1.6
Alexander Galazin [Thu, 5 Dec 2019 09:37:17 +0000 (10:37 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.5 into vk-gl-cts/vulkan-cts-1.1.6

Change-Id: Ie910031c0296648e7ff34fb69cdbed0de5f24a1b

4 years agoMerge vk-gl-cts/vulkan-cts-1.1.4 into vk-gl-cts/vulkan-cts-1.1.5
Alexander Galazin [Thu, 5 Dec 2019 08:38:48 +0000 (09:38 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.4 into vk-gl-cts/vulkan-cts-1.1.5

Change-Id: I13e1238c4bfc3cb1366e25def3b081591a8101de

4 years agoDo the 'from UNDEFINED' layout transition only on the first pass
Slawomir Cygan [Fri, 29 Nov 2019 13:06:03 +0000 (14:06 +0100)]
Do the 'from UNDEFINED' layout transition only on the first pass

The test uses multiple submissions, each rendering to a part
of the same render target. Only the first submission should do
the transition 'from' UNDEFINED layout, otherwise each pass (submit)
would invalidate render target contents from previous submits.

Components: Vulkan

VK-GL-CTS Issue: 2131

Change-Id: Ic424e391e0348f6333b50d4c0f4f57d161ec95fb
Affects: dEQP-VK.descriptor_indexing.*

4 years agoMerge vk-gl-cts/vulkan-cts-1.1.3 into vk-gl-cts/vulkan-cts-1.1.4
Alexander Galazin [Thu, 5 Dec 2019 07:47:58 +0000 (08:47 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.3 into vk-gl-cts/vulkan-cts-1.1.4

Change-Id: I4d9bef08ce50fbba4d6a61cbba1e3cdb28051543

4 years agoAdd two more formats with proper threshold values.
Yanjun Zhang [Sat, 16 Nov 2019 05:54:57 +0000 (21:54 -0800)]
Add two more formats with proper threshold values.

Need to add two more formats with proper threshold values in
vkApiCopiesAndBlittingTests.cpp: getFormatThreshold() to make
CTS pass on some VSI mobile GPUs.

Affects:
dEQP-VK.api.copy_and_blit.core.blit_image.simple_tests.*
dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.*
dEQP-VK.api.copy_and_blit.dedicated_allocation.blit_image.*

Components: Vulkan

VK-GL-CTS issue: 2112

Change-Id: Ia3a314fd825ed13c44e49720fffffa2dff8f26af

4 years agoCreate tests for VK_EXT_astc_decode_mode
Piotr Byszewski [Wed, 30 Oct 2019 16:04:22 +0000 (17:04 +0100)]
Create tests for VK_EXT_astc_decode_mode

VK-GL-CTS issue: 1672

Components: Vulkan

Affects:
dEQP-VK.image.astc_decode_mode.*

Change-Id: Ib76e7cca25a82e8712ea2fd4028f8b1d6db3f8c2

4 years agoMerge vk-gl-cts/vulkan-cts-1.1.6 into vk-gl-cts/master
Alexander Galazin [Tue, 3 Dec 2019 20:42:54 +0000 (21:42 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.6 into vk-gl-cts/master

Change-Id: I29f005101057e815c4ba8e6cd1fb1115e01a54ad

4 years agoMerge vk-gl-cts/vulkan-cts-1.1.5 into vk-gl-cts/vulkan-cts-1.1.6
Alexander Galazin [Tue, 3 Dec 2019 18:46:18 +0000 (19:46 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.5 into vk-gl-cts/vulkan-cts-1.1.6

Change-Id: I0845a703755ac572d54f56394a04a9a4ace2fdce

4 years agoExtend rasterization testing, modify verification
Mike Byrne [Mon, 13 May 2019 14:15:02 +0000 (15:15 +0100)]
Extend rasterization testing, modify verification

dEQP-VK.rasterization.primitives.lines tests are extended to add tests
drawing vertical and horizontal lines.

Extend dEQP-VK.rasterization.primitives.lines and
dEQP-VK.rasterization.primitives_multisample_n_bit.lines to test at 258
resolution (a non power of two resolution).

The strict line verification coverage is modified to allow checking of
vertical and horizontal lines. Previously pixels in vertical or hori-
zontal lines were marked as partially covered and hence the test did
not detect whether the lines were rendered correctly or not.

Affects: dEQP-VK.rasterization.primitives*

Components: Vulkan

VK-GL-CTS Issue: 2062

Change-Id: Ifb76a44ba1ebdc97353bbd1a4b2552e415f2723d

4 years agodEQP-VK.graphicsfuzz.struct-and-unreachable-infinite-loop
Alastair Donaldson [Sun, 3 Nov 2019 23:15:05 +0000 (23:15 +0000)]
dEQP-VK.graphicsfuzz.struct-and-unreachable-infinite-loop

Components: Vulkan

New Tests:

dEQP-VK.graphicsfuzz.struct-and-unreachable-infinite-loop

Change-Id: I65b528b4f4739dced9752d79a440884373aafe7e

4 years agodEQP-VK.graphicsfuzz.transpose-rectangular-matrix
Alastair Donaldson [Sun, 3 Nov 2019 23:16:55 +0000 (23:16 +0000)]
dEQP-VK.graphicsfuzz.transpose-rectangular-matrix

Components: Vulkan

New Tests:

dEQP-VK.graphicsfuzz.transpose-rectangular-matrix

Change-Id: Ibbef1909c846e35048fa8b9d3da62bddb91e05f4

4 years agodEQP-VK.graphicsfuzz.unreachable-switch-case-with-discards
Alastair Donaldson [Thu, 31 Oct 2019 11:42:55 +0000 (11:42 +0000)]
dEQP-VK.graphicsfuzz.unreachable-switch-case-with-discards

Components: Vulkan

New Tests:

dEQP-VK.graphicsfuzz.unreachable-switch-case-with-discards

Change-Id: Ic0bdb602fbcebd460072ca88acb3a8b4b4641bf1

4 years agoCorrect link dependency for glc subgroups library
Graeme Leese [Tue, 26 Nov 2019 10:21:20 +0000 (10:21 +0000)]
Correct link dependency for glc subgroups library

Because the 'subgroups' library depends on helper functions in the
'gl-common' library this needs to be added to the link command even
though it is its parent.

Components: OpenGL

Change-Id: I47f9c2c6491d241adcb241822225bf16273009cc

4 years agoFix amber index parser for archive dir
Graeme Leese [Wed, 27 Nov 2019 15:48:19 +0000 (15:48 +0000)]
Fix amber index parser for archive dir

The new amber index file parser wasn't taking account of the archive-dir
option.

Components: Vulkan
Affects: dEQP-VK.graphicsfuzz.*
         dEQP-VK.amber-example.*

Change-Id: Ib955adbdbb979f9910c6ad82f3ca7288c52ef91a

4 years agoFix a couple of typos with separate_layout clearing tests
Piers Daniell [Wed, 27 Nov 2019 22:58:45 +0000 (15:58 -0700)]
Fix a couple of typos with separate_layout clearing tests

The VkAttachmentReferenceStencilLayoutKHR structure was using the
wrong sType and VkAttachmentDescriptionStencilLayoutKHR was
using the wrong stencil-only initial layout.

Affects:

dEQP-VK.api.image_clearing.*.clear_depth_stencil_image.*

Components: Vulkan

VK-GL-CTS issue: 2130

Change-Id: I33141f69d03a788faf1618ab0f75f37dbbe62950

4 years agoCheck memory model support in volatile atomic tests
Samuel Iglesias Gonsálvez [Wed, 27 Nov 2019 10:06:54 +0000 (11:06 +0100)]
Check memory model support in volatile atomic tests

Volatile atomic tests were not checking vulkan memory model support.

Components: Vulkan
VK-GL-CTS issue: 2125

Affected tests:

   dEQP-VK.spirv_assembly.*atomic*

Change-Id: I67557361e2df9fc057ab38a1104f66512a532cf0
(cherry picked from commit 5ded1abda3169e29a6116b6e6b53ce0b9a6d5ab2)

4 years agoCheck memory model support in volatile atomic tests
Samuel Iglesias Gonsálvez [Wed, 27 Nov 2019 10:06:54 +0000 (11:06 +0100)]
Check memory model support in volatile atomic tests

Volatile atomic tests were not checking vulkan memory model support.

Components: Vulkan
VK-GL-CTS issue: 2125

Affected tests:

   dEQP-VK.spirv_assembly.*atomic*

Change-Id: I67557361e2df9fc057ab38a1104f66512a532cf0

4 years agoFix SPIR-V assembly tests with bad cfgs
Alan Baker [Mon, 25 Nov 2019 18:03:36 +0000 (13:03 -0500)]
Fix SPIR-V assembly tests with bad cfgs

* Update SPIR-V assembly tests to not declare a continue target as a
merge block

Component: Vulkan

VK-GL-CTS Issue: 2122

Affects:
dEQP-VK.spirv_assembly.instruction.graphics.switch_block_order.out_of_order*
dEQP-VK.spirv_assembly.instruction.graphics.opphi.out_of_order*
dEQP-VK.spirv_assembly.instruction.graphics.loop.multi_block_loop_construct*
dEQP-VK.spirv_assembly.instruction.graphics.loop.multi_block_continue_construct*
dEQP-VK.spirv_assembly.instruction.graphics.loop.continue*
dEQP-VK.spirv_assembly.instruction.graphics.loop.break*
dEQP-VK.spirv_assembly.instruction.graphics.loop.return*

Change-Id: I370331414aae27b53ed79b448b72581e2352c3d7

4 years agoFix device group rendering CTS crash
Ricardo Garcia [Wed, 25 Sep 2019 09:51:47 +0000 (11:51 +0200)]
Fix device group rendering CTS crash

dEQP-VK.device_group.* tests use --deqp-vk-device-group-id as the group
id to use and --deqp-vk-device-id as the index for the physical device
to use from that group when creating the logical device.

--deqp-vk-device-id is checked by the program, in general, to be valid
regarding the total number of physical devices in the system, but these
tests were not verifying it to be valid regarding the selected group.

In a machine with two devices in two separate groups (one device per
group), the program would accept the following options as valid, only to
segfault later:

  $ deqp-vk --deqp-vk-device-group-id=1 --deqp-vk-device-id=2 ...

  or

  $ deqp-vk --deqp-vk-device-group-id=2 --deqp-vk-device-id=2 ...

This commit checks the provided device id is valid for the selected
group.

Affected tests:
dEQP-VK.device_group.*

Components: Vulkan
VK-GL-CTS issue: 1553

Change-Id: Ied8f2fb73384303b793258cbaeaa7fad503a03c1

4 years agoAdd test checking depth/stencil resolve properties
Ricardo Garcia [Thu, 14 Nov 2019 09:47:45 +0000 (10:47 +0100)]
Add test checking depth/stencil resolve properties

Check VkPhysicalDeviceDepthStencilResolvePropertiesKHR values according
to the spec.

New tests:
dEQP-VK.renderpass2.depth_stencil_resolve.misc.properties

Components: Vulkan
VK-GL-CTS issue: 2089

Change-Id: I58bbf7a2d492a459cac35a213d10c144843bfd05

4 years agoTest stencil-only images in unused attachment clear tests
Ricardo Garcia [Thu, 14 Nov 2019 13:09:17 +0000 (14:09 +0100)]
Test stencil-only images in unused attachment clear tests

Affected and new tests:
dEQP-VK.renderpass*.unused_clear_attachments.*

Components: Vulkan
VK-GL-CTS issue: 2106

Change-Id: I2dfa2aafe1afe8c3a90a652c3c7f8c15aea48657

4 years agoTest VK_ATTACHMENT_UNUSED with depth/stencil resolve
Ricardo Garcia [Fri, 15 Nov 2019 12:53:14 +0000 (13:53 +0100)]
Test VK_ATTACHMENT_UNUSED with depth/stencil resolve

This commit adds new tests to use VK_ATTACHMENT_UNUSED as the attachment
number for the depth/stencil resolve attachment and later verifies the
image has not been touched.

New tests:
dEQP-VK.renderpass2.depth_stencil_resolve.*unused_resolve*

Components: Vulkan
VK-GL-CTS issue: 2107

Change-Id: Ie00cf61c813b0993c8313c62f8f67a53505602ca

4 years agoAdd coverage for stencil image sampling
Pawel Ksiezopolski [Tue, 19 Nov 2019 14:36:15 +0000 (15:36 +0100)]
Add coverage for stencil image sampling

Add tests for sampling using nearest filter from following
stencil image formats: VK_FORMAT_S8_UINT, VK_FORMAT_D24_UNORM_S8_UINT,
VK_FORMAT_D32_SFLOAT_S8_UINT.

New tests:
dEQP-VK.texture.filtering.2d.formats.s8_uint.nearest
dEQP-VK.texture.filtering.2d.formats.d24_unorm_s8_uint_stencil.nearest
dEQP-VK.texture.filtering.2d.formats.d32_sfloat_s8_uint_stencil.nearest
dEQP-VK.texture.filtering.unnormal.formats.s8_uint.nearest
dEQP-VK.texture.filtering.unnormal.formats.d24_unorm_s8_uint_stencil.nearest
dEQP-VK.texture.filtering.unnormal.formats.d32_sfloat_s8_uint_stencil.nearest
dEQP-VK.texture.filtering.cube.formats.s8_uint.nearest
dEQP-VK.texture.filtering.cube.formats.d24_unorm_s8_uint_stencil.nearest
dEQP-VK.texture.filtering.cube.formats.d32_sfloat_s8_uint_stencil.nearest
dEQP-VK.texture.filtering.2d_array.formats.s8_uint.s8_uint_nearest
dEQP-VK.texture.filtering.2d_array.formats.d24_unorm_s8_uint_stencil.d24_unorm_s8_uint_stencil_nearest
dEQP-VK.texture.filtering.2d_array.formats.d32_sfloat_s8_uint_stencil.d32_sfloat_s8_uint_stencil_nearest
dEQP-VK.texture.filtering.3d.formats.s8_uint.s8_uint_nearest
dEQP-VK.texture.filtering.3d.formats.d24_unorm_s8_uint_stencil.d24_unorm_s8_uint_stencil_nearest
dEQP-VK.texture.filtering.3d.formats.d32_sfloat_s8_uint_stencil.d32_sfloat_s8_uint_stencil_nearest

Components: Vulkan

VK-GL-CTS issue: 2048

Change-Id: I43f28e6ec4eee5c04e444c9cded1c0a15b3d5e4c

4 years agoAdd feature checks to subgroups tests
Matthew Netsch [Fri, 15 Nov 2019 17:29:30 +0000 (12:29 -0500)]
Add feature checks to subgroups tests

Components: Vulkan
VK-GL-CTS Issue: 2082

Affects:
dEQP-VK.subgroups.*

Change-Id: Ide9aeaf106dcf1efbc2cf90cd6b46a61586c4f72

4 years agoExtend rasterization testing, modify verification
Mike Byrne [Mon, 13 May 2019 14:15:02 +0000 (15:15 +0100)]
Extend rasterization testing, modify verification

dEQP-VK.rasterization.primitives.lines tests are extended to add tests
drawing vertical and horizontal lines.

Extend dEQP-VK.rasterization.primitives.lines and
dEQP-VK.rasterization.primitives_multisample_n_bit.lines to test at 258
resolution (a non power of two resolution).

The strict line verification coverage is modified to allow checking of
vertical and horizontal lines. Previously pixels in vertical or hori-
zontal lines were marked as partially covered and hence the test did
not detect whether the lines were rendered correctly or not.

Affects: dEQP-VK.rasterization.primitives*

Components: Vulkan

VK-GL-CTS Issue: 2062

Change-Id: Ifb76a44ba1ebdc97353bbd1a4b2552e415f2723d

4 years agoFix SFR swapchain test's implicit layout transitions
Piers Daniell [Wed, 13 Nov 2019 21:01:10 +0000 (14:01 -0700)]
Fix SFR swapchain test's implicit layout transitions

The Vulkan spec says that layout transitions done on peer bound
image memory requires the implementation to support
VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT and
VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT. The test never checked
for this capability and did implicit render pass layout
transitions anyway.

This CL updates the test to use an explicit layout transitions
on local aliases of the image when the implementation doesn't
support doing peer-to-peer transfer.

This CL also fixes a bug in the SFR rects definition in
VkBindImageMemoryDeviceGroupInfo to specify the correct number
of rectangles.

Affects:

dEQP-VK.wsi.win32.swapchain.render.*
dEQP-VK.wsi.win32.swapchain.modify.*

Components: Vulkan

VK-GL-CTS issue: 2094

Change-Id: I31b7099a6d5c4f11be83d6d14a5c02cca6408441

4 years agoApply the same relaxed precision fix for interface_blocks.* to basic_type.*
John Corbally [Thu, 7 Nov 2019 16:01:18 +0000 (16:01 +0000)]
Apply the same relaxed precision fix for interface_blocks.* to basic_type.*

Fix relaxed precision and no perspective dEQP tests

In the RelaxedPrecision case, change epsilon to 2e-3 for a 16-bit float.
In the NoPerspective case, change epsilon to 3e-7 for a 32-bit float.

The epsilon is now relative to the correct value.

Affects:
dEQP-VK.spirv_assembly.instruction.graphics.cross_stage.basic_type.*

Components: Vulkan

VK-GL-CTS issue: 1818

Change-Id: I615e65f2f6e4287dc41ff981f18972cf14bcb374

4 years agodEQP-VK.graphicsfuzz.discards-in-control-flow
Alastair Donaldson [Thu, 19 Sep 2019 11:29:42 +0000 (12:29 +0100)]
dEQP-VK.graphicsfuzz.discards-in-control-flow

Components: Vulkan

New Tests:

dEQP-VK.graphicsfuzz.discards-in-control-flow

Change-Id: I219e0660fc74ba972a5e949cb7cb209cedbfca92

4 years agoMerge vk-gl-cts/opengl-es-cts-3.2.6 into vk-gl-cts/master
Alexander Galazin [Fri, 22 Nov 2019 16:43:18 +0000 (17:43 +0100)]
Merge vk-gl-cts/opengl-es-cts-3.2.6 into vk-gl-cts/master

Change-Id: I7c7197ea5881a8bdf500d19b834270807ed30ce9

4 years agoAdd VK_AMD_buffer_marker tests
Maciej Jesionowski [Wed, 16 Oct 2019 11:15:01 +0000 (13:15 +0200)]
Add VK_AMD_buffer_marker tests

This extension adds a new operation to execute pipelined writes
of small marker values into a VkBuffer object.

Components: Vulkan
VK-GL-CTS issue: 2104

New tests:
dEQP-VK.api.buffer_marker.*

Change-Id: I190b0b81564fe58707b6eae40f4768482b01699f

4 years agoMerge vk-gl-cts/opengl-es-cts-3.2.5 into vk-gl-cts/opengl-es-cts-3.2.6
Alexander Galazin [Fri, 22 Nov 2019 13:41:59 +0000 (14:41 +0100)]
Merge vk-gl-cts/opengl-es-cts-3.2.5 into vk-gl-cts/opengl-es-cts-3.2.6

Change-Id: I069be78b5ad4a7299152d342c5cbfee6b7fc84f1

4 years agoMerge vk-gl-cts/vulkan-cts-1.1.6 into vk-gl-cts/master
Alexander Galazin [Fri, 22 Nov 2019 12:57:57 +0000 (13:57 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.6 into vk-gl-cts/master

Change-Id: Ia98b822ba5c6e36b25d80836911e0e14c8db9929

4 years agoRemove more tests due to GLSL ES 1.0/3.x differences
Alexander Galazin [Fri, 22 Nov 2019 12:49:30 +0000 (13:49 +0100)]
Remove more tests due to GLSL ES 1.0/3.x differences

Components: OpenGL

VK-GL-CTS issue: 2116

Removed tests:
dEQP-GLES2.functional.shaders.functions.invalid.attribute_argument_vertex
dEQP-GLES2.functional.shaders.functions.invalid.varying_argument_fragment
dEQP-GLES2.functional.shaders.functions.invalid.varying_argument_vertex

Change-Id: I628242739fade1310e36065da785b12be0912284

4 years agoMake asin and acos derived functions
Graeme Leese [Wed, 19 Jun 2019 17:21:34 +0000 (18:21 +0100)]
Make asin and acos derived functions

The spec says that the precisions of these functions are derived from
formulae, rather than the requirements that were here before. The atan
code is simplified but there should be no functional change.

Components: Vulkan
VK-GL-CTS issue: 1975
Affects: dEQP-VK.glsl.builtin.precision.asin.*
         dEQP-VK.glsl.builtin.precision.acos.*
         dEQP-VK.glsl.builtin.precision.atan.*

Change-Id: I2f8fbed340b409e07526b7fc806f21bbea7ad607

4 years agoAdd AMD FMASK and EQAA extension tests
Maciej Jesionowski [Wed, 16 Oct 2019 11:15:01 +0000 (13:15 +0200)]
Add AMD FMASK and EQAA extension tests

Adds tests for:
- VK_AMD_shader_fragment_mask
- VK_AMD_mixed_attachment_samples

VK_AMD_shader_fragment_mask extension provides efficient read access to the
fragment mask in compressed multisampled color surfaces. The fragment mask is
a lookup table that associates color samples with color fragment values.

VK_AMD_mixed_attachment_samples extension enables applications to use
multisampled rendering with a depth/stencil sample count that is larger than
the color sample count. Having a depth/stencil sample count larger than
the color sample count allows maintaining geometry and coverage information
at a higher sample rate than color information.

Components: Vulkan
VK-GL-CTS issue: 2104

Affected tests:
dEQP-VK.pipeline.multisample.sample_locations_ext.*

New tests:
dEQP-VK.pipeline.multisample.mixed_attachment_samples.*
dEQP-VK.pipeline.multisample.shader_fragment_mask.*

Change-Id: If4876eda00dcd2bac4f685252048c5afd58d3df5

4 years agoProtected memory stack tests
Boris Zanin [Tue, 30 Apr 2019 09:29:41 +0000 (11:29 +0200)]
Protected memory stack tests

Test use of stack in shaders in protected mode.

Add tests:
 * dEQP-VK.protected_memory.stack.stacksize_*

Components: Vulkan

VK-GL-CTS issue: 1075

Change-Id: I8b7439b7961f2f8539d94c3641c235a8e613b23e

4 years agoRemove verification of string bytes after null termination.
Slawomir Cygan [Thu, 21 Nov 2019 16:35:23 +0000 (17:35 +0100)]
Remove verification of string bytes after null termination.

Spec does not require to zero bytes after the null-termination of the string.

Components: Vulkan

VK-GL-CTS Issue: 2117

Affects: dEQP-VK.pipeline.executable_properties.*

Change-Id: Ia07b51f22379cea28ca73fe0a1594ef5230c27af

4 years agoFix cbuffer packing test
Piotr Byszewski [Tue, 19 Nov 2019 13:48:46 +0000 (14:48 +0100)]
Fix cbuffer packing test

Components: Vulkan

VK-GL-CTS issue: 2109

Affects:
dEQP-VK.spirv_assembly.instruction.compute.hlsl_cases.cbuffer_packing

Change-Id: Iebedd63004bceed7542a433da9be3d43a59fed2e

4 years agodEQP-VK.graphicsfuzz.uninit-element-cast-in-loop
Mika Väinölä [Tue, 17 Sep 2019 13:27:00 +0000 (16:27 +0300)]
dEQP-VK.graphicsfuzz.uninit-element-cast-in-loop

Components: Vulkan

New Tests:

dEQP-VK.graphicsfuzz.uninit-element-cast-in-loop

Change-Id: Ia61e5ad2bdbba41b13bd70b7ba560339c2898b8f

4 years agoMake qpLookupString lookup stricter
Boris Zanin [Tue, 15 Oct 2019 13:45:42 +0000 (15:45 +0200)]
Make qpLookupString lookup stricter

Do not allow the qpLookupString to use last element from the map
which must be reserved for map terminator.

Affects:
 * dEQP*

Components: framework

VK-GL-CTS issue: 2058

Change-Id: I29a493f4a81917137b62b94a3a281e8be53226a0

4 years agoKHR-GLES31.core.constant_expressions.* add T&G tests to the test tree
Emmanuel Tanguy [Fri, 25 Oct 2019 07:13:30 +0000 (08:13 +0100)]
KHR-GLES31.core.constant_expressions.* add T&G tests to the test tree

KHR-GLES31.core.shader_macros* add T&G tests to the test tree

Even if geometry and tessellation shaders are not surpported the tests
need to be added to the test tree for the tests to be run and be marked
as not supported if necessary.

Components: Vulkan

VK-GL-CTS Issue: 1859

Affects:
KHR-GLES31.core.constant_expressions.*
KHR-GLES31.core.shader_macros*

Change-Id: I38960349d7e52b546f8e02af3d5190a8f7225588

4 years agoAdd --deqp-archive-dir command line option
Thomas Spurden [Mon, 7 Oct 2019 13:59:01 +0000 (14:59 +0100)]
Add --deqp-archive-dir command line option

Allows running in a different working directory from the archive
directory.

Components: Framework
VK-GL-CTS Issue: 2105

Change-Id: I803d735e7ca304069c881db90c195474f62c98f5

4 years agoMerge vk-gl-cts/vulkan-cts-1.1.5 into vk-gl-cts/vulkan-cts-1.1.6
Alexander Galazin [Wed, 20 Nov 2019 08:57:05 +0000 (09:57 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.5 into vk-gl-cts/vulkan-cts-1.1.6

Change-Id: I6690ecfeeaf879819d23bb2a8a65c1713809e6a1

4 years agoAdd check comparing conformanceVersion to API version
Slawomir Cygan [Thu, 7 Nov 2019 16:27:16 +0000 (17:27 +0100)]
Add check comparing conformanceVersion to API version

Fail if reported conformanceVersion is older than API version.

Components: Vulkan

VK-GL-CTS Issue: 2091

Change-Id: If2a3337a11cc04c777ab28ea890eace994ced76e
Affects: dEQP-VK.api.driver_properties.conformance_version

4 years agoUse cmake find_package for ZLIB and PNG libraries
Thomas Spurden [Fri, 25 Oct 2019 10:50:34 +0000 (11:50 +0100)]
Use cmake find_package for ZLIB and PNG libraries

This is the standard cmake way to find packages.

Change-Id: I193290c413fe917ceaad47519ababfb435c363cb

4 years agoEnable storage image tests for more formats
Graeme Leese [Tue, 5 Nov 2019 12:56:45 +0000 (12:56 +0000)]
Enable storage image tests for more formats

On implementations that don't support the whole ExtendedFormat set, tests
that used any format from that set would return NotSupported. Changing
this to checking the actual format for storage image support allows us
still to run these tests on implementations where they're supported.

Component: Vulkan
VK-GL-CTS issue: 2090
Affects: dEQP-VK.image.mutable.*
         dEQP-VK.image.texel_view_compatible.*
         dEQP-VK.synchronization.*

Change-Id: I7de9c0bde1613d2cc1fc9f8490955c580a1939c1

4 years agoRemove 16-bit storage from float16 composite tests
Alan Baker [Mon, 26 Aug 2019 19:39:27 +0000 (15:39 -0400)]
Remove 16-bit storage from float16 composite tests

Remove the use of the 16-bit storage extension from float16 tests for
composite construct, insert and extract opcodes.

Component: Vulkan

VK-GL-CTS Issue: 1931

Affects:
dEQP-VK.spirv_assembly.instruction.*.float16.opcompositeconstruct*
dEQP-VK.spirv_assembly.instruction.*.float16.opcompositeinsert*
dEQP-VK.spirv_assembly.instruction.*.float16.opcompositeextract*

Change-Id: I8e17585148e7416e9bfbb3c500cffe27ae609599

4 years agoFix extension struct usage in descriptorset_random
Ricardo Garcia [Thu, 23 May 2019 12:18:39 +0000 (14:18 +0200)]
Fix extension struct usage in descriptorset_random

dEQP-VK.binding_model.descriptorset_random tests were using extension
structures when creating the descriptor set layout without checking
first if the extension was supported.

Affected tests:
dEQP-VK.binding_model.descriptorset_random.*

Components: Vulkan
VK-GL-CTS issue: 1652

Change-Id: Ifc165293cb846316be4493a0f499b63719b61ac2

4 years agoRe-align importing dedicated memory to spec
Juasheem Sultan [Fri, 1 Nov 2019 22:26:14 +0000 (15:26 -0700)]
Re-align importing dedicated memory to spec

Re-implemented importing dedicated memory for synchronization test to
better align with the Vulkan spec. The current solution
makes the assumption that not requiring memory to be dedicated upon
import implies that the memory is required to not be dedicated, and this
does not appear to align with the spec.

Affects:
    * dEQP-VK.synchronization.signal_order.*

Components: Vulkan

VK-GL-CTS issue: 2071

Change-Id: Ie1ada8e4966e044ff0d265dce65f4a0680b311aa

4 years agoAdd index file for amber tests
Jari Komppa [Mon, 4 Nov 2019 13:51:27 +0000 (15:51 +0200)]
Add index file for amber tests

This change adds index file for amber tests, making it possible to add
new amber tests without having to recompile the cts binary itself.
This change does not affect the tests themselves, just the way they are
discovered.

Affects: none

Components: Vulkan

VK-GL-CTS issue: 2086

Change-Id: Iba1d2b6cfe8816360fe520dec90621a71a4d2769

4 years agoExtend maps with raygeneration types
Boris Zanin [Tue, 15 Oct 2019 13:36:57 +0000 (15:36 +0200)]
Extend maps with raygeneration types

Make QP to recognize ray tracing types
 * RayGenShader
 * AnyHitShader
 * ClosestHitShader
 * MissShader
 * IntersectionShader
 * CallableShader

Affects:
 * dEQP-VK.binding_model.descriptorset_random.*

Components: framework, vulkan

VK-GL-CTS issue: 2058, 1995

Change-Id: Idaba22c1fe07e040dbdcc143db2c9a5e52f2ae01

4 years agoMerge vk-gl-cts/vulkan-cts-1.1.6 into vk-gl-cts/master
Alexander Galazin [Mon, 18 Nov 2019 13:44:32 +0000 (14:44 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.6 into vk-gl-cts/master

Change-Id: Id479d9ffe34b394d216d8961bdd06e76611fcf18

4 years agoMerge vk-gl-cts/vulkan-cts-1.1.5 into vk-gl-cts/vulkan-cts-1.1.6
Alexander Galazin [Mon, 18 Nov 2019 12:39:00 +0000 (13:39 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.5 into vk-gl-cts/vulkan-cts-1.1.6

Change-Id: I163fd1d3c3f3a600e3a89031d350eb2b08f81e4d

4 years agoAdd memory barrier to VK transform_feedback tests
Chris Mayer [Fri, 8 Nov 2019 12:28:16 +0000 (13:28 +0100)]
Add memory barrier to VK transform_feedback tests

The transform feedback tests are reading the transform
feedback buffers which was written by the GPU from the
host. Added a memory barrier to make sure the data is up to
date when it is accessed by the host.

Affects: dEQP-VK.transform_feedback.*
Components: Vulkan
VK-GL-CTS issue: 2096

Change-Id: Ibf9f86e9c1f02bdbfe822f62c44c30155ed8c555

4 years agoMerge vk-gl-cts/vulkan-cts-1.1.4 into vk-gl-cts/vulkan-cts-1.1.5
Alexander Galazin [Mon, 18 Nov 2019 11:28:51 +0000 (12:28 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.4 into vk-gl-cts/vulkan-cts-1.1.5

Change-Id: Idea5f48ee1eb6dfa2290d738cabff96c7e88daad

4 years agoMerge vk-gl-cts/vulkan-cts-1.1.3 into vk-gl-cts/vulkan-cts-1.1.4
Alexander Galazin [Mon, 18 Nov 2019 10:06:07 +0000 (11:06 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.3 into vk-gl-cts/vulkan-cts-1.1.4

Change-Id: I9adaa87d0bf5d06a12bfc2fcd4b8a30568cefb48

4 years agoAdd tests for VK_EXT_fragment_density_map
Pawel Ksiezopolski [Thu, 4 Jul 2019 08:11:38 +0000 (10:11 +0200)]
Add tests for VK_EXT_fragment_density_map

Extension VK_EXT_fragment_density_map may reduce the amount of fragment shader calls
by broadcasting result of a single FS call to multiple pixels of a color attachment.

New tests:
dEQP-VK.renderpass2.fragment_density_map.*

Components: Vulkan

VK-GL-CTS issue: 1681

Change-Id: I1109c39f6b4100f380b99cb35ed7281c120157b1

4 years agoFix gerrit rebasing conflict
Graeme Leese [Fri, 15 Nov 2019 11:33:35 +0000 (11:33 +0000)]
Fix gerrit rebasing conflict

The new tests for sparse input attachments used the old syntax for
requiring extensions, so change it to the new method.

Change-Id: Ia0be4bce779f55b8d44fdc07b12d969f0bc88e43

4 years agoTest sparse input attachments in VkSubpassDescription
Pawel Ksiezopolski [Fri, 25 Oct 2019 13:26:39 +0000 (15:26 +0200)]
Test sparse input attachments in VkSubpassDescription

According to specification VkSubpassDescription::pInputAttachments can
handle more input attachments than maxPerStageDescriptorInputAttachments
as long as the number of used input attachments is below this limit.
The rest must have VK_ATTACHMENT_UNUSED flag set in pInputAttachments.

New tests:
dEQP-VK.renderpass.suballocation.attachment_sparse_filling.*
dEQP-VK.renderpass2.suballocation.attachment_sparse_filling.*

Components: Vulkan

VK-GL-CTS issue: 2034

Change-Id: I10bec67b6fd8eb722d81bd8ee7344475b7b0511a

4 years agoAdd coverage for pipeline cache hit of active pipeline
Piers Daniell [Wed, 9 Oct 2019 16:12:47 +0000 (10:12 -0600)]
Add coverage for pipeline cache hit of active pipeline

This CL adds coverage to the dEQP-VK.pipeline.creation_feedback.*
tests for the case where the newly created pipeline has
a cache hit of another pipeline that was created previously,
and that other pipeline is still open and active.

Previously the test only had coverage for pipeline cache
hit of previous pipelines that were destroyed. This adds
coverage for both scenarios.

Affects:

dEQP-VK.pipeline.creation_feedback.*

Components: Vulkan

VK-GL-CTS issue: 2032

Change-Id: I7320d0bf075ea430eafbcf6c3b2518b985c024b8

4 years agoWhitelist Vulkan CTS 1.1.6.2
Alexander Galazin [Thu, 14 Nov 2019 16:28:11 +0000 (17:28 +0100)]
Whitelist Vulkan CTS 1.1.6.2

Affects: dEQP-VK.api.driver_properties.properties

Components: Vulkan

Change-Id: I88e01d7a9c754c8a11cb5f4505257fd338eabbf7

4 years agoDo not reset perf queries in multi submitted cmdbuffer
Lionel Landwerlin [Wed, 13 Nov 2019 22:05:31 +0000 (00:05 +0200)]
Do not reset perf queries in multi submitted cmdbuffer

Some implementations can require multiple passes to gather values for
their performance queries. It's important not to reset the query pool
in a batch that can be submitted multiple times, otherwise the queries
result risk to never become available.

Compontents: Vulkan
Affects: dEQP-VK.query_pool.performance_query.*

Change-Id: Ief00457fc0808a7c5ee7c0bf6aaf7de7f3042ca5

4 years agoUpdate VK_KHR_performance_query enumerate
Lionel Landwerlin [Tue, 15 Oct 2019 15:22:38 +0000 (18:22 +0300)]
Update VK_KHR_performance_query enumerate

Components: Vulkan
Affects: dEQP-VK.query_pool.performance_query.enumerate*

Change-Id: I443c1c9b7a1903063b27b77fc47cbb88259aa407
(cherry picked from commit bc519fecec3d1b27e0e5ee1a4947257260202eff)

4 years agoTests for VK_KHR_performance_query
Boris Zanin [Thu, 16 Aug 2018 08:55:01 +0000 (10:55 +0200)]
Tests for VK_KHR_performance_query

Add tests:
 * dEQP-VK.query_pool.performance_query.*

Components: Vulkan

VK-GL-CTS issue: 1302

Update VK_KHR_performance_query headers

Align CTS header for VK_KHR_performance_query with API MR 3268
Components: Vulkan

Affects:
 dEQP-VK.query_pool.performance_query.*
 dEQP-VK.api.info.get_physical_device_properties2.features
 dEQP-VK.api.info.get_physical_device_properties2.properties

VK-GL-CTS issue: 1947

Change-Id: I4d3c62dace2d259061f78d3014deb05bc4eac9d7
(cherry picked from commit 32556493fcafd676ec5d8fcfd3492a8c30fa0f97)
(cherry picked from commit 57bdbad1c7d6d527a30ae211164edab945818def)

4 years agoRemove tests that check non-zero values for reservedMustBeZero on all APIs
Alejandro Piñeiro [Fri, 11 Oct 2019 09:40:16 +0000 (11:40 +0200)]
Remove tests that check non-zero values for reservedMustBeZero on all APIs

Although initially it was agreed to keep them for the APIs that still
include that field as reserved, and only remove them when the API
defines the field (baseInstance), in the end it was agreed to remove
it completely, as it is testing an undefined behaviour.

Components: OpenGL, OpenGL ES

VK-GL-CTS issue: 2029

Affects:
KHR-GL40.draw_indirect.misc-reservedMustBeZero-arrays
KHR-GL40.draw_indirect.misc-reservedMustBeZero-elements
KHR-GL41.draw_indirect.misc-reservedMustBeZero-arrays
KHR-GL41.draw_indirect.misc-reservedMustBeZero-elements
KHR-GLES31.core.draw_indirect.misc-reservedMustBeZero-arrays
KHR-GLES31.core.draw_indirect.misc-reservedMustBeZero-elements

Change-Id: Iafe3e711107da818a392ebcdfe50379cf3790d17

4 years agoDon't check color outcome for tests that expect undefined behaviour
Alejandro Piñeiro [Thu, 26 Sep 2019 09:55:49 +0000 (11:55 +0200)]
Don't check color outcome for tests that expect undefined behaviour

draw_indirect.misc-reservedMustBeZero-elements and its arrays
equivalent for both OpenGL and OpenGL ES tests the following paragraph
from the spec:

  "Results are undefined if reservedMustBeZero is non-zero, but must
   not lead to GL interruption or termination."

So it should check if there is no errors or crashes. But right now
those tests are also expecting a given color, that doesn't make sense
if the expected behaviour by spec is undefined.

This seems a C&P error from other tests.

Components: OpenGL, OpenGL ES

VK-GL-CTS issue: 2023

Affects:
KHR-GL41.draw_indirect.misc-reservedMustBeZero-arrays
KHR-GL41.draw_indirect.misc-reservedMustBeZero-elements
KHR-GLES31.core.draw_indirect.misc-reservedMustBeZero-arrays
KHR-GLES31.core.draw_indirect.misc-reservedMustBeZero-elements

Change-Id: I3e9a5d04893eec9359b55ea6c5130e940c943cf2

4 years agoCheck renderpass2 support in image clearing tests
Ricardo Garcia [Tue, 12 Nov 2019 12:22:22 +0000 (13:22 +0100)]
Check renderpass2 support in image clearing tests

This commit makes sure VK_KHR_create_renderpass2 is supported before
using it in some image clearing tests.

Affected tests:
dEQP-VK.api.image_clearing.*separate_layouts*

Components: Vulkan
VK-GL-CTS issue: 2101

Change-Id: Ib1a44b44f771bb31fd1ef798d2727370d143a1fa

4 years agoMerge "Merge vk-gl-cts/vulkan-cts-1.1.6 into vk-gl-cts/master"
Alexander Galazin [Thu, 14 Nov 2019 11:50:30 +0000 (06:50 -0500)]
Merge "Merge vk-gl-cts/vulkan-cts-1.1.6 into vk-gl-cts/master"

4 years agoReplace imageAtomicExchange with imageAtomicCompSwap in vertex shader
Alejandro Piñeiro [Wed, 25 Sep 2019 08:15:36 +0000 (10:15 +0200)]
Replace imageAtomicExchange with imageAtomicCompSwap in vertex shader

Recently the test was changed in order to replace a imageAtomicAdd for
a imageAtomicExchange, as the test can't assume that the vertex shader
will be executed exactly one per vertex shader (see VK-GL-CTS issue
1910).

But imageAtomicExchange is also problematic because in some
architecture/driver, specially tile-based, the test can't also assume
that all the vertex shader executions would finish before
rasterization starts (so fragment shader execution). So when using
imageAtomicExchange could happend that a vertex shader execution would
override the value that the fragment shader already started to update.

Due this two restrictions, this patch changes the atomic operation on
the vertex shader to imageAtomicCompSwap, that sets the value of the
image at the vertex shader only if it is the initial value (so
zero). That would prevent any possible execution when the
rasterization already started to override the value of such image.

This patch also adds a comment on the code explaining the situation,
to avoid any possible future change to a simpler atomic operation by
mistake.

Components: OpenGL ES

VK-GL-CTS issue: 1997

Affects:
KHR-GLES31.core.shader_image_load_store.advanced-allStages-oneImage

Change-Id: Icbc34662f33839a1ced9f728cee45a1198e4b495

4 years agoMove DE_3RD_PARTY_CXX*FLAGS definition to the end
Alexander Galazin [Mon, 21 Oct 2019 07:39:11 +0000 (09:39 +0200)]
Move DE_3RD_PARTY_CXX*FLAGS definition to the end

Components: Framework

Change-Id: I67d550046e52eeb80467dc691f2c7c31423ebd8c

4 years agoMerge vk-gl-cts/vulkan-cts-1.1.6 into vk-gl-cts/master
Alexander Galazin [Thu, 14 Nov 2019 10:10:50 +0000 (11:10 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.6 into vk-gl-cts/master

Change-Id: I033c9220c75bfe0747e6d7b75c7eb00f4619c383

4 years agoFix check of api features
Lionel Landwerlin [Wed, 13 Nov 2019 16:04:22 +0000 (18:04 +0200)]
Fix check of api features

Fixes the cherry pick 282341d2cf5da0d9aaea1547958eb54c3f84ee0f.

Compontents: Vulkan
Affects: dEQP-VK.api.info.get_physical_device_properties2.features

Change-Id: I1d102716767c7bef0b872a5ebe1eb1d77bcd11b5

4 years agoMerge vk-gl-cts/vulkan-cts-1.1.5 into vk-gl-cts/vulkan-cts-1.1.6
Alexander Galazin [Wed, 13 Nov 2019 15:17:00 +0000 (16:17 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.5 into vk-gl-cts/vulkan-cts-1.1.6

Change-Id: I96bc5705c41b8ec87b7f14afc0cfa354b84cad4e

4 years agoMerge vk-gl-cts/opengl-es-cts-3.2.6 into vk-gl-cts/master
Alexander Galazin [Wed, 13 Nov 2019 11:36:30 +0000 (12:36 +0100)]
Merge vk-gl-cts/opengl-es-cts-3.2.6 into vk-gl-cts/master

Change-Id: Ie8ae10da8cc6b375e2d137d535d87cddc1170a49

4 years agodEQP-VK.graphicsfuzz.undefined-integer-in-function
Venni Ihanakangas [Wed, 2 Oct 2019 10:58:33 +0000 (13:58 +0300)]
dEQP-VK.graphicsfuzz.undefined-integer-in-function

Components: Vulkan

New Tests:

dEQP-VK.graphicsfuzz.undefined-integer-in-function

Change-Id: I3fa2b040bae1fa8b9c1db98488bfa95b170c1b59

4 years agodEQP-VK.graphicsfuzz.while-function-always-false
Venni Ihanakangas [Mon, 16 Sep 2019 09:33:07 +0000 (12:33 +0300)]
dEQP-VK.graphicsfuzz.while-function-always-false

Components: Vulkan

New Tests:

dEQP-VK.graphicsfuzz.while-function-always-false

Change-Id: Ia741567432e6edd9071b92ea3adb6222bbbc163f

4 years agoSplit descriptor set indexing render pass workload
Mike Byrne [Fri, 1 Nov 2019 16:50:17 +0000 (16:50 +0000)]
Split descriptor set indexing render pass workload

The render pass workload for descriptor set indexing tests which call
DynamicBuffersInstance::iterate should be split into multiple
submissions to prevent timeouts observed in
dEQP-VK.descriptor_indexing.uniform_buffer_dynamic_in_loop
test.

A number (16) of command buffers, each for a separate render area, are
created and submitted separately.

Affects: dEQP-VK.descriptor_indexing*

Components: Vulkan

VK-GL-CTS Issue: 2061

Change-Id: Ib232854a1224aadbd63eaad30e15f893eeb48f85

Investigation for Khronos issue;
https://gitlab.khronos.org/Tracker/vk-gl-cts/issues/2061

Change-Id: Ib232854a1224aadbd63eaad30e15f893eeb48f85

4 years agoReduce dEQP-VK.pipeline.render_to_image allocs to within platform limits
Tom Cooper [Mon, 28 Oct 2019 15:04:36 +0000 (15:04 +0000)]
Reduce dEQP-VK.pipeline.render_to_image allocs to within platform limits

These tests allocate an image of upto 25% of VkMemoryHeap heapSize and
should be limited to the value in
PlatformMemoryLimits.totalSystemMemory.

Component: Vulkan

VK-GL-CTS Issue: 2087

Affects:
dEQP-VK.pipeline.render_to_image*

Change-Id: Ie7d775cc55fdb54e448fc1c973d1e17925711e47

4 years agoFix geometry shader limits regarding available image units
Iago Toral Quiroga [Tue, 15 Oct 2019 11:16:21 +0000 (13:16 +0200)]
Fix geometry shader limits regarding available image units

The test case KHR-GLES31.core.geometry_shader.api.max_image_uniforms
would fail if the implementations reports:

MAX_GEOMETRY_TEXTURE_IMAGE_UNITS < MAX_GEOMETRY_IMAGE_UNIFORMS

However, the latter was introduced with ARB_shader_image_load_store,
whereas the former refers to samplers. From the GLES 3.2 spec:

   "Note that image units used for image variables are independent
    of the texture image units used for sampler variables; the number
    of units provided by the implementation may differ.  Textures
    are bound independently and separately to image and texture image
    units".

In fact the ARB_shader_image_load_store spec doesn't mention any of
the MAX_{*}_TEXTURE_IMAGE_UNITS at all, and it only talks about
MAX_IMAGE_UNITS and MAX_{*}_IMAGE_UNIFORMS.

Specifically, the test calls glBindImageTexture for as many
units as reported by MAX_GEOMETRY_IMAGE_UNIFORMS and the spec for
glBindImageTexture only requires that:

   "An INVALID_VALUE error is generated if unit is greater than
    or equal tothe value of MAX_IMAGE_UNITS, (...)"

So this changes the test to fail only if:

MAX_IMAGE_UNITS < MAX_GEOMETRY_IMAGE_UNIFORMS

VK-GL-CTS issue: 2057
Components: OpenGL ES
Affects: KHR-GLES31.core.geometry_shader.api.max_image_uniforms
Change-Id: I24566a1372c486512b64ce5d4b329925d859e0af

4 years agoAdd tests for variable init from global variable
Ari Suonpaa [Thu, 23 May 2019 17:34:08 +0000 (20:34 +0300)]
Add tests for variable init from global variable

The existing OpVariable init tests were using
only constants as the initialization value. Now
also global scope variables are tested. There
are two variations for these global variables:
one where it's initialized from a constant and
one where the value is written in the code before
using the global as an initialization source.

Affects:

dEQP-VK.spirv_assembly.*.variable_init.*

New tests:

dEQP-VK.spirv_assembly.*.variable_init.*_from_*

Components: Vulkan

VK-GL-CTS issue: 1773

Change-Id: If19f8c3ec5b5da5626c41991add15eaa3183d77f

4 years agoRevert "Remove NaNs from double compare tests"
Slawomir Cygan [Wed, 6 Nov 2019 17:53:20 +0000 (12:53 -0500)]
Revert "Remove NaNs from double compare tests"

This reverts commit fd434f47d86cd9f866c9e41adbb5d1d2b982a19b.

Affected tests:
dEQP-VK.spirv_assembly.instruction.*.64bit_compare.double.*

Components: Vulkan
VK-GL-CTS issue: 2066

Change-Id: Id0764ce159ca7edd96ec95864f62b928f3831718

4 years agodEQP-VK.graphicsfuzz.call-if-while-switch
Paul Thomson [Mon, 2 Sep 2019 16:51:12 +0000 (17:51 +0100)]
dEQP-VK.graphicsfuzz.call-if-while-switch

Components: Vulkan

New Tests:

dEQP-VK.graphicsfuzz.call-if-while-switch

Change-Id: Ia0806ffc67be9f9b6eacdab6747bd8217bed7b46

4 years agoRemove dead members from synchronization OperationContext
Slawomir Cygan [Mon, 28 Oct 2019 16:04:44 +0000 (17:04 +0100)]
Remove dead members from synchronization OperationContext

These are not used since the switch to `requireDeviceFunctionality`
test case API.

Components: Vulkan

Affects: dEQP-VK.synchronization.*

Change-Id: Ib6e0b817e5732e1be2e58b5b781a4f5af9d824a3

4 years agosubgroups: Use common boilerplate for shader code
Graeme Leese [Mon, 30 Sep 2019 16:47:22 +0000 (17:47 +0100)]
subgroups: Use common boilerplate for shader code

The code that set up the input values and wrote the output values to
appropriate locations was the same in all sets of subgroup tests and
duplicated into each of them, meaning any bugs had to be fixed multiple
times. Put all this common boilerplate into the TestUtils.

Components: Vulkan
Affects: dEQP-VK.subgroups.ballot_broadcast.*
         dEQP-VK.subgroups.arithmetic.*
         dEQP-VK.subgroups.clustered.*
         dEQP-VK.subgroups.quad.*

Change-Id: Ibde86869c33df4d057b9fd39705feeb9dff8c248