platform/upstream/VK-GL-CTS.git
3 years agovktRayTracingMiscTests.cpp: abs -> fabsf
Robert Morell [Thu, 10 Dec 2020 01:23:48 +0000 (17:23 -0800)]
vktRayTracingMiscTests.cpp: abs -> fabsf

Fixes these errors building for FreeBSD 10.4 with llvm60:
/root/nvt/tests/buildvulkancts/vk-gl-cts/external/vulkancts/modules/vulkan/ray_tracing/vktRayTracingMiscTests.cpp:2248:11: error: call to 'abs' is ambiguous
                                                if (abs(currentItem.dataChunk.at(nItem) - static_cast<float>(nRay + nItem)) > 1e-3f)
                                                    ^~~
/usr/include/stdlib.h:83:6: note: candidate function
int      abs(int) __pure2;
         ^
/usr/include/c++/v1/cstdlib:159:44: note: candidate function
inline _LIBCPP_INLINE_VISIBILITY long      abs(     long __x) _NOEXCEPT {return  labs(__x);}
                                           ^
/usr/include/c++/v1/cstdlib:161:44: note: candidate function
inline _LIBCPP_INLINE_VISIBILITY long long abs(long long __x) _NOEXCEPT {return llabs(__x);}
                                           ^

VK-GL-CTS issue: 2696

Components: Vulkan

Affects:
dEQP-VK.ray_tracing_pipeline.misc.callableshaderstress*

Change-Id: I0be12116f368d02251a7b1d6a560d1ff898f78dd

3 years agooglcts-runner: Include cstdlib in glcTestRunnerMain
Robert Morell [Thu, 10 Dec 2020 02:08:40 +0000 (18:08 -0800)]
oglcts-runner: Include cstdlib in glcTestRunnerMain

To pick up the definitions of EXIT_SUCCESS/EXIT_FAILURE.

Fixes these errors building on FreeBSD 10.4 with llvm60:
/root/nvt/tests/buildvulkancts/vk-gl-cts/external/openglcts/modules/runner/glcTestRunnerMain.cpp:115:19: error: use of undeclared identifier 'EXIT_SUCCESS'
        int exitStatus = EXIT_SUCCESS;
                         ^
/root/nvt/tests/buildvulkancts/vk-gl-cts/external/openglcts/modules/runner/glcTestRunnerMain.cpp:136:19: error: use of undeclared identifier 'EXIT_FAILURE'
                                        exitStatus = EXIT_FAILURE;
                                                     ^

Components: OpenGL

VK-GL-CTS issue: 2696

Change-Id: I918f3de12dde8871df8905f5870c3d6c73ae8048
(cherry picked from commit a3087b1818e7310757304574da1e021e9578438b)

3 years agoMerge vk-gl-cts/vulkan-cts-1.2.4 into vk-gl-cts/vulkan-cts-1.2.5
Alexander Galazin [Thu, 10 Dec 2020 14:07:11 +0000 (15:07 +0100)]
Merge vk-gl-cts/vulkan-cts-1.2.4 into vk-gl-cts/vulkan-cts-1.2.5

Change-Id: I90d7ded1d0fb76225a2f07354b76f1111bca7e2b

3 years agoMerge vk-gl-cts/vulkan-cts-1.2.3 into vk-gl-cts/vulkan-cts-1.2.4
Alexander Galazin [Thu, 10 Dec 2020 13:30:11 +0000 (14:30 +0100)]
Merge vk-gl-cts/vulkan-cts-1.2.3 into vk-gl-cts/vulkan-cts-1.2.4

Change-Id: Ifc19d39f8f561171fabb3598587dec9822e37dc2

3 years agoMerge vk-gl-cts/vulkan-cts-1.2.2 into vk-gl-cts/vulkan-cts-1.2.3
Alexander Galazin [Thu, 10 Dec 2020 11:04:34 +0000 (12:04 +0100)]
Merge vk-gl-cts/vulkan-cts-1.2.2 into vk-gl-cts/vulkan-cts-1.2.3

Change-Id: I71fc9c2f2a1132010379b79b0ca2445f57c5055c

3 years agoRemove cov-fold-div-uniform-by-zero
Alexander Galazin [Thu, 10 Dec 2020 10:19:36 +0000 (11:19 +0100)]
Remove cov-fold-div-uniform-by-zero

The test relies on undefined behavior

Components: Vulkan

VK-GL-CTS issue: 2691

Affects: dEQP-VK.graphicsfuzz.cov-fold-div-uniform-by-zero

Change-Id: Id5703afdf8aeb544b601184b91463a5cf0a7c532

3 years agoFix instance creation
Joerg Wagner [Sat, 5 Dec 2020 12:12:10 +0000 (13:12 +0100)]
Fix instance creation

Pass parameters in the right order when
creating a temporary instance to allow
tests to be skipped when features are not
supported.

Affects: dEQP-VK.api.external.semaphore.sync_fd.import_signaled_temporary
Affects: dEQP-VK.api.external.memory.android_hardware_buffer.image_formats.*

Components: Vulkan
VK-GL-CTS issue: 2689

Change-Id: Iba9490debc4870f158b30295930783e2291c4f77

3 years agoMerge vk-gl-cts/vulkan-cts-1.2.4 into vk-gl-cts/vulkan-cts-1.2.5
Alexander Galazin [Wed, 9 Dec 2020 12:37:57 +0000 (13:37 +0100)]
Merge vk-gl-cts/vulkan-cts-1.2.4 into vk-gl-cts/vulkan-cts-1.2.5

Change-Id: Id23124bcd500db5ddbc6da9beb2f94239d52cd55

3 years agoMerge vk-gl-cts/vulkan-cts-1.2.3 into vk-gl-cts/vulkan-cts-1.2.4
Alexander Galazin [Wed, 9 Dec 2020 09:57:03 +0000 (10:57 +0100)]
Merge vk-gl-cts/vulkan-cts-1.2.3 into vk-gl-cts/vulkan-cts-1.2.4

Change-Id: Icdf3698545ae26c2b9c2bcbd1d7adcfc2a14fc28

3 years agoMerge vk-gl-cts/vulkan-cts-1.2.2 into vk-gl-cts/vulkan-cts-1.2.3
Alexander Galazin [Wed, 9 Dec 2020 08:54:46 +0000 (09:54 +0100)]
Merge vk-gl-cts/vulkan-cts-1.2.2 into vk-gl-cts/vulkan-cts-1.2.3

Change-Id: Id9f7774598b101e0f88ce933f347aadffcd7c73d

3 years agoRemove travis.yml
Alexander Galazin [Wed, 9 Dec 2020 08:52:05 +0000 (09:52 +0100)]
Remove travis.yml

Components: Framework

Change-Id: I14bcef09f4c198dc14c56c304cbc1199b4110ce2

3 years agoRemove cov-fold-div-variable-by-zero
Alexander Galazin [Tue, 8 Dec 2020 09:10:35 +0000 (10:10 +0100)]
Remove cov-fold-div-variable-by-zero

The test relies on undefined behavior

Components: Vulkan

VK-GL-CTS issue: 2691

Affects: dEQP-VK.graphicsfuzz.cov-fold-div-variable-by-zero

Change-Id: I56f7e34bb237184b53c60b8074d19e16c400fff7

3 years agoFix clang 10.0 build of ray tracing control flow tests
Slawomir Cygan [Mon, 7 Dec 2020 17:19:25 +0000 (18:19 +0100)]
Fix clang 10.0 build of ray tracing control flow tests

The build fails due to -Werror,-Wunused-const-variable warning.
the PUSH_CONSTANTS_COUNT constant is used only in debug builds.

Components: Vulkan

Change-Id: I6ee3920619109024cb9ba29c0d22722d0069d91d
(cherry picked from commit d64576958e0195bb9029ac7ffab9717afb9ddffa)

3 years agoSelect SPIR-V for the robustness' compute shaders
Tony Zlatinski [Tue, 1 Dec 2020 23:54:21 +0000 (17:54 -0600)]
Select SPIR-V for the robustness' compute shaders

