platform/upstream/VK-GL-CTS.git
2 years agoMerge pull request #276 from Ella-0/master
Alexander Galazin [Fri, 13 Aug 2021 07:30:29 +0000 (09:30 +0200)]
Merge pull request #276 from Ella-0/master

Test behaviour of color write enable with colorWriteMask

2 years agoAdd missing items to android cts mustpass list
Ilkka Saarelainen [Thu, 12 Aug 2021 05:06:20 +0000 (08:06 +0300)]
Add missing items to android cts mustpass list

Some tests were missing from Android vk-master-2021-03-01 test list.
This CL adds those tests to the list.

Components: Vulkan

VK-GL-CTS issue: 3050

Change-Id: I973508a169e70d203dd465e9f22c41405c1c24a7

2 years agoFix bug in compressed PixelStorageModes tests
SoroushIMG [Mon, 26 Jul 2021 13:36:56 +0000 (14:36 +0100)]
Fix bug in compressed PixelStorageModes tests

Compressed pixel storage modes are tested by using the extension
ARB_compressed_texture_pixel_storage.
ARB_compressed_texture_pixel_storage is a core extension since
OpenGL 4.2. Therefore, the cases testing this behaviour need to
check for its support in GL context versions before 4.2.
Without this check drivers that do not provide this extension,
will fail this test instead of being marked as not supported.
This CL adds the mentioned extension checking.

Affects:
KHR-GL33.pixelstoragemodes.compressedteximage2d.*
KHR-GL33.pixelstoragemodes.compressedteximage3d.*

Components: OpenGL

VK-GL-CTS issue: 3020

Change-Id: Ib9a4edeb57995582c07aa11c7db11c6e7bbe1984

2 years agoWork around bogus GCC 9 warnings
David Emett [Mon, 26 Jul 2021 16:33:03 +0000 (16:33 +0000)]
Work around bogus GCC 9 warnings

Bogus warning can be seen with this example:

   #include <stddef.h>

   long broken()
   {
      struct
      {
         long a, b;
      } value;
      for (size_t i = 0; i < sizeof(long); ++i)
      {
         ((char *)&value.a)[i] = (char)0xde;
         ((char *)&value.b)[i] = (char)0xde;
      }
      return value.b;
   }

Compiled with -O3 -Warray-bounds GCC 9 warns:

   In function 'long int broken()':
   cc1plus: warning: 'void* __builtin_memset(void*, int, long unsigned int)' offset [9, 16] from the object at 'value' is out of the bounds of referenced subobject 'broken()::<unnamed struct>::a' with type 'long int' at offset 0 [-Warray-bounds]

It looks like GCC is recognising the loop as two memsets, merging them,
then forgetting that it has done this.

It seems this can be worked around by just using memset rather than
implementing it manually, which is also simpler and produces better
code.

