platform/upstream/VK-GL-CTS.git
3 years agoMerge vk-gl-cts/opengl-es-cts-3.2.6 into vk-gl-cts/opengl-es-cts-3.2.7
Alexander Galazin [Thu, 21 Jan 2021 17:42:48 +0000 (18:42 +0100)]
Merge vk-gl-cts/opengl-es-cts-3.2.6 into vk-gl-cts/opengl-es-cts-3.2.7

Change-Id: Ia83b57c0167a3375941b011fdfee5a4ad87b2a23

3 years agoThreshold Consistency for ES2 FBO Tests
Kyle Griffiths [Thu, 7 Jan 2021 11:38:11 +0000 (11:38 +0000)]
Threshold Consistency for ES2 FBO Tests

ES3 and 3.1 tests both use the same fuzzycompare threshold value
for their FBO tests, whereas ES2 uses a smaller value despite
having the same coarse formats that require the high threshold.

This change adjusts the ES2 FBO Render Test threshold to match
the value set for ES3 and ES3.1

Affects:

dEQP-GLES2.functional.fbo.render.*

Components: GLES2

VK-GL-CTS Issue: 2715

Change-Id: I15203e1ecf45081ec27baee59b780c5bdf5aacaf
(cherry picked from commit 34d1a2e19b9e12b6413fe61d8dc4ee752c6053e4)

3 years agoMerge vk-gl-cts/opengl-es-cts-3.2.6 into vk-gl-cts/opengl-es-cts-3.2.7
Alexander Galazin [Thu, 21 Jan 2021 10:06:32 +0000 (11:06 +0100)]
Merge vk-gl-cts/opengl-es-cts-3.2.6 into vk-gl-cts/opengl-es-cts-3.2.7

Change-Id: If73591d2f5f70df124f2e49560acaf767da9af0e

3 years agoFix ReadPixels format
Cheryl Wei [Mon, 4 Jan 2021 07:23:46 +0000 (15:23 +0800)]
Fix ReadPixels format

Pass implementation format to ReadPixels when pixel format is 8,8,8,0
because some implementations treat RGB8 as RGBA8888 which causes these
tests to fail.

Affected tests:
KHR-GLES3.core.nearest_edge.offset_*
KHR-GLES31.core.nearest_edge.offset_*

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

Change-Id: I6ce92f19d2e329c75ca5fc6800092af623e25829
(cherry picked from commit 780408248fd9e84162f7f6ccf94677952ab0d0da)

3 years agoFix sync problems in conditional_rendering.draw_clear tests
Ricardo Garcia [Wed, 16 Dec 2020 11:06:59 +0000 (12:06 +0100)]
Fix sync problems in conditional_rendering.draw_clear tests

* Invalidate results buffer allocations before attempting to read data.

* Fix synchronization of m_conditionalRenderingBuffer instead of
  m_resultBuffer before verifying its contents.

* Check for vertexPipelineStoresAndAtomics when needed.

* Split update_with_rendering tests in two render passes so
  buffer synchronization works properly and passes validation.

Affected tests:
dEQP-VK.conditional_rendering.draw_clear.*

Components: Vulkan
VK-GL-CTS issue: 2703

Change-Id: I2ae26e19e37c323bdbf94cade419fe5be3ed4f5c

3 years agoDon't access arrays out-of-bounds in robustness2 tests
Connor Abbott [Thu, 3 Dec 2020 14:05:30 +0000 (15:05 +0100)]
Don't access arrays out-of-bounds in robustness2 tests

The SPIR-V spec says that indexing a pointer to an array with an
out-of-bounds index leads to undefined behavior. While
VK_EXT_robustness2 allows you to access outside the range of the
underlying descriptor, it doesn't change this fact, so we should be
careful to only access inside of the shader-declared array when testing
UBO's. For SSBO's we switch to using an unsized array to keep test
coverage of negative indices.

Affects:
dEQP-VK.robustness.robustness2.*

VK-GL-CTS Issue: 2649
Components: Vulkan

Change-Id: I60a4b80749278f4d81defdbe2abe116a1dcfa159

3 years agopipeline statistics test: Fix compute shader setup in !GL4.3 case.
Eric Anholt [Fri, 11 Dec 2020 20:17:44 +0000 (12:17 -0800)]
pipeline statistics test: Fix compute shader setup in !GL4.3 case.

The ARB_compute_shader spec states a requirement for GL4.2/GLSL 4.20
or better, but we were using "#version 430" regardless, causing a
compile failure on older versions.  Add a variant of the shader using
the ARB_compute_shader extension instead.

I picked GLSL 330 for the variant because the test is included in the
GL 3.3 test set, and Mesa's softpipe driver exposes ARB_compute_shader
on GL 3.3 -- the GLSL requirement in the spec seems to be more than is
actually necessary for compute shaders, assuming you have
ARB_shader_image_load_store and such as well.  Since we're doing this
pre-4.2, we have to add the dependency on ARB_shader_atomic_counters
as well.

VK-GL-CTS Issue: 2694
Components: OpenGL
Affects: KHR-GL33.pipeline_statistics_query_tests_ARB.functional_compute_shader_invocations