Use SPIR-V v1.3 instead of SPIR-V v1.4 ShaderBuildOptions
for the compute shaders of the robustness tests using 64-bit formats.
Apparently, SPIR-V v1.4 is not required for those shaders.
Otherwise, the SPIR-V validation fails on Vulkan v1.1 devices
such as Android.
For tests that do not require/test 64-bit formats,
fall back to using SPIR-V v1.0.

Components: Vulkan

VK-GL-CTS issue: 2679

Affects:
dEQP-VK.robustness.*.comp

Change-Id: I6054682e7dbc4460595a8264338a04ee36f9e3d1
(cherry picked from commit 9f0afc24c74fa608e1993f7ec342053949f152d8)

3 years agoFix buffer offsets in push descriptor tests
Ricardo Garcia [Thu, 26 Nov 2020 16:35:07 +0000 (17:35 +0100)]
Fix buffer offsets in push descriptor tests

This commit fixes push descriptor tests that were updating storage
buffer descriptors using offset values that may not have been multiples
of minStorageBufferOffsetAlignment.

In addition, it fixes image layout problems with some of these tests
that were causing validation errors.

Finally, it introduces the de::gcd and de::lcm functions to calculate
the greatest common divisor and least common multiple of two numbers.
These are useful when calculating alignments that need to meet several
base alignment requirements.

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

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

Change-Id: I36bcaf6114994ec5b42bcd5acc11340f079823dd
(cherry picked from commit 0f25191c03f324762437615d961bad978b9d5e15)

3 years agoDestroy deferred ops before destroying devices
Ricardo Garcia [Fri, 30 Oct 2020 14:04:56 +0000 (15:04 +0100)]
Destroy deferred ops before destroying devices

Many ray tracing tests were creating deferred operations with
vkCreateDeferredOperationKHR but not destroying them after being used. To fix
that, operations are created using the createDeferredOperationsKHR wrapper that
returns vk::Move objects.

Affected tests:
dEQP-VK.ray_tracing_pipeline.pipeline_library.*_dho*
dEQP-VK.ray_tracing_pipeline.build.cpuht_*
dEQP-VK.ray_tracing_pipeline.large_shader_set.cpu_ht.*
dEQP-VK.ray_query.acceleration_structures.*.cpu_built.*
dEQP-VK.ray_tracing_pipeline.*.cpu_built.*

Components: Vulkan
VK-GL-CTS issue: 2639

Change-Id: I0ce4e18548fdcf93e3363754c534b1dd6676aed9
(cherry picked from commit 75334af0029ec95fea2f7eaee2d79a07b5473a82)

3 years agoOnly use AABBs for the shader record tests
Eric Werness [Wed, 25 Nov 2020 22:46:16 +0000 (14:46 -0800)]
Only use AABBs for the shader record tests

AABBS_AND_TRIANGLES uses the instanceSBTOffset to pick between shader hit
groups, but the test only defines one shader hit group. Just using AABBs
still exercises all shaders but fits the shader groups defined by the test.

Affects: dEQP-VK.ray_tracing_pipeline.misc.shaderRecord*

Components: Vulkan
VK-GL-CTS issue: 2444

Change-Id: Ic718c22e9ef4176763179b084019a3a83ed7c584
(cherry picked from commit 11b863aca0d3eb09a1d9ebd8e91c3c310578220e)

3 years agoEnable VK_KHR_ray_tracing_pipeline only if needed
Ricardo Garcia [Fri, 30 Oct 2020 15:10:43 +0000 (16:10 +0100)]
Enable VK_KHR_ray_tracing_pipeline only if needed

This commit makes the default test device not enable the
VK_KHR_pipeline_library extension by default, which can potentially affect all
ray tracing and ray query tests.

Ray tracing pipeline tests are modified to use a custom device with the needed
features enabled, including the VK_KHR_pipeline_library extension. The tests
also check the extension is supported if VK_KHR_ray_tracing_pipeline is
supported, failing the test early if not.

Modified tests:
dEQP-VK.ray_tracing_pipeline.pipeline_library.*

Affected tests:
dEQP-VK.ray_tracing_pipeline.*
dEQP-VK.ray_query.*

Components: Vulkan
VK-GL-CTS issue: 2592

Change-Id: I1494ab3ce28fdce892f0444cba9ca538caec1208
(cherry picked from commit e5735c76c5eb51133a6c3b7763f8556cd868bfbb)

3 years agoSimplify geometry to reduce AABB precision issues
Eric Werness [Thu, 19 Nov 2020 01:16:23 +0000 (17:16 -0800)]
Simplify geometry to reduce AABB precision issues

AABBs are allowed to hit conservatively for precision reasons, which was
causing failures in some cases. Extremely simplify the geometry to make
it very unlikely that we'll get false hits.

Affects:

dEQP-VK.ray_tracing_pipeline.misc.recursiveTraces*

Components: Vulkan
VK-GL-CTS issue: 2444

Change-Id: Ie8a9ffde2761354a395c6367e6bca8145a22bbf3
(cherry picked from commit 756a198f6f3f5aa63a8b10c3c5fe4cf60fb3b2bb)

3 years agoShorten the ray so that it can't hit other cells
Eric Werness [Wed, 2 Dec 2020 02:11:40 +0000 (18:11 -0800)]
Shorten the ray so that it can't hit other cells

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

Components: Vulkan
VK-GL-CTS issue: 2444

Change-Id: I50ecdaa97974074f8d17d7c37a6441feaf467730
(cherry picked from commit 1b87b2975e0e0a088e19b258e4ebc19b8505726e)

3 years agoMerge vk-gl-cts/vulkan-cts-1.2.4 into vk-gk-cts/vulkan-cts-1.2.5
Alexander Galazin [Thu, 3 Dec 2020 18:56:00 +0000 (19:56 +0100)]
Merge vk-gl-cts/vulkan-cts-1.2.4 into vk-gk-cts/vulkan-cts-1.2.5

Change-Id: I9886526c34c8db829eb6029253319d70ecc9751a

3 years agoMerge vk-gl-cts/vulkan-cts-1.2.3 into vk-gl-cts/vulkan-cts-1.2.4
Alexander Galazin [Thu, 3 Dec 2020 18:19:54 +0000 (19:19 +0100)]
Merge vk-gl-cts/vulkan-cts-1.2.3 into vk-gl-cts/vulkan-cts-1.2.4

Change-Id: If5df84170f93fcf5c31f8bc44f559c5bc98b6e50

3 years agoFix test using protected features without creating a device with them enabled
Michal Opalka [Mon, 30 Nov 2020 07:48:36 +0000 (08:48 +0100)]
Fix test using protected features without creating a device with them enabled

The vulkan device was created without protected memory extension,
while later the tests queried physical device if the feature is supported
and based on that created protected image.

Components: Vulkan

Affects:
dEQP-VK.api.external.memory.android_hardware_buffer.image_formats.*

VK-GL-CTS Issue: 2675

Change-Id: I6d606fb34c89474b529c0f9e0e7a93202e801521
(cherry picked from commit fc849a80c35d31f621c0dfee74395791ed5dec75)

3 years agoMerge vk-gl-cts/vulkan-cts-1.2.2 into vk-gl-cts/vulkan-cts-1.2.3
Alexander Galazin [Thu, 3 Dec 2020 17:26:51 +0000 (18:26 +0100)]
Merge vk-gl-cts/vulkan-cts-1.2.2 into vk-gl-cts/vulkan-cts-1.2.3

Change-Id: Ie115d2e00cf468c6403fae07c9f77b466c3c4380

3 years agoMerge vk-gl-cts/vulkan-cts-1.2.1 into vk-gl-cts/vulkan-cts-1.2.2
Alexander Galazin [Thu, 3 Dec 2020 16:40:41 +0000 (17:40 +0100)]
Merge vk-gl-cts/vulkan-cts-1.2.1 into vk-gl-cts/vulkan-cts-1.2.2

