platform/upstream/VK-GL-CTS.git
2 years agoUse [u]int64_t in the framework
Alexander Galazin [Fri, 9 Jul 2021 11:23:57 +0000 (13:23 +0200)]
Use [u]int64_t in the framework

This change replaces deUint64/deInt64 with uint64_t/int64_t
in the framework files

Components: Vulkan

Affects: dEQP-VK.*

VK-GL-CTS issue: 2963

Change-Id: I76b24fbfadbd3fb31c9a20b172c021e0305290c2

2 years agoExtend image tests to support formats with no formats
Graeme Leese [Tue, 6 Jul 2021 13:12:43 +0000 (14:12 +0100)]
Extend image tests to support formats with no formats

Unless the test actually needs a SPIR-V format token, allow testing of
Vulkan formats for which there is no corresponding SPIR-V token. At the
moment this functionality is not used, but tests will soon be added that
exercise it.

Components: Framework, Vulkan
Affects (trivially): dEQP-VK.image.*

Change-Id: I11e16b6951ca40444131fa1e8d5e7bce6b075f85

2 years agoDefine a framework function for getting SPIR-V format tokens
Graeme Leese [Tue, 6 Jul 2021 14:28:17 +0000 (15:28 +0100)]
Define a framework function for getting SPIR-V format tokens

These are used in a couple of different tests, so it doesn't make sense
to define the format tokens in two places.

Components: Framework, Vulkan
Affects (trivially): dEQP-VK.image.*

Change-Id: Icffd8ac4b0d78e5dab076780e0221af3f358d74c

2 years agoTest blitting from compressed formats
Piotr Byszewski [Thu, 11 Mar 2021 14:00:38 +0000 (15:00 +0100)]
Test blitting from compressed formats

This change extends existing tests to also test blitting of BC*,
ETC and EAC compressed formats onto all compatible uncompressed
formats.

Functionality from PipelineImageUtil is reused in blit tests
to generate random compressed data that is also stored in
uncompressed version. Compressed data is used to do the blit
on GPU while uncompressed version is used for verification on CPU.

VK-GL-CTS issue: 2366

Components: Vulkan

Affects:
dEQP-VK.api.copy_and_blit.*

Change-Id: Ifab885dc09b2d663d95b49e25458873c2eb0b0c4

2 years agoAdd test of vkCmdCopyImage with both layers and mipmaps
Samuel Iglesias Gonsálvez [Wed, 19 May 2021 15:33:01 +0000 (17:33 +0200)]
Add test of vkCmdCopyImage with both layers and mipmaps

Components: Vulkan
VK-GL-CTS issue: 2983

Added:

   dEQP-VK.api.copy_and_blit.*.image_to_image.array.array_to_array_whole_mipmap*

Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
Change-Id: I1f949e6065a125ffc2703abc2667e04e7df465a9

2 years agoTest dynamic topology with tessellation shaders
Ricardo Garcia [Fri, 2 Jul 2021 10:56:47 +0000 (12:56 +0200)]
Test dynamic topology with tessellation shaders

Add new test variants to the extended dynamic state tests to check using
dynamic topology with tessellation shaders works as expected.

New tests:
dEQP-VK.pipeline.extended_dynamic_state.*topology_patch*

Affected tests:
dEQP-VK.pipeline.extended_dynamic_state.*

Components: Vulkan
VK-GL-CTS issue: 2965

Change-Id: I40a3928e986b83c5a22c3d36431b5d272aa8617e

2 years agoRemove extended image format capabilities from more tests
Graeme Leese [Tue, 6 Jul 2021 14:20:18 +0000 (15:20 +0100)]
Remove extended image format capabilities from more tests

The extended storage formats capability is mandatory, so simplify the
code by using ti all the time, instead of trying to determine when it is
required.

Also, change the method of determining when 64 bit support is required
to be consistent with the image.extend_operands_spirv1p4 tests.

Components: Framework, Vulkan
Affects: dEQP-VK.image.mismatched_write_op.*

Change-Id: Ia9cc474977e71a8682c886f2f6cd852be38f06c4

2 years agoSimplify image extend operand tests for extended formats
Graeme Leese [Tue, 6 Jul 2021 13:59:13 +0000 (14:59 +0100)]
Simplify image extend operand tests for extended formats

It is always valid to use the StorageImageExtendedFormats capability in
Vulkan, so simplify the tests by using it unconditionally, rather than
tracking when it would need to be turned on.

Components: Vulkan
Affects: dEQP-VK.image.extend_operands_spirv1p4.*

Change-Id: I5f0cc3c89f392965f72b07a79846000abb4bc5b1

2 years agoUse [u]int16_t in the framework
Alexander Galazin [Fri, 9 Jul 2021 11:21:21 +0000 (13:21 +0200)]
Use [u]int16_t in the framework

This change replaces deUint16/deInt16 with uint16_t/int16_t
in the framework files

Components: Vulkan

Affects: dEQP-VK.*

VK-GL-CTS issue: 2963

Change-Id: I96948614f5cab64fff5fd65a7879660dfb7365d6

2 years agoUse [u]int8_t in the framework
Alexander Galazin [Fri, 9 Jul 2021 11:17:38 +0000 (13:17 +0200)]
Use [u]int8_t in the framework

This change replaces deUint8/deInt8 with uint8_t/int8_t
in the framework files

Components: Vulkan

Affects: dEQP-VK.*

VK-GL-CTS issue: 2963

Change-Id: I5cadb68a7f34f054bdb76559ad393234c7d8c22a

2 years agoUse [u]int32_t in the framework
Alexander Galazin [Thu, 8 Jul 2021 07:39:25 +0000 (09:39 +0200)]
Use [u]int32_t in the framework

This change replaces deUint32/deInt32 with uint32_t/int32_t
in the framework files

Components: Vulkan

Affects: dEQP-VK.*

VK-GL-CTS issue: 2963

Change-Id: I05be456ba7f1e6bf33990b971e56e21d2123b8e8

2 years agoRequire to enable implicit layers
Alexander Galazin [Thu, 8 Jul 2021 08:36:16 +0000 (10:36 +0200)]
Require to enable implicit layers

Components: Vulkan

Affects: none

Vulkan issue: 2517

Change-Id: I11beee411ecb11c0d9ee140103a80c4ba7a39966

2 years agoFix FreeBSD build of VK_EXT_physical_device_drm tests
James Jones [Wed, 7 Jul 2021 20:59:12 +0000 (13:59 -0700)]
Fix FreeBSD build of VK_EXT_physical_device_drm tests

Linux defines the major() and minor() macros in
the sys/sysmacros.h header, but FreeBSD does not
have this header and instead defines them in
sys/types.h.

Components: Vulkan
Affects: dEQP-VK.api.device_drm_properties.*

Change-Id: I0bed149d24241e152437f530f5eb137738c46122

2 years agoMerge vk-gl-cts/vulkan-cts-1.2.7 into vk-gl-cts/master
Alexander Galazin [Fri, 9 Jul 2021 09:47:09 +0000 (11:47 +0200)]
Merge vk-gl-cts/vulkan-cts-1.2.7 into vk-gl-cts/master

Change-Id: I82b3571c78ae0430172528a3642a78869b1272a3

2 years agoDeprecation notice for Vulkan CTS 1.2.3.x
Alexander Galazin [Thu, 8 Jul 2021 06:55:33 +0000 (08:55 +0200)]
Deprecation notice for Vulkan CTS 1.2.3.x

Components: Vulkan

Change-Id: Ic85d29ecd9da9b8bd10cb8b79b0b936d1b01e189