Change-Id: If37e0e10bed86281d07aed67394075844e88003d

3 years agoClarify depth/stencil resolve write access sync
Ricardo Garcia [Thu, 17 Dec 2020 10:42:00 +0000 (11:42 +0100)]
Clarify depth/stencil resolve write access sync

Add a comment reinforcing depth/stencil resolve operations need to be
synchronized using VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT despite sounding
counterintuitive, dispelling doubts about test correctness.

Change-Id: Ie5539c6e49ec61fab060ac9ef58dca73c1c2159c

3 years agoSupport GL 4.5 in the texture test utils
Alexander Galazin [Mon, 14 Dec 2020 12:37:20 +0000 (13:37 +0100)]
Support GL 4.5 in the texture test utils

Components: AOSP

Affects:
dEQP-GLES3*.functional.*

Change-Id: I7c22694d829a4aa982e2def4b0be1290f86293bb

3 years agoSupport GL 4.5 in the blend_equation_advanced tests
Alexander Galazin [Tue, 15 Dec 2020 08:20:04 +0000 (09:20 +0100)]
Support GL 4.5 in the blend_equation_advanced tests

Affects:
dEQP-GLES3*.functional.blend_equation_advanced

Components: Framework

Change-Id: I62ecf395c7b193dd118d8bebab1ba476b86b22b8

3 years agoSupport GL 4.5 in the 'negative' tests
Alexander Galazin [Mon, 14 Dec 2020 16:37:13 +0000 (17:37 +0100)]
Support GL 4.5 in the 'negative' tests

Affects:
dEQP-GLES3*.functional.*.negative.*

Components: AOSP

Change-Id: I7c58f9151e162769742d75a043d9f5202e72ed14

3 years agoSupport GL 4.5 in geometry/tesselation shader tests
Alexander Galazin [Mon, 14 Dec 2020 13:31:20 +0000 (14:31 +0100)]
Support GL 4.5 in geometry/tesselation shader tests

Components: AOSP

Affects:
dEQP-GLES3*.functional.shaders.*

Change-Id: Ia97075a0ad973307bc7b04d15e7efda0996c31e2

3 years agoSupport GL 4.5 context in the precision and draw tests
Alexander Galazin [Mon, 14 Dec 2020 11:51:26 +0000 (12:51 +0100)]
Support GL 4.5 context in the precision and draw tests

Affects:
dEQP-GLES3*.functional.shaders.builtin_functions.precision.*
dEQP-GLES3*.functional.draw_base_vertex.*

Components: AOSP

Change-Id: I8539b5b31bdbf206d89ef3dc1f74917f655a266b

3 years agoFirst steps towards running ES3.1 functional tests on GL4.5 drivers
Alexander Galazin [Mon, 14 Dec 2020 08:16:53 +0000 (09:16 +0100)]
First steps towards running ES3.1 functional tests on GL4.5 drivers

This commit creates a minimal necessary infastrcuture, e.g. the
package files, but doesn't make any functional changes to the tests.

Components: AOSP, OpenGL

Affects: dEQP-GLES31.*

Change-Id: I22c91224459d390377cdd6fbfc534522d958eb58

3 years agoMerge vk-gl-cts/vulkan-cts-1.2.5 into vk-gl-cts/master
Alexander Galazin [Sat, 19 Dec 2020 09:30:15 +0000 (10:30 +0100)]
Merge vk-gl-cts/vulkan-cts-1.2.5 into vk-gl-cts/master

Change-Id: Iad7afe96f143985ee22ed08108ea3d3565a5915f

3 years agoMerge vk-gl-cts/vulkan-cts-1.2.4 into vk-gl-cts/vulkan-cts-1.2.5
Alexander Galazin [Fri, 18 Dec 2020 16:43:18 +0000 (17:43 +0100)]
Merge vk-gl-cts/vulkan-cts-1.2.4 into vk-gl-cts/vulkan-cts-1.2.5

Change-Id: Icb5e7e25ae6236ae1fd13216514d4a414dfaed44

3 years agoMerge vk-gl-cts/vulkan-cts-1.2.3 into vk-gl-cts/vulkan-cts-1.2.4
Alexander Galazin [Fri, 18 Dec 2020 09:48:33 +0000 (10:48 +0100)]
Merge vk-gl-cts/vulkan-cts-1.2.3 into vk-gl-cts/vulkan-cts-1.2.4

Change-Id: Ie4a7bdf8b1e7b9579112a21a4dbefec8dd20687a

3 years agoRaise min CMake version to 3.10.2
Alexander Galazin [Fri, 1 Nov 2019 11:05:43 +0000 (12:05 +0100)]
Raise min CMake version to 3.10.2

Components: AOSP, Vulkan, OpenGL

Change-Id: I970fc57d8069d87269660b2ccef9df035e524693

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

Change-Id: Ib199c6c60ed14c4549a90ad19dcb20a7a5ad1a27

3 years agoFix Renderpass storeOp synchronization hazards
Jeremy Gebben [Thu, 10 Dec 2020 20:20:09 +0000 (13:20 -0700)]
Fix Renderpass storeOp synchronization hazards