Change-Id: I9855d3d8134ac73ea00b95adde9a66a37c0a03b3

3 years agoFixes descriptor indexing tests cache issue
Matthew Netsch [Wed, 2 Dec 2020 20:41:16 +0000 (15:41 -0500)]
Fixes descriptor indexing tests cache issue

Tests were not invalidating the results
buffer data before verifying.

Components: Vulkan
VK-GL-CTS Issue: 2682

Affects:
dEQP-VK.descriptor_indexing.*

Change-Id: Ia2afa6697d12fd3f4ebc8ef29ae01d166f290a7f

3 years agoAdd memory include in vktRayTracingMiscTests.cpp
Liam Middlebrook [Sun, 29 Nov 2020 22:24:05 +0000 (14:24 -0800)]
Add memory include in vktRayTracingMiscTests.cpp

std::unique_ptr is defined in the `memory` header, so that header must
be included in order to use it. This resolves build failures which I was
hitting with my local copy of GCC.

Affected tests:
dEQP-VK.ray_tracing_pipeline.misc.*

Components: Vulkan
VK-GL-CTS issue: 2674

Change-Id: Ibd2c143711e60c6c60477ab39595a5c4429277bb

3 years agoUpdate AccessInstance::verifyResult() to support 64-bit types
Piers Daniell [Wed, 25 Nov 2020 21:53:32 +0000 (14:53 -0700)]
Update AccessInstance::verifyResult() to support 64-bit types

When 64-bit support was added to the
dEQP-VK.robustness.buffer_access.through_pointers.* tests in
https://gerrit.khronos.org/#/c/5835/ the AccessInstance::verifyResult()
function was not updated to take the new 8 byte element sizes.
It assumed all accesses were in units of 4 bytes, which doesn't
work for 64-bit types which have accesses in units of 8 bytes.

Affects:

dEQP-VK.robustness.buffer_access.through_pointers.*

Components: Vulkan

VK-GL-CTS issue: 2670

Change-Id: I4656376f127bc4cf6eeaa80ed71aaa3f265e0aac
(cherry picked from commit 96ce07e58b7a6ec199c9e4b01de43f5b610a5461)

3 years agoAllow Vulkan CTS 1.2.5.0
Alexander Galazin [Thu, 26 Nov 2020 19:26:55 +0000 (20:26 +0100)]
Allow Vulkan CTS 1.2.5.0

Components: Vulkan

Affects: dEQP-VK.api.driver_properties.properties

Change-Id: Ifc3feae574078230200538b0f81b0a91b4614cad

3 years agoDisable VK_KHR_fragment_shading_rate
Alexander Galazin [Thu, 26 Nov 2020 17:52:12 +0000 (18:52 +0100)]
Disable VK_KHR_fragment_shading_rate

This is a temporarrry solution to the issue that
this extension brings in features that are disallowed
in combination with certain feeeatures exposed by
VK_NV_shading_rate_image and VK_EXT_fragment_density_map.

A complete fix will come in CL 6376.

Compoenents: Vulkan

VK-GL-CTS issue: 2665

Change-Id: I62d1ee0e9760ac6d7911d435b2811d16d1adf342

3 years agoMerge vk-gl-cts/vulkan-cts-1.2.4 into vk-gl-cts/master
Alexander Galazin [Thu, 26 Nov 2020 19:06:47 +0000 (20:06 +0100)]
Merge vk-gl-cts/vulkan-cts-1.2.4 into vk-gl-cts/master

Change-Id: Ic297aa295cadb7a95eae99aede64da5788abcdcd

3 years agoMerge vk-gl-cts/vulkan-cts-1.2.3 into vk-gl-cts/vulkan-cts-1.2.4
Alexander Galazin [Thu, 26 Nov 2020 18:29:20 +0000 (19:29 +0100)]
Merge vk-gl-cts/vulkan-cts-1.2.3 into vk-gl-cts/vulkan-cts-1.2.4

Change-Id: Ia429349d7b0b35eb29243833dd471406bd7adc87

3 years agoMerge vk-gl-cts/vulkan-cts-1.2.2 into vk-gl-cts/vulkan-cts-1.2.3
Alexander Galazin [Thu, 26 Nov 2020 17:42:40 +0000 (18:42 +0100)]
Merge vk-gl-cts/vulkan-cts-1.2.2 into vk-gl-cts/vulkan-cts-1.2.3

Change-Id: I66f05ed7be1361806de4ea2d8e17ea6472bb93cb

3 years agoForce thread count in deferred host operations
Ricardo Garcia [Thu, 22 Oct 2020 07:36:48 +0000 (09:36 +0200)]
Force thread count in deferred host operations

Several ray tracing tests use deferred host operations with a non-zero number
of threads to check the implementation works as expected. Thread counts are
usually 1, 2, 3, 4, 8 or "max". "max" thread counts are not unlimited. They use
the implementation-defined concurrency limit for a given operation, capped to
at most 256 threads.

In other cases, the implementation-defined concurrency limit for a given
operation was checked to be at least as big as the number of target threads for
the test. Otherwise, the test performed a late-exit with a "not supported"
result, which is unusual.

Tests with 1 thread were always supposed to run because the implementation can
only return zero when the operation has already completed.

Tests with the "max" limit would always run as described above.

This commit removes the concurrency limit check for intermediate values of
thread counts. The rationale is that, no matter if the implementation supports
that level of concurrency for a given operation or not, the spec allows us to
create any number of threads and make them join the deferred operation:

> Applications can join any number of threads to the deferred operation and
> expect it to eventually complete, though excessive joins may return
> VK_THREAD_DONE_KHR immediately, performing no useful work.

This change allows every test to always run, increases coverage and avoids the
late exit with "not supported" status.

Affected tests:
dEQP-VK.ray_tracing_pipeline.acceleration_structures.host_threading.*
dEQP-VK.ray_query.acceleration_structures.host_threading.*
dEQP-VK.ray_tracing_pipeline.large_shader_set.cpu_ht*
dEQP-VK.ray_tracing_pipeline.build.*
dEQP-VK.ray_tracing_pipeline.pipeline_library.*

Components: Vulkan
VK-GL-CTS issue: 2585

Change-Id: I9b4fd8d06793b0916e61f9e3c2fd8f416d4735f1

3 years agoZero out the hit stride for miss SBT tests
Eric Werness [Tue, 24 Nov 2020 20:40:44 +0000 (12:40 -0800)]
Zero out the hit stride for miss SBT tests

The test was relying on a zero sbtRecordStride to not index the hit
groups, but that's only multiplied by the geometryIndex, not the
instanceShaderBindingTableRecordOffset, causing the hit group to
index out of bounds on the miss test

Affects:

dEQP-VK.ray_tracing_pipeline.shader_binding_table.*miss*

Components: Vulkan
VK-GL-CTS issue: 2444

Change-Id: I01868190a4901f87a5c536b70ae9ee0989280b47

3 years agoFix validation errors in terminate invocation tests
Ari Suonpaa [Tue, 24 Nov 2020 12:24:43 +0000 (14:24 +0200)]
Fix validation errors in terminate invocation tests

There were some validation errors in terminate invocation tests.
The problem was mainly about signedness mismatch between buffer
data format and what was used in SPIR-V shaders. Also some of
the tests needed fragmentStoresAndAtomics feature requirement.

VK-GL-CTS Issue: 2667

Affects:

dEQP-VK.spirv_assembly.instruction.terminate_invocation.*

Components: Vulkan
Change-Id: I3948d0b771336731e88d9583274812aa67fc0326

3 years agoAdd sliced 3D compressed texture test
Tomasz Owczarek [Mon, 3 Aug 2020 15:36:46 +0000 (16:36 +0100)]
Add sliced 3D compressed texture test

New tests:
dEQP-VK.texture.compressed_3D.*

VK-GL-CTS issue: 2567
Components: Vulkan

Change-Id: Iaad7ba69361cbfa8ef46a907ce36646450e7e6b7