2 years agoAdded tests to check ignored Vk*PipelineCreateInfo members
Samuel Iglesias Gonsálvez [Thu, 24 Jun 2021 13:41:41 +0000 (15:41 +0200)]
Added tests to check ignored Vk*PipelineCreateInfo members

Components: Vulkan
VK-GL-CTS issue: 2980

Added tests:

   dEQP-VK.api.pipeline.pipeline_invalid_pointers_unused_structs.*

Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
Change-Id: Ib36f9557a693f5481b73803a079a0d6acd7fb8fe

2 years agoAccept per-sample shading in multiple interpolation tests
Ricardo Garcia [Thu, 8 Jul 2021 14:06:22 +0000 (16:06 +0200)]
Accept per-sample shading in multiple interpolation tests

When using the sample decoration in one of the fragment shader input
variables, some implementations may switch to per-sample shading mode,
producing results which are different from the per-fragment shading
results but which are allowed by the spec.

This commit enables sample shading with rate 1.0 as an alternative valid
result for multiple interpolation tests in implementations supporting
the sampleRateShading feature.

Affected tests:
dEQP-VK.draw.multiple_interpolation.*

Components: Vulkan
VK-GL-CTS issue: 2993

Change-Id: Id5d33df38b8c7179a0686b615578871aea8d8f22

2 years agoSingle color buffer in multiple interpolation tests
Ricardo Garcia [Tue, 6 Jul 2021 15:55:14 +0000 (17:55 +0200)]
Single color buffer in multiple interpolation tests

The multiple interpolation tests were requiring 5 color attachments to
run the main fragment shader, when the spec requires implementations to
support at least 4.

Instead of checking the number of supported color attachments and
marking the tests as not supported in those cases, this commit changes
the main fragment shader to use only one color attachment and selects
one of the multiple interpolations using push constants.

The tests run a bit slower because they use multiple pipelines and
render passes in sequence instead of a single one, but they can be run
on any implementation.

Affected tests:
dEQP-VK.draw.multiple_interpolation.*

Components: Vulkan
VK-GL-CTS issue: 2986

Change-Id: I14f0aacd8e134bbcbf027f46ed6c18076bae09f5

2 years agoSet point size in subgroup size control tests
James Fitzpatrick [Mon, 5 Jul 2021 12:43:10 +0000 (13:43 +0100)]
Set point size in subgroup size control tests

The subgroup size control tests were not correctly setting the point
size flag when initialising their std programs leading to point size
being uninitialised when shaderTessellationAndGeometryPointSize is
supported.

Affects:
dEQP-VK.subgroups.size_control.*

Components: Vulkan
VK-GL-CTS issue: 2988

Change-Id: I26fe7807093d12c69f0214be8c75bd9356cbce2a

2 years agoFix Protected context constructor initialization list order
Mohankumar Nekkarakalaya [Fri, 2 Jul 2021 17:48:19 +0000 (10:48 -0700)]
Fix Protected context constructor initialization list order

Changed the initilization order of the Protected Context constructor
members because m_allocator depends on m_device and m_deviceDriver.

This was causing the allocator to be created with an uninitialized
device.

Affected tests: dEQP-VK.protected_memory.*

Components: Vulkan
VK-GL-CTS issue: 2990

Change-Id: I921c18aec1c4ba1e8335f6e62b8df2e9cc5f2b39

2 years agoUpdate Imagination waiver #229
James Fitzpatrick [Mon, 5 Jul 2021 13:57:30 +0000 (14:57 +0100)]
Update Imagination waiver #229

vulkan-cts-1.2.7.0 introduced new tests to validate that an
implementation clamps the most negative snorm values to -1.0 when
using linear filtering.

There is an existing waiver that covers some Imagination GPUs which do
not correctly round negative snorm values.

Update this waiver to apply to the newly added tests.

Affects
dEQP-VK.texture.conversion.snorm_clamp_linear.*

VK-GL-CTS issue: 229
VK-GL-CTS issue: 2989

Change-Id: Ic23f0a042f7489bcfd9fb838260e920f7d19f2c6

2 years agoMerge vk-gl-cts/vulkan-cts-1.2.6 into vk-gl-cts/vulkan-cts-1.2.7
Alexander Galazin [Thu, 8 Jul 2021 19:39:44 +0000 (21:39 +0200)]
Merge vk-gl-cts/vulkan-cts-1.2.6 into vk-gl-cts/vulkan-cts-1.2.7

Change-Id: I3fa99a90ec8944344b87a18c1ce2a01b93531c92

2 years agoMerge vk-gl-cts/vulkan-cts-1.2.5 into vk-gl-cts/vulkan-cts-1.2.6
Alexander Galazin [Thu, 8 Jul 2021 19:01:12 +0000 (21:01 +0200)]
Merge vk-gl-cts/vulkan-cts-1.2.5 into vk-gl-cts/vulkan-cts-1.2.6

Change-Id: I8cfb44dac31df4a46280d3c050e561c5f9c84538

2 years agoMerge vk-gl-cts/vulkan-cts-1.2.4 into vk-gl-cts/vulkan-cts-1.2.5
Alexander Galazin [Thu, 8 Jul 2021 18:08:17 +0000 (20:08 +0200)]
Merge vk-gl-cts/vulkan-cts-1.2.4 into vk-gl-cts/vulkan-cts-1.2.5

Change-Id: I41d5f00d649218e1418c13591f50885858624198

2 years agoMerge vk-gl-cts/vulkan-cts-1.2.3 into vk-gl-cts/vulkan-cts-1.2.4
Alexander Galazin [Thu, 8 Jul 2021 17:09:43 +0000 (19:09 +0200)]
Merge vk-gl-cts/vulkan-cts-1.2.3 into vk-gl-cts/vulkan-cts-1.2.4

Change-Id: I166b558acc75b2d9259620be5fb8ba89eaa10841

2 years agoMerge vk-gl-cts/vulkan-cts-1.2.2 into vk-gl-cts/vulkan-cts-1.2.3
Alexander Galazin [Thu, 8 Jul 2021 16:27:33 +0000 (18:27 +0200)]
Merge vk-gl-cts/vulkan-cts-1.2.2 into vk-gl-cts/vulkan-cts-1.2.3

Change-Id: Ic61d3218b466b8fd2c50127867a0cfdb77c07637

2 years agoMerge vk-gl-cts/vulkan-cts-1.2.1 into vk-gl-cts/vulkan-cts-1.2.2
Alexander Galazin [Thu, 8 Jul 2021 15:37:58 +0000 (17:37 +0200)]
Merge vk-gl-cts/vulkan-cts-1.2.1 into vk-gl-cts/vulkan-cts-1.2.2

Change-Id: I7c0abe6efdeab69b5928cc0e67a6365f15b1e5c5

2 years agoCheck required extension core versions
Ricardo Garcia [Tue, 29 Jun 2021 14:41:59 +0000 (16:41 +0200)]
Check required extension core versions

This commit adds a new test that verifies the core version requirement
of each supported extension is met.

New tests:
dEQP-VK.api.info.extension_core_versions.extension_core_versions

VK-GL-CTS issue: 2960
Components: Vulkan

Change-Id: I6c2b70c3173285dc02e3e63742ebd14ae989b30a

2 years agoTest more dynamic vertex input variants
Ricardo Garcia [Tue, 29 Jun 2021 11:33:59 +0000 (13:33 +0200)]
Test more dynamic vertex input variants

This commit reworks the vertex input part of the extended dynamic state
tests to make it more flexible and adds a couple more test variants
checking more complex setups of bindings and attributes.

In addition, it fixes logic op tests so the output image format matches
the output framgent shader interface.

