platform/upstream/VK-GL-CTS.git
5 years agoFixes ycbcr image properties requirement
Matthew Netsch [Wed, 16 Jan 2019 19:36:30 +0000 (14:36 -0500)]
Fixes ycbcr image properties requirement

Mipmaps/Arrays are optional for ycbcr images

Components: Vulkan
VK-GL-CTS issue: 1506

Affects:
dEQP-VK.api.info.image_format_properties.*

Change-Id: I795ec1c8b3e44a460ddd0c7c2fe0fe1731794cab

5 years agoMerge vk-gl-cts/vulkan-cts-1.1.2 into vk-gl-cts/vulkan-cts-1.1.3
Alexander Galazin [Thu, 17 Jan 2019 11:24:09 +0000 (12:24 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.2 into vk-gl-cts/vulkan-cts-1.1.3

Change-Id: Ibfebb592de5aff940b3167f5475139cec99ef6f5

5 years agoFixes depth load_op in multiview tests
Tom Cooper [Mon, 14 Jan 2019 14:02:03 +0000 (14:02 +0000)]
Fixes depth load_op in multiview tests

Depth load_op was set to dont care before drawing with depth test.

Components: Vulkan
VK-GL-CTS issue: 1557

Affects:
dEQP-VK.multiview*.depth.*

Change-Id: Ia853a84fa7c96b641a2dd91075d015a90a372d35

5 years agoTruncate random coordinates in late fragment tests
Steve Hill [Fri, 11 Jan 2019 10:12:46 +0000 (10:12 +0000)]
Truncate random coordinates in late fragment tests

The late-fragment tests generate random triangles.  Unfortunately,
the reference rasteriser does not respect the sub-pixel precision
of the physical device (it assumes 8 bits) which means that on
some platforms the reference rasterisation does not agree with
implementation.

This patch rounds the random coordinates to the reported
sub-pixel precision.  It was decided that in the short term this
was a less invasive change than modifying the reference rasteriser.

Affects: dEQP-VK.renderpass*.subpass_dependencies.late_fragment_tests.*

Components: Vulkan

VK-GL-CTS issue: 1549

Change-Id: I50f20284d9d2cb22e73564d6f71c0a3342547b68

5 years agoMerge vk-gl-cts/vulkan-cts-1.1.2 into vk-gl-cts/vulkan-cts-1.1.3
Alexander Galazin [Tue, 15 Jan 2019 15:36:23 +0000 (16:36 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.2 into vk-gl-cts/vulkan-cts-1.1.3

Change-Id: I99ab3d97b302f2b9d82ec0ce8a05e716d1aec54a

5 years agoAdded PointSize in shader used for drawing points
Dae Kim [Fri, 11 Jan 2019 11:38:11 +0000 (11:38 +0000)]
Added PointSize in shader used for drawing points

Follow-up change of 76a3efb8583de58358570c912e4388a780a2cb39.

A SPIR-V assembly shader with undefined PointSize was being used with
point list topology.

Affects:

dEQP-VK.subgroups.*

Components: Vulkan

VK-GL-CTS issue: 1197,1552

Change-Id: I10404d8fe45b9fb7484d1b90b984e66ca8569de4

5 years agoAdd AHB to Android allowed extensions list
Chris Forbes [Tue, 15 Jan 2019 01:30:31 +0000 (17:30 -0800)]
Add AHB to Android allowed extensions list

Affects: dEQP-VK.api.info.android.no_unknown_extensions
VK-GL-CTS Issue: 1559
Components: Vulkan
Google Bug: b/120907290

Change-Id: Id1f2d63cbd51e7b3e51106f8f0214cd8d95c199c

5 years agoFix logging of 8-bit integer values
Slawomir Cygan [Mon, 10 Dec 2018 16:08:05 +0000 (17:08 +0100)]
Fix logging of 8-bit integer values

The values were 'streamed' using << to std::stream, so they
were treated as characters, instead of integer values.

Components: Vulkan

VK-GL-CTS Issue: 1505

Affects:
dEQP-VK.spirv_assembly.type.scalar.*8.*

Change-Id: I34e697eb5b1c554b98a2fe556368bd6485fb406f

5 years agoFix incorrect use of copyImageToBuffer in TextureRenderer::renderQuad()
Samuel Pitoiset [Thu, 13 Dec 2018 15:45:41 +0000 (16:45 +0100)]
Fix incorrect use of copyImageToBuffer in TextureRenderer::renderQuad()

The last parameter is an access flag, not a pipeline stage one.
As the default value is already correct, removing the last
parameter is enough.

Fixes https://gitlab.khronos.org/Tracker/vk-gl-cts/issues/1511

Components: Vulkan

VK-GL-CTS issue: 1511
Affects: dEQP-VK.texture.*

Change-Id: Ib261482d4a9fae911fbda6ad5a45548a02430c1a
(cherry picked from commit 92491133746a3d1715a683dad7f5516096c79d8f)

5 years agoAllow coarse derivatives to be calced by fine func
Boris Zanin [Tue, 27 Nov 2018 11:54:43 +0000 (12:54 +0100)]
Allow coarse derivatives to be calced by fine func

OpDPdxCoarse (OpDPdyCoarse) are allowed to be calculated by same
formulas as OpDPdxFine (OpDPdyFine).  Also due to OpFwidthCoarse
is described as sum of OpDPdxCoarse, OpDPdyCoarse allow it to be
calculated by OpFwidthFine.

Components: vulkan

VK-GL-CTS issue: 1452

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

Change-Id: Ib91d813626e579309d3d9176d52b0954efa920d4

5 years agoAdd 1.1.3.0 to known conformance versions
Alexander Galazin [Sat, 12 Jan 2019 11:48:48 +0000 (12:48 +0100)]
Add 1.1.3.0 to known conformance versions

Components: Vulkan

Affects: dEQP-VK.api.driver_properties.properties

Change-Id: I521e0a02b6b26065e7da30b006511cdaf7707418

5 years agoCorrect support conditions for float16s
Graeme Leese [Mon, 10 Dec 2018 14:31:51 +0000 (14:31 +0000)]
Correct support conditions for float16s

My previous fix missed out the graphics versions of these tests, so add
the correct conditions under which these tests can be supported as well.

Components: Vulkan
VK-GL-CTS issue: 1499
Affects:
dEQP-VK.spirv_assembly.instruction.compute.float16.opconstantcomposite.*
dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.fconvert16_*
dEQP-VK.spirv_assembly.instruction.graphics.float16.opconstant.*

Change-Id: I7ac48027b4160bd82484e7d8d780d8a1870babbf
(cherry picked from commit f2ed80c3d2f8b4f2e782f71cc3755fe06ab52b33)

5 years agoRemove one method of specifying features in vktSpvAsm
Graeme Leese [Mon, 10 Dec 2018 14:31:31 +0000 (14:31 +0000)]
Remove one method of specifying features in vktSpvAsm

The features can either be specified as a vector of strings (most of
which won't work), or as a VulkanFeatures struct, which is properly
checked. Remove the vector of strings method and change everything to
use the VulkanFeatures.

Components: Vulkan
Affects: dEQP-VK.spirv_assembly.*

Change-Id: Ia4f51f9e64dde129cb577982f2a17fa529c4c961
(cherry picked from commit f58817ce095d2a0dda0b5d2a57f82428b3462f38)

5 years agoMerge vk-gl-cts/vulkan-cts-1.1.2 into vk-gl-cts/vulkan-cts-1.1.3
Alexander Galazin [Fri, 11 Jan 2019 11:22:52 +0000 (12:22 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.2 into vk-gl-cts/vulkan-cts-1.1.3

Change-Id: Ibbb2f02096cee66991004e8b14dedd9c4c618c59

5 years agoUpdate glslang
Alexander Galazin [Fri, 11 Jan 2019 08:51:22 +0000 (09:51 +0100)]
Update glslang

Component: Framework

Change-Id: I35639832f859e7eb4d62c887eee465555f04b877

5 years agoClear Core Validation Errors for Protected Memory
Martin Freebody [Tue, 18 Dec 2018 14:48:13 +0000 (14:48 +0000)]
Clear Core Validation Errors for Protected Memory

Affects: dEQP-VK.protected_memory.*

Components: Vulkan

VK-GL-CTS issue: 1539

Change-Id: I19c51330394f2fccc7a7a01fed3395bb66a5ab3f

5 years agoCause vkrunner tests to fail if scripts not found
Graeme Leese [Wed, 9 Jan 2019 16:46:22 +0000 (16:46 +0000)]
Cause vkrunner tests to fail if scripts not found

Rather than simply ignoring the test throw an InternalError.

Components: Vulkan
VK-GL-CTS Issue: 1548
Affects: dEQP-VK.vkrunner-example.*

Change-Id: Ib29692c792acf49f428e042fb9cc951dd32130dd
(cherry picked from commit 255f67d1d9dc6616058335ca8a0597b92a3bfa27)

5 years agoAllow a tolerance for results of sqrt
Graeme Leese [Wed, 9 Jan 2019 16:21:05 +0000 (16:21 +0000)]
Allow a tolerance for results of sqrt

The tolerance added to the test is around 5 ULP.

Components: Vulkan
VK-GL-CTS Issue: 1546
Affects: dEQP-VK.vkrunner-example.sqrt_*

Change-Id: Idfb6f8485d10a29cf0c4c46355df1df1008298df
(cherry picked from commit 215b2e3f4424e4568cb19c290d82fe7c48cb1b8b)

5 years agoFix dup tests to not free in-use semaphores/fences
Liam Middlebrook [Thu, 3 Jan 2019 22:07:10 +0000 (14:07 -0800)]
Fix dup tests to not free in-use semaphores/fences

The dup{,2,3} tests were subject to a race condition in which a
semaphore may be deleted before a VkQueue which was dependent on it had
completed execution.

This change moves the vkQueueWaitIdle call into the same scope as the
semaphores/fences that the queue is dependent on.

VK-GL-CTS issue: 1538

Components: Vulkan

Affects: dEQP-VK.api.external.{fence,semaphore}.opaque_fd.dup*

Change-Id: I73cf541c9c184790df44b68b8a065787634847d9
(cherry picked from commit 732a8b6800972b271735cf9b865a3612fb56dfc4)

5 years agoFix dup tests to not free in-use semaphores/fences
Liam Middlebrook [Thu, 3 Jan 2019 22:07:10 +0000 (14:07 -0800)]
Fix dup tests to not free in-use semaphores/fences

The dup{,2,3} tests were subject to a race condition in which a
semaphore may be deleted before a VkQueue which was dependent on it had
completed execution.

This change moves the vkQueueWaitIdle call into the same scope as the
semaphores/fences that the queue is dependent on.

VK-GL-CTS issue: 1538

Components: Vulkan

Affects: dEQP-VK.api.external.{fence,semaphore}.opaque_fd.dup*

Change-Id: I73cf541c9c184790df44b68b8a065787634847d9

5 years agoMerge vk-gl-cts/vulkan-cts-1.1.2 into vk-gl-cts/vulkan-cts-1.1.3
Alexander Galazin [Thu, 10 Jan 2019 11:57:10 +0000 (12:57 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.2 into vk-gl-cts/vulkan-cts-1.1.3

Change-Id: I7a9d2154ae19bdac61feed815f69691914a59bd4

5 years agoSet correct range for OpVectorTimesScalar tests
Stephen Clarke [Fri, 21 Dec 2018 12:38:35 +0000 (12:38 +0000)]
Set correct range for OpVectorTimesScalar tests

The min[] and max[] values should be based on the result in double precision, not after it has been converted to fp16type.

Affects:

dEQP-VK.spirv_assembly.instruction.compute.float16.arithmetic_2.opvectortimesscalar
dEQP-VK.spirv_assembly.instruction.compute.float16.arithmetic_3.opvectortimesscalar
dEQP-VK.spirv_assembly.instruction.compute.float16.arithmetic_4.opvectortimesscalar
dEQP-VK.spirv_assembly.instruction.graphics.float16.arithmetic_2.opvectortimesscalar*
dEQP-VK.spirv_assembly.instruction.graphics.float16.arithmetic_3.opvectortimesscalar*
dEQP-VK.spirv_assembly.instruction.graphics.float16.arithmetic_4.opvectortimesscalar*

Components: Vulkan

VK-GL-CTS issue: 1532
Change-Id: I30810c8c954ee899bb05602b1f8805f82ac021b3
(cherry picked from commit 12b26bd9762dd56068522cc0a17b26c9e31df1e2)

5 years agoFix errors in SPIR-V 16bit_storage tests
Samuel Iglesias Gonsálvez [Fri, 22 Jun 2018 06:30:28 +0000 (08:30 +0200)]
Fix errors in SPIR-V 16bit_storage tests

Commit 04ba8ac400a3 was wrongly setting a condition that made
all the *16_to_16* tests to fail. Also, in the last rebase of CL#2458,
there were a rename of an argument of OpFunction that was not updated.

Affects: dEQP-VK.spirv_assembly.instruction.graphics.16bit_storage.*

Components: Vulkan
VK-GL-CTS issue: 1234

Change-Id: Ia83bedefa33d3e37b62336ebadb2bc992e0ddb2a
(cherry picked from commit 56e8d4e2318dcd0bceddca4d182649f3a03be7ab)

5 years agoRemove NaN handling in float16 tests
Boris Zanin [Fri, 21 Dec 2018 13:53:25 +0000 (14:53 +0100)]
Remove NaN handling in float16 tests

Support of NaNs is optional according the specification.
Tests always have expected that NaNs are always supported.
To be compatible with the specification skip check of NaN
input floats.

Updated tests:
 * dEQP-VK.spirv_assembly.instruction.compute.float16.logical.opfunord*
 * dEQP-VK.spirv_assembly.instruction.graphics.float16.logical.opfunord*
 * dEQP-VK.spirv_assembly.instruction.compute.float16.logical.opford*
 * dEQP-VK.spirv_assembly.instruction.graphics.float16.logical.opford*

Affected tests:
 * dEQP-VK.spirv_assembly.instruction.compute.float16.logical.opisnan*
 * dEQP-VK.spirv_assembly.instruction.graphics.float16.logical.opisnan*
 * dEQP-VK.spirv_assembly.instruction.compute.float16.logical.opisinf*
 * dEQP-VK.spirv_assembly.instruction.graphics.float16.logical.opisinf*

Components: Vulkan

VK-GL-CTS issue: 1528

Change-Id: Iadd91ed24c78e15ff458355262b009015b8a8e4a

5 years agoPropagate required features down to the constructor
Alexander Galazin [Wed, 9 Jan 2019 09:57:07 +0000 (10:57 +0100)]
Propagate required features down to the constructor

VariablePointers wasn't fully propagated down to the test constructor

Components: Vulkan

VK-GL-CTS issue: 1540

Affects:
dEQP-VK.spirv_assembly.instruction.compute.pointer_parameter.workgroup_memory_variable_pointers

Change-Id: I4d29248ad4c2f38cdda5c31be1be781331433399

5 years agoMerge vk-gl-cts/vulkan-cts-1.1.2 into vk-gl-cts/vulkan-cts-1.1.3
Alexander Galazin [Tue, 8 Jan 2019 15:47:23 +0000 (16:47 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.2 into vk-gl-cts/vulkan-cts-1.1.3

Change-Id: I5302ce80a95a036db240f3097f806ffbfad6fe43

5 years agoRemove unnecessary extension declarations
Alexander Galazin [Tue, 8 Jan 2019 15:37:27 +0000 (16:37 +0100)]
Remove unnecessary extension declarations

Declarations of SPV_AMD_gpu_shader_half_float
in the precision test are redundant and shouldn't appear

Components: Vulkan

Affects: dEQP-VK.glsl.builtin.*.comparison.*

VK-GL-CTS issue: 1541

Change-Id: I75b57cb3361b683e446effa3ab9e51f441f186d5

5 years agoRun validation before optimization.
Steven Perron [Tue, 11 Dec 2018 15:59:56 +0000 (10:59 -0500)]
Run validation before optimization.

The optimizer runs is own pass of the validator as a safety check.
However, that call to the validator does not get the any validatoin options passed in.
This causes problems with the memory layout tests.

The solution we will be to diable the call to the validator in the
optimizer.  Instead the will be an explict call to validate the binary
before optimization starts, reusing functions that already exist to do
that.

At the same time, the run of the validator that is done with
--deqp-validation=enable will be moved so that it runs after
optimization.  This way it will validate the output instead of the
input, and it will not be a redundant check.

VK-GL-CTS issue: 1503

Components: Vulkan, Framework

Affects: dEQP-VK.ssbo.layout.random.relaxed.*

Change-Id: Ib52fa97505855316739e07e472d23fcab4ac2beb

5 years agoMerge vk-gl-cts/vulkan-cts-1.1.2 into vk-gl-cts/vulkan-cts-1.1.3
Alexander Galazin [Fri, 21 Dec 2018 19:42:51 +0000 (20:42 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.2 into vk-gl-cts/vulkan-cts-1.1.3

Change-Id: I46453ca0e9531975079099a6f06e9076a20accf0

5 years agoMerge vk-gl-cts/vulkan-cts-1.1.1 into vk-gl-cts/vulkan-cts-1.1.2
Alexander Galazin [Fri, 21 Dec 2018 18:32:00 +0000 (19:32 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.1 into vk-gl-cts/vulkan-cts-1.1.2

Change-Id: I93423c80882209c8c41d4bd9f3d403037ec9ad01

5 years agoMerge vk-gl-cts/vulkan-cts-1.1.0 into vk-gl-cts/vulkan-cts-1.1.1
Alexander Galazin [Fri, 21 Dec 2018 15:16:09 +0000 (16:16 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.0 into vk-gl-cts/vulkan-cts-1.1.1

Change-Id: Ie0a15653a8e00e8dc4acb07c0371dad770c5ee9f

5 years agoFix Visual Studio 2013 build of VkRunner
Samuel Iglesias Gonsálvez [Fri, 21 Dec 2018 11:06:16 +0000 (12:06 +0100)]
Fix Visual Studio 2013 build of VkRunner

There were build errors related to undefined inline attribute and
undefined offsetof() function.

Change-Id: I111225756c1c950d73c4886fe1c2d3d203b567c2
Components: Vulkan
VK-GL-CTS: 1530
(cherry picked from commit 0b091875702f6ac418928267917987196f0b1854)

5 years agoFix 0b prefix in conditional rendering tests
Boris Zanin [Thu, 20 Dec 2018 13:28:07 +0000 (14:28 +0100)]
Fix 0b prefix in conditional rendering tests

Binary integers prefixes 0b breaks Visual Studio 2013
build.  Replace them with substitute constants.

Components: Vulkan

VK-GL-CTS issue: 1529

Change-Id: I58e9c1e18ba61f2248ec4ff7f29b1bf29eba8207

5 years agoFix image aspects in multiview tests
Graeme Leese [Fri, 14 Dec 2018 15:57:26 +0000 (15:57 +0000)]
Fix image aspects in multiview tests

The image aspects were not being set for the renderpass2 versions of
these tests either.

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

Change-Id: I4062742caeffb220d0c74e61a5e489bbf4534e49
(cherry picked from commit 132adab7998788b20232794962215026a097b500)

5 years agoTest different data types for workgroup memory
Ari Suonpaa [Tue, 27 Nov 2018 13:24:27 +0000 (15:24 +0200)]
Test different data types for workgroup memory

Workgroup memory was being tested only for 32bit values. New
tests were added to cover signed and unsigned 8/16/32/64-bit
integers and 16/32/64-bit floats.

New tests:

dEQP-VK.spirv_assembly.instruction.compute.workgroup_memory.*

Components: Vulkan

VK-GL-CTS issue: 1469
Change-Id: I3f699108cd8b87abc621cfd49bb6dad094833604

5 years agoCheck for exact spec version for VK_KHR_vulkan_memory_model
Jeff Bolz [Wed, 12 Dec 2018 19:42:16 +0000 (13:42 -0600)]
Check for exact spec version for VK_KHR_vulkan_memory_model

This extension is provisional and its Features struct is expected to change soon.
Add a version check to protect against querying the struct and running tests with
an incompatible driver.

Components: Vulkan
Affects: dEQP-VK.memory_model.*
Change-Id: Iedd08fa6433af4c59e18c58aa39c5366ad72570e

5 years agoFix memory requirements for draw_clear tests
Piers Daniell [Thu, 20 Dec 2018 00:01:35 +0000 (17:01 -0700)]
Fix memory requirements for draw_clear tests

The memory requirements for the draw_clear subtests of
the conditional_rendering group required the memory
bound for the conditional rendering predicate buffer
to be both host visible and device local.

It's not a requirement that all implementation support
this combinations so all the draw_clear tests were
skipped unnecessarily.

Since the device local requirement was unnecessary,
this CL just removes it.

Affects:
dEQP-VK.conditional_rendering.draw_clear.*

Change-Id: I10d289a7666a97d665707d5e49ec7c8846d2997d
Components: Vulkan
(cherry picked from commit 11bfc063db2b32fbda21b17d232739469c9738a1)

5 years agoDisable 0b-prefixed integers to be used
Boris Zanin [Thu, 20 Dec 2018 15:35:28 +0000 (16:35 +0100)]
Disable 0b-prefixed integers to be used

Binary integers prefixes 0b breaks Visual Studio 2013 build.
Add validation check to avoid usage of 0b prefixed integers.

Components: Vulkan

VK-GL-CTS issue: 1529

Change-Id: I8bac5b5788adac544b72ca44b74f847b1d3c96cf

5 years agoMerge vk-gl-cts/vulkan-cts-next-dev into vk-gl-cts/master
Alexander Galazin [Thu, 20 Dec 2018 12:15:08 +0000 (13:15 +0100)]
Merge vk-gl-cts/vulkan-cts-next-dev into vk-gl-cts/master

Change-Id: If7f438b4268baae507cad11799537acaad9937dc

5 years agoDon't fail DisplayProperties2KHR with no display
Liam Middlebrook [Tue, 18 Dec 2018 06:04:29 +0000 (22:04 -0800)]
Don't fail DisplayProperties2KHR with no display

Instead, we should mark this test as not supported.

VK-GL-CTS issue: 1527
Components: Vulkan

Change-Id: I3b23ee27b6095b9dd1a4cdec01f0b92046aa8bc5
Affects: dEQP-VK.wsi.display.get_display_properties2

5 years agoMerge vk-gl-cts/aosp-deqp-dev into vk-gl-cts/master
Alexander Galazin [Thu, 20 Dec 2018 09:35:04 +0000 (10:35 +0100)]
Merge vk-gl-cts/aosp-deqp-dev into vk-gl-cts/master

Change-Id: I16ba69b95f84cbb26e9d082f7a7fbb3180a092e5

5 years agoMerge vk-gl-cts/master into vk-gl-cts/vulkan-cts-next-dev
Alexander Galazin [Thu, 20 Dec 2018 09:00:44 +0000 (10:00 +0100)]
Merge vk-gl-cts/master into vk-gl-cts/vulkan-cts-next-dev

Change-Id: Id1fe64ddc8d2ac42c8d27a71f65656422a523e3b

5 years agoMerge vk-gl-cts/vulkan-cts-1.1.2 into vk-gl-cts/master
Alexander Galazin [Thu, 20 Dec 2018 09:00:42 +0000 (10:00 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.2 into vk-gl-cts/master

Change-Id: I3f84de46fe99fe2345041f61d4ddd9ea1763267a

5 years agoBe more careful about Block decorations on structs
Jason Ekstrand [Sat, 15 Dec 2018 00:04:39 +0000 (18:04 -0600)]
Be more careful about Block decorations on structs

In spirv/SPIR-V@9701a9f9 we changed the SPIR-V spec to say that
block-decorated structures could not be nested.  This is needed for
sorting out certain variable pointers issues inside a SPIR-V parser.
Unfortunately, the mentioned group of CTS tests violates this rule.
Their %input_buffer type is a struct containing two instances of
%outer_struct and both %input_buffer and %outer_struct are decorated
Block.  Fortunately, only one of the two struct types is actually
required for an input at any given type so we just need to be more
careful about the decorations.

Affects:

dEQP-VK.spirv_assembly.instruction.compute.variable_pointers.complex_types_compute.*

Components: Vulkan

VK-GL-CTS issue: 1518
Change-Id: I87a832fab94a9c06317d20b32afedf16b52ab2f2
(cherry picked from commit 1dbdfe34947fdb3e6d24226a58f02d0b8a515da8)

5 years agoMerge vk-gl-cts/master into vk-gl-cts/vulkan-cts-next-dev
Alexander Galazin [Thu, 20 Dec 2018 08:17:52 +0000 (09:17 +0100)]
Merge vk-gl-cts/master into vk-gl-cts/vulkan-cts-next-dev

Change-Id: I2a34679ba766c3637c4937318ba5260193307f5f

5 years agoMerge vk-gl-cts/vulkan-cts-1.1.2 into vk-gl-cts/master
Alexander Galazin [Thu, 20 Dec 2018 08:17:51 +0000 (09:17 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.2 into vk-gl-cts/master

Change-Id: I3755b4a43827bf4184df7d21382b3a7e6639c67e

5 years agoFix Block decorations in 8-bit storage tests
Jason Ekstrand [Sat, 15 Dec 2018 06:02:37 +0000 (00:02 -0600)]
Fix Block decorations in 8-bit storage tests

The Vulkan environment spec allows two types of SSBO declarations:

 - Storage class of Uniform with the BufferBlock decoration
 - Storage class of StorageBuffer with the Block decoration

All of the 8-bit storage tests, as far as I can see, have chosen to use
the StorageBuffer storage class.  However, most of the SSBO declarations
are missing the Block decoration entirely.  A few mistakenly have a
BufferBlock decoration.

Affects:

dEQP-VK.spirv_assembly.instruction.graphics.8bit_storage.*

Components: Vulkan

VK-GL-CTS issue: 1519
Change-Id: Id78cae9c1813cd04daa894779aa3fbec57240eb8

5 years agoFix further aspect masks in renderpass2 tests
Graeme Leese [Thu, 13 Dec 2018 11:21:13 +0000 (11:21 +0000)]
Fix further aspect masks in renderpass2 tests

Components: Vulkan
Affects: dEQP-VK.renderpass.suballocation.multisample.*
         dEQP-VK.renderpass2.suballocation.multisample.*

Change-Id: I52262321f00b2f7ffbe47efa4e455c80b6c5d251

5 years agoSimplify YCbCr result verification
Graeme Leese [Fri, 14 Dec 2018 16:11:53 +0000 (16:11 +0000)]
Simplify YCbCr result verification

Rather than write all the checks out three times only do it once.

Components: Vulkan
Affects: dEQP-VK.ycbcr.copy.*

Change-Id: I20fb18862c5db88b865da6121c09ac3486882c54

5 years agoFix initial YCbCr image layout
Graeme Leese [Fri, 14 Dec 2018 16:21:40 +0000 (16:21 +0000)]
Fix initial YCbCr image layout

When initialising linear tiling images they should be created with
LAYOUT_PREINITIALIZED rather then UNDEFINED.

Components: Vulkan
Affects: dEQP-VK.ycbcr.copy.*

Change-Id: Ie9136ce45cfa1e9f18e83c4655cc762d2211274e

5 years agoFix validation of occlusion query tests
Graeme Leese [Thu, 13 Dec 2018 10:18:30 +0000 (10:18 +0000)]
Fix validation of occlusion query tests

The vertex buffer usage was incorrectly set to storage buffer and the
flushing/invalidation was incorrect.

Change-Id: Ic2ff15fae3bf8dcbbf2e5d4d197f775755e933ba
Components: Vulkan
Affects: dEQP-VK.query_pool.occlusion_query.*

5 years agoFix more memory flush/invalidation cases
Graeme Leese [Thu, 13 Dec 2018 09:47:16 +0000 (09:47 +0000)]
Fix more memory flush/invalidation cases

Flushing or invalidating memory based on buffer sizes is not safe
because of the restriction around non-coherent atom size. Use the flush
and invalidate helpers to resolve this problem, fixing many validation
errors.

Components: Vulkan
Affects: dEQP-VK.draw.*
         dEQP-VK.image.*
         dEQP-VK.rasterization.*
         dEQP-VK.pipeline.push_descriptor.*

Change-Id: I7ad4cbc23529d24dad7dc80f29d5451d9157f74c

5 years agoValidation fixes for device_init tests
Graeme Leese [Wed, 12 Dec 2018 14:04:05 +0000 (14:04 +0000)]
Validation fixes for device_init tests

The validator requires that the queue properties be queried before
devices and queues are created.

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

Change-Id: Iddf9487703c65890eb0c97acc991d6e0a5c6a72b

5 years agoFix denorm tests in float_controls
Piotr Byszewski [Mon, 17 Dec 2018 13:13:05 +0000 (14:13 +0100)]
Fix denorm tests in float_controls

When binary operations on denorms are executed against Inf or Nan
SignedZeroInfNanPreserve mode should always be enabled as some
implementations may perform optimizations that assume that
arguments are not Nan or Inf. Before this change DenormPreserve
and DenormFlushToZero tests had only those modes enabled. Now
SignedZeroInfNanPreserve is added when second operand is Inf or Nan.

Components: Vulkan

VK-GL-CTS issue: 1517

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

Change-Id: I0b5e0ed010bde200154f58f9fe194fdf7c565803

5 years agoBe more careful about Block decorations on structs
Jason Ekstrand [Sat, 15 Dec 2018 00:04:39 +0000 (18:04 -0600)]
Be more careful about Block decorations on structs

In spirv/SPIR-V@9701a9f9 we changed the SPIR-V spec to say that
block-decorated structures could not be nested.  This is needed for
sorting out certain variable pointers issues inside a SPIR-V parser.
Unfortunately, the mentioned group of CTS tests violates this rule.
Their %input_buffer type is a struct containing two instances of
%outer_struct and both %input_buffer and %outer_struct are decorated
Block.  Fortunately, only one of the two struct types is actually
required for an input at any given type so we just need to be more
careful about the decorations.

Affects:

dEQP-VK.spirv_assembly.instruction.compute.variable_pointers.complex_types_compute.*

Components: Vulkan

VK-GL-CTS issue: 1518
Change-Id: I87a832fab94a9c06317d20b32afedf16b52ab2f2

5 years agoUpdate glslang
Alexander Galazin [Wed, 19 Dec 2018 09:14:55 +0000 (10:14 +0100)]
Update glslang

Components: Framework

Change-Id: Idc6041b4dc36737e9c3af9d9985ecab2f8bda811

5 years agoUpdate SPIR-V Tools
Alexander Galazin [Tue, 18 Dec 2018 17:01:46 +0000 (18:01 +0100)]
Update SPIR-V Tools

Components: Framework

Change-Id: I8b4acf9c7f144f745a2e0ff79ca489eb55edba4e

5 years agoMerge vk-gl-cts/master into vk-gl-cts/vulkan-cts-next-dev
Alexander Galazin [Tue, 18 Dec 2018 15:23:23 +0000 (16:23 +0100)]
Merge vk-gl-cts/master into vk-gl-cts/vulkan-cts-next-dev

Change-Id: I2931dfff2ea3c8df38fdf56b8df9f6e146d1a920

5 years agoMerge vk-gl-cts/vulkan-cts-1.1.2 into vk-gl-cts/master
Alexander Galazin [Tue, 18 Dec 2018 15:23:18 +0000 (16:23 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.2 into vk-gl-cts/master

Change-Id: Ic63a11b7b47f13bb1ab350afbeeec9059da4ff9d

5 years agoRemove multiple Offset decorations
Alexander Galazin [Tue, 18 Dec 2018 13:55:42 +0000 (14:55 +0100)]
Remove multiple Offset decorations

Fixes unintentional duplication of the Offset decoration
for the first struct member

Components: Vulkan

Affects: dEQP-VK.spirv_assembly.instruction.compute.opcopymemory.struct

Change-Id: Id13a8f15a72d7dd32d13fb52a494d57349cea289

5 years agoAdded tests to intentionally mismatch opImageType
Jari Komppa [Wed, 7 Nov 2018 13:49:39 +0000 (15:49 +0200)]
Added tests to intentionally mismatch opImageType

These tests intentionally mismatch the opImageType of the shader with
the source image types. The results of execution are ignored, but the
driver and/or graphics device is not expected to crash.

For the graphics tests, the source image format is changed, and
for the compute tests the shader is changed.

New tests:

dEQP-VK.spirv_assembly.instruction.graphics.image_sampler.*.optypeimage_mismatch.*
dEQP-VK.spirv_assembly.instruction.compute.image_sampler.*.optypeimage_mismatch_*

Components: Vulkan

VK-GL-CTS issue: 1420

Change-Id: I6f86986fda108b0dafc1a10d1790414d7bd5a2ba

5 years agoFix multiple ArrayStride decorations in float_controls
Piotr Byszewski [Tue, 18 Dec 2018 11:00:56 +0000 (12:00 +0100)]
Fix multiple ArrayStride decorations in float_controls

Most of float_controls tests that were executed on fragment stage
had an extra ArrayStride decorations for the same arrays. This change
corrects SPIR-V generation so that second set of ArrayStride
decorations is added only when tested operation input type is
different from operation result type.

Components: Vulkan

VK-GL-CTS issue: 1522

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

Change-Id: I3e72414e00bd82ff7a9975ff9148e9889bb32246

5 years agoMerge vk-gl-cts/master into vk-gl-cts/vulkan-cts-next-dev
Alexander Galazin [Tue, 18 Dec 2018 11:58:47 +0000 (12:58 +0100)]
Merge vk-gl-cts/master into vk-gl-cts/vulkan-cts-next-dev

Change-Id: Ib44f63dc9bbc3da62777baea5bbf22b19151aec8

5 years agoMerge vk-gl-cts/vulkan-cts-1.1.2 into vk-gl-cts/master
Alexander Galazin [Tue, 18 Dec 2018 10:31:34 +0000 (11:31 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.2 into vk-gl-cts/master

Change-Id: I295ae6f8a1549a687bf58eabc8fa38052a2bad48

5 years agoOptimizing reading in host_read_host_write.1048576
Arkadiusz Sarwa [Wed, 12 Dec 2018 14:23:10 +0000 (15:23 +0100)]
Optimizing reading in host_read_host_write.1048576

To optimize reading the "for loop byte by byte" was replaced
by memcpy for memory equal and larger then 1 MB.

Components: Vulkan
VK-GL-CTS issue: 1515
Affects:
dEQP-VK.memory.pipeline_barrier.host_read_host_write.1048576

Change-Id: I02f2c3c90d2fc554597f8892a77da6106062452d

5 years agoRemove duplicate tests under dEQP-VK.renderpass*
Toni Merilehti [Wed, 5 Dec 2018 08:28:56 +0000 (10:28 +0200)]
Remove duplicate tests under dEQP-VK.renderpass*

Some of the tests are located under both, dEQP-VK.renderpass* and
dEQP-VK.renderpass*.suballocation.* test groups. This removes
the duplicate cases directly under dEQP-VK.renderpass* and moves
the test cases that use sub-allocation into
dEQP-VK.renderpass*.suballocation.* test group.

Components: Vulkan

VK-GL-CTS Issue: 1491

Affects:

dEQP-VK.renderpass.multisample.*                       (removed)
dEQP-VK.renderpass.multisample_resolve.*               (removed)
dEQP-VK.renderpass.subpass_dependencies.*              (removed)
dEQP-VK.renderpass.sampleread.*                        (removed)
dEQP-VK.renderpass2.sampleread.*                       (removed)
dEQP-VK.renderpass.sparserendertarget.*                (removed)
dEQP-VK.renderpass2.sparserendertarget.*               (removed)
dEQP-VK.renderpass.unused_attachment.*                 (removed)
dEQP-VK.renderpass2.unused_attachment.*                (removed)
dEQP-VK.renderpass.suballocation.sampleread.*          (added)
dEQP-VK.renderpass2.suballocation.sampleread.*         (added)
dEQP-VK.renderpass.suballocation.sparserendertarget.*  (added)
dEQP-VK.renderpass2.suballocation.sparserendertarget.* (added)
dEQP-VK.renderpass.suballocation.unused_attachment.*   (added)
dEQP-VK.renderpass2.suballocation.unused_attachment.*  (added)

Change-Id: I99613fb5a0074877932974039ac01dfbdb80dc0d

5 years agoAdd more conditional rendering tests
Flisikowski [Tue, 16 Oct 2018 11:08:10 +0000 (13:08 +0200)]
Add more conditional rendering tests

Components: Vulkan

VK-GL-CTS Issue: 1485

New Tests: dEQP-VK.conditional_rendering.draw_clear.*

Change-Id: I9b58ab0e5c4d7519b452b25199ee2de0f090e3a1

5 years agoFixes binding model test format mismatch
Yu-Jun Li [Tue, 11 Dec 2018 18:53:06 +0000 (10:53 -0800)]
Fixes binding model test format mismatch

Storage texel buffer had a different format in
the shader (R32I) than in the app (R32UI).

Components: Vulkan
VK-GL-CTS issue: 1514

Affects:
dEQP-VK.binding_model.descriptorset_random.*

Change-Id: Iffbffbd002a77387dbe008e53ebb81d3f28838f5

5 years agoFixes AHB test out of memory error
Matthew Netsch [Mon, 10 Dec 2018 18:34:22 +0000 (13:34 -0500)]
Fixes AHB test out of memory error

Handles out of memory as not supported

Components: Vulkan
VK-GL-CTS issue: 1507

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

Change-Id: If46d2fd7a446f8348aa11bb1636635c7d1f3660a

5 years agoRemove Clip/CullDistance when not needed
Graeme Leese [Thu, 13 Dec 2018 09:58:28 +0000 (09:58 +0000)]
Remove Clip/CullDistance when not needed

Although the tests don't need clip or cull distances the capabilities
are enabled, which means that features would need to be enabled. Remove
the capabilities.

Components: Vulkan
Affects: dEQP-VK.spirv_assembly.instruction.*.float_controls.*
         dEQP-VK.spirv_assembly.instruction.compute.multiple_shaders.*

Change-Id: If8e18b1608f4d8d2782e9010c531a4e20119b414

5 years agoAdd tests using VkRunner, precompiling the scripts
Neil Roberts [Fri, 22 Jun 2018 07:54:32 +0000 (09:54 +0200)]
Add tests using VkRunner, precompiling the scripts

This is an alternative version of change 2660 that precompiles the
GLSL or SPIR-V assembly in the VkRunner test scripts to SPIR-V binary
during the build phase so that they can be executed faster and without
any external glslang or spirv-tools dependencies.

This adds VkRunner as an external dependency and then adds some
example test cases to use it. VkRunner is a tool designed to make it
easier to create shader tests for Vulkan by using a simple scripting
language which combines the shaders used for a pipeline along with a
description of the inputs and expected outputs.

VkRunner is fetched from an external repository so the fetch_sources
script needs to be run after merging the patch.

VkRunner tests can be added to any group, the tests need to be a child
class of the VkRunnerTestCase class.

Some VkRunner tests are provided as example, but they are excluded from
the mustpass:

   dEQP-VK.vkrunner-example.*

Shader test files are under external/vulkancts/data/vulkan/vkrunner/ path.
The example shader_test files are under example/ subfolder.

VK-GL-CTS: 1147
Change-Id: I1c5fc5f672a360800bfe10afbf96ca8fd07b38e6

5 years agoAdd some watchdog touches in AHB image format tests
Chris Forbes [Mon, 17 Dec 2018 16:53:22 +0000 (08:53 -0800)]
Add some watchdog touches in AHB image format tests

Timing on these tests is marginal if the device runs into memory trouble
and needs to spend a lot of time reclaiming to satisfy the allocations.

Change-Id: If397b95b3be02553b3bca2baf43b21b245136b6d
Affects: dEQP-VK.api.external.memory.android_hardware_buffer.image_formats
Components: Vulkan

5 years agoFix API usage errors in fragment operation tests
Ilkka Saarelainen [Tue, 4 Dec 2018 12:47:37 +0000 (14:47 +0200)]
Fix API usage errors in fragment operation tests

Validation layers catch multiple API usage errors
in fragment operation tests.

Fixes API usage errors caused by unsafe memory flush
and unsupported combinations of image memory barrier
dstAccessMask and dstStageMask.

Components: Vulkan

Affects: dEQP-VK.fragment_operations.*

VK-GL-CTS issue: 1471

Change-Id: I8647478082e9ca74a267bef96fd3e806c6b80dc4

5 years agoFixed incorrect load/store ops for depth in multiview test
Dae Kim [Tue, 11 Dec 2018 16:21:53 +0000 (16:21 +0000)]
Fixed incorrect load/store ops for depth in multiview test

The test expected the initial depth values to be preserved after the end of the
render pass, which wasn't guaranteed with the given load/store ops.

Components: Vulkan
VK-GL-CTS issue: 1227
Affects: dEQP-VK.multiview.depth.*

Change-Id: I1a42394c8d0f329b43ddde9f40e4a993122eddf9

5 years agoAdd subpass external dependency to pushDescriptor tests
Gary Sweet [Thu, 6 Dec 2018 09:55:51 +0000 (09:55 +0000)]
Add subpass external dependency to pushDescriptor tests

Back to back render passes are used with no pipeline barrier
or external subpass dependency to synchronise the output of
the first to the input of the second.

This change adds an external subpass dependency to ensure that
the render passes are synchronised.

Component: Vulkan
Affects: dEQP-VK.pipeline.push_descriptor.*input_attachment

VK-GL-CTS issue: 1467

Change-Id: Ie42ec31ab393439e7a4c312cfe6dcc40fde82c25

5 years agoReduce devices created in device_group tests
Peter Quayle [Tue, 11 Dec 2018 18:02:26 +0000 (18:02 +0000)]
Reduce devices created in device_group tests

The device_group tests could sometimes hit timeouts on
slower CPUs. This change reduces the number of objects
created in these tests to match the reduced number used
in the device and instance tests.

Affects:
dEQP-VK.api.object_management.
multithreaded_per_thread_resources.device_group
dEQP-VK.api.object_management.
multithreaded_shared_resources.device_group

Components: Vulkan

VK-GL-CTS issue: 1512
Change-Id: Icb68643ff530a8b1a1a7daa9fc93d8db8bc5faf9

5 years agoRemove duplicate identical make*MemoryBarrier
Jari Komppa [Mon, 19 Nov 2018 13:09:09 +0000 (15:09 +0200)]
Remove duplicate identical make*MemoryBarrier

This change adds a new util, vkBarrierUtil, which contains barrier
creation functions. The framework had 8 identical copies of these
functions. Apart from the identical ones, couple other barrier
making functions were also moved into the new util to have them
in the same place. The two makeImageBarrier functions were merged
using default parameters.

The affects-list is overly broad, but not easily measurable since the
changes may affect tests outside the directly edited files.

Affects:

dEQP-VK.*

Components: Vulkan, Framework

VK-GL-CTS issue: 1472

Change-Id: I761f9885bb6bce9a64526e498b9182c5064551ed

5 years agoAllow SRGB conversion for store tests to generate reference image.
Mohd Faisal [Fri, 7 Dec 2018 11:38:15 +0000 (11:38 +0000)]
Allow SRGB conversion for store tests to generate reference image.

If the driver supports feature VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT for
SRGB format then SRGB coversion is required to generate correct reference
values. Stores tests are using view format (SRGB format) for reference
image, and to generate correct reference image SRGB conversion is required.

Affects:
dEQP-VK.image.mutable.2d.*

Components: vulkan

VK-GL-CTS issue: 1501

Change-Id: I2ca657d53142f84f27390845539e84a6ea5e2d63

5 years agoFix flag dEQP-VK.*.record_simul_use_primary
Arkadiusz Sarwa [Fri, 7 Dec 2018 11:19:06 +0000 (12:19 +0100)]
Fix flag dEQP-VK.*.record_simul_use_primary

Flag VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT
should be used in VkCommandBufferBeginInfo when
a buffer is resubmitted to a queue while it is
in the pending state,

Components: Vulkan

Affects: dEQP-VK.api.command_buffers.record_simul_use_primary

VK-GL-CTS Issue: 1500

Change-Id: Id527cc2fa54de2675514f89b5f44af221f42bd80

5 years agoDEQP: Fix the build targets without SPIRV tools
Yiwei Zhang [Thu, 13 Dec 2018 00:12:43 +0000 (16:12 -0800)]
DEQP: Fix the build targets without SPIRV tools

VK-GL-CTS issue: 1516

Affects: Any build without SPIRV tools

Components: Framework

Change-Id: I7bdbcb94a0877e51d2ae39018fb80c84b2924607

5 years agoAdd tests for varying naming
Ari Suonpaa [Tue, 20 Nov 2018 10:48:46 +0000 (12:48 +0200)]
Add tests for varying naming

Some platforms were reported to incorrectly link varyings
between shader stages by varying name (OpName) instead
of location ID. These new tests make sure the name or
the lack of it doesn't affect the end results.

New tests:

dEQP-VK.spirv_assembly.instruction.graphics.varying_name.*

Components: Vulkan

VK-GL-CTS issue: 1407
Change-Id: I04aaaf7e0addce6f608875f1646ea71ad249a65e

5 years agoFix subgroup shuffle tests to do testing
Graeme Leese [Thu, 29 Nov 2018 18:22:33 +0000 (18:22 +0000)]
Fix subgroup shuffle tests to do testing

Modify the subgroup shuffle tests to modify the indices so that they're
in range, rather than just rejecting all the values that were out of
range. In my testing of the old method, every test was skipped so the
tests always passed.

Components: Vulkan
VK-GL-CTS issue: 1490
Affects: dEQP-VK.subgroups.shuffle.*

Change-Id: I51d4511aef60c37f39c634be9dbeaff9aca4717e

5 years agoRemove duplication from subgroup shuffle tests
Graeme Leese [Thu, 29 Nov 2018 14:50:48 +0000 (14:50 +0000)]
Remove duplication from subgroup shuffle tests

The code was very repetitious, meaning edits to the tests had to be done
in numerous places. Consolidate all the different copies together so
that they are easier to fix.

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

Change-Id: I95d864c72dcd4e070f26bc73cf97920c9a1fe088

5 years agoUpdate code comments around --deqp-renderdoc
Slawomir Cygan [Sat, 8 Dec 2018 22:03:45 +0000 (23:03 +0100)]
Update code comments around --deqp-renderdoc

No workarounds are needed or implemented at this moment.

Components: Vulkan, Framework

Change-Id: I967f211fb64088b75a2e32bbeceb4fa029cf2efd
Affects: None.

5 years agoCorrect copyright header
Slawomir Cygan [Sat, 8 Dec 2018 21:57:43 +0000 (22:57 +0100)]
Correct copyright header

Components: Vulkan, Framework

Change-Id: I58107231871c5997d2feaf38e6633ed426288c00
Affects: None

5 years agoDon't fail DisplayModeProperties2 with no display
Liam Middlebrook [Tue, 11 Dec 2018 04:42:47 +0000 (20:42 -0800)]
Don't fail DisplayModeProperties2 with no display

Instead, we should mark this test as not supported.

VK-GL-CTS issue: 1513
Components: Vulkan

Change-Id: I16a6dcb9f10997b5bbc24ffd2c2d7b0300f43f4c
Affects: dEQP-VK.wsi.display.get_display_mode_properties2

5 years agoMerge vk-gl-cts/master into vk-gl-cts/vulkan-cts-next-dev
Alexander Galazin [Mon, 10 Dec 2018 08:28:06 +0000 (09:28 +0100)]
Merge vk-gl-cts/master into vk-gl-cts/vulkan-cts-next-dev

Change-Id: I53fafcbc72de554b0a8485c83f9f16e5a2fc595c

5 years agoSet the correct "unused" attachment initialLayout
Piers Daniell [Tue, 4 Dec 2018 19:29:19 +0000 (12:29 -0700)]
Set the correct "unused" attachment initialLayout

Before the renderpass the "unused" attachment image is cleared
to a known value and left in the VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL
layout. However, the initialLayout field for the "unused"
attachment is set to VK_IMAGE_LAYOUT_UNDEFINED, which might
cause the image contents to be perturbed when the image
is transitioned from VK_IMAGE_LAYOUT_UNDEFINED to the
finalLayout of VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL.

I understand that part of the purpose of these
"unused_attachment" tests is to ensure "unused" attachments
aren't modified by the renderpass. However, there is nothing
in the Vulkan spec that says the layout of "unused"
attachments should be ignored. This was discussed in issue:
https://github.com/KhronosGroup/Vulkan-Docs/issues/821

And the conclusion is that the layout must: not be ignored
for "unused" attacments.

Affects:
dEQP-VK.renderpass*.unused_attachment.*

Components: Vulkan

VK-GL-CTS issue: 1129

Change-Id: Ia6db607538cb191bc8ca6e03f8da9c88bac031c4

5 years agoAdd framework function createInstanceWithExtensions
Ari Suonpaa [Fri, 16 Nov 2018 14:04:23 +0000 (16:04 +0200)]
Add framework function createInstanceWithExtensions

Several tests have their own implementation for creating an
instance with extension. Combined these into a framework
function.

Affects:

dEQP-VK.api.device_init.*
dEQP-VK.api.info.*
dEQP-VK.compute.basic.*
dEQP-VK.memory.allocation.*
dEQP-VK.sparse_resources.*
dEQP-VK.ycbcr.format.*

Components: Vulkan

VK-GL-CTS issue: 1470
Change-Id: Idf40f65b18f5f3c84313f22ef023f2ca9aa6ea75

5 years agoMerge vk-gl-cts/master into vk-gl-cts/vulkan-cts-next-dev
Alexander Galazin [Fri, 7 Dec 2018 12:42:23 +0000 (13:42 +0100)]
Merge vk-gl-cts/master into vk-gl-cts/vulkan-cts-next-dev

Change-Id: I6b9a7542624d1899ed00f694e7f87c1a40252280

5 years agoMerge vk-gl-cts/vulkan-cts-1.1.2 into vk-gl-cts/master
Alexander Galazin [Fri, 7 Dec 2018 12:42:22 +0000 (13:42 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.2 into vk-gl-cts/master

Change-Id: I02792923c734edfd6749ff9aea25516c5c4e2a80

5 years agoAdd support for RenderDoc in Vulkan tests
Cygan, Slawomir [Thu, 5 Jul 2018 16:54:09 +0000 (18:54 +0200)]
Add support for RenderDoc in Vulkan tests

This add --deqp-renderdoc=enable commandline, which adds
start frame / end frame signalization using RenderDoc 'in-application' API.

Components: Vulkan, Framework

VK-GL-CTS Issue: 1444

Change-Id: Ib9e8a978cecb96784405ec32495fcb2b156540be

5 years agoSkip fconvert16 if float16 not supported
Graeme Leese [Fri, 7 Dec 2018 10:58:39 +0000 (10:58 +0000)]
Skip fconvert16 if float16 not supported

The SPIR-V instruction test for float16 wasn't checking for the float16
capability correctly so didn't work properly on implementations that
don't support it.

Components: Vulkan
VK-GL-CTS issue: 1499
Affects:
    dEQP-VK.spirv_assembly.instruction.compute.opspecconstantop.fconvert16

Change-Id: Id8dfc596acda41da670b2d6c08bde9920df99268

5 years agoMerge vk-gl-cts/master into vk-gl-cts/vulkan-cts-next-dev
Alexander Galazin [Fri, 7 Dec 2018 10:54:26 +0000 (11:54 +0100)]
Merge vk-gl-cts/master into vk-gl-cts/vulkan-cts-next-dev

Change-Id: Ic9da2ef7da15b1d5e72ed892c753a26e084fcd49

5 years agoMerge vk-gl-cts/vulkan-cts-1.1.2 into vk-gl-cts/master
Alexander Galazin [Fri, 7 Dec 2018 10:16:32 +0000 (11:16 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.2 into vk-gl-cts/master

Change-Id: I0351d45fc4e1069de4ab67dae4df820eb76e5785

5 years agoUpdate glslang
Alexander Galazin [Tue, 4 Dec 2018 15:22:53 +0000 (16:22 +0100)]
Update glslang

Components: Framework, Vulkan

Change-Id: Ic2ecbd6915b8f4d6ecfc6a291df0791ddf5167e8

5 years agoAdd precision error margin to cos() tests for float_controls
Samuel Iglesias Gonsálvez [Tue, 4 Dec 2018 15:22:26 +0000 (16:22 +0100)]
Add precision error margin to cos() tests for float_controls

On some old Intel hardware, Mesa doesn't return exactly 1.0 for cos(0).
This change implements the precision error margin for the affected cos() tests,
following Vulkan spec, "Precision and Operation of SPIR-V Instructions".

Components: Vulkan

Affects: dEQP-VK.spirv_assembly.instruction.*.float_controls.*.cos_denorm_flush_to_zero*

VK-GL-CTS issue: 1498

Change-Id: I2ff07616f706d4214517917276aeb26d2d875325
Signed-off-by: Samuel Iglesias Gonsálvez <siglesias@igalia.com>
5 years agoRemove unsupported image load store tests
Piers Daniell [Tue, 4 Dec 2018 17:06:01 +0000 (10:06 -0700)]
Remove unsupported image load store tests

CL https://gerrit.khronos.org/#/c/2639/ added more
formats to the dEQP-VK.image.mutable.* tests. Variants
of these tests use image load store. However, the new
formats added are not all compatible with image load
store as defined by:
https://www.khronos.org/registry/vulkan/specs/1.1/html/vkspec.html#spirvenv-image-formats

This CL removes test variants that use image load store
and the invalid formats from the mustpass list.

Affected tests:
dEQP-VK.image.mutable.*
dEQP-VK.image.swapchain_mutable.*

Components: Vulkan

VK-GL-CTS issue: 1495

Change-Id: I49867913ba5c4e50b4f3d85d7c6787dc60113e63

5 years agoFix image feature checks for swapchain_mutable.*
Piers Daniell [Mon, 3 Dec 2018 22:27:34 +0000 (15:27 -0700)]
Fix image feature checks for swapchain_mutable.*

This fix mirrors what was already done in
https://gerrit.khronos.org/#/c/2799/ for the other
image.mutable.* tests. Without this fix the
DE_FATAL("Invalid download method") assert will fire
for some of the sub tests and the test won't be
properly skipped when the platform doesn't support
the format.

Components: Vulkan

Affects: dEQP-VK.image.swapchain_mutable.*

VK-GL-CTS Issue: 1295

Change-Id: I009baa8697ae09f7e9b8001b90159658ced4c62a

5 years agoValidation: Use correct aspects in renderpass2
Graeme Leese [Wed, 14 Nov 2018 13:12:44 +0000 (13:12 +0000)]
Validation: Use correct aspects in renderpass2

Many of the tests were not setting up the aspect mask for input
attachments, meaning that the renderpass2 tests (for which it is
required) were failing validation.

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

Change-Id: I7ca22cf1958a31137d1fb32ef84f944704354fb9