Several multisample test groups create Renderpasses where the
first subpass writes to a color attachment, followed by N
subpasses that use the same attachment as an input attachment.

The spec says: "The store operation for each sample in an attachment
happens-after any recorded command which accesses the sample in
the last subpass where the attachment is used."

To avoid SYNC-HAZARD-WRITE-RACING-WRITE or SYNC-HAZARD-WRITE-RACING-READ
errors, the Nth subpass must depend on all prior subpasses.

VK-GL-CTS Issue: 2700

Affects Tests:
dEQP-VK.pipeline.multisample.min_sample_shading.*
dEQP-VK.pipeline.multisample_shader_builtin.*
dEQP-VK.renderpass.suballocation.multisample.*
dEQP-VK.renderpass2.suballocation.multisample.*

Components: Vulkan

Change-Id: I48c1ad2c1f05010ac31e45c513e1d4920216fe52

3 years agoFix back-to-back transfer command synchronization hazards
Jeremy Gebben [Wed, 9 Dec 2020 15:12:25 +0000 (08:12 -0700)]
Fix back-to-back transfer command synchronization hazards

If 2 transfer commands use the same memory, they need a pipeline barrier
between them.

VK-GL-CTS Issue: 2693

Affects Tests:
dEQP-VK.api.image_clearing.core.clear_depth_stencil_image.remaining_array_layers_twostep.*
dEQP-VK.pipeline.timestamp.transfer_tests.*
dEQP-VK.ycbcr.copy_dimensions.*

Components: Vulkan

Change-Id: I91bf74c63275f6e3dd6c383f59d1f4e9c1aa0982

3 years agoSimplify code for subgroup builtin mask tests
Graeme Leese [Thu, 10 Dec 2020 11:49:36 +0000 (11:49 +0000)]
Simplify code for subgroup builtin mask tests

A lot of code was being duplicated, which is now shared. The shaders
were calculating bitCount by looping over the bits, which is less
efficient than using the intrinsic.

The new code is shorter and should be easier to understand and faster to
execute, but there is no functional change.

Components: Vulkan
Affects: dEQP-VK.subgroups.builtin_mask_var.*

Change-Id: I6ef0d607423aa5cccce17aefeaac8cc1055ec488

3 years agoFix end of Renderpass synchronization hazards
Jeremy Gebben [Wed, 9 Dec 2020 20:38:13 +0000 (13:38 -0700)]
Fix end of Renderpass synchronization hazards

The implicit subpass dependency at the end of a renderpass has
dstStageMask set to VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT, which
prevents forming a dependency chain with specific pipeline stages.

To synchronize commands with vkCmdEndRenderPass, use either an
explict external subpass dependency or a pipeline barrier with
srcStageMask set to VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT.

VK-GL-CTS Issue: 2695

Affected tests:

dEQP-VK.pipeline.multisample.sample_locations_ext.*
dEQP-VK.renderpass.suballocation.attachment_sparse_filling.*
dEQP-VK.renderpass.suballocation.subpass_dependencies.*
dEQP-VK.renderpass2.suballocation.attachment_sparse_filling.*
dEQP-VK.renderpass2.suballocation.subpass_dependencies.*

Components: Vulkan

Change-Id: I1b33c128dfdc54705f953f044db9acf1ff6e63e9

3 years agoFix additional RenderPass loadOp/stencilLoadOp sync hazards.
Jeremy Gebben [Mon, 7 Dec 2020 21:06:48 +0000 (14:06 -0700)]
Fix additional RenderPass loadOp/stencilLoadOp sync hazards.

Make sure test cases that use VK_LOAD_OP_LOAD have a barrier
with VK_ACCESS_INPUT_ATTACHMENT_READ_BIT or
VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT in the dstAccessMask
before the RenderPass.

VK-GL-CTS Issue: 2690

Affected tests:
dEQP-VK.conditional_rendering.draw_clear.*
dEQP-VK.dynamic_state.ds_state.*
dEQP-VK.pipeline.framebuffer_attachment.*
dEQP-VK.descriptor_indexing.*

Components: Vulkan

Change-Id: I8e6df6f6aa3f63c5ad6b7396d5d395d12ad52201

3 years agoFix RenderPass stencilLoadOp synchronization hazards.
Jeremy Gebben [Thu, 5 Nov 2020 00:12:27 +0000 (17:12 -0700)]
Fix RenderPass stencilLoadOp synchronization hazards.

Fix synchronization validation errors similar to:

"vkCmdBeginRenderPass: Hazard READ_AFTER_WRITE in subpass 0 for
attachment 1 aspect depth during load with loadOp VK_ATTACHMENT_LOAD_OP_LOAD.

Access info (usage: SYNC_EARLY_FRAGMENT_TESTS_DEPTH_STENCIL_ATTACHMENT_READ,
prior_usage: SYNC_IMAGE_LAYOUT_TRANSITION, write_barriers: ...)"

Load operations for attachments with a depth/stencil format execute in
the VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT pipeline stage.

LOAD_OP_LOAD requires VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT.

VK-GL-CTS Issue: 2690

