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
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
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
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
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)
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
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
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)
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)
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
Alexander Galazin [Fri, 11 Jan 2019 08:51:22 +0000 (09:51 +0100)]
Update glslang
Component: Framework
Change-Id: I35639832f859e7eb4d62c887eee465555f04b877
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
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)
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)
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)
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
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
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)
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)
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
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
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
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
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
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
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
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
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)
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
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)
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
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
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)
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
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
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
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
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
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
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)
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
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
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
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
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
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
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.*
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
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
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
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
Alexander Galazin [Wed, 19 Dec 2018 09:14:55 +0000 (10:14 +0100)]
Update glslang
Components: Framework
Change-Id: Idc6041b4dc36737e9c3af9d9985ecab2f8bda811
Alexander Galazin [Tue, 18 Dec 2018 17:01:46 +0000 (18:01 +0100)]
Update SPIR-V Tools
Components: Framework
Change-Id: I8b4acf9c7f144f745a2e0ff79ca489eb55edba4e
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.
Slawomir Cygan [Sat, 8 Dec 2018 21:57:43 +0000 (22:57 +0100)]
Correct copyright header
Components: Vulkan, Framework
Change-Id: I58107231871c5997d2feaf38e6633ed426288c00
Affects: None
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
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
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
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
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
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
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
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
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
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
Alexander Galazin [Tue, 4 Dec 2018 15:22:53 +0000 (16:22 +0100)]
Update glslang
Components: Framework, Vulkan
Change-Id: Ic2ecbd6915b8f4d6ecfc6a291df0791ddf5167e8
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>
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
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
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
Ari Suonpaa [Mon, 19 Nov 2018 12:39:41 +0000 (14:39 +0200)]
Extend OpCompositeInsert test
Extended OpCompositeInsert test with vector and nested
struct cases.
Affects:
dEQP-VK.spirv_assembly.instruction.*.composite_insert.*
Components: Vulkan
VK-GL-CTS issue: 1458
Change-Id: Icef6dd3161581ddb8b7413190b77833aa02461f1
Chris Forbes [Wed, 5 Dec 2018 21:39:33 +0000 (13:39 -0800)]
Merge remote-tracking branch 'aosp/master' into deqp-dev
Change-Id: I993281855ca306c2d1050c3ef712e639609b8e88
Jeff Bolz [Tue, 4 Dec 2018 17:00:04 +0000 (11:00 -0600)]
Fix ubo.random to only use scalar_block_layout in 'scalar' tests
Components: Vulkan
Affects: dEQP-VK.ubo.random*
VK-GL-CTS issue: 1493
Change-Id: I1f5c9b3d8269973c33de1908673d942e67ea3184
Yiwei Zhang [Tue, 4 Dec 2018 23:20:05 +0000 (15:20 -0800)]
dEQP: change sdk version to test_current
The current dEQP tests running with cts-tradefed will pop up a window
saying 'was built for an older version of Android'. This change fixes
that issue.
Bug:
120244829
Test: CtsDeqpTestCases
Change-Id: I3ccc64f2784a071d49bfe2d7b60350d518980e68