Also, it fixes feature checks for dynamic vertex input, which were only
requiring VK_EXT_vertex_input_dynamic_state while also using features
from VK_EXT_extended_dynamic_state.

New tests:
dEQP-VK.pipeline.extended_dynamic_state.*.vertex_input_no_dyn_stride
dEQP-VK.pipeline.extended_dynamic_state.*.vertex_input_multiple_bindings

Removed test (due to VUID-vkCmdBindVertexBuffers2EXT-pStrides-03363):
dEQP-VK.pipeline.extended_dynamic_state.two_draws_static.vertex_input

Affected tests:
dEQP-VK.pipeline.extended_dynamic_state.*

Components: Vulkan
VK-GL-CTS issue: 2943

Change-Id: I7da95804ffa156c9b32e304457c40c99158ef63c

2 years agoImprove tests checking sign extension with images
Ricardo Garcia [Wed, 16 Jun 2021 09:13:44 +0000 (11:13 +0200)]
Improve tests checking sign extension with images

Changes the existing sign extension operand tests:

* Operands are now checked independently on read and write operations.
* 64-bit formats are also checked when supported.

Parts of the framework have been modified to improve 64-bit format
support and to properly check 64-bit output pixel values.

This commit replaces the dEQP-VK.image.extend_operands_spirv1p4 test
group with new variants.

New tests and removed tests:
dEQP-VK.image.extend_operands_spirv1p4.*

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

Change-Id: Ia6b3c06b81347d7b007a1adb49a80b04dda5db83

2 years agoCall computeFixedPointError only for fixed point case
Mohankumar Nekkarakalaya [Wed, 7 Jul 2021 23:00:03 +0000 (16:00 -0700)]
Call computeFixedPointError only for fixed point case

Calling computeFixedPointError for integer case (numAccurateBits=32)
is incorrect and causes crash.
Added assert to make sure numAccurateBits is in legal range.

Affected tests: dEQP-VK.sparse_resources.image_sparse_residency.*

Components: Vulkan

VK-GL-CTS issue: 2994

Change-Id: Ib357cbbbda0f7980ec2d7115053cabc6825a18d3

2 years agoExclude cov-function-with-nested-loops-called-from-nested-loops
Alexander Galazin [Wed, 7 Jul 2021 09:13:05 +0000 (11:13 +0200)]
Exclude cov-function-with-nested-loops-called-from-nested-loops

This excludes dEQP-VK.graphicsfuzz.cov-function-with-nested-loops-called-from-nested-loops
from the mustpass. The test was failing for one of the IHVs and was merged by mistake

Components: Vulkan

Affects:
dEQP-VK.graphicsfuzz.cov-function-with-nested-loops-called-from-nested-loops

Change-Id: I2547da87b0924b9e0661f6930504702f793c3b95

2 years agoAvoid overflowing arrays in GLSL atomic tests
Iago Toral Quiroga [Tue, 6 Jul 2021 09:10:04 +0000 (11:10 +0200)]
Avoid overflowing arrays in GLSL atomic tests

Tilers may need to execute vertex pipeline stages more than once,
leading to additional shader invocations. This is a problem for atomic
tests, since their result depends on the number of shader invocations
executed.

This is already handled properly for vertex shaders but not for other
vertex pipeline stages.

Affected tests:
dEQP-VK.glsl.atomic_operations.*

Components: Vulkan
VK-GL-CTS issue: 2987

Co-authored-by: Ricardo Garcia <rgarcia@igalia.com>
Change-Id: Iab08e3fb2ef40fc29dcf073817e5fd5dd49e7875

2 years agoUpdate Vulkan headers
Alexander Galazin [Mon, 5 Jul 2021 14:18:18 +0000 (16:18 +0200)]
Update Vulkan headers

Components: Vulkan

Change-Id: I6000ca21cc306130dd546887e68d1cecd4dc0e1f

2 years agoUpdate bottom AS's addresses during top AS deserialization
michal_jakubek [Wed, 12 May 2021 08:53:39 +0000 (10:53 +0200)]
Update bottom AS's addresses during top AS deserialization

SerialStorage class has been adorned with an additional constructor
which allows to serialize or deserialize a deep copy of top-level
acceleration structure, it means top-level AS together with bottom-level
acceleration structures that it owns. In other words it reconstructs all
stuff that has been stored during serialization process.
A deserializing from SerialStorage created this way updates bottom-level
acceleration structure addresses in the top-level AS's header.

New tests:
dEQP-VK.ray_tracing_pipeline.acceleration_structures.header_bottom_address.*

Components: Vulkan

VK-GL-CTS issue: 2830

Change-Id: I2e92e6a83dc9dcba67fa74b12fbfcafb4ae4c0c6

2 years agoAllow Vulkan CTS 1.2.7.0
Alexander Galazin [Thu, 1 Jul 2021 17:02:21 +0000 (19:02 +0200)]
Allow Vulkan CTS 1.2.7.0

Affects: dEQP-VK.api.driver_properties.properties

Components: Vulkan

Change-Id: I4a690af61ea6e8cb752751d0282a7771b11f3b36

2 years agoMerge vk-gl-cts/vulkan-cts-1.2.6 into vk-gl-cts/master
Alexander Galazin [Thu, 1 Jul 2021 16:14:03 +0000 (18:14 +0200)]
Merge vk-gl-cts/vulkan-cts-1.2.6 into vk-gl-cts/master

Change-Id: Ie5ff780b4e0951acc82541cdd7a914e892789f8f

2 years agoHandle vkGetDeviceAccelerationStructureCompabilityKHR function.
michal_jakubek [Fri, 16 Apr 2021 09:09:43 +0000 (11:09 +0200)]
Handle vkGetDeviceAccelerationStructureCompabilityKHR function.

New tests:
dEQP-VK.ray_tracing_pipeline.acceleration_structures.device_compability_khr.*

Components: Vulkan

VK-GL-CTS issue: 2822

Change-Id: Iaf8556f44942d44bda19a104fc3c393b8101201e

2 years agoDrop subgroup size requirement for uniform control
Graeme Leese [Thu, 17 Sep 2020 17:47:23 +0000 (18:47 +0100)]
Drop subgroup size requirement for uniform control

The uniform control tests were using a required subgroup size without
checking for support. In fact, the only requirement is that the two
shaders in each test run with the same subgroup size. This is guaranteed
for all pipelines unless the varying size feature is enabled, so the
required subgroup size is not needed.

Components: Vulkan
VK-GL-CTS issue: 2576
Affects: dEQP-VK.subgroups.subgroup_uniform_control_flow.*control.*

Change-Id: Id1bf77a040ca6183b1ce237ae5f3bcda909c716c
(cherry picked from commit dbd42247ae8f885470fde4dbb3efccdb8c2e1134)

2 years agoCheck support for triangle fan primitive topology on rasterization tests
Samuel Iglesias Gonsálvez [Thu, 24 Jun 2021 09:48:16 +0000 (11:48 +0200)]
Check support for triangle fan primitive topology on rasterization tests

If VK_KHR_portability_subset is supported, check for triangle fan
support in the tests that use that primitive topology.

Component: Vulkan
Fix issue: KhronosGroup#246
VK-GL-CTS issue: 2978

Affected test:
   dEQP-VK.rasterization.*triangle_fan

Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
Change-Id: I98a4ab5caee2bf6f07c610822b8166b3a1803e52

2 years agoRevert initial layout for depth/stencil attachment in makeRenderPass
Boris Zanin [Wed, 2 Jun 2021 11:06:00 +0000 (13:06 +0200)]
Revert initial layout for depth/stencil attachment in makeRenderPass