Affected tests:
dEQP-VK.dynamic_state.rs_state.*
dEQP-VK.geometry.layered.*
dEQP-VK.multiview.renderpass2.depth.*

Components: Vulkan

Change-Id: I9400a50b4ed4c34cc879d1d062ac72d7ae770662

3 years agoFix RenderPass loadOp synchronization hazards.
Jeremy Gebben [Tue, 3 Nov 2020 16:18:14 +0000 (09:18 -0700)]
Fix RenderPass loadOp synchronization hazards.

Fix synchronization validation errors similar to:

"vkCmdBeginRenderPass: Hazard READ_AFTER_WRITE in subpass 0 for
attachment 0 aspect color during load with loadOp
VK_ATTACHMENT_LOAD_OP_LOAD.

Access info (usage: SYNC_COLOR_ATTACHMENT_OUTPUT_COLOR_ATTACHMENT_READ,
prior_usage: SYNC_IMAGE_LAYOUT_TRANSITION, write_barriers: ....)"

VK_ATTACHMENT_LOAD_OP_LOAD requires VK_ACCESS_COLOR_ATTACHMENT_READ_BIT.

VK_ATTACHMENT_LOAD_OP_DONT_CARE and VK_ATTACHMENT_LOAD_OP_CLEAR require
VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT.

VK-GL-CTS Issue: 2690

Affected Tests:
dEQP-VK.binding_model.descriptorset_random.*
dEQP-VK.binding_model.descriptor_update.samplerless.*
dEQP-VK.renderpass.suballocation.subpass_dependencies.*
dEQP-VK.renderpass2.suballocation.subpass_dependencies.*

Components: Vulkan

Change-Id: Ieff35623329e4993f3745dbb65e6996edd422c31

3 years agoMerge vk-gl-cts/vulkan-cts-1.2.1 into vk-gl-cts/vulkan-cts-1.2.2
Alexander Galazin [Fri, 18 Dec 2020 08:06:05 +0000 (09:06 +0100)]
Merge vk-gl-cts/vulkan-cts-1.2.1 into vk-gl-cts/vulkan-cts-1.2.2

Change-Id: I2321a93eaa56abbe87c87680aedd8ceb76b645e1

3 years agoTests for GLES3 number parsing
Mikko Tiusanen [Wed, 4 Nov 2020 08:24:34 +0000 (10:24 +0200)]
Tests for GLES3 number parsing

Added tests for number parsing in GLES3.
Includes new tests for unsigned int literals and float parsing tests
imported from Khronos WebGL Conformance Tests.

New tests:

KHR-GLES3.number_parsing.*

Components: OpenGL

VK-GL-CTS issue: 2176

Change-Id: I96c0d14431b5dd5867808319f08c5a614f40d2e0

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

Change-Id: If26f7fae4e13aff58e233680c755db99879644b3