3 years agoMerge vk-gl-cts/vulkan-cts-1.2.1 into vk-gl-cts/vulkan-cts-1.2.2
Alexander Galazin [Thu, 26 Nov 2020 17:09:51 +0000 (18:09 +0100)]
Merge vk-gl-cts/vulkan-cts-1.2.1 into vk-gl-cts/vulkan-cts-1.2.2

Change-Id: I3966e7e1ab45fa815f85def0edaab713e6e16f80

3 years agoLoosen basic subgroup elect test vertex checks
Ricardo Garcia [Thu, 30 Jan 2020 10:39:29 +0000 (11:39 +0100)]
Loosen basic subgroup elect test vertex checks

This commit takes into account any shader in the vertex pipeline may run
multiple times per vertex when checking results in the basic subgroup
elect test.

In addition, it contains a few indentation fixes as well as fixes for
several validation errors in the whole test group.

Affected tests:
dEQP-VK.subgroups.basic.*

Components: Vulkan
VK-GL-CTS issue: 2162

Change-Id: Ib0aaf929bca5ce4939a3e2fd98a69a0812f1aa0b

3 years agoAdd tests for VK_EXT_subgroup_size_control
Samuel Iglesias Gonsálvez [Thu, 25 Jul 2019 13:34:26 +0000 (15:34 +0200)]
Add tests for VK_EXT_subgroup_size_control

For compute and graphics pipelines:

* Check the required subgroup size set by the tests is honored by the
  driver (including for full subgroups and allow varying cases for
  computer shaders).
* Check that enabling allow varying subgroup size reports a subgroup
  size that falls within the limits of the driver.
* For compute pipeline, check that require full subgroups works as
  expected.

On top of that, added requiredSubgroupSize case for subgroup's compute
shader tests that check all possible required subgroup sizes announced
by the driver.

Also there is a test that checks subgroup size control limits sanity.

Affected tests:

  dEQP-VK.subgroups.*

Components: Vulkan
VK-GL-CTS issue: 1864

Change-Id: Ia48deb9318420889754bd97545045f85b3c6fed7

3 years agoInitialize resourceImgLayout before use for all code paths
Piers Daniell [Wed, 25 Nov 2020 20:13:57 +0000 (13:13 -0700)]
Initialize resourceImgLayout before use for all code paths

Without this fix when updateDescriptorSet() is called in
BarrierTestInstance::iterate() debug builds for Vulkan CTS will
complain that resourceImgLayout is used without being initialized.

Affects:

dEQP-VK.ray_tracing_pipeline.barrier.*

Components: Vulkan

VK-GL-CTS issue: 2669

Change-Id: If320ac561cf278a9697ca33d302a1130db29fdb7

3 years agoExtensionUse variable not set for 1D and 3D images
Marcin Kańtoch [Tue, 17 Nov 2020 10:23:15 +0000 (11:23 +0100)]
ExtensionUse variable not set for 1D and 3D images

Fix for KHR_copy_commands2 tests do not set extensionUse
variable for 1D and 3D images.

Component: Vulkan

VK-GL-CTS Issue: 2660

Affected tests:
dEQP-VK.api.copy_and_blit.*.blit_image.all_formats.*.1d.*
dEQP-VK.api.copy_and_blit.*.blit_image.all_formats.*.3d.*

Change-Id: I5dccb2ea016853fd9dc29b30cdcf40e2dc18e7c1

3 years agoMerge vk-gl-cts/vulkan-cts-1.2.4 into vk-gl-cts/master
Alexander Galazin [Thu, 26 Nov 2020 14:08:17 +0000 (15:08 +0100)]
Merge vk-gl-cts/vulkan-cts-1.2.4 into vk-gl-cts/master

Change-Id: Icbe4097c08aebcad8ac5e401faad4b014aa4a820

3 years agoMerge vk-gl-cts/vulkan-cts-1.2.3 into vk-gl-cts/vulkan-cts-1.2.4
Alexander Galazin [Thu, 26 Nov 2020 13:34:12 +0000 (14:34 +0100)]
Merge vk-gl-cts/vulkan-cts-1.2.3 into vk-gl-cts/vulkan-cts-1.2.4

Change-Id: I2808d8556ad4cef552466af67361d30722fd9b91

3 years agoTest vkCmdBindVertexBuffers2EXT with size and offset
Ricardo Garcia [Tue, 10 Nov 2020 11:45:36 +0000 (12:45 +0100)]
Test vkCmdBindVertexBuffers2EXT with size and offset

Test both the size and offset parameters in the new vertex binding
function are used properly.

The new tests create vertex buffers which have the proper vertex data in
the middle of them, with wrong data before and after them. If any
implementation were to read data out of the precise range, the new tests
should not pass.

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

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

Components: Vulkan
VK-GL-CTS issue: 2646

Change-Id: I97f385934fcd41e19b2448a54e4f28f8a8a9c24c

3 years agoTest SPIR-V switch case jumping to the merge block
Ricardo Garcia [Wed, 18 Nov 2020 15:04:47 +0000 (16:04 +0100)]
Test SPIR-V switch case jumping to the merge block

Add new case that tests OpSwitch containing a case that jumps directly
to the merge block.

New test:
dEQP-VK.spirv_assembly.instruction.graphics.switch_block_order.switch-case-to-merge-block

Components: Vulkan
VK-GL-CTS issue: 2657

Change-Id: Ibfabc4341dd35b96795aac8cf9bd8ce5fa61ebe6

3 years agoMerge vk-gl-cts/vulkan-cts-1.2.2 into vk-gl-cts/vulkan-cts-1.2.3
Alexander Galazin [Thu, 26 Nov 2020 12:52:17 +0000 (13:52 +0100)]
Merge vk-gl-cts/vulkan-cts-1.2.2 into vk-gl-cts/vulkan-cts-1.2.3

Change-Id: Idb3171db18746b59d7c91297bd6ab3c00be455ae

3 years agoMerge vk-gl-cts/vulkan-cts-1.2.1 into vk-gl-cts/vulkan-cts-1.2.2
Alexander Galazin [Thu, 26 Nov 2020 12:03:17 +0000 (13:03 +0100)]
Merge vk-gl-cts/vulkan-cts-1.2.1 into vk-gl-cts/vulkan-cts-1.2.2

Change-Id: I2cdeeb0ab92e4533ee38ef0d2c39a2845b03379a

3 years agoFixes texture filter cubic mipmap tests
Matthew Netsch [Wed, 18 Nov 2020 20:42:16 +0000 (15:42 -0500)]
Fixes texture filter cubic mipmap tests

Tests using wrong miplevel to verify

Components: Vulkan
VK-GL-CTS Issue: 2662

Affects:
dEQP-VK.texture.filtering.*.cubic

Change-Id: I65ca120bdcaf460ce4addf15bc5ed15bbc3bc7b4

3 years agoFix descriptorCount for YCbCr-related tests
Andrew Fobel [Wed, 28 Oct 2020 19:41:58 +0000 (15:41 -0400)]
Fix descriptorCount for YCbCr-related tests

Certain YCbCr tests did not behave consistently with the Vulkan spec
when creating descriptor pools.
Tests now properly query combinedImageSamplerDescriptorCount to
correctly set pool size in the event of multiplane images.

Affects:

dEQP-VK.ycbcr.filtering.*

Components: Vulkan

VK-GL-CTS Issue: 2386

Change-Id: Idd700bee41eec7546f903326c31fbc928c7e7ecb

3 years agoFixes for image format properties tests
Graeme Leese [Mon, 16 Nov 2020 11:15:01 +0000 (11:15 +0000)]
Fixes for image format properties tests

 * Non-chroma-subsampled formats are allowed to support cosited chroma.
   (In fact, until a recent spec clarification it was required).
 * Apply checks of YCbCr properties to all formats. Any format can be
   used with YCbCr, so they should all be subject to the same checks.
   (This is what covered up the previous issue).
 * Only ban non-YCbCr usage for YCbCr formats that require a
   SamplerYCbCrConversion object. There were a few odd formats added
   with that extension for which this is not required.

