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
Alexander Galazin [Thu, 20 Dec 2018 13:52:01 +0000 (14:52 +0100)]
Update Vulkan CTS Readme to point to 1.1.4
Components: Vulkan
Change-Id: Ibef8d751890c6536087ea6f09dd1ee421e3f868d
Alexander Galazin [Thu, 20 Dec 2018 14:00:18 +0000 (15:00 +0100)]
Start 1.1.4 mustpass
Components: Vulkan
Change-Id: I86860cd62ba12a94b13bda7c7cd7345e5866b080
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
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
Julien Desprez [Tue, 4 Dec 2018 17:33:39 +0000 (09:33 -0800)]
Update DeqpTestRunner to use new Metrics
Speed up slightly DeqpTestRunner collect-test-only by:
- batching the logs
- avoiding old metric <string,string> to <string,Metric>
convertion.
Test: run cts-unit-tests
./cts-tradefed run cts-dev -m CtsDeqpTestCases --collect-tests-only
Bug:
120479153
Change-Id: Ie5317f8028322ec04b01cedc6298c44924159dd9
Alexander Galazin [Tue, 4 Dec 2018 09:09:13 +0000 (10:09 +0100)]
Merge vk-gl-cts/master into vk-gl-cts/vulkan-cts-next-dev
Change-Id: I7bb3a08bbf8336ce20de13284579de1d1e1b196e
Alexander Galazin [Tue, 4 Dec 2018 09:08:55 +0000 (04:08 -0500)]
Merge "Merge vk-gl-cts/vulkan-cts-1.1.2 into vk-gl-cts/master"
Jari Komppa [Tue, 2 Oct 2018 13:02:59 +0000 (16:02 +0300)]
Added script for vulkan.h.in generation
In order to avoid manual editing of vulkan.h.in, this script can be used
to perform all the operations that usually need manual editing, but
instead performs the operations from source XML files instead.
The script can read a base XML file, a superset XML file and the current
header file. These three files are analysed for the extensions they
contain, and the user can interactively select which extensions from the
superset to include in the generated header. (All extensions from the
base XML are included).
The script also automatically fetches the current vk.xml and header
genration scripts from github using wget.
This script is not automatically run by the build process, and requires
manual interaction to run. It depends on python3, since it uses the
header generation scripts that are part of the vk-docs project. Only the
generated header files should be committed to the git repository.
Affects:
None
Components: Framework
VK-GL-CTS issue: 1322
Change-Id: I26557d672483325924dc32febadd283669a4bc82
Alexander Galazin [Tue, 4 Dec 2018 08:15:58 +0000 (09:15 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.2 into vk-gl-cts/master
Change-Id: I3756dbd3bcc1c4760ac3ed8e1e8e4aaa5b77d36a
Alexander Galazin [Mon, 3 Dec 2018 17:54:16 +0000 (18:54 +0100)]
Update SPIR-V Tools/Headers
Update SPIR-V Tools/Headers to public commits
Components: Framework
Change-Id: If65c03f115c69386163303c61f5f62c85a2b3d4b
Alexander Galazin [Mon, 3 Dec 2018 18:40:25 +0000 (19:40 +0100)]
Fix incorrect decoration on PushConstant
The spec reuires PC to be decorated as Block not BufferBlock
Components: Vulkan
Affects: dEQP-VK.spirv_assembly.instruction.graphics.16bit_storage.*
VK-GL-CTS issue: 1494
Change-Id: Ic82ad34970117a06101173bdc2f62dea6859e723
Alexander Galazin [Mon, 3 Dec 2018 08:04:30 +0000 (09:04 +0100)]
Merge vk-gl-cts/master into vk-gl-cts/vulkan-cts-next-dev
Change-Id: I8239ca8616140dac13fb39393d390d13f04fe175
Alexander Galazin [Sun, 2 Dec 2018 15:53:28 +0000 (16:53 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.2 into vk-gl-cts/master
Change-Id: I3c988846faac50be72e65338dc83e040ef0810ee
Alexander Galazin [Thu, 22 Nov 2018 15:44:31 +0000 (16:44 +0100)]
Enable remaining OpFUnord tests
NaN issues should be handled by
000e5e5b715
Components: Vulkan
Affects:
dEQP-VK.spirv_assembly.instruction.compute.opfunord.*
VK-GL-CTS issue: 1423
Change-Id: Ie0c2bcb3abf4a8bfcdd2a464c761e18e9064ced3
Slawomir Cygan [Tue, 23 Oct 2018 15:06:34 +0000 (17:06 +0200)]
Add test veryifying if proper 'count' is written in wsi getters
Some functions returning arbitrary number of elements were not tested to update
'count', if the return array was given (not null).
Components: vulkan.h.in
VK-GL-CTS Issue: 1449
New Tests:
dEQP-VK.wsi.*.swapchain.get_images.count
Affects:
dEQP-VK.wsi.*.surface.query_formats
dEQP-VK.wsi.*.surface.query_formats2
dEQP-VK.wsi.*.surface.query_present_modes
Change-Id: Ic21e11110f420ecbc3785a43cff705ddcab512b4
Alexander Galazin [Fri, 30 Nov 2018 10:55:11 +0000 (11:55 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.1 into vk-gl-cts/vulkan-cts-1.1.2
Change-Id: If1ee61695b77b22b2bbb7071d375ee1de46a2d6e
Alexander Galazin [Fri, 30 Nov 2018 10:16:04 +0000 (11:16 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.0 into vk-gl-cts/vulkan-cts-1.1.1
Change-Id: I141759bd5109a1207d170b7977345a6c739d4d49
Alexander Galazin [Wed, 28 Nov 2018 18:32:31 +0000 (19:32 +0100)]
Fix non-constant Id in subgroupBroadcast
Glslang started to enforce constantness of
the ID parameter in subgroupBroadcast.
This fixes some tests that used to have
non-constant Id by manually unrolling the loop.
Components: Vulkan
Affects: dEQP-VK.subgroups.ballot_broadcast.subgroupbroadcas*
VK-GL-CTS issue: 1489
Change-Id: I291875f94b9781fc4920617106c4f86786fd82d8
(cherry picked from commit
4708641aeed605da095764bbc2d90df760309db3)
Alex Walters [Wed, 14 Nov 2018 15:28:17 +0000 (15:28 +0000)]
Remove texel_view uncompressed float formats
The specification states that "Values intended to be used with one view
format may not be exactly perserved when written or read through a
different format".
This change removes any float formats from the list of uncompressed
formats used to generate test cases.
Affects:
dEQP-VK.image.texel_view_compatible*float
Components: Vulkan
VK-GL-CTS issue: 1285
Change-Id: I5fa61e5f7170fa7a662047270aaf96e8e477b076
Alex Walters [Wed, 14 Nov 2018 15:28:17 +0000 (15:28 +0000)]
Remove texel_view uncompressed float formats
The specification states that "Values intended to be used with one view
format may not be exactly perserved when written or read through a
different format".
This change removes any float formats from the list of uncompressed
formats used to generate test cases.
Affects:
dEQP-VK.image.texel_view_compatible*float
Components: Vulkan
VK-GL-CTS issue: 1285
Change-Id: I5fa61e5f7170fa7a662047270aaf96e8e477b076
Alex Walters [Wed, 14 Nov 2018 15:28:17 +0000 (15:28 +0000)]
Remove texel_view uncompressed float formats
The specification states that "Values intended to be used with one view
format may not be exactly perserved when written or read through a
different format".
This change removes any float formats from the list of uncompressed
formats used to generate test cases.
Affects:
dEQP-VK.image.texel_view_compatible*float
Components: Vulkan
VK-GL-CTS issue: 1285
Change-Id: I5fa61e5f7170fa7a662047270aaf96e8e477b076
Chris Forbes [Tue, 13 Nov 2018 23:08:45 +0000 (15:08 -0800)]
Add barrier at start of each CB to order wrt previous CBs
Currently, there is only the implicit ordering guarantee for the top of
pipe between batches of commands. This isn't adequate for implementations
that allow overlapping work from different CBs. Insert an explicit
fairly-full barrier at the beginning of each CB to make this safe.
(Suggested by ARM to Google to deal with some long-standing weird
behavior)
Change-Id: I254db5f1461d5ff7c0af73de9219f59c8154df7c
Affects: dEQP-VK.memory.pipeline_barrier.*
Components: Vulkan
Google bug: b/
113601409
VK-GL-CTS Issue: 1468
Alexander Galazin [Wed, 28 Nov 2018 09:09:54 +0000 (10:09 +0100)]
Update SPIR-V Tools/Headers
Update SPIR-V Tools/Headers to gitlab-prelim-rc9
Components: Framework
Change-Id: I7e6d8a98afe431df2d8bf4c77e5a609f1c34b2a1
Alexander Galazin [Thu, 29 Nov 2018 09:29:52 +0000 (10:29 +0100)]
Update glslang
Components: Framework
Change-Id: I0d3cf4fa6e5cce6c37a76bc2558cb4aeced4f902
Arkadiusz Sarwa [Wed, 28 Nov 2018 16:23:32 +0000 (17:23 +0100)]
Fix: alloc_callback_fail.render_pass test
Test does not use the created allocator and always reports
quality error.
Components: Vulkan
Affects: dEQP-VK.api.object_management.alloc_callback_fail.render_pass
VK-GL-CTS issue: 1488
Change-Id: I18b87dec78e1c50cb8caf6d2e5acdeec42b05dd6
Alexander Galazin [Wed, 28 Nov 2018 18:32:31 +0000 (19:32 +0100)]
Fix non-constant Id in subgroupBroadcast
Glslang started to enforce constantness of
the ID parameter in subgroupBroadcast.
This fixes some tests that used to have
non-constant Id by manually unrolling the loop.
Components: Vulkan
Affects: dEQP-VK.subgroups.ballot_broadcast.subgroupbroadcas*
VK-GL-CTS issue: 1489
Change-Id: I291875f94b9781fc4920617106c4f86786fd82d8
Alexander Galazin [Fri, 30 Nov 2018 08:27:32 +0000 (09:27 +0100)]
Whitelist VK_KHR_shader_float16_int8
Components: Vulkan
Affects: dEQP-VK.api.info.device.extensions
Change-Id: Ic694aa658912ead8288ceccc2def4572742cd193
Slawomir Cygan [Wed, 21 Nov 2018 10:55:41 +0000 (11:55 +0100)]
Enable previously excluded acos test
Components: Vulkan
VK-GL-CTS Issue: 1478
Affects: dEQP-VK.glsl.builtin.precision.acos.mediump_compute.*
Change-Id: Iec74f5e8ec15bb241ab1879121955ec59832dac4
Jason Ekstrand [Wed, 7 Nov 2018 02:49:41 +0000 (20:49 -0600)]
Add tests for derivatives in dynamic but quad-uniform control flow
Components: Vulkan
Affects: dEQP-VK.glsl.derivate.*
New tests: dEQP-VK.glsl.derivate.*dynamic*
Change-Id: I7d457d26d724ea3d3ae19959393b6e752d669769
Iago Toral Quiroga [Fri, 9 Nov 2018 10:51:06 +0000 (11:51 +0100)]
Add tests for booleans produced from different bit-sizes
Vulkan and SPIR-V do not define a specific bit-pattern or bit-size
for boolean values and it assumes that there is a single boolean
representation. However, some GPU architectures may have various
representations of booleans that can be produced from emitting
instructions with varying native bit-sizes.
These tests use 32-bit, 16-bit and 8-bit instructions to produce
boolean results which are then operated together via logical
operations to ensure that boolean representation is handled
consistently across bit-sizes.
Vk-GL-CTS issue: 1465
Components: Vulkan
New tests:
dEQP-VK.spirv_assembly.instruction.compute.bool.mixed_bitsize.*
Change-Id: I6a4c01e29249a4a69f839dc283fea4258c3164cb
Arkadiusz Sarwa [Fri, 23 Nov 2018 14:46:50 +0000 (15:46 +0100)]
Fix: adds checking the maxPerStageResources limit
Tests dEQP-VK.binding_model.descriptorset_random.*
don't check that limit, so it is possible to execute tests
on device which doesn't support so many descriptors.
Components: Vulkan
Affects: dEQP-VK.binding_model.descriptorset_random.*
VK-GL-CTS issue: 1481
Change-Id: If07f3c6aeb7696cec4620eb93df87ac2119ee3cc
Boris Zanin [Mon, 19 Nov 2018 10:08:31 +0000 (11:08 +0100)]
More allowed alternatives for 'dot' and 'normalize'
Expanded dot and normalize may be re-associated in multiple ways.
Add all possible alternatives.
Updates:
* dEQP-VK.spirv_assembly.instruction.compute.float16.arithmetic*opdot
* dEQP-VK.spirv_assembly.instruction.compute.float16.arithmetic*normalize
Affects:
* dEQP-VK.spirv_assembly.instruction.compute.float16.arithmetic*
Components: Vulkan
VK-GL-CTS issue: 1451
Change-Id: I524ad384b876618f42f87bc147622f7b5bd80cd4
Toni Merilehti [Sun, 28 Oct 2018 15:59:58 +0000 (17:59 +0200)]
Add tests for late fragment test dependencies
This will extend the coverage of vktRenderPassSubpassDependencyTests to
test subpass dependencies of late fragment tests between multiple
subpasses inside a render pass instance. The tests verifies that late
fragment tests are completed before reading the contents in
the following subpass.
New tests:
dEQP-VK.renderpass*.subpass_dependencies.late_fragment_tests.*
Components: Vulkan
VK-GL-CTS issue 1399
Change-Id: I3dc76e6a0e333b2d76fe2b825988074ff428e4b3
Alexander Galazin [Wed, 28 Nov 2018 10:47:18 +0000 (11:47 +0100)]
Fix validation for int8 conversion
Add Int8 capability for conversions between int8 and non-32 bit types
Components: Vulkan
Affects: dEQP-VK.spirv_assembly.*.convert*
Change-Id: I61485d5f6cc8c1d48cc50f1268398b7df7c92d91
Peter Deayton [Thu, 15 Nov 2018 18:26:37 +0000 (10:26 -0800)]
Allow float16 max value for result larger than max
Numbers larger than the maximum representable float16 value may round to
infinity for RTE rounding mode, or to the maximum representable value
65504 (0x7bff) for RTZ rounding mode.
Components: Vulkan
VK-GL-CTS issue: 1483
Affects:
dEQP-VK.spirv_assembly.instruction.compute.float16.arithmetic_*
dEQP-VK.spirv_assembly.instruction.graphics.float16.arithmetic_*
Change-Id: Id53eeb797e522db98bb070894a7c715507a4f05a
Juan A. Suarez Romero [Mon, 26 Nov 2018 17:30:51 +0000 (18:30 +0100)]
Fix leak in shaderCacheLoad()
Free used memory in shaderCacheLoad() function.
Components: Framework
VK-GL-CTS issue: 1484
Change-Id: Id17a695540acd5f67b890fd0e67ca549eb2da17e