Return back previous initial depth/stencil attachment
layout, i.e. set it to
VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL only
if loadOperation is VK_ATTACHMENT_LOAD_OP_LOAD.
Otherwise keep it undefined.

Setting vast range of affected tests, because it is
hard to determine which of the tests are using
affected by this function.

Affected tests:
 * dEQP-VK.*

Components: Framework

VK-GL-CTS public issue: 272

Change-Id: Ie96c8125144904fde5e2db6294f52947ff979424

2 years agoAdd a batch of GraphicsFuzz coverage tests
Antto Mäkinen [Mon, 7 Jun 2021 13:13:05 +0000 (16:13 +0300)]
Add a batch of GraphicsFuzz coverage tests

This commit adds a batch of GraphicsFuzz coverage tests.

Components: Vulkan

New Tests:

dEQP-VK.graphicsfuzz.cov-apfloat-module-small-number
dEQP-VK.graphicsfuzz.cov-determinant-uninitialized-matrix-never-chosen
dEQP-VK.graphicsfuzz.cov-divide-matrix-transpose-by-constant
dEQP-VK.graphicsfuzz.cov-fragcoord-bitwise-not
dEQP-VK.graphicsfuzz.cov-function-with-nested-loops-called-from-nested-loops
dEQP-VK.graphicsfuzz.cov-loop-break-floor-nan-never-executed
dEQP-VK.graphicsfuzz.cov-missing-return-value-function-never-called
dEQP-VK.graphicsfuzz.cov-modulo-zero-never-executed
dEQP-VK.graphicsfuzz.cov-read-matrix-push-constant
dEQP-VK.graphicsfuzz.cov-reinitialize-matrix-after-undefined-value
dEQP-VK.graphicsfuzz.cov-sampler-as-function-argument
dEQP-VK.graphicsfuzz.cov-transpose-multiply
dEQP-VK.graphicsfuzz.cov-trunc-fract-always-zero
dEQP-VK.graphicsfuzz.cov-uninitialized-values-passed-to-function-never-executed
dEQP-VK.graphicsfuzz.cov-unused-access-past-matrix-elements

Change-Id: I06f80169893fcc92d154d0da386568a177416426

2 years agoMerge vk-gl-cts/vulkan-cts-1.2.5 into vk-gl-cts/vulkan-cts-1.2.6
Alexander Galazin [Thu, 1 Jul 2021 15:12:58 +0000 (17:12 +0200)]
Merge vk-gl-cts/vulkan-cts-1.2.5 into vk-gl-cts/vulkan-cts-1.2.6

Change-Id: Iffe181f31ff661ead2142e7e7f0abb314bf1a2e1

2 years agoFix semaphore leak in image atomic operations test
Sławomir Cygan [Fri, 25 Jun 2021 14:08:23 +0000 (16:08 +0200)]
Fix semaphore leak in image atomic operations test

The class 'Image', being base class for `SparseImage` class needs to be
marked as virtual, so objects of SparseImage type can be owned and
destroyed through a pointer of `Image` type.  Without that the implicit
destructor of `SparseImage` class is never called.

As SparseImage class has a semaphore member, this fixes the
semaphore VK object leak.

Components: Vulkan

VK-GL-CTS Issue: 2981

Change-Id: Ice24f7018cf9144f4c1adbb8987b730d5f1ca2aa
Affects: dEQP-VK.image.atomic_operations.*

2 years agoFix use of binary semaphore in signaled state
Lars-Ivar Hesselberg Simonsen [Fri, 23 Apr 2021 10:04:44 +0000 (12:04 +0200)]
Fix use of binary semaphore in signaled state

Vulkan spec specifies that binary semaphore waits and signals should
occur in discrete 1:1 pairs.

This change ensures that the binary semaphore signaled by
synchronizationWrapper[SECOND] is waited on before being used again,
which resolves the corresponding validation layer error.

In addition, the change fixes an issue where the second submission pair
did not correctly swap semaphore info.

Components: Vulkan

Affects:
dEQP-VK.synchronization.basic.binary_semaphore.multi_queue
dEQP-VK.synchronization.basic.binary_semaphore.multi_queue_typed
dEQP-VK.synchronization.basic.timeline_semaphore.multi_queue

VK-GL-CTS Issue: 2910

Change-Id: Id2fb2211a43150e3acb5c07dd6c205c7a42296d5
(cherry picked from commit a017db3c0d1fbf89f30253254d57fb869f57a430)

2 years agoFix compilation issue in float_controls
Piotr Byszewski [Wed, 30 Jun 2021 12:03:40 +0000 (14:03 +0200)]
Fix compilation issue in float_controls

Two assertions in float_controls tests used conditions of type:
(x!=a || x!=b) which are always true and started triger compilation
errors on some platforms.

Components: Vulkan

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

Change-Id: I2df613acaf2cc089df29cdc8172d50f3174c6456

2 years agoAdd sample decorator to interpolation tests
Jari Komppa [Thu, 25 Mar 2021 14:09:44 +0000 (16:09 +0200)]
Add sample decorator to interpolation tests

Adds the sample decorator to tests that compare
other interpolator decorations.

Affects:
dEQP-VK.draw.multiple_interpolation.*

Components: Vulkan
VK-GL-CTS issue: 2733

Change-Id: I6964f9c8595dd616da22ba42c974676c864e9e8a

2 years agoAdd VK_EXT_device_drm_properties tests
James Jones [Fri, 8 Jan 2021 17:53:43 +0000 (09:53 -0800)]
Add VK_EXT_device_drm_properties tests

Verifies the basic API functionality works by
locating the device nodes associated with a Vulkan
device by matching them against the major and
minor device IDs reported by the extension.