Components: Vulkan
VK-GL-CTS issue: 2624
Affects: dEQP-VK.api.info.format_properties.*

Change-Id: I17d1058e7a4cf1b1a17fb30d37fc0c4a9757c4d4

3 years agoAdd tests for YCbCr chromaFilter linear filtering
Karolina Palka [Mon, 21 Sep 2020 07:19:59 +0000 (09:19 +0200)]
Add tests for YCbCr chromaFilter linear filtering

New tests:
dEQP-VK.ycbcr.filtering.linear_sampler_with_chroma_linear_filtering_g8_b8_r8_3plane_420_unorm
dEQP-VK.ycbcr.filtering.linear_sampler_with_chroma_linear_filtering_g8_b8r8_2plane_420_unorm

Components: Vulkan

VK-GL-CTS issue: 2239

Change-Id: I43c83ce3401e35ffbec9200b18ae112b491b4c6c

3 years agoAdd ArrayStride decorations in TerminateInvocation tests
Graeme Leese [Wed, 29 Jul 2020 10:40:01 +0000 (11:40 +0100)]
Add ArrayStride decorations in TerminateInvocation tests

The tests are using OpPtrAccessChain which requires types decorated with
ArrayStride.

Components: Vulkan
VK-GL-CTS issue: 2512
Affects:
  dEQP-VK.spirv_assembly.instruction.terminate_invocation.*.no_out_of_bounds_*

Change-Id: I6d1b4a5a9d5207ed00cbddf8deb5a8f52cc909ff
(cherry picked from commit 98563858e62d73f675ad7c6849407c9f455c181e)

3 years agoAdd ray tracing extensions to list of known extensions
Boris Zanin [Tue, 28 Apr 2020 07:39:34 +0000 (09:39 +0200)]
Add ray tracing extensions to list of known extensions

Adds following extensions to a list of enabled Khronos extensions:
 * VK_KHR_ray_tracing_pipeline
 * VK_KHR_ray_query
 * VK_KHR_acceleration_structure
 * VK_KHR_pipeline_library
 * VK_KHR_deferred_host_operations

Affected tests:
  * dEQP-VK.info.device_extensions

Components: Framework, Vulkan

VK-GL-CTS issue: 2143

Change-Id: Ib008304c210ade78569a9c2c27ce61c3aefa0df4

3 years agoMerge vk-gl-cts/vk_khr_ray_tracing into vk-gl-cts/master
Alexander Galazin [Tue, 24 Nov 2020 12:36:56 +0000 (13:36 +0100)]
Merge vk-gl-cts/vk_khr_ray_tracing into vk-gl-cts/master

Change-Id: I49438e55593ce166519553b90b55ecaf7ec57063

3 years agoUpdate glslang, SPIR-V headers, tools
Alexander Galazin [Tue, 24 Nov 2020 07:56:48 +0000 (08:56 +0100)]
Update glslang, SPIR-V headers, tools

Components: Framework

Change-Id: Ic1f961bdcc133c5222ace8e004c11fe706eef486

3 years agoAdd sparse tests shader_image_atomic_int64
Arkadiusz Sarwa [Wed, 8 Jul 2020 08:55:49 +0000 (10:55 +0200)]
Add sparse tests shader_image_atomic_int64

Components: Vulkan, Framework

VK-GL-CTS issue: 2392

New Tests:
dEQP-VK.sparse_resources.*r64*
Affects:
dEQP-VK.sparse_resources.*

Change-Id: I550b52d36cb435ac955dc72e1accd0dcb6e5a125
(cherry picked from commit 4b8977bef3075f62d3898510d24c6540146f2eff)

3 years agoAdd tests shader_image_atomic_int64 robustness2
Arkadiusz Sarwa [Wed, 24 Jun 2020 12:23:39 +0000 (14:23 +0200)]
Add tests shader_image_atomic_int64 robustness2

Components: Vulkan

VK-GL-CTS issue: 2392

New Tests:
dEQP-VK.robustness.image_robustness.*r64*
dEQP-VK.robustness.robustness2.*r64*
Affects:
dEQP-VK.robustness.image_robustness.*
dEQP-VK.robustness.robustness2.*

Change-Id: Iafb82e9ee3e56537c1fd7f40ef250973d0648c79
(cherry picked from commit c0a74351457b0ce559c7d09ad493e41df2b455e6)

3 years agoSwitch spirv-binaries to Release build
Alexander Galazin [Fri, 20 Nov 2020 16:19:40 +0000 (17:19 +0100)]
Switch spirv-binaries to Release build

Components: Framework

Change-Id: Iceaa7a248bb8dad6dd0ab08d356be441ad2b2876

3 years agoAdd tests shader_image_atomic_int64 robustness
Arkadiusz Sarwa [Thu, 11 Jun 2020 11:26:55 +0000 (13:26 +0200)]
Add tests shader_image_atomic_int64 robustness

Components: Vulkan

VK-GL-CTS issue: 2392

New Tests:
dEQP-VK.robustness*r64*
Affects:
dEQP-VK.robustness.*

Change-Id: I6dfe126a6174b894adb7725343cef9ffdb04c36a
(cherry picked from commit 09449ea11456d5b295f12ed640db99f660324879)

3 years agoAdd tests for VK_EXT_shader_image_atomic_int64
Arkadiusz Sarwa [Fri, 29 May 2020 14:16:58 +0000 (16:16 +0200)]
Add tests for VK_EXT_shader_image_atomic_int64

Components: Vulkan, Framework

VK-GL-CTS issue: 2392

New Tests:
dEQP-VK.image.atomic_operations.*r64*
dEQP-VK.image.atomic_operations.*buffer*
Affects:
dEQP-VK.image.atomic_operations.*

Change-Id: Ia5d8742a758f92577e0931e22f21d26ca20115b4
(cherry picked from commit e9cf49b80bff652c42a9608f1f2efcf007e29999)

3 years agoUpdate SPIR-V Tools/Headers, glslang
Alexander Galazin [Fri, 20 Nov 2020 14:37:17 +0000 (15:37 +0100)]
Update SPIR-V Tools/Headers, glslang

Change-Id: I07f72636b29756675409ab2da62e5b8edad0c973

3 years agoUpdate tests to not trigger undefined behaviour in framebuffer_fetch cases
Vihanakangas [Fri, 28 Aug 2020 09:59:24 +0000 (12:59 +0300)]
Update tests to not trigger undefined behaviour in framebuffer_fetch cases

Some framebuffer_fetch cases had an integer format conversion which
resulted in overflow. The shader and reference texture generation have been
modified to take this in to account when creating values
in such way that it doesn't overflow the max range of the format.

Affects:

dEQP-GLES31.functional.shaders.framebuffer_fetch.framebuffer_format.*

Components: OpenGL

VK-GL-CTS issue: 2016

Change-Id: I686f6548cafee13dd2a0f564bb302d269ca6b0a0