The example compiles without warning on GCC 10+ (you can try on
https://godbolt.org/), so presumably this bug has been fixed in later
versions of gcc.

Change-Id: I09799d6dd833b1fba8608cddaa36a32e555cf861

2 years agoFix a GraphicsFuzz coverage test
Antto Mäkinen [Mon, 2 Aug 2021 12:00:27 +0000 (15:00 +0300)]
Fix a GraphicsFuzz coverage test

This commit simplifies the result verification at the end of cov-apfloat-module-small-number.

Affects: dEQP-VK.graphicsfuzz.cov-apfloat-module-small-number

Components: Vulkan

VK-GL-CTS issue: 3035

Change-Id: Ia0e0347880cbddc2433cd3867c96a09645c5a35d

2 years agoAdded layered AHB EGL tests
Ari Suonpaa [Tue, 23 Mar 2021 05:45:48 +0000 (07:45 +0200)]
Added layered AHB EGL tests

Added new EGL image format tests for using Android Native
Hardware buffers with layers. They are mapped as 2D texture
arrays using EGL image API.

EGL internal test filter was also removed as the EGL AHB
tests are now using public Android API.

VK-GL-CTS Issue: 2671

New tests:

dEQP-EGL.functional.image.*android_native*

Components: EGL, Framework
Change-Id: I34a7560703bb06b75be276dc8ba5247c3763877a

2 years agoImprove buffer to buffer copy tests
Ricardo Garcia [Wed, 21 Jul 2021 10:33:51 +0000 (12:33 +0200)]
Improve buffer to buffer copy tests

Buffer to buffer copy tests were filling the source and destination
buffers with the same contents, using functions that were both used for
images and buffers.

When filling source buffers, a linear memory allocation of R32_UINT
elements was filled with color red, which resulted in all bytes
containing value 255.

When filling destination buffers, the same procedure was followed using
color white. However, due to R32_UINT only having one component, this
also resulted in every buffer byte containing value 255.

The copy operation that followed could fail (e.g. with the
implementation not doing anything) and the test could still pass. This
commit makes the destination buffer be filled with zeros so as to verify
regions are being interpreted correctly.

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

Components: Vulkan
VK-GL-CTS issue: 3008

Change-Id: I49e5ea5a4843540e57be22c67107db82b7903da2

2 years agoMerge vk-gl-cts/vulkan-cts-1.2.7 into vk-gl-cts/master
Alexander Galazin [Thu, 5 Aug 2021 08:29:18 +0000 (10:29 +0200)]
Merge vk-gl-cts/vulkan-cts-1.2.7 into vk-gl-cts/master

Change-Id: Ie8036c780cda38f67032afa000852326c57b7860

2 years agoMerge vk-gl-cts/vulkan-cts-1.2.6 into vk-gl-cts/vulkan-cts-1.2.7
Alexander Galazin [Thu, 5 Aug 2021 07:23:15 +0000 (09:23 +0200)]
Merge vk-gl-cts/vulkan-cts-1.2.6 into vk-gl-cts/vulkan-cts-1.2.7

Change-Id: I2ac7dec5e1cd15b13dec902ceeff581992d2678c

2 years agoTest multiview with VK_EXT_multi_draw
Ricardo Garcia [Thu, 15 Jul 2021 10:19:46 +0000 (12:19 +0200)]
Test multiview with VK_EXT_multi_draw

Add new VK_EXT_multi_draw test variants that check multi_draws together
with multiview.

New, affected and removed tests:
dEQP-VK.draw.multi_draw.*

Components: Vulkan
VK-GL-CTS issue: 2985

Change-Id: I0e2b36efa912629b3f6457913f3c3b6d9eeebfe8

2 years agoAdd sample mask test for FSR
Piotr Byszewski [Thu, 8 Jul 2021 15:37:09 +0000 (17:37 +0200)]
Add sample mask test for FSR

This change adds single test that uses pipelineFragmentShadingRate
with fragmentSize {2,2}, 4xMSAA and a sample mask of 0x9.
After drawing random triangles there is a check that samples are
written only to samples present in the sample mask.

VK-GL-CTS issue: 2397

Components: Vulkan

Affects:
dEQP-VK.fragment_shading_rate.misc_tests.*

Change-Id: I38bbddeb2f8d7e8aac1c3803b171ec5be2f0c21a

2 years agoFix transform_feedback.simple.multiquery* tests
Daniel Koch [Tue, 27 Jul 2021 21:14:02 +0000 (17:14 -0400)]
Fix transform_feedback.simple.multiquery* tests

Tests were using host query reset which may not be present pre-VK 1.2.
Change tests to use device query reset (there are other dedicated tests which test HOST_QUERY_RESET).

Components: Vulkan
VK-GL-CTS Issue: 2866

Affects:
dEQP-VK.transform_feedback.simple.multiquery*

Change-Id: Ib8c943a53542f4e21167f6afb0005200043477c6

2 years agoFix depth/stencil subpass dependencies in renderpass allocation tests
Connor Abbott [Mon, 26 Jul 2021 13:48:27 +0000 (15:48 +0200)]
Fix depth/stencil subpass dependencies in renderpass allocation tests

This seems like a copy/paste error, but the last subpass should have
VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT and the current subpass
should have VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT, analagous to
the color attachment case.

Affects:

dEQP-VK.renderpass.dedicated_allocation.attachment_allocation.input_output.*

Components: Vulkan

VK-GL-CTS Issue: 3019

Change-Id: I0f46316f9c5147d2391c6f0f2a37fb1e56420078

2 years agoRemove fallback and unify testing for image clearing tests
Vihanakangas [Fri, 28 May 2021 11:01:39 +0000 (14:01 +0300)]
Remove fallback and unify testing for image clearing tests

Image clearing tests were previously using render pass
to pre-clear an image. This commit removes the use of
render pass as a clearing method and instead uses a buffer
to clear the image.

Affects:

dEQP-VK.api.image_clearing.core.*

Components: Vulkan

VK-GL-CTS issue: 2604

Change-Id: I82b6ac6cb6f8a2d79e4f7ffa12abc636bc5a961a

2 years agoPortability: fix osx target
Piotr Byszewski [Tue, 3 Aug 2021 10:22:10 +0000 (12:22 +0200)]
Portability: fix osx target

Currently cts can be be build on MacOS using default target
this CL adds missing libraries also to osx target.

Components: Framework

VK-GL-CTS public issue: 277

Affects:
*

Change-Id: Ic890bea33bd90240e84dd71b985cf146a1a4df0c

2 years agoTest behaviour of color write enable with colorWriteMask
Ella Stanforth [Thu, 22 Jul 2021 11:35:39 +0000 (11:35 +0000)]
Test behaviour of color write enable with colorWriteMask

This commit adds new tests to test the interaction of color write enable and
color write mask.

New and affected tests:
dEQP-VK.pipeline.color_write_enable.*

Components: Vulkan
Reviewed-by: Ricardo Garcia <rgarcia@igalia.com>
2 years agoAdd more tests for YCbCr plane compatibility
Graeme Leese [Wed, 16 Jun 2021 15:47:04 +0000 (16:47 +0100)]
Add more tests for YCbCr plane compatibility

The only existing tests are using other UNORM formats, and a validation
layer change to allow compatible formats here has shown that this isn't
working properly on some drivers. This extends the tests that were added
as part of #1630 (CL 7356).

Components: Vulkan
VK-GL-CTS issue: 1630
New tests: dEQP-VK.ycbcr.plane_view.*_compatible_format_*int
Affects: dEQP-VK.ycbcr.plane_view.*_compatible_format_*

Change-Id: Ia14357fc8873566333ea888ef18a2155ffa6ef51

2 years agoRemove invalid reserved keywords tests
Graeme Leese [Wed, 7 Jul 2021 10:15:41 +0000 (11:15 +0100)]
Remove invalid reserved keywords tests

These identifiers are not listed as reserved in any spec that I can
find.

Components: OpenGLES
Removed Tests: dEQP-GLES3.functional.shaders.keywords.reserved_keywords.image*Shadow_*

Change-Id: I444d9a8a49d3dda7402faa50b79859aaef0ee690

2 years agoTest line stipple factor is ignored if not used
Ricardo Garcia [Tue, 20 Jul 2021 10:36:05 +0000 (12:36 +0200)]
Test line stipple factor is ignored if not used

This commit adds a few extra line test variants that check
lineStippleFactor in VkPipelineRasterizationLineStateCreateInfoEXT is
ignored when stippledLineEnable is false. The new tests use both zero
and a large number to check everything continues to work.

New tests:
dEQP-VK.rasterization.primitives.no_stipple.*factor_0
dEQP-VK.rasterization.primitives.no_stipple.*factor_large

Affected tests:
dEQP-VK.rasterization.primitives*

Components: Vulkan
VK-GL-CTS issue: 3009

Change-Id: I6e329e8572cb0bae043119553bd4ea8d5682f660

2 years agoTest zero-size unused specialization constants
Ricardo Garcia [Tue, 20 Jul 2021 14:20:50 +0000 (16:20 +0200)]
Test zero-size unused specialization constants

According to the spec for VkSpecializationMapEntry

> If a constantID value is not a specialization constant ID used in the
> shader, that map entry does not affect the behavior of the pipeline.

So it should be legal to use VkSpecializationMapEntry structures
indicating size zero for a given constant as long as the constant is not
used in the shaders.

This commits adds new test variants that verify implementations handle
such cases.

New tests:
dEQP-VK.pipeline.spec_constant.*.basic.*unused_*

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

Components: Vulkan
VK-GL-CTS issue: 3011

Change-Id: I2a8439368722e6caaa828fd91e061cfd5e2be61d

2 years agoFix build on CLang failing due to -Wunused-private-field
Sławomir Cygan [Thu, 22 Jul 2021 14:51:11 +0000 (16:51 +0200)]
Fix build on CLang failing due to -Wunused-private-field

Dereference a member uses only in Debug builds.

VK-GL-CTS Issue: 3013
Components: Vulkan

Change-Id: I7a607328bf033b24c1bba877f78c3fa4fd24e9e1

2 years agoSwiftShader script improvements
Vihanakangas [Thu, 10 Jun 2021 12:39:02 +0000 (15:39 +0300)]
SwiftShader script improvements

This commit applies varying fixes proposed in the issue.

VK-GL-CTS issue: 2956

Change-Id: I6f73bea9f5ab875b8d40990649fb1f9d9a2d603d

2 years agoMerge vk-gl-cts/vulkan-cts-1.2.7 into vk-gl-cts/master
Alexander Galazin [Wed, 28 Jul 2021 06:54:34 +0000 (08:54 +0200)]
Merge vk-gl-cts/vulkan-cts-1.2.7 into vk-gl-cts/master

Change-Id: I4bf831e86123de179132f435a7c7bf838d0c89d3

2 years agoUpdate glslang, SPIR-V Tools, headers
Alexander Galazin [Tue, 27 Jul 2021 18:59:06 +0000 (20:59 +0200)]
Update glslang, SPIR-V Tools, headers

Components: Framework

Change-Id: Ie259277466b22ba816843c362da272a4284fcb93

2 years agoAdd tests for VK_EXT_shader_atomic_float2
Jason Ekstrand [Wed, 26 Aug 2020 22:47:24 +0000 (17:47 -0500)]
Add tests for VK_EXT_shader_atomic_float2

New tests:
dEQP-VK.glsl.atomic_operations.*float16*
dEQP-VK.glsl.atomic_operations.min_float*
dEQP-VK.glsl.atomic_operations.max_float*
dEQP-VK.image.atomic_operations.min*r32f*
dEQP-VK.image.atomic_operations.max*r32f*

Affects:

dEQP-VK.glsl.atomic_operations.*float*
dEQP-VK.image.atomic_operations.add*r32f*
dEQP-VK.image.atomic_operations.exchange*r32f*

Components: Vulkan

VK-GL-CTS issue: 2566

Change-Id: I7462cc74e799c2245407220fa9db7e5b659f86f4
(cherry picked from commit ca4e5aff66bccbbe88935c10e2c55a3147c1fc03)

2 years agoTests for VK_KHR_present_id and VK_KHR_present_wait
Ricardo Garcia [Mon, 19 Apr 2021 13:56:11 +0000 (15:56 +0200)]
Tests for VK_KHR_present_id and VK_KHR_present_wait

Add tests for VK_KHR_present_id and VK_KHR_present_wait. This commit
also refactors some code so it can be reused in several places, hence
marking all WSI tests as affected.

Affected tests:
dEQP-VK.info.device_mandatory_features
dEQP-VK.wsi.*

New tests:
dEQP-VK.wsi.*.present_id_wait.*

Components: Vulkan
VK-GL-CTS issue: 2098
VK-GL-CTS issue: 2099

Change-Id: I1c95fbf031d651773a9fff1c10a23038d73f6e53
(cherry picked from commit 8bf210fd592883b3adebb57c3d6cc49188d1758e)

2 years agoUpdate Vulkan headers
Alexander Galazin [Tue, 27 Jul 2021 10:57:27 +0000 (12:57 +0200)]
Update Vulkan headers

Components: Vulkan

Change-Id: Id59fb9125cac9068d68a8e5f219c3dc53a093ad0

2 years agoMerge vk-gl-cts/vulkan-cts-1.2.6 into vk-gl-cts/vulkan-cts-1.2.7
Alexander Galazin [Tue, 27 Jul 2021 14:12:00 +0000 (16:12 +0200)]
Merge vk-gl-cts/vulkan-cts-1.2.6 into vk-gl-cts/vulkan-cts-1.2.7

Change-Id: I8f8c8aba438300565a896d21d27c2892eef477df

2 years agoMerge vk-gl-cts/vulkan-cts-1.2.5 into vk-gl-cts/vulkan-cts-1.2.6
Alexander Galazin [Tue, 27 Jul 2021 11:34:05 +0000 (13:34 +0200)]
Merge vk-gl-cts/vulkan-cts-1.2.5 into vk-gl-cts/vulkan-cts-1.2.6

Change-Id: I1e865999cbff46e84b9045400eb2dde830296094

2 years agoMerge vk-gl-cts/vulkan-cts-1.2.4 into vk-gl-cts/vulkan-cts-1.2.5
Alexander Galazin [Tue, 27 Jul 2021 10:25:19 +0000 (12:25 +0200)]
Merge vk-gl-cts/vulkan-cts-1.2.4 into vk-gl-cts/vulkan-cts-1.2.5

Change-Id: I22fcd718aadfed74408323615cc4bf58618d979a

2 years agoMerge vk-gl-cts/vulkan-cts-1.2.3 into vk-gl-cts/vulkan-cts-1.2.4
Alexander Galazin [Tue, 27 Jul 2021 09:29:33 +0000 (11:29 +0200)]
Merge vk-gl-cts/vulkan-cts-1.2.3 into vk-gl-cts/vulkan-cts-1.2.4

Change-Id: If23bb885846d42651d7ac77b375b6c44ea02fa93

2 years agoMerge vk-gl-cts/vulkan-cts-1.2.2 into vk-gl-cts/vulkan-cts-1.2.3
Alexander Galazin [Tue, 27 Jul 2021 08:01:37 +0000 (10:01 +0200)]
Merge vk-gl-cts/vulkan-cts-1.2.2 into vk-gl-cts/vulkan-cts-1.2.3

Change-Id: If1bb9f63d56815c3ced2ac72d17d4e55ec090f39

2 years agoFix early destruction of VkPipelineLayout
Samuel Iglesias Gonsálvez [Thu, 15 Jul 2021 10:15:09 +0000 (12:15 +0200)]
Fix early destruction of VkPipelineLayout

Components: Vulkan
VK-GL-CTS issue: 3004

Affected:

    dEQP-VK.sparse_resources.shader_intrinsics.*

Change-Id: Id5508fac89961c5bb934005257d2caa26d32f2dd
Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
2 years agoFix validation errors in AHB tests
Ari Suonpaa [Wed, 9 Sep 2020 11:27:26 +0000 (14:27 +0300)]
Fix validation errors in AHB tests

AHB protected memory tests were also removed as the test
tried to use protected memory without creating a device
and queue that would support protected operations.

VK-GL-CTS Issue: 2508

Affects:

dEQP-VK.api.external.memory.android_hardware_buffer.*

Components: Vulkan
Change-Id: I307e7450d06d20b6497f2a529e5724ae0538e5a9

2 years agoClean ExternalMemoryUtil
Piotr Byszewski [Thu, 9 Apr 2020 11:41:09 +0000 (13:41 +0200)]
Clean ExternalMemoryUtil

This change separates choosing of memory type from
allocateExportableMemory utility function. This makes
use of this functions more clear.
Previous implementation needed to be done ASAP and
involved passing of non-const reference to
allocateExportableMemory which was then filled.
This workaround made code unnecessarily hard to follow.

Components: Vulkan

VK-GL-CTS issue: 587

Affects:
dEQP-VK.api.external.memory.*
dEQP-VK.synchronization.signal_order.*
dEQP-VK.synchronization.cross_instance.*

Change-Id: I781388db390f13c7c03785dd0ae34ae0128ec31c

2 years agoFix uninitialized local variables in generated shader.
Jin Zhou [Thu, 17 Jun 2021 02:11:46 +0000 (22:11 -0400)]
Fix uninitialized local variables in generated shader.

There is uninitialized variable which is used as texture sampler's
coordinate. The behavior is undefined according to spec.

Affects:

dEQP-GLES3.functional.shaders.random.*

Components: Framework, OpenGL
VK-GL-CTS issue: 2972

Change-Id: I3e68a1a2158d248b24c927c481ecba4001496b3f

2 years agoFix most dEQP-VK.sparse_resources.shader_intrinsics.* validation errors
Samuel Iglesias Gonsálvez [Fri, 16 Jul 2021 08:28:02 +0000 (10:28 +0200)]
Fix most dEQP-VK.sparse_resources.shader_intrinsics.* validation errors

The majority of the validation errors were due to creating sparse
images before the derived class had the opportunity to check
the feature support of the format for the respective tests.

Change it to check that before anything else.

Components: Vulkan
VK-GL-CTS issue: 3006

Affected:

   dEQP-VK.sparse_resources.shader_intrinsics.*

Change-Id: I37308d4a2650cf5cc45ecbffb86a934e6fd182cc
Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
2 years agoAdditional dynamic depth bias tests
Ricardo Garcia [Mon, 12 Jul 2021 14:02:41 +0000 (16:02 +0200)]
Additional dynamic depth bias tests

Additional tests to make sure the depth bias dynamic state is not
ignored and works properly, also when used in conjunction with the
dynamic depth bias enable state.

New tests:
dEQP-VK.dynamic_state.rs_state.nonzero_depth_bias*
dEQP-VK.pipeline.extended_dynamic_state.*dynamic_bias_params

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

Components: Vulkan
VK-GL-CTS issue: 2965

Change-Id: Ic2b4428d112547ca054161728b8e1d403f6394b4

2 years agoTest VK_EXT_multi_draw with geometry and tessellation shaders
Ricardo Garcia [Tue, 13 Jul 2021 14:14:51 +0000 (16:14 +0200)]
Test VK_EXT_multi_draw with geometry and tessellation shaders

This commit adds new VK_EXT_multi_draw test variants that use geometry
and tessellation shaders in the pipeline to make sure they do not break
with VK_EXT_multi_draw.

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

Components: Vulkan
VK-GL-CTS issue: 3000

Change-Id: Idfaa6e49895c9d94e484c89d7097af9599b4ed51

2 years agoRemove unused test cases from gen-keywords script
Graeme Leese [Wed, 7 Jul 2021 10:41:34 +0000 (11:41 +0100)]
Remove unused test cases from gen-keywords script

The script generated test cases for double underscore in identifiers,
but they were not included in the checked-in copy of the generated
output. The tests appear incorrect, so remove them from the script.

Components: OpenGLES
Affects: None

Change-Id: If301f22afac06a147f1ff58156bcf0ea4cb3b037

2 years agoTest dynamic vertex stride of 0.
Hans-Kristian Arntzen [Tue, 6 Jul 2021 10:01:04 +0000 (12:01 +0200)]
Test dynamic vertex stride of 0.

Goes beyond existing specification and tests if we can use stride 0 as
well.

Components: Vulkan
Vulkan issue: 2742

Added tests:

   dEQP-VK.pipeline.extended_dynamic_state.*.zero_stride_with_offset

Change-Id: I4838b60321f27dd4b4546b1e42ed2f6043aec5c1

2 years agoAdd Image Store tests to BGRA images
Graeme Leese [Tue, 6 Jul 2021 13:50:30 +0000 (14:50 +0100)]
Add Image Store tests to BGRA images

These are said to be an important usecase for storage without format but
they're not currently tested. Add tests for these formtas. Only store
tests are currently supported because of limitations in the underlying
test structure.

Components: Vulkan
New tests: dEQP-VK.image.store.without_format.*.b8g8r8a8_*
           dEQP-VK.image.format_reinterpret.*.b8g8r8a8_*

Change-Id: I243a14681b262941d95e08e0b5a87ca9ccee9d43

2 years agoTest fragment shading rate limits and rates
Piotr Byszewski [Mon, 28 Jun 2021 13:54:48 +0000 (15:54 +0200)]
Test fragment shading rate limits and rates

This change verifies all limits for VK_KHR_fragment_shading_rate
and tests vkGetPhysicalDeviceFragmentShadingRatesKHR.

VK-GL-CTS issue: 2397

Components: Vulkan

Affects:
dEQP-VK.fragment_shading_rate.misc.*

Change-Id: I81332ec819009817b1ca0580058617bbc07a53e2

2 years agoAdd more test related to early fragment tests
Samuel Iglesias Gonsálvez [Tue, 15 Jun 2021 11:19:12 +0000 (13:19 +0200)]
Add more test related to early fragment tests

- Added tests for EarlyFragmentTest followed by a shader which
  discards. Then check that depth buffer is updated but the color
  buffer and other outputs are not.

- Added tests that write to gl_SampleMask and checked that do not affect
  the depth values written to the depth buffer.

Components: Vulkan
VK-GL-CTS issue: 2968

Added tests:

   dEQP-VK.fragment_operations.early_fragment.discard*
   dEQP-VK.fragment_operations.early_fragment.samplemask*

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

2 years agoRemove replacement of bool32
Alexander Galazin [Fri, 16 Jul 2021 10:55:30 +0000 (12:55 +0200)]
Remove replacement of bool32

Components: Vulkan

VK-GL-CTS issue: 2963

Affects: none

Change-Id: I4ccb580ba8b142e6425373d1395443ac747172f1

2 years agoReplace DWORD with uint32_t
Alexander Galazin [Fri, 16 Jul 2021 09:54:16 +0000 (11:54 +0200)]
Replace DWORD with uint32_t

This change replaces DWORD with uint32_t instead of deUint32

Components: Vulkan

Affects: dEQP-VK.api.*create_win32*

VK-GL-CTS issue: 2963

Change-Id: I32e958863508e4641f769feebd450c25bfc95492

2 years agoFix early destruction of VkPipelineLayout
Samuel Iglesias Gonsálvez [Thu, 15 Jul 2021 10:15:09 +0000 (12:15 +0200)]
Fix early destruction of VkPipelineLayout

Components: Vulkan
VK-GL-CTS issue: 3004

Affected:

    dEQP-VK.sparse_resources.shader_intrinsics.*

Change-Id: Id5508fac89961c5bb934005257d2caa26d32f2dd
Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
2 years agoReorder vulkan enum elements
Mikko Tiusanen [Fri, 9 Jul 2021 12:28:20 +0000 (15:28 +0300)]
Reorder vulkan enum elements

Reorders lines in linear vulkan enums so that *_LAST is placed
after all unique values, followed by equivalence enums and
*_MAX_VALUE (last).

VK-GL-CTS issue: 2684
Components: Vulkan

Change-Id: I129a0b0afe3574a91ccc860ed6ea8de27671f9ff

2 years agoMerge vk-gl-cts/vulkan-cts-1.2.7 into vk-gl-cts/master
Alexander Galazin [Mon, 19 Jul 2021 13:25:26 +0000 (15:25 +0200)]
Merge vk-gl-cts/vulkan-cts-1.2.7 into vk-gl-cts/master

Change-Id: I97026a16399e415525246d8f9a0be895f2d101be

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

This change replaces deUintptr with uintptr_t
in the framework files

Components: Vulkan

Affects: dEQP-VK.*

VK-GL-CTS issue: 2963

Change-Id: Ic9bc75782e4b8825030044459b5ff90f78711eb3

2 years agoChange initializer for array of structures to avoid GCC bug
Liam Middlebrook [Fri, 9 Jul 2021 17:38:28 +0000 (10:38 -0700)]
Change initializer for array of structures to avoid GCC bug

Works around the following gcc 4.8.4 internal compiler error:

    vktReconvergenceTests.cpp:1169:35: internal compiler error: in gimplify_init_constructor, at gimplify.c:4271
       SubgroupState stateStack[10] = {};

Components: Vulkan
Affected tests: dEQP-VK.reconvergence.*
VK-GL-CTS issue: 3001

Change-Id: I42ec5aa978351f84ad41aae4af9f4977d3263461

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.6 into vk-gl-cts/vulkan-cts-1.2.7
Alexander Galazin [Fri, 16 Jul 2021 08:55:49 +0000 (10:55 +0200)]
Merge vk-gl-cts/vulkan-cts-1.2.6 into vk-gl-cts/vulkan-cts-1.2.7

Change-Id: I3e12f2ef494b16c16e6aa957c99c543a057a7003

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 agoMerge vk-gl-cts/vulkan-cts-1.2.5 into vk-gl-cts/vulkan-cts-1.2.6
Alexander Galazin [Fri, 16 Jul 2021 07:01:36 +0000 (09:01 +0200)]
Merge vk-gl-cts/vulkan-cts-1.2.5 into vk-gl-cts/vulkan-cts-1.2.6

Change-Id: I73e4fbe8f154f15a77498121181c6a48028203fe

2 years agoRemove tests with too many overlapping instances in the accelleration structure
Sławomir Cygan [Thu, 15 Jul 2021 13:22:26 +0000 (15:22 +0200)]
Remove tests with too many overlapping instances in the accelleration structure

These tests generate a grid of random triangles and assign them to the large
number of instances in the acceleration structure. Because of the randomness,
all instances overlap with each other and the accelleration structure is extremely
slow to trace - as each ray must traverse through all instances.

This change removes some tests cases with 65536 instances and tests cases with
1048576 instances to avoid device timeouts.

The tests apply only to implementations with host accelleration structure builds
supported.

Components: Vulkan

VK-GL-CTS Issue: 3005

Change-Id: I94bcde596cd097672cf8e00c6fe018328998cb37
Affects: dEQP-VK.ray_tracing_pipeline.build.*

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)