Rather than assume the location of DRM device
nodes on the filesystem, these tests look them up
using libdrm's drmGetDevices[2]() function. This
requires some supporting code to properly load the
libraries, but should be more portable than simply
walking /dev/dri/*.

Components: Vulkan

New tests:

dEQP-VK.api.device_drm_properties.*

Change-Id: If9436e1595ad1132d5f542629c372a02fc3ed9e2

2 years agoMerge vk-gl-cts/vulkan-cts-1.2.6 into vk-gl-cts/master
Alexander Galazin [Wed, 30 Jun 2021 09:51:11 +0000 (11:51 +0200)]
Merge vk-gl-cts/vulkan-cts-1.2.6 into vk-gl-cts/master

Change-Id: I458f9b2ab7d0aa30c4e04228605934da9345ce36

2 years agoMerge vk-gl-cts/opengl-cts-4.6.1 into vk-gl-cts/master
Alexander Galazin [Wed, 30 Jun 2021 09:04:21 +0000 (11:04 +0200)]
Merge vk-gl-cts/opengl-cts-4.6.1 into vk-gl-cts/master

Change-Id: I9aa118f273dc5ea3eb65f16c40a47b3d9a658574

2 years agoAdd uniform control flow extension to allowed list
Graeme Leese [Tue, 29 Jun 2021 16:03:53 +0000 (17:03 +0100)]
Add uniform control flow extension to allowed list

Components: Vulkan
Affects: dEQP-VK.info.device_extensions
Change-Id: I2fe13e778dd160ce0fd842ccddc9ed8f1d129772

2 years agoAdd VK_EXT_multi_draw tests
Ricardo Garcia [Thu, 10 Jun 2021 09:55:16 +0000 (11:55 +0200)]
Add VK_EXT_multi_draw tests

This commits adds a new test group with VK_EXT_multi_draw tests. The new
tests check the new API functions, the DrawIndex builtin and several
combinations of instance counts, strides, vertex offsets and number of
batched draw calls.

New tests:
dEQP-VK.draw.multi_draw.*

Affected tests:
dEQP-VK.info.device_mandatory_features

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

Change-Id: Ifa6a92bd34c9f3509e82f6c346cc7eb5fd894bbc

2 years agoFix wait semaphore count value
Samuel Iglesias Gonsálvez [Tue, 1 Jun 2021 10:46:49 +0000 (12:46 +0200)]
Fix wait semaphore count value

Components: Vulkan
VK-GL-CTS issue: 2949
Fixes: a47665a6e "Generalize synchronization tests"

Affected tests:

   dEQP-VK.synchronization.op.single_queue.binary_semaphore.*

Change-Id: I14bb0d79b67e444b20683a766b769ce3a94a3222
Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
(cherry picked from commit bfe111789be62a974f403d452073ba30b24e5632)

2 years agoMerge vk-gl-cts/vulkan-cts-1.2.6 into vk-gl-cts/master
Alexander Galazin [Tue, 29 Jun 2021 07:53:40 +0000 (09:53 +0200)]
Merge vk-gl-cts/vulkan-cts-1.2.6 into vk-gl-cts/master

Change-Id: Ia535b31670d1d6eb509f75508ac1b6f639714999

2 years agoMerge vk-gl-cts/vulkan-cts-1.2.5 into vk-gl-cts/vulkan-cts-1.2.6
Alexander Galazin [Tue, 29 Jun 2021 07:24:05 +0000 (09:24 +0200)]
Merge vk-gl-cts/vulkan-cts-1.2.5 into vk-gl-cts/vulkan-cts-1.2.6

Change-Id: I820d94d27c30ea492dd04637b805dd78db2353d8

2 years agoUpdate extension dependencies
Alexander Galazin [Wed, 9 Jun 2021 11:45:47 +0000 (13:45 +0200)]
Update extension dependencies

Affects:
dEQP-VK.info.device_extensions

Components: Vulkan

Change-Id: I8be1c95646a6f0c2b8ddc27cc27c6679346c51c7

2 years agoImprove existing cull distance tests
Samuel Iglesias Gonsálvez [Tue, 8 Jun 2021 15:20:24 +0000 (17:20 +0200)]
Improve existing cull distance tests

Previously the tests were just writing a constant value to
gl_CullDistance[i] in the vertex shader and copying that value in
the rest of the geometry stages.

This commit does the following:

- The last shader writting to gl_CullDistance assigns 0 if
gl_Position.y < 0 and 0.5f otherwise. That way we can test the
interpolation of gl_CullDistance in the fragment shader.

- In case there are multiple geometry shaders, all except the last one
write a different value to gl_CullDistance[i] and checks the value
written by the previous shader stage. Therefore we check the values
are properly propagated between stages and they are overwritten as
well.

Components: Vulkan
VK-GL-CTS issue: 2961

Affected tests:

    dEQP-VK.clipping.*.clip_cull_distance*

Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
Change-Id: I213cc0469e72d82a8eda814e770aac2b825286fc

2 years agoAdd tests checking Input and Resolve attachments can be the same attachment in a...
Samuel Iglesias Gonsálvez [Mon, 14 Jun 2021 14:07:01 +0000 (16:07 +0200)]
Add tests checking Input and Resolve attachments can be the same attachment in a subpass

Components: Vulkan
VK-GL-CTS issue: 2931

Added test:

  dEQP-VK.pipeline.framebuffer_attachment.resolve_input_same_attachment

Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
Change-Id: I12e3741d219118c1b65b921a4b81b10d3c6d1c71

2 years agoFix 64-bit atomics mandatory feature checks
Ricardo Garcia [Tue, 22 Jun 2021 09:16:34 +0000 (11:16 +0200)]
Fix 64-bit atomics mandatory feature checks

Require shaderBufferInt64Atomics from VkPhysicalDeviceVulkan12Features
if the same feature from VkPhysicalDeviceShaderAtomicInt64FeaturesKHR is
supported.

Require shaderInt64 if any of the 64-bit integer atomic features is
supported.

Affected tests:
dEQP-VK.info.device_mandatory_features

VK-GL-CTS issue: 2976
Components: Vulkan

Change-Id: I95b2e90aec2d8d04bdbbfcdf60989c78a952a9da

2 years agoFix tessellation SPIR-V tests use of Restrict
Jason Ekstrand [Mon, 21 Jun 2021 20:35:36 +0000 (15:35 -0500)]
Fix tessellation SPIR-V tests use of Restrict

Their usage of Restrict violates the SPIR-V spec which requires that it
only got on variables, not types or struct members.

Affected tests:
dEQP-VK.tessellation.*

Components: Vulkan
VK-GL-CTS issue: 2975

Change-Id: Ifbde1b493bf56d1ee6454a4ab54e98bcd05f839b

2 years agoFix buffer copy extents in blit tests
Graeme Leese [Fri, 4 Jun 2021 13:50:34 +0000 (14:50 +0100)]
Fix buffer copy extents in blit tests

The buffer extents of copies to/from compressed images should account
for the extra size of the compressed block that might not fit in the
actual image but it was not.

Component: Vulkan
Affects: dEQP-VK.api.copy_and_blit.*

Change-Id: Ia4a47554078722b3cd4548df413bcdb62451cba5

2 years agoAllow the use of the standard types
Alexander Galazin [Fri, 18 Jun 2021 08:17:32 +0000 (10:17 +0200)]
Allow the use of the standard types

Removes the script that enforces the use of
the de-wrappers instead of the standard types.

VK-GL-CTS issue: 2963

Components: Framework

Change-Id: I5e2ff38a2b2cbc63a3c756a1e0260833ecd9381e

2 years agoAllocate memory for reference buffer
Sławomir Cygan [Tue, 15 Jun 2021 09:22:47 +0000 (11:22 +0200)]
Allocate memory for reference buffer

This fixes regression from 2236dd2.

m_referenceMem was not allocated leading to assert
in vk::Allocation::getHostPtr() and later crash.

VK-GL-CTS Issue: 2970

Components: Vulkan

Affects:
dEQP-VK.glsl.constants.*
dEQP-VK.glsl.constant_expressions.*

Change-Id: Ia798a72f348cc235b2a2ff18b3614f50713abd91

2 years agoFix YCbCr linear filtering support check
Graeme Leese [Thu, 10 Jun 2021 12:57:42 +0000 (13:57 +0100)]
Fix YCbCr linear filtering support check

The code was incorrectly checking the CONVERSION_LINEAR bit, which
determines whether a chromaFilter of linear is allowed, instead of the
more generic FILTER_LINEAR bit.

See vulkan/vulkan!4623

Component: Vulkan
Affects: dEQP-VK.ycbcr.*

Change-Id: Ifcacde146c10c24401e9efcc6095f5d0c5c8c519

2 years agoDon't run _concurrent sync tests on 1 queue devices
Graeme Leese [Fri, 4 Jun 2021 16:23:28 +0000 (17:23 +0100)]
Don't run _concurrent sync tests on 1 queue devices

The tests are testing synchronisation primitives in combination with
images marked as SHARING_MODE_CONCURRENT but this is not possible on
deivces that only support a single queue family. Because creating an
image with concurrent sharing requires two distinct queue families, it
is not supported on these devices.

Component: Vulkan
Affects: dEQP-VK.synchronization*.multi_queue.*_concurrent

Change-Id: I30a05bb085eef9e3087adfa12377a4909942f9c3

2 years agoFix stage flags for INPUT_ATTACHMENT descriptors
Graeme Leese [Fri, 4 Jun 2021 16:33:56 +0000 (17:33 +0100)]
Fix stage flags for INPUT_ATTACHMENT descriptors

These are required to be accessible only in the fragment stage.

Component: Vulkan
Affects: dEQP-VK.api.descriptor_pool.out_of_pool_memory

Change-Id: I63f874c366b45160dcb360b0b13d7932139676de

2 years agoRemove spurious feature dependencies in 1.2 tests
Graeme Leese [Fri, 4 Jun 2021 17:00:24 +0000 (18:00 +0100)]
Remove spurious feature dependencies in 1.2 tests

The vulkan1.2 features do not depend on having descriptorIndexing
enabled.

Component: Vulkan
Affects: dEQP-VK.api.info.vulkan1p2.feature_bits_influence

Change-Id: I7076f6046384c392e1066fdd1175d6183a848200

2 years agoFix feature dependency in vulkan1.2 test
Graeme Leese [Fri, 4 Jun 2021 16:50:36 +0000 (17:50 +0100)]
Fix feature dependency in vulkan1.2 test

Variable pointers requires that the storage buffer feature also be
enabled.

Component: Vulkan
Affects: dEQP-VK.api.info.vulkan1p2.feature_bits_influence

Change-Id: Ifb7a7831c609b0b52f408ac65a01b67e7eb0bf34

2 years agoFix image aspect handling in fragdepth tests
Graeme Leese [Thu, 3 Jun 2021 16:30:39 +0000 (17:30 +0100)]
Fix image aspect handling in fragdepth tests

The tests were creating a view which only used the depth aspect, but one
layout transition was incorrectly including the stencil aspect, leading
to validation errors.

Components: Vulkan
Affects: dEQP-VK.glsl.builtin_var.fragdepth.*

Change-Id: Ib2c1bcbce239968dfa21cc9ce5ef93c018189be9

2 years agoFix output components limit in fragment input tests
Graeme Leese [Thu, 3 Jun 2021 15:44:05 +0000 (16:44 +0100)]
Fix output components limit in fragment input tests

The number of outputs components is 4 higher than the number of fragment
inputs because gl_Position needs to be counted as well.

Component: Vulkan
Affects: dEQP-VK.glsl.limits.near_max.fragment_input.*

Change-Id: Ic1cd888c04c8877312af104f5bcd3afc607480f8

2 years agoRetry lesser FBO sample counts if UNSUPPORTED
Piers Daniell [Thu, 17 Jun 2021 23:36:54 +0000 (17:36 -0600)]
Retry lesser FBO sample counts if UNSUPPORTED

On some of our implementations we return GL_FRAMEBUFFER_UNSUPPORTED
when the no-attachment maximum width, height and samples are all
used in combination. This is because the combination goes beyond
some of our hardware limits. It would be fine to use either
maximum width/height or maximum samples, but not all
together.

Since GL_FRAMEBUFFER_UNSUPPORTED is a valid FBO status for
implementation-defined reasons, the test should recognize this
and try again with lesser limits until the FBO is complete.

Affects:

dEQP-GL45.functional.fbo.no_attachments.maximums.all

Components: OpenGL

VK-GL-CTS issue: 2973

Change-Id: I8db2e9f802b3f4d1ee59bbfbfa1935bbe3cc6d00

2 years agoMove two GL groups to single config
Alexander Galazin [Fri, 18 Jun 2021 10:22:26 +0000 (12:22 +0200)]
Move two GL groups to single config

Move enhanced_layouts and arrays_of_arrays_gl to the single config group
since these tests do not depend on the default framebuffer

Components: OpenGL

VK-GL-CTS issue: 2969

Removed tests:
KHR-GL*.arrays_of_arrays_gl.*
KHR-GL*.enhanced_layouts.*

Added tests:
KHR-Single-GL*.arrays_of_arrays_gl.*
KHR-Single-GL*.enhanced_layouts.*

Change-Id: I2ae554c0d92c9959d71232052c3f177265a715a7

2 years agoChange GLSL->SPIR-V mapping of notEqual to OpFUnordNotEqual not OpFOrdNotEqual
Piers Daniell [Tue, 15 Jun 2021 03:33:35 +0000 (21:33 -0600)]
Change GLSL->SPIR-V mapping of notEqual to OpFUnordNotEqual not OpFOrdNotEqual

The glslang compiler was changed in https://github.com/KhronosGroup/glslang/pull/2260
to generate OpFUnordNotEqual rather than OpFOrdNotEqual for a!=b.

Without this change the
KHR-GL46.gl_spirv.spirv_glsl_to_spirv_builtin_functions_test
test generates an InternalError because it can't find the
expected mapping.

Affects:

KHR-GL46.gl_spirv.spirv_glsl_to_spirv_builtin_functions_test

Change-Id: Ieda8dc02c0be90a7985b15ca28dbefb1a45cc7c1
Components: OpenGL

2 years agoUpdate Vulkan headers
Alexander Galazin [Mon, 28 Jun 2021 09:06:20 +0000 (11:06 +0200)]
Update Vulkan headers

Components: Vulkan

Change-Id: Ie5d0cb8afc3633ffca1b8ab8fbd712bc9819a23c

2 years agoFix the default GL_IMAGE_BINDING_FORMAT for desktop OpenGL
Piers Daniell [Fri, 11 Jun 2021 19:41:59 +0000 (13:41 -0600)]
Fix the default GL_IMAGE_BINDING_FORMAT for desktop OpenGL

The default texture format for desktop OpenGL is GL_R8 not GL_R32UI,
like it is for OpenGL ES.

See table 23.45 on page 627 of the OpenGL 4.6 core spec vs
table 21.33 on page 479 of the OpenGL ES 3.2 spec.

Affects:

KHR-GL46.shader_image_load_store.*

Change-Id: I1f5f8be422ddb358fba6df6bc450d3da702467bc
Components: OpenGL

2 years agoUpdate Vulkan headers
Alexander Galazin [Mon, 21 Jun 2021 11:25:34 +0000 (13:25 +0200)]
Update Vulkan headers

Components: Vulkan

Change-Id: I8c55cf4b0e5ecca25207143501372d8ea43b8d66

2 years agoCheck shader image atomic mandatory features
Ricardo Garcia [Mon, 7 Jun 2021 08:23:16 +0000 (10:23 +0200)]
Check shader image atomic mandatory features

Make sure implementations expose shaderImage*Atomics if
sparseImage*Atomics is supported.

Affected tests:
dEQP-VK.info.device_mandatory_features

Components: Vulkan
VK-GL-CTS issue: 2957

Change-Id: I7d07f807d5afddf9979f862d455029d23fa6c904

2 years agoAdd a batch of GraphicsFuzz coverage tests
Antto Mäkinen [Mon, 7 Jun 2021 14:45:27 +0000 (17:45 +0300)]
Add a batch of GraphicsFuzz coverage tests

This commit adds a batch of GraphicsFuzz coverage tests.

Components: Vulkan

New Tests:

dEQP-VK.graphicsfuzz.cov-clamp-vector-component-condition-using-matrix
dEQP-VK.graphicsfuzz.cov-color-output-undefined-in-unexecuted-branch
dEQP-VK.graphicsfuzz.cov-empty-loop-minus-one-modulo-variable-one
dEQP-VK.graphicsfuzz.cov-float-array-init-pow
dEQP-VK.graphicsfuzz.cov-fract-asin-undefined-never-used
dEQP-VK.graphicsfuzz.cov-function-fragcoord-condition-always-return
dEQP-VK.graphicsfuzz.cov-global-loop-counter-squared-comparison
dEQP-VK.graphicsfuzz.cov-isnan-asinh-clamp-always-zero
dEQP-VK.graphicsfuzz.cov-loop-dfdx-constant-divide
dEQP-VK.graphicsfuzz.cov-loop-integer-half-minus-one
dEQP-VK.graphicsfuzz.cov-min-intbitstofloat-undefined-never-used
dEQP-VK.graphicsfuzz.cov-pow-identical-value-sqrt
dEQP-VK.graphicsfuzz.cov-pow-undefined-result-condition-with-always-true
dEQP-VK.graphicsfuzz.cov-struct-float-array-mix-uniform-vectors
dEQP-VK.graphicsfuzz.cov-switch-fallthrough-variable-from-first-case

Change-Id: I239e7263068ddb6216f97c447e733cc2857fecfd

2 years agoAdd timestamp query test variants with availability bit
Samuel Iglesias Gonsálvez [Wed, 2 Jun 2021 13:18:44 +0000 (15:18 +0200)]
Add timestamp query test variants with availability bit

There was missing vkCmdCopyQueryPoolResults() and
vkGetQueryPoolResults() variants with availability bit flag.

Components: Vulkan
VK-GL-CTS issue: 2950

Added tests:

   dEQP-VK.pipeline.timestamp.*with_availability_bit

Modified tests:

   dEQP-VK.pipeline.timestamp.*

Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
Change-Id: I7e6fbb9d6e6f3b4b8c7ae1559a9bd7b23120d241

2 years agoProperly enable Sample Shading in Fragment Shading Rate tests
Sebastiano Cucinotta [Mon, 14 Jun 2021 15:15:40 +0000 (17:15 +0200)]
Properly enable Sample Shading in Fragment Shading Rate tests

Vulkan spec states:

> Sample shading is enabled for a graphics pipeline:
>
> * If the interface of the fragment shader entry point of the graphics
>   pipeline includes an input variable decorated with SampleId or
>   SamplePosition. In this case minSampleShadingFactor takes the value
>   1.0.
> * Else if the sampleShadingEnable member of the
>   VkPipelineMultisampleStateCreateInfo structure specified when
>   creating the graphics pipeline is set to VK_TRUE. In this case
>   minSampleShadingFactor takes the value of
>   VkPipelineMultisampleStateCreateInfo::minSampleShading.
>
> Otherwise, sample shading is considered disabled.

This change ensures that sample shading is properly enabled in the
Fragment Shading Rate tests relying on it by using gl_SampleId.

Components: Vulkan

Affects:
dEQP-VK.fragment_shading_rate.sampleshadinginput.*

VK-GL-CTS Issue: 2966

Change-Id: I7fad0ed7694a2d26ef7db9ea268fa5d6f93264a6

2 years agoMerge vk-gl-cts/vulkan-cts-1.2.6 into vk-gl-cts/master
Alexander Galazin [Wed, 16 Jun 2021 09:38:56 +0000 (11:38 +0200)]
Merge vk-gl-cts/vulkan-cts-1.2.6 into vk-gl-cts/master

Change-Id: I5c61c18e70c4065effbf14c1e74b6f5b4b45c358

2 years agoMerge vk-gl-cts/vulkan-cts-1.2.5 into vk-gl-cts/vulkan-cts-1.2.6
Alexander Galazin [Wed, 16 Jun 2021 08:16:56 +0000 (10:16 +0200)]
Merge vk-gl-cts/vulkan-cts-1.2.5 into vk-gl-cts/vulkan-cts-1.2.6

Change-Id: I2e92c964d1df15e5abfc47567f8a914892fc7cd9

2 years agoMerge vk-gl-cts/vulkan-cts-1.2.4 into vk-gl-cts/vulkan-cts-1.2.5
Alexander Galazin [Wed, 16 Jun 2021 07:43:06 +0000 (09:43 +0200)]
Merge vk-gl-cts/vulkan-cts-1.2.4 into vk-gl-cts/vulkan-cts-1.2.5

Change-Id: I01d6cedef0b807be928ba68d3aab64fd3d045d8d

2 years agoAdd a GraphicsFuzz test
Antto Mäkinen [Fri, 26 Feb 2021 10:10:57 +0000 (12:10 +0200)]
Add a GraphicsFuzz test

Adds a GraphicsFuzz test which has been separated by request.

Components: Vulkan

New Tests:

dEQP-VK.graphicsfuzz.spv-stable-pillars-volatile-nontemporal-store

Change-Id: I506e7460f4fc472638a168a30c572d159f46a3c7

2 years agoAdd a batch of GraphicsFuzz coverage tests
Antto Mäkinen [Fri, 23 Apr 2021 14:40:30 +0000 (17:40 +0300)]
Add a batch of GraphicsFuzz coverage tests

This commit adds a batch of GraphicsFuzz coverage tests.

Components: Vulkan

New Tests:

dEQP-VK.graphicsfuzz.cov-array-copies-loops-with-limiters
dEQP-VK.graphicsfuzz.cov-bitfieldreverse-loop-limit-underflow
dEQP-VK.graphicsfuzz.cov-condition-loop-index-bitwise-not
dEQP-VK.graphicsfuzz.cov-descending-loop-min-max-always-zero
dEQP-VK.graphicsfuzz.cov-global-loop-bound-true-logical-or
dEQP-VK.graphicsfuzz.cov-global-loop-counter-multiply-one-minus
dEQP-VK.graphicsfuzz.cov-loop-condition-double-negate
dEQP-VK.graphicsfuzz.cov-loop-increment-matrix-element-break-after-first-iteration
dEQP-VK.graphicsfuzz.cov-loop-logical-xor
dEQP-VK.graphicsfuzz.cov-nested-functions-accumulate-global-matrix
dEQP-VK.graphicsfuzz.cov-nested-loop-undefined-smoothstep-never-executed
dEQP-VK.graphicsfuzz.cov-one-minus-clamp-always-one-cast-to-int

Change-Id: Ic3a4703622da470b4551fb5d5836c146897ec7bc

2 years agoFix dEQP-VK.info.device_extensions not working
Ricardo Garcia [Wed, 9 Jun 2021 11:28:55 +0000 (13:28 +0200)]
Fix dEQP-VK.info.device_extensions not working

The test is using the list of extension dependencies for instances
instead of devices, so it's actually not checking anything in most
cases.

Affected tests:
dEQP-VK.info.device_extensions

Components: Vulkan
VK-GL-CTS issue: 2959

Change-Id: I8ee2ea10f98e1dd45590edc2b5cc8e0c3e21890b

2 years agoSPIR-V 1.4 test fixes
Ricardo Garcia [Wed, 9 Jun 2021 10:11:56 +0000 (12:11 +0200)]
SPIR-V 1.4 test fixes

This commit fixes a couple of SPIR-V 1.4 tests that had inconsistent
requirements in the Amber script and in the CTS side. In one case we're
dropping the requirement from Amber and in the other one we're adding
the requirement to CTS.

Affected tests:
dEQP-VK.spirv_assembly.instruction.spirv1p4.opptrnotequal.variable_pointers_vars_wg_not_equal
dEQP-VK.spirv_assembly.instruction.spirv1p4.hlsl_functionality1.member_decorate_string

Components: Vulkan
VK-GL-CTS issue: 2958

Change-Id: If1e58bc028ce3756623a241bb259024ef077c815

2 years agoSkip unsupported allocations in invariance test
Ricardo Garcia [Tue, 8 Jun 2021 10:16:39 +0000 (12:16 +0200)]
Skip unsupported allocations in invariance test

dEQP-VK.api.invariance.random is a test that performs a high number of
memory allocations (1000 as of this commit). Some of them may throw a
not supported exception that wasn't being caught and would result in the
whole test being marked as unsupported.

This change catches the exception and only returns "not supported" if
none of the allocations were supported. Otherwise, it runs all possible
allocations and checks results for the supported ones.

Affected tests:
dEQP-VK.api.invariance.random

Components: Vulkan
VK-GL-CTS issue: 2110

Change-Id: I92163c42e33671291dd9fc0c753dc43b4a058796

2 years agoMerge vk-gl-cts/vulkan-cts-1.2.3 into vk-gl-cts/vulkan-cts-1.2.4
Alexander Galazin [Wed, 16 Jun 2021 06:52:23 +0000 (08:52 +0200)]
Merge vk-gl-cts/vulkan-cts-1.2.3 into vk-gl-cts/vulkan-cts-1.2.4

Change-Id: I89ac6a1c9b0b7d908be65033c47371f60cc880cb

2 years agoDo not exceed heap size when allocating memory
Slawomir Cygan [Wed, 19 May 2021 15:18:48 +0000 (17:18 +0200)]
Do not exceed heap size when allocating memory

It is invalid to make larger allocations than heap size.

Components: Vulkan

VK-GL-CTS Issue: 2927

Change-Id: I738356254d95a152a2bb89d711eb6b3f047b405c
Affects: dEQP-VK.memory.mapping

2 years agoSubgroup and workgroup reconvergence tests.
Jeff Bolz [Mon, 1 Jun 2020 17:23:26 +0000 (12:23 -0500)]
Subgroup and workgroup reconvergence tests.

These tests run shaders with randomly-generated control
flow and use subgroup operations to check whether subgroups
reconverge when control flow merges. The non-experimental
tests exercise the
VK_KHR_shader_subgroup_uniform_control_flow extension,
and the experimental tests go further and exercise maximal
reconvergence (and also increase the number of tests).

New Tests: dEQP-VK.reconvergence.*
New Tests: dEQP-VK-experimental.reconvergence.*
Component: Vulkan

Change-Id: I83136ad1aca6daece4a612a58d93aa175a2c5184
(cherry picked from commit 09f8fc2e7ecbbf97a2a30eeb4c6ce2c4e0ecb160)

2 years agoTests for VK_KHR_shader_subgroup_uniform_control_flow
Alan Baker [Tue, 2 Jun 2020 19:49:54 +0000 (15:49 -0400)]
Tests for VK_KHR_shader_subgroup_uniform_control_flow

* Updates Amber a version that supports VK_EXT_subgroup_size_control
* Change Amber testcases to use the asm option's SPIR-V version for
glslang compiles

Components: Vulkan

VK-GL-CTS Issue: 2395

New tests: dEQP-VK.subgroups.subgroup_uniform_control_flow.*

Change-Id: I4140385d6326d6b99e259fcd77e807f33b778031
(cherry picked from commit 74f61853ec0a94aeed6fa9443beeeb2c67b99070)

2 years agoUpdate glslang, SPIR-V Tools and headers
Alexander Galazin [Tue, 15 Jun 2021 15:35:42 +0000 (17:35 +0200)]
Update glslang, SPIR-V Tools and headers

Components: Framework

Change-Id: I71f4cf039e865f45086596beb7cd192c2d02fd53

2 years agoShared memory layout tests
Antto Mäkinen [Thu, 25 Feb 2021 13:44:28 +0000 (15:44 +0200)]
Shared memory layout tests

Vulkan leaves it to implementations to determine the layout of shared memory.
This test ensures that the fields in the shared memory won't end up
overlapping each other.

This commit also does a minor clean up for the framework core and adds
util functions for comparing types which are common for this and the SSBO tests.

VK-GL-CTS issue: 2372

New Tests:
dEQP-VK.memory_model.shared.*

Components: Vulkan

Change-Id: I4ac0a03f91a5ce699fe03f3c43943fb8eac88850

2 years agoOptimize the AS build tests to not use host uncached memory
Slawomir Cygan [Tue, 11 May 2021 14:53:20 +0000 (16:53 +0200)]
Optimize the AS build tests to not use host uncached memory

Use userspace host memory for scratch buffer (instead mapped device memory)
and try using HOST_CACHED memory (if supported) for the accelleration structure.

Components: Vulkan

VK-GL-CTS Issue: 2922

Affects:
dEQP-VK.ray_tracing_pipeline.build.*
dEQP-VK.ray_tracing_pipeline.*

Change-Id: I7592c3f93f2e10766cd1276f37ca51924e1cc16f

2 years agoAdd missing cull flags when counting intersections of rays with triangle-based cubes
Sławomir Cygan [Fri, 4 Jun 2021 15:49:38 +0000 (17:49 +0200)]
Add missing cull flags when counting intersections of rays with triangle-based cubes

Add a cull flags, so each convex geometry is counted once, instead of twice.

Components: Vulkan

VK-GL-CTS Issue: 2890

Affects:
    dEQP-VK.ray_tracing_pipeline.misc.*stress*
    dEQP-VK.ray_tracing_pipeline.misc.cullmask*
    dEQP-VK.ray_tracing_pipeline.misc.mixedPrimTL

Change-Id: Ie2e74149be8bb710c7ae3afb77f5854dca247aca

2 years agoRevert "Move the hit counting from any hit to closest hit shader stage"
Slawomir Cygan [Fri, 4 Jun 2021 15:45:39 +0000 (15:45 +0000)]
Revert "Move the hit counting from any hit to closest hit shader stage"

The problem with this test was in cull flags, rather than counting
in 'any hit' shader stage.

This reverts commit 2f33c7beac25308ef85a1856032d7a5936197f83.

VK-GL-CTS Issue: 2890

Change-Id: I066fac55a80ff4f4a93748425517785df8777d06
Affects: dEQP-VK.ray_tracing_pipeline.misc.*stress*

2 years agoAdd VK_FORMAT_B10G11R11_UFLOAT_PACK32 vertex input tests
Samuel Iglesias Gonsálvez [Wed, 26 May 2021 11:22:09 +0000 (13:22 +0200)]
Add VK_FORMAT_B10G11R11_UFLOAT_PACK32 vertex input tests

Added tests:

   dEQP-VK.pipeline.vertex_input.*.*as_b10g11r11_ufloat_pack32*

Components: Vulkan
VK-GL-CTS issue: 2946

Change-Id: Ibb0d97819d96548cacfca3e8eca966ecb7774e99
Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
2 years agoTest null fragment shading rate attachment pointers
Ricardo Garcia [Thu, 13 May 2021 10:20:45 +0000 (12:20 +0200)]
Test null fragment shading rate attachment pointers

The new variants check passing a null fragment shading rate attachment
pointer has the same effect as not specifying a fragment shading rate
attachment info pointer at all.

New tests:
dEQP-VK.fragment_shading_rate.*.noattachmentptr.*

Components: Vulkan
VK-GL-CTS issue: 2904

Change-Id: If593170f5a0295772a0bab1ea4378a06c2a7864c

2 years agoCheck resource limits properly
Samuel Iglesias Gonsálvez [Wed, 2 Jun 2021 14:41:30 +0000 (16:41 +0200)]
Check resource limits properly

The tests were not checking the resource limits per stage when
creating the shaders, which could create potential issues on
some drivers. Specially the random generated tests.

Affected tests:

   dEQP-VK.ssbo.layout.*

Components: Vulkan
VK-GL-CTS issue: 2953

Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
Change-Id: I7509dce38b849a0dd26f9e47d7f74e637930d897