3 years agoAdd a batch of GraphicsFuzz coverage tests
Antto Mäkinen [Fri, 16 Oct 2020 10:47:34 +0000 (13:47 +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-branch-probability-identity-matrix
dEQP-VK.graphicsfuzz.cov-combine-and-or-xor-gt-lt
dEQP-VK.graphicsfuzz.cov-dag-combiner-combine-casts-legalize-vector-types-xyz-swizzle-for-loop
dEQP-VK.graphicsfuzz.cov-dag-combiner-findmsb-loop
dEQP-VK.graphicsfuzz.cov-dag-combiner-increment-color
dEQP-VK.graphicsfuzz.cov-inst-combine-compares-while-modulo
dEQP-VK.graphicsfuzz.cov-inst-peephole-optimizer-acosh
dEQP-VK.graphicsfuzz.cov-inst-value-tracking-inversesqrt
dEQP-VK.graphicsfuzz.cov-instr-emitter-pow-asinh
dEQP-VK.graphicsfuzz.cov-instruction-simplify-atanh-log-undefined
dEQP-VK.graphicsfuzz.cov-instruction-simplify-bit-shifting
dEQP-VK.graphicsfuzz.cov-instruction-simplify-inclusive-or
dEQP-VK.graphicsfuzz.cov-instruction-simplify-inst-combine-calls-for-compare-function-call-result
dEQP-VK.graphicsfuzz.cov-instruction-simplify-mod-acos-undefined
dEQP-VK.graphicsfuzz.cov-instruction-simplify-mod-sqrt-undefined
dEQP-VK.graphicsfuzz.cov-instruction-simplify-sqrt
dEQP-VK.graphicsfuzz.cov-instructions-first-value-phi
dEQP-VK.graphicsfuzz.cov-ir-builder-constant-fold-inst-combine-calls-value-tracking-findmsb-incr-if
dEQP-VK.graphicsfuzz.cov-optimize-phis-for
dEQP-VK.graphicsfuzz.cov-optimize-phis-for-for-do-while-if-if
dEQP-VK.graphicsfuzz.cov-peephole-optimizer-target-instr-info-for-if-if-if
dEQP-VK.graphicsfuzz.cov-selection-dag-assign-back-and-forth
dEQP-VK.graphicsfuzz.cov-selection-dag-lt-gt
dEQP-VK.graphicsfuzz.cov-target-lowering-inst-combine-compares-struct-array-clamp-function-cal
dEQP-VK.graphicsfuzz.cov-value-inst-combine-select-value-tracking-flip-bits
dEQP-VK.graphicsfuzz.cov-value-tracking-apint-inst-combine-simplify-one-mod-loop-iterator
dEQP-VK.graphicsfuzz.cov-value-tracking-constant-fold-refraction-dfxd-determinant
dEQP-VK.graphicsfuzz.cov-value-tracking-known-nonzero
dEQP-VK.graphicsfuzz.cov-value-tracking-max-uintbitstofloat
dEQP-VK.graphicsfuzz.cov-value-tracking-selection-dag-negation-clamp-loop

Change-Id: I62f485332da70e889ffb198551c787e56314e20b

3 years agoAdd tests for empty structs in UBOs and SSBOs
Piotr Byszewski [Thu, 15 Oct 2020 07:26:11 +0000 (09:26 +0200)]
Add tests for empty structs in UBOs and SSBOs

Components: Vulkan

VK-GL-CTS issue: 2608

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

New tests:
dEQP-VK.spirv_assembly.instruction.compute.empty_struct.*

Change-Id: I078881e7b2ce24eaa99c4247901533dfc78c0c57

3 years agoEnable nullDescriptor for null AS RT tests
Ricardo Garcia [Fri, 30 Oct 2020 15:25:57 +0000 (16:25 +0100)]
Enable nullDescriptor for null AS RT tests

The nullDescriptor feature is disabled for the default device. Ray tracing
pipeline tests depending on the feature need to use a custom device.

Affected tests:
dEQP-VK.ray_tracing_pipeline.null_as.test

Components: Vulkan
VK-GL-CTS issue: 2635

Change-Id: I7d9da92fd5c208335210e4680ad61900b4d58667

3 years agoMerge vk-gl-cts/opengl-es-cts-3.2.6 into vk-gl-cts/master
Alexander Galazin [Thu, 19 Nov 2020 08:45:56 +0000 (09:45 +0100)]
Merge vk-gl-cts/opengl-es-cts-3.2.6 into vk-gl-cts/master

Change-Id: Ic6d38cbc4febf18ddd51853bd954ada86c00ab64

3 years agoMerge vk-gl-cts/opengl-es-cts-3.2.5 into vk-gl-cts/opengl-es-cts-3.2.6
Alexander Galazin [Thu, 19 Nov 2020 08:45:53 +0000 (09:45 +0100)]
Merge vk-gl-cts/opengl-es-cts-3.2.5 into vk-gl-cts/opengl-es-cts-3.2.6

Change-Id: I3dc4a855b6a1e8e5c9b1794b528fa433c2e7d4ff

3 years agoMerge vk-gl-cts/opengl-es-cts-3.2.4 into vk-gl-cts/opengl-es-cts-3.2.5
Alexander Galazin [Thu, 19 Nov 2020 08:05:02 +0000 (09:05 +0100)]
Merge vk-gl-cts/opengl-es-cts-3.2.4 into vk-gl-cts/opengl-es-cts-3.2.5

Change-Id: I4d5fd46d7f654ae13dcac771a16aca3683bfd735

3 years agoMerge vk-gl-cts/vulkan-cts-1.2.4 into vk-gl-cts/master
Alexander Galazin [Thu, 19 Nov 2020 07:56:58 +0000 (08:56 +0100)]
Merge vk-gl-cts/vulkan-cts-1.2.4 into vk-gl-cts/master

Change-Id: I8e412ddc6bb6f6544f158efdc9433eef1125ed3a

3 years agoMerge vk-gl-cts/vulkan-cts-1.2.3 into vk-gl-cts/vulkan-cts-1.2.4
Alexander Galazin [Thu, 19 Nov 2020 07:56:55 +0000 (08:56 +0100)]
Merge vk-gl-cts/vulkan-cts-1.2.3 into vk-gl-cts/vulkan-cts-1.2.4

Change-Id: I99cfcc0f6ef06dd1119aa4215cf9e958b2c33f49

3 years agoFixes sparse resource SNORM tests
Matthew Netsch [Wed, 18 Nov 2020 23:02:11 +0000 (18:02 -0500)]
Fixes sparse resource SNORM tests

Tests verifies value out of range

Components: Vulkan
VK-GL-CTS Issue: 2598

Affects:
dEQP-VK.sparse_resources.image_sparse_binding.*snorm*
dEQP-VK.sparse_resources.mipmap_sparse_residency.*snorm*

Change-Id: Id11addbc60c44ca7f20f86e11dbc7c833bbe7da7

3 years agoMerge vk-gl-cts/vulkan-cts-1.2.2 into vk-gl-cts/vulkan-cts-1.2.3
Alexander Galazin [Wed, 18 Nov 2020 20:09:06 +0000 (21:09 +0100)]
Merge vk-gl-cts/vulkan-cts-1.2.2 into vk-gl-cts/vulkan-cts-1.2.3

Change-Id: Iaa3c6741b9d7ad77eda048ec234c59e869263182

3 years agoMerge vk-gl-cts/vulkan-cts-1.2.1 into vk-gl-cts/vulkan-cts-1.2.2
Alexander Galazin [Wed, 18 Nov 2020 16:30:12 +0000 (17:30 +0100)]
Merge vk-gl-cts/vulkan-cts-1.2.1 into vk-gl-cts/vulkan-cts-1.2.2

Change-Id: I0ce2eae2a8a98a50d25e9e916dd0dde8e90e3288

3 years agoMerge vk-gl-cts/vulkan-cts-1.2.0 into vk-gl-cts/vulkan-cts-1.2.1
Alexander Galazin [Wed, 18 Nov 2020 16:29:36 +0000 (17:29 +0100)]
Merge vk-gl-cts/vulkan-cts-1.2.0 into vk-gl-cts/vulkan-cts-1.2.1

Change-Id: Ie6ac4a6779ee2dd624590df63f152f661c089223

3 years agoMerge vk-gl-cts/vulkan-cts-1.1.6 into vk-gl-cts/vulkan-cts-1.2.1
Alexander Galazin [Wed, 18 Nov 2020 16:29:36 +0000 (17:29 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.6 into vk-gl-cts/vulkan-cts-1.2.1

Change-Id: I8f4da52990ac1b7ae96414375e9bea652ddbc7d8

3 years agoMerge vk-gl-cts/vulkan-cts-1.1.5 into vk-gl-cts/vulkan-cts-1.1.6
Alexander Galazin [Wed, 18 Nov 2020 09:27:20 +0000 (10:27 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.5 into vk-gl-cts/vulkan-cts-1.1.6

Change-Id: Ie294402abe02966f55089430d9557b5f0bc80c5f

3 years agoMerge vk-gl-cts/vulkan-cts-1.1.5 into vk-gl-cts/vulkan-cts-1.2.0
Alexander Galazin [Wed, 18 Nov 2020 09:27:18 +0000 (10:27 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.5 into vk-gl-cts/vulkan-cts-1.2.0

Change-Id: Icda35a4b6ca926511422ec96c4675b9012973ef1

3 years agoMerge vk-gl-cts/opengl-es-cts-3.2.5 into vk-gl-cts/opengl-es-cts-3.2.6
Alexander Galazin [Wed, 18 Nov 2020 08:24:34 +0000 (09:24 +0100)]
Merge vk-gl-cts/opengl-es-cts-3.2.5 into vk-gl-cts/opengl-es-cts-3.2.6

Change-Id: Ie1cf28bfe3f8dcb9d0714472bb60dfc098811716

3 years agoAdd external memeory tests for the VK_EXT_device_memory_report extension
Yiwei Zhang [Thu, 11 Jun 2020 22:31:10 +0000 (15:31 -0700)]
Add external memeory tests for the VK_EXT_device_memory_report extension

This test allocates an exportable memory and grabs the native handle
from it, then it imports the native handle twice, and verifies that the
allocate/free events are still emitted for the exportable memory as well
as verifying the proper timing of import/unimport events and the
correctness of all the callback data.

Components: Vulkan

VK-GL-CTS issue: 2266

New tests: dEQP-VK.memory.device_memory_report.external_memory.*

Change-Id: I42c08f775224735f65ceb4f3c8a77ea43d3a7ed3

3 years agoEnable random writes for storage images
Ricardo Garcia [Fri, 9 Oct 2020 09:36:44 +0000 (11:36 +0200)]
Enable random writes for storage images

This commit enables random writes in the descriptor set random tests for
descriptors of type VK_DESCRIPTOR_TYPE_STORAGE_IMAGE.

Affected tests:
dEQP-VK.binding_model.descriptorset_random.*lowimgnotex*
dEQP-VK.binding_model.descriptorset_random.*lowimgsingletex*
dEQP-VK.binding_model.descriptorset_random.*storageimghigh*

Components: Vulkan
VK-GL-CTS issue: 1973

Change-Id: Ibf49692a72641ab6ca752048d71926eb975316e1

3 years agoFix depth/stencil image logging in renderpass tests
Ricardo Garcia [Thu, 5 Nov 2020 13:37:32 +0000 (14:37 +0100)]
Fix depth/stencil image logging in renderpass tests

Renderpass tests checking results in depth/stencil images containing
both depth and stencil aspects attempt to log the depth/stencil image
when the test fails (but not when the test passes).

When the logging facilities log those depth/stencil images, they convert
them to an image set with two images in order to separate the depth and
stencil views. If this image set is logged as part of another image set
in the log, the logging facilities fail an assertion because image sets
cannot contain other image sets.

Affected tests (only on failures for depth/stencil formats):
dEQP-VK.renderpass*.*allocation.simple.*
dEQP-VK.renderpass*.*allocation.formats.*
dEQP-VK.renderpass*.*allocation.attachment.*
dEQP-VK.renderpass*.*allocation.attachment_allocation.*
dEQP-VK.renderpass*.*allocation.attachment_write_mask.*

Components: Vulkan
VK-GL-CTS issue: 2642

Change-Id: I72ba603e3b42b34730f1f51234f0b6cd64f23da2

3 years agoFix initial layout of depth stencil attachment
ajerecze [Wed, 4 Nov 2020 10:11:08 +0000 (11:11 +0100)]
Fix initial layout of depth stencil attachment

This is a fix for regression introduced in 2e2e79bd.

The test was using the makeRenderpass utility from
framework/vulkan/vkObjUtil.cpp, however this utility was changed in 2e2e79bd to use
VK_IMAGE_LAYOUT_UNDEFINED as renderpass initial layout of depth stencil attachment,
while the image used in test is in VK_IMAGE_LAYOUT_UNDEFINED layout (not changed
since the image creation).

This commit changes dEQP-VK.imageless_framebuffer.depth_stencil to use makeRenderPass function
from vktImagelessFramebufferTests.cpp, rather than affected vkObjUtil.cpp utity.

(The makeRenderpass in vkObjUtil.cpp is shared with
dEQP-VK.pipeline.cache.graphics_tests.vertex_stage_fragment_stage test, which needed the change
from 2e2e79bd)

Component: Vulkan

VK-GL-CTS Issue: 2641

Affected tests:
dEQP-VK.imageless_framebuffer.depth_stencil

Change-Id: Id2ea5803cd010831db8f4f31b1d6b25dee051825

3 years agoFix tests dEQP-VK.draw.depth_clamp
Arkadiusz Sarwa [Fri, 30 Oct 2020 13:02:54 +0000 (14:02 +0100)]
Fix tests dEQP-VK.draw.depth_clamp

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

Components: Vulkan
VK-GL-CTS issue: 2638

Change-Id: I3dced361e7ea11f78bbea00a4609ebad73054d0e

3 years agoFix results-check for floating-point intermediate atomic operations
Liam Middlebrook [Fri, 23 Oct 2020 02:09:22 +0000 (19:09 -0700)]
Fix results-check for floating-point intermediate atomic operations

This commit fixes the results checking function for a set of tests that
verify atomic operations on floating-point formats. Previously when
compiled with GCC 4.8.4 the generated code would store incorrect values
into `resultValues[i]` rather than correctly interpreting the uint32_t
input data as a float and converting to a uint32_t before storing in
`resultValues[i]`.

Affects:
dEQP-VK.image.atomic_operations.add*r32f*
dEQP-VK.image.atomic_operations.exchange*r32f*

Components: Vulkan

VK-GL-CTS issue: 2632

Change-Id: I34e55d8ef109b5a14bda86d28821a0053c874546

3 years agoAvoid advertising disabled robustness2 features
Ricardo Garcia [Fri, 6 Nov 2020 12:14:27 +0000 (13:14 +0100)]
Avoid advertising disabled robustness2 features

Make sure getRobustness2FeaturesEXT does not advertise a feature as
enabled when, in fact, the feature has been disabled when creating the
default test device in the context. This is consistent with the behavior
that was in place for robustBufferAccess.

In addition, disable image robustness in the default device, to be
consistent with the existing behavior for robustness2 features and
robustBufferAccess.

This means robustness2 and image robustness tests needed to be modified
to stop relying on feature checks from the context, like using
getRobustness2FeaturesEXT, because those will now be reported as not
enabled. In other words, feature getters from the context report
features that are *enabled* on the default device, and not features that
are merely available.

In addition, make robustness2 and image robustness tests use separate
devices when enabling image robustness or robustness2 features, so as to
run image robustness tests without any robustness2 feature.

In addition, require and enable the scalar block layout feature, which
is used to compile every shader in this test group.

Affected tests:
dEQP-VK.robustness.robustness2.*
dEQP-VK.robustness.image_robustness.*

Components: Vulkan
VK-GL-CTS issue: 2634
VK-GL-CTS issue: 2643

Change-Id: I641c0f6f659a89bd12a36da175358d3edc2dfeae

3 years agoFix regressions in renderpass tests
Slawomir Cygan [Thu, 1 Oct 2020 14:14:14 +0000 (16:14 +0200)]
Fix regressions in renderpass tests

Regressions were introduced in 2e2e79bd:
- reintroduce 'shrink' loop in ALLOCATIONTYPE_GROW_SHRINK test type
- fix value VkDependencyFlags
- fix logic around checking and writing to "lastUseOfAttachment" variable
- add missing access flags to exisitng subpass dependencies

VK-GL-CTS Issue: 2605

Components: Vulkan

Affects: dEQP-VK.renderpass.suballocation.attachment_allocation.input_output.*

Change-Id: Ie19ac124340e40e529997ac67418a2531a4a0319

4 years agoTests for VK_KHR_shader_terminate_invocation
Alan Baker [Tue, 9 Jun 2020 19:18:31 +0000 (15:18 -0400)]
Tests for VK_KHR_shader_terminate_invocation

* Adds tests for the extension
* Adds more amber test feature checks

Components: Vulkan

VK-GL-CTS Issue: 2396

New Tests: dEQP-VK.spirv_assembly.instruction.terminate_invocation.*

Change-Id: I3ac8dfae88f2a4bd5ec03f8e3aa2b26097eb7190
(cherry picked from commit a00b458dc43edfd3ad1b93a181d3873aaca63f4b)

4 years agoMerge vk-gl-cts/opengl-es-cts-3.2.6 into vk-gl-cts/master
Alexander Galazin [Fri, 6 Nov 2020 11:29:19 +0000 (12:29 +0100)]
Merge vk-gl-cts/opengl-es-cts-3.2.6 into vk-gl-cts/master

Change-Id: I9c22545388a6bc7a6493bb1f7418536799c2ff57

4 years agoReset texture data to 0 after each 16 iterations to avoid overflow
Jianle Wang [Tue, 20 Oct 2020 02:31:48 +0000 (10:31 +0800)]
Reset texture data to 0 after each 16 iterations to avoid overflow

The default precision of int in the fragment shader is mediump. The fs_out_color
in GeometryShaderMaxCombinedTextureUnitsTest::m_fragment_shader_code_body will
overflow when the number of texture unit become large, since each texture data
is equal to index of the texture units.
So reset texture data to 0 after each 16 iterations to avoid the overflow.

Component: OpenGL

Affected tests: KHR-GLES31.core.geometry_shader.limits.max_combined_texture_units

VK-GL-CTS issue: 2622

Change-Id: Icc9f2ed77a5a1cf6f315605f5f1045a60a56396c
(cherry picked from commit ccb924af7b96ee3771ce25f6d31a0b243bbddee1)

4 years agoMerge vk-gl-cts/vulkan-cts-1.2.4 into vk-gl-cts/master
Alexander Galazin [Fri, 6 Nov 2020 09:33:37 +0000 (10:33 +0100)]
Merge vk-gl-cts/vulkan-cts-1.2.4 into vk-gl-cts/master

Change-Id: Ie044c7a20d5b6d4f303c2e88118295df3293eb5e

4 years agoframework: fix deinitSession when using waiver xml
Tapani Pälli [Tue, 27 Oct 2020 10:27:37 +0000 (12:27 +0200)]
framework: fix deinitSession when using waiver xml

Take numWaived in to account when considering if run was ok, patch also
add result.numWaived to the total number of tests, otherwise we hit
following assert when running with waiver:

cts-runner: glcTestRunner.cpp:829: Unknown function:
Assertion `result.numExecuted == result.numPassed + result.numFailed +
           result.numNotSupported + result.numWarnings' failed.

Components: Framework, OpenGL

VK-GL-CTS issue: 2631

Affects:
   cts-runner

Change-Id: Iac776fd1174e5461c455282cecca208f0322358d
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
4 years agoReset texture data to 0 after each 16 iterations to avoid overflow
Jianle Wang [Tue, 20 Oct 2020 02:31:48 +0000 (10:31 +0800)]
Reset texture data to 0 after each 16 iterations to avoid overflow

The default precision of int in the fragment shader is mediump. The fs_out_color
in GeometryShaderMaxCombinedTextureUnitsTest::m_fragment_shader_code_body will
overflow when the number of texture unit become large, since each texture data
is equal to index of the texture units.
So reset texture data to 0 after each 16 iterations to avoid the overflow.

Component: OpenGL

Affected tests: KHR-GLES31.core.geometry_shader.limits.max_combined_texture_units

VK-GL-CTS issue: 2622

Change-Id: Icc9f2ed77a5a1cf6f315605f5f1045a60a56396c

4 years agoUpdate Amber to fix Clang 11 build
Mika Väinölä [Mon, 26 Oct 2020 21:19:59 +0000 (23:19 +0200)]
Update Amber to fix Clang 11 build

Building Amber with Clang 11 failed due to -Werror and several
-Wsuggest-destructor-override warnings.

Affects: dEQP-VK.*

VK-GL-CTS issue: 2628

Change-Id: Ibae8dbc955d32bb50eb6f5c26cd62579bc6967dd

4 years agoFix multisample resolve compatibility tests
Ricardo Garcia [Fri, 30 Oct 2020 10:36:16 +0000 (11:36 +0100)]
Fix multisample resolve compatibility tests

Two render passes cannot be compatible if their multisample and resolve
attachments differ in the image format. However, the existing
multisample resolve compatibility tests break this rule.

Render pass compatibility rules do specify the attachment reference can
be different, and in particular this means one of the attachments can be
unused in one render pass and used in another. This fix takes advantage
of that to test render pass compatiblity.

Affected and new tests:
dEQP-VK.renderpass*.suballocation.multisample_resolve.*.compatibility_*

Components: Vulkan
VK-GL-CTS issue: 2629

Change-Id: I9a54f9a8ffc79f89d4b2dc2179b22acdba16aab5

4 years agoCreate debug report recorder earlier
Ricardo Garcia [Fri, 23 Oct 2020 10:18:22 +0000 (12:18 +0200)]
Create debug report recorder earlier

Change debug report recorder creation so it happens before the device is
created, so any error messages reported during device creation can be
properly reported.

This commit doesn't affect normal test runs, but it could be beneficial
to detect system setup problems.

Components: Vulkan
VK-GL-CTS issue: 2627

Change-Id: Iefe7c46e2a90673e8625a541f35fbfb35c1afd8d

4 years agoAdd tests for oob access in unexecuted shader paths
Mikko Tiusanen [Mon, 19 Oct 2020 15:03:50 +0000 (18:03 +0300)]
Add tests for oob access in unexecuted shader paths

Added tests for non-robust out of bounds buffer access in unexecuted
shader code paths.

New tests:

dEQP-VK.robustness.non_robust_buffer_access.*

Components: Vulkan

VK-GL-CTS issue: 2171

Change-Id: I43ec27225ed949964d1d9783745326ff7a4dd528

4 years agoAdd subpass self dependency test with a single attachment
Ari Suonpaa [Mon, 26 Oct 2020 06:03:05 +0000 (08:03 +0200)]
Add subpass self dependency test with a single attachment

This test replicates an issue seen in an app that behaves incorrectly
on a specific driver implementation. It uses a single attachment
referenced as both an input and an output. There is also alpha blending
enabled even though it has no effect in this particular test case.
This was needed to reproduce the original bug.

VK-GL-CTS Issue: 2597

New tests:

dEQP-VK.renderpass*.suballocation.subpass_dependencies.single_attachment.*

Components: Vulkan
Change-Id: Iaf79b3937dec4eebae1b6ad7ec035c1bdf05e811

4 years agoRe-enable cube.*.mag_filter.linear test
Alexander Galazin [Sat, 24 Oct 2020 08:37:17 +0000 (10:37 +0200)]
Re-enable cube.*.mag_filter.linear test

Should now work according to
https://gitlab.khronos.org/Tracker/vulkancts/-/issues/340#note_58553

Components: Vulkan
Affects: dEQP-VK.pipeline.sampler.view_type.cube.format.r5g6b5_unorm_pack16.mag_filter.linear

Change-Id: Iffca5cd79053d1e9874beb12c9fafd8edd1cb6a8

4 years agoAdd VkDeviceMemory tests for the VK_EXT_device_memory_report extension
Yiwei Zhang [Tue, 9 Jun 2020 04:01:09 +0000 (21:01 -0700)]
Add VkDeviceMemory tests for the VK_EXT_device_memory_report extension

This test allocates and frees VkDeviceMemory explicitly and verifies the
allocate/free/allocation_failed callback events are emitted at the
proper timing as well as verifying the correctness of the callback data.

Components: Vulkan

VK-GL-CTS issue: 2266

New tests: dEQP-VK.memory.device_memory_report.vk_device_memory.*

Change-Id: I96c7973452f512bf4d6f1c819bcf53eb0101b474