3 years agoMerge vk-gl-cts/vulkan-cts-1.1.6 into vk-gl-cts/vulkan-cts-1.2.1
Alexander Galazin [Thu, 17 Dec 2020 14:10:25 +0000 (15:10 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.6 into vk-gl-cts/vulkan-cts-1.2.1

Change-Id: I3ed8d5f4de16750c664e4c8908b8b971f48f7593

3 years agoTests for multiple clears within render pass
Mikko Tiusanen [Mon, 12 Oct 2020 14:11:45 +0000 (17:11 +0300)]
Tests for multiple clears within render pass

Adds tests that perform multiple color/depth buffer clears within one
render pass.

New tests:

dEQP-VK.draw.multiple_clears_within_render_pass.*

Component: Vulkan

VK-GL-CTS issue: 2595

Change-Id: Ica79be44cfd540e83dc5c900a8cfd4e0327405a4

3 years agoMerge vk-gl-cts/vulkan-cts-1.1.5 into vk-gl-cts/vulkan-cts-1.1.6
Alexander Galazin [Thu, 17 Dec 2020 13:21:47 +0000 (14:21 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.5 into vk-gl-cts/vulkan-cts-1.1.6

Change-Id: I004160d9169fcb42a928c10d76b5355dd671e5a8

3 years agoMerge vk-gl-cts/vulkan-cts-1.1.5 into vk-gl-cts/vulkan-cts-1.2.0
Alexander Galazin [Thu, 17 Dec 2020 13:20:59 +0000 (14:20 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.5 into vk-gl-cts/vulkan-cts-1.2.0

Change-Id: Ie1ff8e21a9cffae5e0616204ff3416e490ca0637

3 years agoEnable nullDescriptor for AS ray query tests
Ricardo Garcia [Fri, 30 Oct 2020 15:41:04 +0000 (16:41 +0100)]
Enable nullDescriptor for AS ray query tests

Ray query null acceleration structure tests depend on the nullDescriptor
feature, which is not enabled in the default device. The tests need
custom devices, which implies minor design changes all over the ray
query builtin and advanced tests, due to these tests passing the global
context around and obtaining the test device from it in several
different places.

Affected tests:
dEQP-VK.ray_query.builtin.*
dEQP-VK.ray_query.advanced.*

Components: Vulkan
VK-GL-CTS issue: 2635

Change-Id: Ia5215c625b06c590d9b293e5c4d55b53c98a3e7d

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
(cherry picked from commit cea5003e0f519dff9d9ce6805a4994ebfde5e4f2)

3 years agoTest dynamic indexing of AS
Piotr Byszewski [Wed, 30 Sep 2020 11:05:34 +0000 (13:05 +0200)]
Test dynamic indexing of AS

Components: Vulkan

VK-GL-CTS issue: 2577

New tests:
dEQP-VK.ray_tracing_pipeline.acceleration_structures.dynamic_indexing.dynamic_indexing
dEQP-VK.ray_query.acceleration_structures.dynamic_indexing.dynamic_indexing

Affects:
dEQP-VK.ray_tracing_pipeline.acceleration_structures.*
dEQP-VK.ray_query.acceleration_structures.*

Change-Id: Icdb3e7fe1aef34199fa3fecb34f0615531df72c0

3 years agoTest dynamic indexing of ray queries
Ricardo Garcia [Tue, 10 Nov 2020 11:06:15 +0000 (12:06 +0100)]
Test dynamic indexing of ray queries

Create a new test that indexes ray queries in an array using an index
that is dynamic, changing for each invocation with different values
obtained from an SSBO.

New tests:
dEQP-VK.ray_query.misc.dynamic_indexing

Components: Vulkan
VK-GL-CTS issue: 2587

Change-Id: I2e53061ab606a86eb9985ce89b2fd44807aa3b45

3 years agoTest procedural geometry with complex BB sets
Piotr Byszewski [Thu, 5 Nov 2020 08:06:17 +0000 (09:06 +0100)]
Test procedural geometry with complex BB sets

Components: Vulkan

VK-GL-CTS issue: 2594

New tests:
dEQP-VK.ray_*.procedural_geometry.*

Change-Id: Ib720452819c1139aca2bcf653333e6d423e1c139

3 years agoBasic tests for VK_EXT_conservative_rasterization
Boris Zanin [Fri, 26 Jul 2019 10:52:46 +0000 (12:52 +0200)]
Basic tests for VK_EXT_conservative_rasterization

Implementation of basic tests for conservative rasterization.

Add tests:
 * dEQP-VK.rasterization.conservative.*

Affects tests:
 * dEQP-VK.rasterization.*

Components: vulkan

VK-GL-CTS issue: 1676

Change-Id: I5088f0f0eb7e3f44e36b88ba0c9ff74552b93015
(cherry picked from commit 004fb6b7d0803c58f6883c2e7771597b3e200b48)

3 years agoAdd test for image copy special case
Ari Suonpaa [Wed, 2 Dec 2020 10:40:40 +0000 (12:40 +0200)]
Add test for image copy special case

Added a specific image copy test to match a reported issue.

VK-GL-CTS Issue: 2678

New tests:

dEQP-VK.api.copy_and_blit.*.image_to_image.simple_tests.partial_image_npot_diff_format_clear

Components: Vulkan
Change-Id: If6b35a2b62b6ecb44827999d6b4116d57e7a584a

3 years agoFix build for Unices without CLOCK_MONOTONIC_RAW
Liam Middlebrook [Wed, 9 Dec 2020 23:17:26 +0000 (15:17 -0800)]
Fix build for Unices without CLOCK_MONOTONIC_RAW

CLOCK_MONOTONIC_RAW was introduced in Linux 2.6.28 and glibc 2.12. In
order to build the CTS on non-Linux Unices or older Linux distros we
should only compile-in usage of CLOCK_MONOTONIC_RAW when it is available
at build-time.

Components: Vulkan

VK-GL-CTS issue: 2696

Affects:
dEQP-VK.pipeline.timestamp.calibrated.host_domain_test

Change-Id: I937d4ea6350fe0b70c0028d9ae48b9234e425fdf

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 agoAdd tests for GLES3 vector construction from other types
Mikko Tiusanen [Fri, 13 Nov 2020 14:13:30 +0000 (16:13 +0200)]
Add tests for GLES3 vector construction from other types

Added tests for GLES3 vector construction from compatible data types with
more than one component.

Components: OpenGL

New tests: KHR-GLES3.shaders.glsl_constructors.*

VK-GL-CTS issue: 2178

Change-Id: If7fab5d0e950cc6c9d1dc39c32413e176df06e2f

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/opengl-es-cts-3.2.6 into vk-gl-cts/master
Alexander Galazin [Thu, 10 Dec 2020 11:25:34 +0000 (12:25 +0100)]
Merge vk-gl-cts/opengl-es-cts-3.2.6 into vk-gl-cts/master

Change-Id: I26d8e8bb5762056542f865c62fb4e09fe2d9df8b

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 agoMerge vk-gl-cts/opengl-es-cts-3.2.5 into vk-gl-cts/opengl-es-cts-3.2.6
Alexander Galazin [Thu, 10 Dec 2020 09:30:44 +0000 (10:30 +0100)]
Merge vk-gl-cts/opengl-es-cts-3.2.5 into vk-gl-cts/opengl-es-cts-3.2.6

Change-Id: Ib50bbe4e7c82ff147376432d2bf474348e38d952

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

3 years agoMerge vk-gl-cts/vulkan-cts-1.2.5 into vk-gl-cts/master
Alexander Galazin [Wed, 9 Dec 2020 17:12:11 +0000 (18:12 +0100)]
Merge vk-gl-cts/vulkan-cts-1.2.5 into vk-gl-cts/master

Change-Id: Ic90f2a909e9eda6abcd8bdd5f714ae385e6027d7

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 agoAdd drawing tests for Android hardware buffer based color buffer
Ari Suonpaa [Wed, 18 Nov 2020 12:28:18 +0000 (14:28 +0200)]
Add drawing tests for Android hardware buffer based color buffer

These new tests cover drawing to a color buffer imported from
an Android hardware buffer. Both single layer and multi layer
variants have been added.

VK-GL-CTS Issue: 2623

New tests:

dEQP-VK.draw.ahb.triangle_list*

Components: Vulkan
Change-Id: Ia859803a11aeb934dfa41f45b2b912051c8925e2

3 years agoTest data spilling and unspilling around RT shader calls
Ricardo Garcia [Wed, 18 Nov 2020 09:58:43 +0000 (10:58 +0100)]
Test data spilling and unspilling around RT shader calls

The new test group contains tests that check different types of data can be
accessed before and after a shader call instruction. This includes:

* Integers and floats in different sizes and formats, and pointers to them.
* Structures and pointers to them.
* Images, samplers, sampled images and pointers to them.
* OpImageTexelPointers.
* Values containing OpNullConstant and OpUndef.
* Shader interfaces (ray payloads, callable data and hit attributes).
* Shader Record Buffer objects.

New tests:
dEQP-VK.ray_tracing_pipeline.data_spill.*

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

Change-Id: Idfe48314154585a7ac1d3bb4a29c10075a826f5d

3 years agoAdd new tests that verify IgnoreIntersection/TerminateRay corner cases.
Dominik Witczak [Mon, 12 Oct 2020 11:49:43 +0000 (13:49 +0200)]
Add new tests that verify IgnoreIntersection/TerminateRay corner cases.

New tests:
dEQP-VK.ray_tracing_pipeline.misc.Op*

Components: Vulkan
VK-GL-CTS issue: 2607

Change-Id: Iee671f0e3f9036d477e2f30d96a1ccfcf55fe831

3 years agoTest maxPipelineRayRecursionDepth can be zero
Ricardo Garcia [Tue, 17 Nov 2020 09:16:50 +0000 (10:16 +0100)]
Test maxPipelineRayRecursionDepth can be zero

Make sure implementations support passing zero as the
maxPipelineRayRecursionDepth parameter when creating a ray tracing
pipeline.

New tests:
dEQP-VK.ray_tracing_pipeline.misc.recursiveTraces_*_0

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

Components: Vulkan
VK-GL-CTS issue: 2426

Change-Id: I8c72c9cd5ce427e490e8826bc6b3da47de8e0413

3 years agoEnable YCbCr filtering tests for non-separable chroma
Graeme Leese [Wed, 25 Nov 2020 11:46:13 +0000 (11:46 +0000)]
Enable YCbCr filtering tests for non-separable chroma

These tests were added in order to test implementations which did not
support separate chroma filters, but they were not run on those
implementations.

Components: Vulkan
VK-GL-CTS issue: 2239
Affects: dEQP-VK.ycbcr.filtering.*

Change-Id: Id6be0148517f2384179f3544a32d478c165b802b

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 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

3 years agoRemove merge conflict markers from mandatory_features.txt
Slawomir Cygan [Mon, 7 Dec 2020 14:31:05 +0000 (15:31 +0100)]
Remove merge conflict markers from mandatory_features.txt

Also fixes same spacing.

Components: Vulkan, Framework
Change-Id: Ia1822f58ed05dc6348b72f2b0711fd60b62beedf

3 years agoVulkan Portability support
Jan Mroczkowski [Thu, 12 Mar 2020 12:33:50 +0000 (13:33 +0100)]
Vulkan Portability support

Components: Framework, Vulkan

Affects:
dEQP-VK.*

Change-Id: I90aac5ec24b4a47063d5d0faaa9f68edd65f1d58

3 years agoDisable conflicting fragment shading rate features
Piotr Byszewski [Mon, 23 Nov 2020 09:48:06 +0000 (10:48 +0100)]
Disable conflicting fragment shading rate features

Features of VK_EXT_fragment_density_map and VK_NV_shading_rate_image cannot
be enabled at the same time as features of VK_KHR_fragment_shading_rate.

Instead if the VK_KHR_fragment_shading_rate features are enabled then
disable the VK_EXT_fragment_density_map and VK_NV_shading_rate_image features
and use a temporary device with them enabled for testing.

Components: Vulkan, Framework

VK-GL-CTS Issue: 2665

Affects: *

Change-Id: I544c021ed963bd453635283282a6a272383e448e

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 agoUpdate Vulkan headers
Alexander Galazin [Mon, 7 Dec 2020 13:47:52 +0000 (14:47 +0100)]
Update Vulkan headers

Components: Vulkan

Change-Id: Ic1bb4c95c106a29b966997bfcd8b6d7054983ecf

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

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

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 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

3 years agoFix slow run time of OpPhi wide test
Ilkka Saarelainen [Fri, 4 Dec 2020 12:39:38 +0000 (14:39 +0200)]
Fix slow run time of OpPhi wide test

dEQP-VK.spirv_assembly.instruction.compute.opphi.wide was using 1024
arguments for OpPhi SpirV instruction. This was causing very slow
run/compile time on some devices and therefore failing the test due to
timeout.

This CL halves the number of arguments given to the OpPhi instruction to
avoid timeouts.

Affects:

dEQP-VK.spirv_assembly.instruction.compute.opphi.wide

VK-GL-CTS Issue: 2681

Components: Vulkan
Change-Id: Ice41e983b8da866916e07c1b52d7ccfd65001077

3 years agoUse shader to calculate sample point
leiche02 [Wed, 11 Nov 2020 06:42:14 +0000 (14:42 +0800)]
Use shader to calculate sample point

The test's sampling point is taking from interpolated varying, the inaccuracy
of interpolation may cause wrong sampling, use gl_FragCoord in fragment
shader to calcuate sample point directly.

Component: OpenGL

Affected tests: KHR-GLES32.core.nearest_edge.offset_*

VK-GL-CTS issue: 2651

Change-Id: Ib91595ca07a2b146059c51f2d68ebf086c10553c
(cherry picked from commit 3d55f6adbf38215ce3c4e2986a2a2e8a91086f08)

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

Change-Id: Ibc55de32e46466b701b8999a0dad6da6588dc21d

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 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

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

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

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

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 agoTest terminateInvocation with frag shader side effects
Ricardo Garcia [Tue, 10 Nov 2020 13:01:45 +0000 (14:01 +0100)]
Test terminateInvocation with frag shader side effects

Adds tests that check fragment shader side effects, in the form of SSBO
writes, are not removed by optimizations done when the fragment is
discarded with terminateInvocation.

New tests:
dEQP-VK.rasterization.frag_side_effects.*.terminate_invocation

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

Change-Id: I34c3eac815c7176f9420c2a4ccfc50f5bbd3a8a7

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 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

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 agoFix image cube array tests support checks
Graeme Leese [Tue, 27 Oct 2020 13:06:45 +0000 (13:06 +0000)]
Fix image cube array tests support checks

The tests were interpreting *any* failure to compile programs as being
because image variables were not supported. This meant legitimate
failures were missed and that extra time was spent compiling shaders
before deciding the test was unsupported.

Components: OpenGL
VK-GL-CTS issue: 2647
Affects: KHR-GLES31.core.texture_cube_map_array.image_op_*
         KHR-GLES32.core.texture_cube_map_array.image_op_*
         KHR-GLESEXT.texture_cube_map_array.image_op_*

Change-Id: I35a265e3b1ce991eb522a7db23f3825e5384faea

3 years agoUse shader to calculate sample point
leiche02 [Wed, 11 Nov 2020 06:42:14 +0000 (14:42 +0800)]
Use shader to calculate sample point

The test's sampling point is taking from interpolated varying, the inaccuracy
of interpolation may cause wrong sampling, use gl_FragCoord in fragment
shader to calcuate sample point directly.

Component: OpenGL

Affected tests: KHR-GLES32.core.nearest_edge.offset_*

VK-GL-CTS issue: 2651

Change-Id: Ib91595ca07a2b146059c51f2d68ebf086c10553c

3 years agoAdd tests for VK_EXT_4444_formats
Joshua Ashton [Wed, 15 Jul 2020 03:44:27 +0000 (04:44 +0100)]
Add tests for VK_EXT_4444_formats

Components: Vulkan

New tests:
dEQP-VK.*.a4b4g4r4*
dEQP-VK.*.a4r4g4b4*

Change-Id: I5d597a718246e4bc0af3c6acee1c0d3d0787997b

3 years agoEnable random writes for storage texel buffers
Ricardo Garcia [Fri, 27 Nov 2020 09:55:04 +0000 (10:55 +0100)]
Enable random writes for storage texel buffers

In the descriptor set random tests, enable random writes when the
descriptor type is a storage texel buffer.

In addition, this commit fixes a problem with storage image barriers.

Affected tests with random writes:
dEQP-VK.binding_model.descriptorset_random.*outimgtexlow*
dEQP-VK.binding_model.descriptorset_random.*lowimgsingletex*
dEQP-VK.binding_model.descriptorset_random.*storageimghigh*

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

VK-GL-CTS issue: 1973
Components: Vulkan

Change-Id: I5a407ebc239cca48cee56c5901f45bd4118b3c3b

3 years agoTest reading primitive id from frag shader after tessellation
Ricardo Garcia [Wed, 18 Nov 2020 15:12:52 +0000 (16:12 +0100)]
Test reading primitive id from frag shader after tessellation

Add a test that tries to read the primitive id from the fragment shader
in a pipeline that has tessellation shaders but no geometry shaders.

The new test has been grouped together with the existing Amber vertex
only test in a single group containing miscellaneous pipeline tests.

New test:
dEQP-VK.pipeline.misc.primitive_id_from_tess

Renamed test:
-dEQP-VK.pipeline.vertex_only.position_to_ssbo
+dEQP-VK.pipeline.misc.position_to_ssbo

Components: Vulkan
VK-GL-CTS issue: 2654

Change-Id: Ied0fef78916ee83960c689bfd2a7e48dc4b4cfd0

3 years agoAdd a batch of GraphicsFuzz tests
Paul Thomson [Fri, 27 Nov 2020 11:29:42 +0000 (11:29 +0000)]
Add a batch of GraphicsFuzz tests

Components: Vulkan

New Tests:

dEQP-VK.graphicsfuzz.spv-stable-bifurcation-Os-mutate-var-vector-shuffle
dEQP-VK.graphicsfuzz.spv-stable-collatz-O-mutate-composite-construct-extract
dEQP-VK.graphicsfuzz.spv-stable-colorgrid-modulo-O-move-block-down
dEQP-VK.graphicsfuzz.spv-stable-maze-flatten-copy-composite
dEQP-VK.graphicsfuzz.spv-stable-mergesort-O-prop-up-mutate-var
dEQP-VK.graphicsfuzz.spv-stable-mergesort-flatten-selection-dead-continues
dEQP-VK.graphicsfuzz.spv-stable-mergesort-func-inline-mutate-var
dEQP-VK.graphicsfuzz.spv-stable-orbit-O-mutate-variable
dEQP-VK.graphicsfuzz.spv-stable-orbit-Os-access-chain-mutate-pointer
dEQP-VK.graphicsfuzz.spv-stable-pillars-O-op-select-to-op-phi
dEQP-VK.graphicsfuzz.spv-stable-quicksort-mat-func-param
dEQP-VK.graphicsfuzz.spv-stable-rects-Os-mutate-var-push-through-var

Change-Id: I3399fd06647e764e1e1851db26d7c361e9bfa632

3 years agoAdd a batch of GraphicsFuzz coverage tests
Antto Mäkinen [Fri, 20 Nov 2020 15:48:57 +0000 (17:48 +0200)]
Add a batch of GraphicsFuzz coverage tests

This commit adds a batch of GraphicsFuzz coverage tests.

Components: Vulkan

New Tests:

dEQP-VK.graphicsfuzz.cov-access-array-dot
dEQP-VK.graphicsfuzz.cov-apfloat-negative-step-func
dEQP-VK.graphicsfuzz.cov-apfloat-undefined-matrix-mul
dEQP-VK.graphicsfuzz.cov-const-folding-bitfieldinsert-div-one
dEQP-VK.graphicsfuzz.cov-const-folding-mod-one-one-lte
dEQP-VK.graphicsfuzz.cov-constants-combine-add-sub
dEQP-VK.graphicsfuzz.cov-dag-combiner-glf_color
dEQP-VK.graphicsfuzz.cov-dag-combiner-loop-bitfieldreverse
dEQP-VK.graphicsfuzz.cov-inst-combine-add-sub-determinant
dEQP-VK.graphicsfuzz.cov-inst-combine-add-sub-increase-negative
dEQP-VK.graphicsfuzz.cov-inst-combine-add-sub-neg-func-arg
dEQP-VK.graphicsfuzz.cov-inst-combine-and-or-xor-pack-unpack
dEQP-VK.graphicsfuzz.cov-inst-combine-and-or-xor-switch
dEQP-VK.graphicsfuzz.cov-inst-combine-and-or-xor-xor-add
dEQP-VK.graphicsfuzz.cov-inst-combine-compares-combine-select-uaddcarry
dEQP-VK.graphicsfuzz.cov-inst-combine-compares-isnan
dEQP-VK.graphicsfuzz.cov-inst-combine-compares-ldexp
dEQP-VK.graphicsfuzz.cov-inst-combine-compares-ternary-vector-access
dEQP-VK.graphicsfuzz.cov-inst-combine-shifts-bitfield-bitcount
dEQP-VK.graphicsfuzz.cov-inst-combine-shifts-mix-mix-clamp
dEQP-VK.graphicsfuzz.cov-instr-info-det-mat-min
dEQP-VK.graphicsfuzz.cov-instructions-for-if-less-than-equal
dEQP-VK.graphicsfuzz.cov-machine-scheduler-for-if-pow
dEQP-VK.graphicsfuzz.cov-register-coalescer-live-intervals-target-instr-info-for-discard-for-discard
dEQP-VK.graphicsfuzz.cov-scaled-number-nested-loops-array-access
dEQP-VK.graphicsfuzz.cov-simplify-for-bitwise-condition
dEQP-VK.graphicsfuzz.cov-simplify-right-shift-greater-than-zero
dEQP-VK.graphicsfuzz.cov-tail-duplicator-for-for-for
dEQP-VK.graphicsfuzz.cov-x86-isel-lowering-machine-value-type-uint-to-float
dEQP-VK.graphicsfuzz.cov-x86-isel-lowering-selection-dag-struct-array-clamp-index

Change-Id: Idde9e994c12f93e9ede51f23fe3a75592d81c528