platform/upstream/VK-GL-CTS.git
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 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 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 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 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 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 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 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 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 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 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 descriptor_indexing.input_attachment subpass description
Tom Cooper [Sat, 26 Oct 2019 18:14:42 +0000 (19:14 +0100)]
Fix descriptor_indexing.input_attachment subpass description

The input attachments in the subpass description did not match the
descriptor set layout and shader. Unused attachment references have
been inserted to pad out the subpass description.

Components: Vulkan

VK-GL-CTS Issue: 2072

Affects: dEQP-VK.descriptor_indexing.input_attachment*

Change-Id: Iab36be779007828ddb25fe0600305a19be448804

5 years agoMerge vk-gl-cts/vulkan-cts-1.1.4 into vk-gl-cts/vulkan-cts-1.1.5
Alexander Galazin [Fri, 1 Nov 2019 14:05:53 +0000 (15:05 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.4 into vk-gl-cts/vulkan-cts-1.1.5

Change-Id: I74696bcb3e23aa3e8bde59ebea3137b262dd1394

5 years agoMerge vk-gl-cts/vulkan-cts-1.1.3 into vk-gl-cts/vulkan-cts-1.1.4
Alexander Galazin [Fri, 1 Nov 2019 11:16:47 +0000 (12:16 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.3 into vk-gl-cts/vulkan-cts-1.1.4

Change-Id: Ia5d78f0656fb1a2b2e4f989ba556edc3154856f7

5 years agoTests for VK_KHR_separate_depth_stencil_layouts
Piers Daniell [Tue, 30 Apr 2019 22:50:00 +0000 (16:50 -0600)]
Tests for VK_KHR_separate_depth_stencil_layouts

Test coverage for VK_KHR_separate_depth_stencil_layouts. See
https://gitlab.khronos.org/vulkan/vulkan/merge_requests/3172

This change modifies several test groups to use a single
image aspect bit for depth+stencil formats rather than the
VU required D+S aspects.

Where appropriate the tests are also modified to use
the new depth-only or stencil-only optimal layouts.

Affects:

dEQP-VK.api.copy_and_blit.*d16_unorm_s8_uint*
dEQP-VK.api.copy_and_blit.*d24_unorm_s8_uint*
dEQP-VK.api.copy_and_blit.*d32_sfloat_s8_uint*

dEQP-VK.api.image_clearing*d16_unorm_s8_uint*
dEQP-VK.api.image_clearing*d24_unorm_s8_uint*
dEQP-VK.api.image_clearing*d32_sfloat_s8_uint*

dEQP-VK.pipeline.stencil*d16_unorm_s8_uint*
dEQP-VK.pipeline.stencil*d24_unorm_s8_uint*
dEQP-VK.pipeline.stencil*d32_sfloat_s8_uint*

dEQP-VK.pipeline.depth*d16_unorm_s8_uint*
dEQP-VK.pipeline.depth*d24_unorm_s8_uint*
dEQP-VK.pipeline.depth*d32_sfloat_s8_uint*

dEQP-VK.*.depth_stencil_resolve*d16_unorm_s8_uint*
dEQP-VK.*.depth_stencil_resolve*d24_unorm_s8_uint*
dEQP-VK.*.depth_stencil_resolve*d32_sfloat_s8_uint*

Change-Id: I147f3736614cc897f1319c5aac5ed1fdba2d7b66
Compontents: Vulkan
(cherry picked from commit 39e17004ec33f0e546e6f391f933fb938e8c507d)

5 years agoWhitelist Vulkan CTS 1.1.6.1
Alexander Galazin [Fri, 25 Oct 2019 15:31:07 +0000 (17:31 +0200)]
Whitelist Vulkan CTS 1.1.6.1

Affects: dEQP-VK.api.driver_properties.properties

Components: Vulkan

Change-Id: Id79758cf4688ec414176433edae0914826f088df

5 years agoMerge vk-gl-cts/vulkan-cts-1.1.5 into vk-gl-cts/vulkan-cts-1.1.6
Alexander Galazin [Thu, 31 Oct 2019 10:46:59 +0000 (11:46 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.5 into vk-gl-cts/vulkan-cts-1.1.6

Change-Id: I592b6674f5e3a5a1f2a6d050dcc7263b0e5d682c

5 years agoAdd missing write to PointSize
Dae Kim [Wed, 30 Oct 2019 12:32:17 +0000 (12:32 +0000)]
Add missing write to PointSize

The primitive topology is POINT_LIST for test cases covering the vertex
stage, but the vertex shader in these cases isn't supplying a value for
PontSize.

Affects:

dEQP-VK.binding_model.buffer_device_address.*.vert

Components: Vulkan

VK-GL-CTS issue: 2080

Change-Id: Ibbbeb143bf957f9494b1df84e69bc4a01c891c6a

5 years agoFix missing image memory barrier in WSI display timing tests
John Corbally [Wed, 30 Oct 2019 11:14:45 +0000 (11:14 +0000)]
Fix missing image memory barrier in WSI display timing tests

The key part of the missing image memory barrier is changing
VK_IMAGE_LAYOUT_UNDEFINED to VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL
(for the first time).

Affects: dEQP-VK.wsi.android.display_timing.*

Components: Vulkan

VK-GL-CTS issue: 2079

Change-Id: I79e142c9c2a602e066a51e69e3aca9a1d2c0e650

5 years agoMerge vk-gl-cts/vulkan-cts-1.1.5 into vk-gl-cts/vulkan-cts-1.1.6
Alexander Galazin [Tue, 29 Oct 2019 13:13:41 +0000 (14:13 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.5 into vk-gl-cts/vulkan-cts-1.1.6

Change-Id: I34ada51e1b9c00280fb9f9d60463989e05f11953

5 years agoAdd timelineSempahore to mandatory ext features
Alexander Galazin [Mon, 28 Oct 2019 15:18:03 +0000 (16:18 +0100)]
Add timelineSempahore to mandatory ext features

https://gitlab.khronos.org/vulkan/vulkan/merge_requests/3421
clarifies that timelineSemaphore is mandatory for
implementations exposing VK_KHR_timeline_semaphore

This CL updates the test to align with the MR.

Components: Vulkan

Affects: dEQP-VK.api.info.device.mandatory_features

Change-Id: I12f9c9e6b05a77109cb0207b748cc9ccfa872d9b
(cherry picked from commit 33cc61974078e64d66e64ccf67ecc906f7a7f3fb)

5 years agoMerge vk-gl-cts/vulkan-cts-1.1.5 into vk-gl-cts/vulkan-cts-1.1.6
Alexander Galazin [Mon, 28 Oct 2019 18:51:20 +0000 (19:51 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.5 into vk-gl-cts/vulkan-cts-1.1.6

Change-Id: I3fd2e50726e016645834052ba95fa761f84c5686

5 years agoFix check in testMandatoryExtensions
Piotr Byszewski [Mon, 28 Oct 2019 15:09:36 +0000 (16:09 +0100)]
Fix check in testMandatoryExtensions

Affects:
dEQP-VK.api.info.android.mandatory_extensions

Change-Id: Iec3b405cb168daa7dd7fc2183963778ef7d6eb0b
Components: Vulkan

5 years agoRemove deprecated std::bind2nd() call
Pawel Ksiezopolski [Mon, 28 Oct 2019 14:03:51 +0000 (15:03 +0100)]
Remove deprecated std::bind2nd() call

std::bind2nd() was deprecated in C++11 and removed in C++17.

Affects:
dEQP-VK.descriptor_indexing.*

Components: Vulkan

VK-GL-CTS issue: 2074

Change-Id: I408a39ce9f1632515e3ff6bcfb95966e19aa4b22

5 years agoMerge vk-gl-cts/vulkan-cts-1.1.5 into vk-gl-cts/vulkan-cts-1.1.6
Alexander Galazin [Sun, 27 Oct 2019 18:28:49 +0000 (19:28 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.5 into vk-gl-cts/vulkan-cts-1.1.6

Change-Id: I21178b89019aad73d0b1862e10d5590361fcdcc8

5 years agoAdd scissor matching renderArea to descriptor indexing tests
Slawomir Cygan [Thu, 24 Oct 2019 15:45:28 +0000 (17:45 +0200)]
Add scissor matching renderArea to descriptor indexing tests

This fixes rendering outside of render area, what
is forbidden by spec.

This also fixes regression from 7b7ba4e0, where
looping the RenderPass caused workload execution time
to increase and trigger OS-specific device timeout.

Components: Vulkan

VK-GL-CTS Issue: 2069

Affects: dEQP-VK.descriptor_indexing.*

Change-Id: I40f665ff892d03004860583029eb393e09c1ae95

5 years agoMerge vk-gl-cts/vulkan-cts-1.1.5 into vk-gl-cts/vulkan-cts-1.1.6
Alexander Galazin [Fri, 25 Oct 2019 16:07:46 +0000 (18:07 +0200)]
Merge vk-gl-cts/vulkan-cts-1.1.5 into vk-gl-cts/vulkan-cts-1.1.6

Change-Id: I365220265de5dd5b239cca76b1ffcd0221404824

5 years agoMerge vk-gl-cts/vulkan-cts-1.1.4 into vk-gl-cts/vulkan-cts-1.1.5
Alexander Galazin [Fri, 25 Oct 2019 14:29:30 +0000 (16:29 +0200)]
Merge vk-gl-cts/vulkan-cts-1.1.4 into vk-gl-cts/vulkan-cts-1.1.5

Change-Id: Id21fae15bb0fad00a22e2d5798f958e6640804e2

5 years agoMerge vk-gl-cts/vulkan-cts-1.1.3 into vk-gl-cts/vulkan-cts-1.1.4
Alexander Galazin [Fri, 25 Oct 2019 11:58:22 +0000 (13:58 +0200)]
Merge vk-gl-cts/vulkan-cts-1.1.3 into vk-gl-cts/vulkan-cts-1.1.4

Change-Id: I58c329c990cacdb992c4c9be0b95cb65aa469a80

5 years agoCheck available functionality with context method
Piotr Byszewski [Tue, 15 Oct 2019 09:06:51 +0000 (11:06 +0200)]
Check available functionality with context method

This change adds Context::isDeviceFunctionalitySupported and
Context::isInstanceFunctionalitySupported methods that replace
isDeviceExtensionSupported/isInstanceExtensionSupported.

Components: Framework

VK-GL-CTS issue: 2005

Affects:
dEQP-VK.*

Change-Id: If796fc31fe6e769495cdf1ccefa4ae8192caf2b5

5 years agoRemove NaNs from double compare tests
Ricardo Garcia [Wed, 23 Oct 2019 16:11:52 +0000 (18:11 +0200)]
Remove NaNs from double compare tests

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

Components: Vulkan
VK-GL-CTS issue: 2066

Change-Id: I8d735bbffe2db5d2c8cfac5a616efd6010057408

5 years agoFix incorrect assumption for pipeline cache hit
Arkadiusz Sarwa [Wed, 23 Oct 2019 15:15:12 +0000 (17:15 +0200)]
Fix incorrect assumption for pipeline cache hit

The test incorrectly assumes that adding a pipeline creation flag bit
VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT to only one pipeline
still should cause a cache hit. Fixed the problem by adding the
VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT flag bit to both pipelines.

Affects:
dEQP-VK.pipeline.creation_feedback.compute_tests.compute_stage

Components: Vulkan
VK-GL-CTS issue: 2068

Change-Id: Idb963219a4e894eee6a0bb3b1fc20797d5b0323e

5 years agoMerge vk-gl-cts/vulkan-cts-1.1.5 into vk-gl-cts/vulkan-cts-1.1.6
Alexander Galazin [Tue, 22 Oct 2019 16:59:45 +0000 (18:59 +0200)]
Merge vk-gl-cts/vulkan-cts-1.1.5 into vk-gl-cts/vulkan-cts-1.1.6

Change-Id: Ic9de3ec00dbd38b2106f1c497059e40d4d361297

5 years agoFix waitSemaphoreCount value in signal ordering tests
Lionel Landwerlin [Wed, 16 Oct 2019 18:39:50 +0000 (21:39 +0300)]
Fix waitSemaphoreCount value in signal ordering tests

VK-GL-CTS Issue: 2059
Components: Vulkan
Affects: dEQP-VK.synchronization.signal_order.*timeline_semaphore.*

Change-Id: I25b86f1ae2b8e3650e061f9f2e345147c01419c6

5 years agoFix external memory import
Arkadiusz Sarwa [Thu, 17 Oct 2019 15:02:40 +0000 (17:02 +0200)]
Fix external memory import

Fix adds checking for flag
VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT
when external memory is being imported.

Affects:
dEQP-VK.synchronization.signal_order.*

Components: Vulkan
VK-GL-CTS issue: 2063

Change-Id: Iebc72ba0ed89ba3ca2b83a5b97d6b24ab7871edb

5 years agoFixes VS num instances assumption
Matthew Netsch [Mon, 21 Oct 2019 15:58:29 +0000 (11:58 -0400)]
Fixes VS num instances assumption

Components: Vulkan
VK-GL-CTS Issue: 2022

Affects:
dEQP-VK.spirv_assembly.instruction.*

Change-Id: Ibb0a17d8843c03cd1cf15d2c5af1f547481e8452

5 years agoFix LAYOUT_UNDEFINED transitions in descriptor_indexing tests
Jeff Bolz [Fri, 18 Oct 2019 17:05:46 +0000 (12:05 -0500)]
Fix LAYOUT_UNDEFINED transitions in descriptor_indexing tests

Commit 7b7ba4e0 caused the UNDEFINED->COLOR layout transition to be applied four
times, corrupting 3/4 of the image. Change the tests to do the layout transition
once, right after the framebuffer is created.

VK-GL-CTS Issue: 2064
Components: Vulkan
Affects: dEQP-VK.descriptor_indexing.*

Change-Id: Ie599ba76ba75af6fee1f4163bd96ea2bd6e4c145

5 years agoMerge vk-gl-cts/vulkan-cts-1.1.5 into vk-gl-cts/vulkan-cts-1.1.6
Alexander Galazin [Thu, 17 Oct 2019 18:31:35 +0000 (20:31 +0200)]
Merge vk-gl-cts/vulkan-cts-1.1.5 into vk-gl-cts/vulkan-cts-1.1.6

Change-Id: Ib3cab2c6bc13dee32caf2403b9dc52492f660082

5 years agoMerge vk-gl-cts/vulkan-cts-1.1.4 into vk-gl-cts/vulkan-cts-1.1.5
Alexander Galazin [Thu, 17 Oct 2019 17:58:35 +0000 (19:58 +0200)]
Merge vk-gl-cts/vulkan-cts-1.1.4 into vk-gl-cts/vulkan-cts-1.1.5

Change-Id: I2aa94658d6c8b6543fd9c4899f7da481ba1120a1

5 years agoMerge vk-gl-cts/vulkan-cts-1.1.3 into vk-gl-cts/vulkan-cts-1.1.4
Alexander Galazin [Thu, 17 Oct 2019 15:46:59 +0000 (17:46 +0200)]
Merge vk-gl-cts/vulkan-cts-1.1.3 into vk-gl-cts/vulkan-cts-1.1.4

Change-Id: I0954d6799d7b0e4a527cd0fbbdcf61237ca7e9a7

5 years agoRemove float16 derivatives tests
Alan Baker [Sun, 25 Aug 2019 17:57:24 +0000 (13:57 -0400)]
Remove float16 derivatives tests

SPIR-V restricts derivatives to 32-floating point scalars and vectors
only.

Component: Vulkan

VK-GL-CTS Issue: 1931

Affects:
dEQP-VK.spirv_assembly.instruction.graphics.float16.derivative_*.*

Change-Id: Icc5341e697b797045080cc55428dbc2c02d71def
(cherry picked from commit 436d6dd5e7a0c0811bf1b6059542d1cdbccb9566)

5 years agoMake texture aniso basic self tests less sensitive
Alex Walters [Mon, 14 Oct 2019 16:32:12 +0000 (17:32 +0100)]
Make texture aniso basic self tests less sensitive

The tests cases first check with a fuzzy diff that the images are more
or less the same.

The second diff then checks with a standard image comparison + tolerance
that the images are not identical.

Some of IMG's implementations produce a closer image than the test is
currently expecting - we need to lower the tolerance from 0.05 to 0.02
in order for the diff algorithm to detect that the images are
different 'enough'.

Though there is no actual spec requirement, it is 'generally going to
be the case', for any implementation, that the images will have some
amount of difference. It is potentially useful to still have this test
inplace to check againsty aniso being accidently disabled in the tested
implementation, rather than remove it altogether.

Affects:
dEQP-VK.texture.filtering_anisotropy.basic.*

Components: Vulkan

VK-GL-CTS Issue: 2047

Change-Id: Ia9148e12172ac1c4757f5007e57b3a2b3a3434eb

5 years agoRelaxes line rasterization tolerances
Matthew Netsch [Fri, 4 Oct 2019 18:57:40 +0000 (14:57 -0400)]
Relaxes line rasterization tolerances

Components: Framework
VK-GL-CTS Issue: 2033

Affects:
dEQP-VK.rasterization.*

Change-Id: Ib41552b1bb6d9aa2b25d0cbc6f02d51ce997f4e3

5 years agoRevert "Fixes VS num instances assumption"
Alexander Galazin [Thu, 17 Oct 2019 15:11:04 +0000 (11:11 -0400)]
Revert "Fixes VS num instances assumption"

This reverts commit bac8df251bb6103d7844bfeacbb29bf14011b7cb.

Change-Id: I60aa83d860b0b11ec7fc58fb97806635a1eebdca

5 years agoGenerate a non-zero exit code on test failure
Piers Daniell [Fri, 6 Sep 2019 18:27:31 +0000 (12:27 -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:

dEQP-VK.*

Components: Framework

VK-GL-CTS issue: 1982

Change-Id: I061d9a3b6703e1f23c48ce8a31e943744f915c92
(cherry picked from commit cfa72a70ef8371eab29da003dbb4d932adba189a)

5 years agoWhitelist VK_KHR_shader_subgroup_extended_types
Alexander Galazin [Thu, 17 Oct 2019 07:28:06 +0000 (09:28 +0200)]
Whitelist VK_KHR_shader_subgroup_extended_types

Components: Vulkan

Change-Id: Ie68fd0fd2606aac29ddf1e1a0c6668504a42a91a

5 years agoMerge vk-gl-cts/vulkan-cts-1.1.5 into vk-gl-cts/vulkan-cts-1.1.6
Alexander Galazin [Wed, 16 Oct 2019 13:00:14 +0000 (15:00 +0200)]
Merge vk-gl-cts/vulkan-cts-1.1.5 into vk-gl-cts/vulkan-cts-1.1.6

Change-Id: I3b96cb8cde6cbfc585d717a94f2164739887726f

5 years agoMerge vk-gl-cts/vulkan-cts-1.1.4 into vk-gl-cts/vulkan-cts-1.1.5
Alexander Galazin [Wed, 16 Oct 2019 11:44:00 +0000 (13:44 +0200)]
Merge vk-gl-cts/vulkan-cts-1.1.4 into vk-gl-cts/vulkan-cts-1.1.5

Change-Id: Iea7706e036758d8a648ef7938b3d08e21321a087

5 years agoUse the correct imageType for image support checks.
Bas Nieuwenhuizen [Fri, 11 Oct 2019 01:50:02 +0000 (03:50 +0200)]
Use the correct imageType for image support checks.

Components: Vulkan

Affects:
dEQP-VK.api.copy_and_blit.core.blit_image.all_formats.depth_stencil.{1d,3d}*

VK-GL-CTS issue: 2050

Change-Id: If73d9ff3e026ae4c32fd00fcc546734eebf9990e

5 years agoFix wrong wait stage mask
Joerg Wagner [Wed, 9 Oct 2019 18:53:46 +0000 (20:53 +0200)]
Fix wrong wait stage mask

The wait stage mask wasn't accounting for the
stages the readers actually operate in, hence
being effectless.
Track the union of the reader's stage masks
and use that to block execution on the semaphore.

Affects:
dEQP-VK.synchronization.signal_order.*

Components: Vulkan
VK-GL-CTS issue: 2044

Change-Id: Ia4d5c7bcb9dd6eec25e7245dc41754acccd1b995

5 years agoFix in shadercacheLoad
Panagiotis Apostolou [Thu, 10 Oct 2019 13:33:32 +0000 (15:33 +0200)]
Fix in shadercacheLoad

There is a slim chance that function shadercacheLoad() can pass a null
pointer into the std::string constructor, causing an exception. This can
happen in the case there is a mismatch between the calculated hash and
the one stored in the cache file.

This commit makes the code more robust, handling this case as a miss.

Components: Vulkan

VK-GL-CTS issue: 2052

Change-Id: I84a382dec51f487314304ec9057cefdff22920c3

5 years agoFixed mandatory caselist for parallel CTS run
Pawel Ksiezopolski [Tue, 15 Oct 2019 10:09:27 +0000 (12:09 +0200)]
Fixed mandatory caselist for parallel CTS run

Duplicate tests listed in deqp-fraction-mandatory-caselist-file
command line option are now skipped during test tree parsing,
when parallel CTS run is configured.

Components: Framework

VK-GL-CTS issue: 2053

Change-Id: I4ce2b6f33fd22c7ddc3aba0adbe9f7e761237e51

5 years agoRemove superfluous call to createCustomDevice
Alexander Galazin [Fri, 11 Oct 2019 10:39:11 +0000 (12:39 +0200)]
Remove superfluous call to createCustomDevice

Components: Vulkan

Change-Id: I7982ff1203b8eaeccfdd4b3a6b9bc3ab0b688721

5 years agoMerge vk-gl-cts/vulkan-cts-1.1.5 into vk-gl-cts/vulkan-cts-1.1.6
Alexander Galazin [Fri, 11 Oct 2019 09:58:07 +0000 (11:58 +0200)]
Merge vk-gl-cts/vulkan-cts-1.1.5 into vk-gl-cts/vulkan-cts-1.1.6

Change-Id: Ife971c6779bf35094b5a72a87abaa47a6901530b

5 years agoMerge vk-gl-cts/vulkan-cts-1.1.4 into vk-gl-cts/vulkan-cts-1.1.5
Alexander Galazin [Fri, 11 Oct 2019 09:52:19 +0000 (11:52 +0200)]
Merge vk-gl-cts/vulkan-cts-1.1.4 into vk-gl-cts/vulkan-cts-1.1.5

Change-Id: Ibb2b736bbe1c62688044aa21dc75205f6fa32f1c

5 years agoMerge vk-gl-cts/vulkan-cts-1.1.3 into vk-gl-cts/vulkan-cts-1.1.4
Alexander Galazin [Fri, 11 Oct 2019 09:50:16 +0000 (11:50 +0200)]
Merge vk-gl-cts/vulkan-cts-1.1.3 into vk-gl-cts/vulkan-cts-1.1.4

Change-Id: I79fdf16146cf659aeae510fb6fb2ad72f641ba3e

5 years agoMerge vk-gl-cts/vulkan-cts-1.1.2 into vk-gl-cts/vulkan-cts-1.1.3
Alexander Galazin [Fri, 11 Oct 2019 09:48:34 +0000 (11:48 +0200)]
Merge vk-gl-cts/vulkan-cts-1.1.2 into vk-gl-cts/vulkan-cts-1.1.3

Change-Id: Ia0d88c0631e427241c7795931a834d9baf43e5a3

5 years agoRelaxedPrecision tests for image extend operands
Graeme Leese [Mon, 7 Oct 2019 17:23:10 +0000 (18:23 +0100)]
RelaxedPrecision tests for image extend operands

Where the decoration makes sense (that is, for images with fewer than 16
bits per channel), add test that use the RelaxedPrecision decoration.

Components: Vulkan
VK-GL-CTS issue: 2038
New tests: dEQP-VK.image.extend_operands_spirv1p4.*_relaxed_*

Change-Id: I26e42a1d7bb807616ac50ce461dd37a55effd6f8
(cherry picked from commit aaf3d22fa09cc800af076dd2d47124dd1659bcd1)

5 years agoUConvert tests for signed int operand type
Boris Zanin [Fri, 13 Sep 2019 10:49:24 +0000 (12:49 +0200)]
UConvert tests for signed int operand type

OpUConvert where the operand type is a signed integer type.

Add tests:
 * dEQP-VK.spirv_assembly.instruction.compute.uconvert.int*
 * dEQP-VK.spirv_assembly.instruction.graphics.uconvert.int*

Affects:
 * dEQP-VK.spirv_assembly.instruction.compute.uconvert.*
 * dEQP-VK.spirv_assembly.instruction.compute.uconvert.*

Components: Vulkan

VK-GL-CTS issue: 1876

Change-Id: I0cee4fa43fab995ef20dcc30454d910ce371bb6e
(cherry picked from commit b0eda2776125d76c3ef3df394d6c224271f90f95)

5 years agoAdd tests for SignExtend with 'unsigned' types
Graeme Leese [Mon, 7 Oct 2019 12:43:19 +0000 (13:43 +0100)]
Add tests for SignExtend with 'unsigned' types

SPIR-V wants to allow 'unsigned' as meaning 'unknown-signedness', in
which case a signed access will have an unsigned SampledType and the
SignExtend operand. Add tests for this combination.

Components: Vulkan
VK-GL-CTS issue: 2038
Affects: dEQP-VK.image.extend_operands_spirv1p4.*

Change-Id: Icd2ea0f41fcaab36d03ea3cff919449db3bd469a
(cherry picked from commit b76f0d042c3587221daa77fef55b2642204a7ca3)

5 years agoSkip test with no display plane is available
Lionel Landwerlin [Fri, 27 Sep 2019 11:28:23 +0000 (14:28 +0300)]
Skip test with no display plane is available

Similarly to dEQP-VK.wsi.display.get_display_properties that skips
when no display available.

Components: Vulkan
Affects: dEQP-VK.wsi.display.get_display_plane_capabilities2

Change-Id: I46af976a9ba3e77e250504d0164dec6ac4cdd607
(cherry picked from commit fd915c2d0ec7b544b670192447223061fe4b6cf3)

5 years agoSkip test with no display plane is available
Lionel Landwerlin [Fri, 27 Sep 2019 11:28:23 +0000 (14:28 +0300)]
Skip test with no display plane is available

Similarly to dEQP-VK.wsi.display.get_display_properties that skips
when no display available.

Components: Vulkan
Affects: dEQP-VK.wsi.display.get_display_plane_capabilities2

Change-Id: I46af976a9ba3e77e250504d0164dec6ac4cdd607
(cherry picked from commit fd915c2d0ec7b544b670192447223061fe4b6cf3)

5 years agoFix subnormal floats in extended image usage tests
Ricardo Garcia [Thu, 3 Oct 2019 15:51:07 +0000 (17:51 +0200)]
Fix subnormal floats in extended image usage tests

When transcoding images in the extended image usage bit tests, Inf and
NaN were correctly taken into account and removed from input data.
However, subnormal floats were only being taken into account in the
32-bit float case.

The Vulkan spec regarding the precision and operation of SPIR-V
instructions mentions subnormal values may be flushed to zero in any
shader instruction, including the shader code to transcode images, and
have to be taken into account for half floats too.

Afffected tests:
dEQP-VK.image.extended_usage_bit.*

Components: Vulkan
VK-GL-CTS issue: 1747

Change-Id: I74a5d27b40f773f8d85e86a0a5d04eb0b4f16194
(cherry picked from commit 300b27043f8c93dcce4b3c788b33688ab59867af)

5 years agoRemove uses of strstr in vktSpvAsmFloatControlsTests.cpp
Boris Zanin [Fri, 4 Oct 2019 09:52:09 +0000 (11:52 +0200)]
Remove uses of strstr in vktSpvAsmFloatControlsTests.cpp

Add flags to detect usage of types and/or constants using bit
flags instead of expensive string lookup operations (like strstr).

Affects:
 * dEQP-VK.spirv_assembly.instruction.compute.float_controls.*
 * dEQP-VK.spirv_assembly.instruction.graphics.float_controls.*

Components: vulkan

VK-GL-CTS issue: 1927

Change-Id: I9635c81c056a8c8d83a832eddf2e371d1fcec885
(cherry picked from commit 4e2e58f4f53df69a295182a837f385ea8f8d1929)

5 years agoLimit the apiVersion of the instance within the CTS framework
Piers Daniell [Thu, 5 Sep 2019 18:19:24 +0000 (12:19 -0600)]
Limit the apiVersion of the instance within the CTS framework

This CL allows older CTS tests to run on implementations that
support a newer instance version not supported by this version
of CTS.

The dEQP-VK.api.version_check.version test was modified to
fail if this version of CTS is run on an implementation
it does not support. This is to stop old CTS from passing
on newer implementations, where the newer CTS should have
been used.

Affects:

dEQP-VK.api.version_check.version
dEQP-VK.*

Components: Vulkan

VK-GL-CTS issue: 1979

Change-Id: I97cd17b0aae9b3cba7c2e000d21636ad37c1fd80

5 years agoFix SEMAPHORE_TYPE_TIMELINE enum
Alexander Galazin [Fri, 11 Oct 2019 08:45:43 +0000 (10:45 +0200)]
Fix SEMAPHORE_TYPE_TIMELINE enum

Components: Vulkan

Change-Id: Id4949383bed578436e321c621a8ff495157da895

5 years agoMerge vk-gl-cts/vulkan-cts-1.1.3 into vk-gl-cts/vulkan-cts-1.1.4
Alexander Galazin [Fri, 11 Oct 2019 08:32:13 +0000 (10:32 +0200)]
Merge vk-gl-cts/vulkan-cts-1.1.3 into vk-gl-cts/vulkan-cts-1.1.4

Change-Id: I6597defb9bda8c8e6393033bf444befd4b9301fb

5 years agoFix relaxed precision and no perspective dEQP tests
John Corbally [Wed, 2 Oct 2019 16:31:55 +0000 (17:31 +0100)]
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.interface_blocks.*

Components: Vulkan

VK-GL-CTS issue: 1818

Change-Id: Id21382ce4b1cb58458ec3fb521630ab75e1910a3

5 years agoUpdate glslang
Alexander Galazin [Thu, 10 Oct 2019 15:31:00 +0000 (17:31 +0200)]
Update glslang

Affects: dEQP-VK.binding_model.buffer_device_address.*

Components: Vulkan

VK-GL-CTS issue: 2046

Change-Id: I60e3579df3bb3f81732fec0c46803a97fc00953a

5 years agoFixed flags used to select queue in dEQP-VK.synchronization.op.multi_queue
Peter Quayle [Wed, 9 Oct 2019 16:43:32 +0000 (17:43 +0100)]
Fixed flags used to select queue in dEQP-VK.synchronization.op.multi_queue

getDefaultQueue takes a VkQueueFlags argument and returns an appropriate VkQueue.
This function was being called with inappropriate arguments
causing the wrong queue to be returned. This could ultimately lead to work
being submitted to a queue which lacked support for it (e.g. graphics work
on a sparse queue).

Affects:

dEQP-VK.synchronization.op.multi_queue*

Components: Vulkan

VK-GL-CTS issue: 2043

Change-Id: I7887d1b4da8c916aed032433c6634c99b723f285
(cherry picked from commit 1bd32d3221dd65087de14ae061f798b78ac7ce0d)

5 years agoFix semaphore creation in smoke tests
Peter Quayle [Tue, 8 Oct 2019 16:35:04 +0000 (17:35 +0100)]
Fix semaphore creation in smoke tests

The test was calling createSemaphore instead of createSemaphoreType,
meaning that the semaphoreType value would incorrectly be interpreted
as a VkSemaphoreCreateFlags.

Additionally, the VkTimelineSemaphoreSubmitInfo struct was not being
added into the pNext chain of the submits. This probably went unnoticed
because the first bug could cause the test to use binary semaphores
even if semaphoreType was TIMELINE.

Affects:

dEQP-VK.synchronization.smoke.binary_semaphores
dEQP-VK.synchronization.smoke.timeline_semaphores

Components: Vulkan

VK-GL-CTS issue: 2041

Change-Id: I6936013b7f5a7e25f4af1fb4776d4d7273243d7a
(cherry picked from commit a8238c0aa023c121f79f09c6565875e235292f27)

5 years agoSplit descriptor set indexing render pass workload
Mike Byrne [Mon, 30 Sep 2019 13:57:05 +0000 (14:57 +0100)]
Split descriptor set indexing render pass workload

The render pass workload for descriptor set indexing tests should be
split into multiple submissions to prevent timeouts observed in tests
for the VK_DESCRIPTOR_TYPE_SAMPLER,
VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER,
VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT,
VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER and
VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE descriptor types.

Affects: dEQP-VK.descriptor_indexing*

Components: Vulkan

VK-GL-CTS Issue: 2026

Change-Id: I3b4876ec204fe1c1ebf174e06328653f0a5532d3

5 years agoWhitelist Vulkan CTS 1.1.6.0
Alexander Galazin [Thu, 10 Oct 2019 13:46:35 +0000 (15:46 +0200)]
Whitelist Vulkan CTS 1.1.6.0

Also removes withdrawn versions

Components: Vulkan

Affects: dEQP-VK.api.driver_properties.properties

Change-Id: Ic020380e4bf25083692d99f83da747ea23aabba8

5 years agoWhitelist VK_KHR_spirv_1_4
Alexander Galazin [Thu, 10 Oct 2019 13:37:50 +0000 (15:37 +0200)]
Whitelist VK_KHR_spirv_1_4

Compontents: Vulkan

Change-Id: I4f0a15b8dda5f556308f75b3f81aaade4d33db90

5 years agoFix indexing a push constant array member
Marcin Kańtoch [Fri, 13 Sep 2019 14:42:54 +0000 (16:42 +0200)]
Fix indexing a push constant array member

gl_VertexIndex is used to index a push constant array member.
Vulkan spec says: Any member of a push constant block that is
declared as an array must only be accessed with dynamically
uniform indices. But gl_VertexIndex is not dynamically uniform.

Changed the test to use dynamically uniform indexing.

Affects:
dEQP-VK.spirv_assembly.instruction.spirv1p4.entrypoint.vert_pc_entry_point

Components: Vulkan

VK-GL-CTS issue: 2000

Change-Id: I767aacfe0fde27e083f7b4a82f808cb99fb31d16
(cherry picked from commit 30b013b2ba0dfd5eabd3f7a0412135a1c8be8038)

5 years agoChange vertex buffer format to VK_FORMAT_R8G8B8A8_UNORM
Marcin Kańtoch [Wed, 11 Sep 2019 14:23:07 +0000 (16:23 +0200)]
Change vertex buffer format to VK_FORMAT_R8G8B8A8_UNORM

Change the vertex buffer format to VK_FORMAT_R8G8B8A8_UNORM
in spirv1p4.entrypoint* tests to make the tests pass, while
waiting on a fix in Amber.

Affects:
dEQP-VK.spirv_assembly.instruction.spirv1p4.entrypoint*

Components: Vulkan

VK-GL-CTS issue: 1992

Change-Id: Icb97b7328c2e1a61c1e1c20d7dda0449738619e1
(cherry picked from commit 6e78f208fc1eee97369363c846272e983a36c28e)

5 years agoFix undersized buffer use in extend operands tests
Reed Koser [Thu, 5 Sep 2019 20:48:11 +0000 (13:48 -0700)]
Fix undersized buffer use in extend operands tests

Prior to this patch, the dEQP.image.extend_operands_spirv1p4.* tests
used the size of the input image as the buffer size. Since the tests
reuse the buffer to read back the output image (which is potentially
much larger, due to the unconditional use of R32G32B32A32_*INT formats),
this resulted in corruption of device memory.

Affects: dEQP-VK.image.extend_operands_spirv1p4.*

Components: Vulkan

VK-GL-CTS issue: 1980

Change-Id: I8d07cd7d54cc305635b9674074a7eafa52bf6dfa
(cherry picked from commit b38bedda7faf25272716ee234812d432637972e3)

5 years agoRemove input blocks from SPIR-V 1.4 compute shaders
Alan Baker [Tue, 3 Sep 2019 15:01:57 +0000 (11:01 -0400)]
Remove input blocks from SPIR-V 1.4 compute shaders

Split input blocks in compute shaders into flat variables.

Component: Vulkan

VK-GL-CTS Issue: 1967

Affects:
dEQP-VK.spirv_assembly.instruction.spirv1p4.opptrequal.ssbo_comparisons_equal
dEQP-VK.spirv_assembly.instruction.spirv1p4.opptrequal.wg_comparisons_equal
dEQP-VK.spirv_assembly.instruction.spirv1p4.opptrnotequal.ssbo_comparisons_not_equal
dEQP-VK.spirv_assembly.instruction.spirv1p4.opptrnotequal.wg_comparisons_not_equal
dEQP-VK.spirv_assembly.instruction.spirv1p4.opptrdiff.ssbo_comparisons_diff
dEQP-VK.spirv_assembly.instruction.spirv1p4.opptrdiff.wg_comparisons_diff

Change-Id: I228583843148e36a33d7f469cb90f628eb432c37
(cherry picked from commit b976f5430158a62e03fe46500e25133e7a6113f2)

5 years agoFix check support for (Sign|Zero)Extend tests
Piotr Byszewski [Mon, 2 Sep 2019 10:59:03 +0000 (12:59 +0200)]
Fix check support for (Sign|Zero)Extend tests

Components: Vulkan

Affects:
dEQP-VK.image.extend_operands_spirv1p4.*

Change-Id: I5c546afcfdc533957fbb7d78a0a98f8845a56a1b
(cherry picked from commit aa2226758650dee8239d0b36035c41b65ec1382d)

5 years agoTest SPIR-V 1.4 SignExtend and ZeroExtend
Piotr Byszewski [Wed, 12 Jun 2019 14:53:49 +0000 (15:53 +0100)]
Test SPIR-V 1.4 SignExtend and ZeroExtend

SPIR-V 1.4 has 2 new extra image operands (SignExtend and ZeroExtend)
indicating if the resulting texel of the operation should be sign
or zero extended.

Components: Vulkan

Affects:
dEQP-VK.image.extend_operands_spirv1p4.*

Change-Id: Ie0ca0125d4f536c318428fc95ebaf000c3f7136f
(cherry picked from commit 6c4f066ef6aac566e8ec400e4343de86a089143c)

5 years agoAllow tests to be executed with SPIR-V 1.4
Victor Lomuller [Wed, 12 Jun 2019 14:53:49 +0000 (15:53 +0100)]
Allow tests to be executed with SPIR-V 1.4

Components: Framework

Change-Id: I3135d7b0d96234bec53bbc4ec0185f4c816a5dcf
(cherry picked from commit 9b4c4d1645edb2e09d8357fa62b810df5ba3b9ec)

5 years agoAllow optimization for SPIR-V 1.4
Boris Zanin [Mon, 27 May 2019 11:07:02 +0000 (13:07 +0200)]
Allow optimization for SPIR-V 1.4

This commit updates function optimizeCompiledBinary with
missing optimization reciepe for SPIR-V 1.4.

Also makes supports_VK_KHR_spirv_1_4 as an optional argument of
SpirVAsmBuildOptions constructor, though defaulting it to disable
support of SPIR-V 1.4.

The change affects if run with optimization command line arguments,
i.e. --deqp-optimize-spirv=enable and --deqp-optimization-recipe=!0

Affects:
 * dEQP-VK.spirv_assembly.instruction.spirv1p4.*

Components: Framework

VK-GL-CTS issue: 1636

Change-Id: If0af53ea37521e686ca7d422cab9589cc0460dc5
(cherry picked from commit b0d7da5045419b469a45c766194da1f0e026e824)

5 years agoHandle spir-v 1.4 in SpvAsmUtils
Piotr Byszewski [Mon, 22 Jul 2019 09:21:01 +0000 (11:21 +0200)]
Handle spir-v 1.4 in SpvAsmUtils

Components: Vulkan

Affects:
dEQP-VK.spirv_assembly.*

Change-Id: Ib960d1c4786c44c5c30ef9b4080e315681cb80aa
(cherry picked from commit 72cf3abff6b587712e27f38bdabf4927900c51b1)

5 years agoExtra tests for SPIR-V 1.4
Alan Baker [Thu, 20 Jun 2019 17:46:57 +0000 (13:46 -0400)]
Extra tests for SPIR-V 1.4

New tests
 * OpPtrEqual and OpPtrNotEqual comparisons against different buffers
 * NonWritable on a function variable in a non-entrypoint function
 * Select between arrays
 * Select between nested arrays and structs
 * Select between pointers
 * Selet between vectors with vector condition

Components: Vulkan

Affects:
dEQP-VK.spirv_assembly.instruction.spirv1p4.nonwritable.*
dEQP-VK.spirv_assembly.instruction.spirv1p4.opptrequal.*
dEQP-VK.spirv_assembly.instruction.spirv1p4.opptrnotequal.*
dEQP-VK.spirv_assembly.instruction.spirv1p4.opselect.*

VK-GL-CTS issue: 1855

Change-Id: Ie49d7a914cd7346d7da83d02f515a2772ae5bf94
(cherry picked from commit fbd39ed4f897735c22bb3472c18eed7756a476bb)

5 years agoAdd more SPIR-V 1.4 tests based on Amber
David Neto [Wed, 27 Mar 2019 00:45:28 +0000 (20:45 -0400)]
Add more SPIR-V 1.4 tests based on Amber

Tests:
- New instructions: OpPtrDiff, OpPtrEqual, OpPtrNotEqual,
  OpDecorateString
- New decorations: UniformId, NonWritable, UserSemantic, CounterBuffer,
  NoSignedWrap, NoUnsignedWrap
- OpCopyMemory can have two sets of memory access operands
- OpEntryPoint lists all module-scope variables
- New loop controls
- New cases for OpSelect
- UConvert in OpSpecConstantOp for Shader modules

Local fixes:
- Update Amber to newer version that handles push constants.
  With MSVC, force Amber to use shared C Runtime DLL
- Modified the entrypoint tessellation control and evaluation tests to
  set TessLevelInner and TessLevelOuter.
- Modified the tessellation control tests to fix typos and apply Patch
  decoration.
- Artificially make all values within a buffer the same type, to
  accommodate a new Amber limitation.
  See https://github.com/google/amber/issues/497
- Loop control tests:
  - Reduce iteration count to match sample data, adjust loop control
  values
  - Make loop control match test file name
  - Use int data instead of float, so we can read int iteration count
    from storage.
  - Fix comment on all loop control tests
- Use StorageBuffer/Block instead of Uniform/BufferBlock
- Modify to use binding 0:
   comp_pc_entry_point.amber,
   wg_comparisons_equal.amber
   wg_comparisons_not_equal.amber
- Fix typo for TessLevelOuter builtin
- Fix method name on call to vkt::Context::getVariablePointersFeatures
- Fix whitespace issues in C++ code
- variable_pointers_vars_ssbo_2_diff.amber only needs
  VariablePointersStorageBuffer
- Fetch newer amber, fixing invalid requirement for fragment shader
  https://github.com/google/amber/issues/553

Extend vkt::AmberTestCase so it can track instance extensions, device
extensions, and feature bits.

Components: Vulkan

Affects:
dEQP-VK.spirv_assembly.instruction.spirv1p4.entrypoint.*
dEQP-VK.spirv_assembly.instruction.spirv1p4.hlsl_functionality1.*
dEQP-VK.spirv_assembly.instruction.spirv1p4.loop_control.*
dEQP-VK.spirv_assembly.instruction.spirv1p4.nonwritable.*
dEQP-VK.spirv_assembly.instruction.spirv1p4.opcopymemory.*
dEQP-VK.spirv_assembly.instruction.spirv1p4.opptrdiff.*
dEQP-VK.spirv_assembly.instruction.spirv1p4.opptrequal.*
dEQP-VK.spirv_assembly.instruction.spirv1p4.opptrnotequal.*
dEQP-VK.spirv_assembly.instruction.spirv1p4.opselect.*
dEQP-VK.spirv_assembly.instruction.spirv1p4.uconvert.*
dEQP-VK.spirv_assembly.instruction.spirv1p4.uniformid.*
dEQP-VK.spirv_assembly.instruction.spirv1p4.wrap.*

VK-GL-CTS issue: 1705

Change-Id: I1e0adde2258a4c5a313609f7f1d7b2b51be1a373
(cherry picked from commit 94804dca849178b5e222d9d9d53a2a54fd21e8a3)

5 years agoFix same_struct_two_ids amber test
Boris Zanin [Wed, 12 Jun 2019 10:29:26 +0000 (12:29 +0200)]
Fix same_struct_two_ids amber test

Due to 1.4 has removed some features and the test mentioned below
requires SPIR-V 1.4 the test fails with InternalError reporting:

    2nd operand of Decorate: operand BufferBlock(3) requires SPIR-V
    version 1.3 or earlier.

Replace BufferBlock with Block and use StorageBuffer instead of Uniform.

Updates:
 * dEQP-VK.spirv_assembly.instruction.spirv1p4.opcopylogical.same_struct_two_ids

Components: Framework

VK-GL-CTS issue: 1817

Change-Id: Ia80923fc6f717729712017904773c015c17168ec
(cherry picked from commit facb3d6815f678c7d25d25919fca7e33cea931df)

5 years agoAdd VK_KHR_spirv_1_4 OpCopyLogical tests
David Neto [Sat, 2 Mar 2019 18:03:38 +0000 (13:03 -0500)]
Add VK_KHR_spirv_1_4 OpCopyLogical tests

Requires a version of Amber that knows how to check a recipe's instance and
device extensions.

Components: Vulkan

Affects:
dEQP-VK.spirv_assembly.instruction.spirv1p4.opcopylogical.*

VK-GL-CTS issue: 1637

Change-Id: I19e91470e66a10b6809654aae81a507dc15ac948
(cherry picked from commit 4d7ed7d89ba8214eab1d740bbcf8a219d6a13b91)

5 years agoVK_KHR_spirv_1_4 enables SPIR-V 1.4 modules
David Neto [Fri, 29 Mar 2019 15:23:49 +0000 (11:23 -0400)]
VK_KHR_spirv_1_4 enables SPIR-V 1.4 modules

In Vulkan 1.1, VK_KHR_spirv_1_4 enables SPIR-V 1.4 modules for assembly
and validation.  This is true even if the underlying Vulkan version doesn't
natively support SPIR-V 1.4.

Deprecates vk::getMaxSpirvVersionForGlsl and vk::getMaxSpirvVersionForAsm
in favour of unified vk::getMaxSpirvVersionForVulkan.

Components: Vulkan

VK-GL-CTS issue: 1712, 1711

Change-Id: I850ab4ec3a0d88485e838d4263d751b2d6e18c08
(cherry picked from commit a7db98c20a6dd4e2366e4fc3ddd368a1fa08b98e)
(cherry picked from commit 0d79d48c0d39989393062af77b475771bba97f80)