platform/upstream/VK-GL-CTS.git
6 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

6 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

6 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

6 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.*

6 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

6 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

6 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

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

Components: Framework

Change-Id: Idc6041b4dc36737e9c3af9d9985ecab2f8bda811

6 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

6 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

6 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

6 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

6 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

6 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

6 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

6 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

6 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

6 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

6 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

6 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

6 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

6 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

6 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

6 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

6 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

6 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

6 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

6 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

6 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

6 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

6 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

6 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

6 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

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

6 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

6 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

6 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

6 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

6 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

6 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

6 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

6 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

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

Components: Framework, Vulkan

Change-Id: Ic2ecbd6915b8f4d6ecfc6a291df0791ddf5167e8

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

6 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

6 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

6 years agoExtend OpCompositeInsert test
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

6 years agoFix ubo.random to only use scalar_block_layout in 'scalar' tests
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

6 years agoMerge "Merge vk-gl-cts/vulkan-cts-1.1.2 into vk-gl-cts/master"
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"

6 years agoAdded script for vulkan.h.in generation
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

6 years agoMerge vk-gl-cts/vulkan-cts-1.1.2 into vk-gl-cts/master
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

6 years agoUpdate SPIR-V Tools/Headers
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

6 years agoFix incorrect decoration on PushConstant
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

6 years agoMerge vk-gl-cts/vulkan-cts-1.1.2 into vk-gl-cts/master
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

6 years agoAdd test veryifying if proper 'count' is written in wsi getters
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

6 years agoMerge vk-gl-cts/vulkan-cts-1.1.1 into vk-gl-cts/vulkan-cts-1.1.2
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

6 years agoMerge vk-gl-cts/vulkan-cts-1.1.0 into vk-gl-cts/vulkan-cts-1.1.1
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

6 years agoFix non-constant Id in subgroupBroadcast
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)

6 years agoRemove texel_view uncompressed float formats
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

6 years agoRemove texel_view uncompressed float formats
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

6 years agoRemove texel_view uncompressed float formats
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

6 years agoAdd barrier at start of each CB to order wrt previous CBs
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

6 years agoUpdate SPIR-V Tools/Headers
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

6 years agoUpdate glslang
Alexander Galazin [Thu, 29 Nov 2018 09:29:52 +0000 (10:29 +0100)]
Update glslang

Components: Framework

Change-Id: I0d3cf4fa6e5cce6c37a76bc2558cb4aeced4f902

6 years agoFix: alloc_callback_fail.render_pass test
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

6 years agoFix non-constant Id in subgroupBroadcast
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

6 years agoWhitelist VK_KHR_shader_float16_int8
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

6 years agoAdd tests for derivatives in dynamic but quad-uniform control flow
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

6 years agoFix: adds checking the maxPerStageResources limit
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

6 years agoMore allowed alternatives for 'dot' and 'normalize'
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

6 years agoAdd tests for late fragment test dependencies
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

6 years agoFix validation for int8 conversion
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

6 years agoAllow float16 max value for result larger than max
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

6 years agoFix leak in shaderCacheLoad()
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

6 years agoAllow RTE and RTZ for float16 derivative test
Peter Deayton [Thu, 15 Nov 2018 18:25:58 +0000 (10:25 -0800)]
Allow RTE and RTZ for float16 derivative test

The result of the test may not be representable exactly in a float16.
Allow both round to nearest even and round to zero as valid results.

Components: Vulkan

VK-GL-CTS issue: 1482

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

Change-Id: I7add6f5fc0888897fbb374fb8e5576f7c1284bc3

6 years agoCorrect image mutable tests on null driver
Piotr Byszewski [Fri, 9 Nov 2018 16:53:42 +0000 (17:53 +0100)]
Correct image mutable tests on null driver

This change removes three assertions that were recently added during
implementation of tests for VK_KHR_swapchain_mutable_format
Adding addtional logic to implementation of
getPhysicalDeviceFormatProperties on null driver could potentialy
also resolve this issue but then test would still report
NotSupported.

VK-GL-CTS issue: 1461

Components: Vulkan

Change-Id: I44a1ce13019cf6ab1a2972337252e58ded3e7e31
Affects: dEQP-VK.image.*

6 years agoMerge vk-gl-cts/aosp-deqp-dev into vk-gl-cts/master
Alexander Galazin [Wed, 28 Nov 2018 14:02:50 +0000 (15:02 +0100)]
Merge vk-gl-cts/aosp-deqp-dev into vk-gl-cts/master

Change-Id: Ie9125ed022a45ebe21db504c25374b05b6f633ef

6 years agoMerge vk-gl-cts/opengl-cts-4.6.0 into vk-gl-cts/master
Alexander Galazin [Wed, 28 Nov 2018 13:28:29 +0000 (14:28 +0100)]
Merge vk-gl-cts/opengl-cts-4.6.0 into vk-gl-cts/master

Change-Id: Iac42d008fde65db886e160683eaac96b6778b5a8

6 years agoMerge vk-gl-cts/vulkan-cts-1.1.2 into vk-gl-cts/master
Alexander Galazin [Wed, 28 Nov 2018 11:51:32 +0000 (12:51 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.2 into vk-gl-cts/master

Change-Id: I305701213a8d458c951e6c264d81659175e4b106

6 years agoMerge vk-gl-cts/vulkan-cts-1.1.1 into vk-gl-cts/vulkan-cts-1.1.2
Alexander Galazin [Wed, 28 Nov 2018 11:51:29 +0000 (12:51 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.1 into vk-gl-cts/vulkan-cts-1.1.2

Change-Id: If195a88e379f262db7a1220f8cf7a2905225c9f9

6 years agoMerge vk-gl-cts/vulkan-cts-1.1.0 into vk-gl-cts/vulkan-cts-1.1.1
Alexander Galazin [Wed, 28 Nov 2018 11:21:14 +0000 (12:21 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.0 into vk-gl-cts/vulkan-cts-1.1.1

Change-Id: I92e6488c67cd6bafa10dec08c8e6d90dcc80be0d

6 years agoFixes memory allocation tests
Matthew Netsch [Tue, 28 Aug 2018 18:44:45 +0000 (14:44 -0400)]
Fixes memory allocation tests

Queries the platform specific alignment restrictions
with a temp buffer instead of estimating.

Components: Vulkan
VK-GL-CTS issue: 1259

Affects:
dEQP-VK.memory.allocation.basic.size_*

Change-Id: I272026f9e29b5606b8a4265ef0034752ac43a71a
(cherry picked from commit 0f658f6c6a12a7356ce494cd6eaf9034da0a84b7)

6 years agoUpdate glslang
Alexander Galazin [Tue, 27 Nov 2018 13:26:50 +0000 (14:26 +0100)]
Update glslang

Components: Framework

Change-Id: I5c969c767d58afe0d0ef30e46f78d9b96d20b8a7

6 years agoRemove duplicate float16Int8Features
Jeff Bolz [Tue, 27 Nov 2018 22:41:48 +0000 (16:41 -0600)]
Remove duplicate float16Int8Features

This causes everything in between to be lost from the pNext chain.

Components: Vulkan
Change-Id: I4f8d0d2300f487427cb08366566ef3cad97b1c65

6 years agoMerge remote-tracking branch 'khronos/master' into deqp-dev
Chris Forbes [Tue, 27 Nov 2018 16:34:31 +0000 (08:34 -0800)]
Merge remote-tracking branch 'khronos/master' into deqp-dev

Change-Id: I3eed3a763d361dec4f081c85c18263676e58f912

6 years agoMerge vk-gl-cts/vulkan-cts-1.1.2 into vk-gl-cts/master
Alexander Galazin [Tue, 27 Nov 2018 14:28:52 +0000 (15:28 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.2 into vk-gl-cts/master

Change-Id: I22d47d684dabcebb9d4b8c063720cd74bff02a3b

6 years agoMerge vk-gl-cts/vulkan-cts-1.1.1 into vk-gl-cts/vulkan-cts-1.1.2
Alexander Galazin [Tue, 27 Nov 2018 13:06:15 +0000 (14:06 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.1 into vk-gl-cts/vulkan-cts-1.1.2

Change-Id: I3a2c85d31fe5622a9c0a2d428d419e3853699733

6 years agoMerge vk-gl-cts/vulkan-cts-1.1.0 into vk-gl-cts/vulkan-cts-1.1.1
Alexander Galazin [Tue, 27 Nov 2018 13:06:11 +0000 (14:06 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.0 into vk-gl-cts/vulkan-cts-1.1.1

Change-Id: Id836e23ef8901e34c2fcdbba40aea8aad4d3767d

6 years agoRemove StorageUniform16 from SPIR-V conversion tests
Ilkka Saarelainen [Wed, 7 Nov 2018 10:59:28 +0000 (12:59 +0200)]
Remove StorageUniform16 from SPIR-V conversion tests

Removed StorageUniform16 capability requirement from the SPIR-V
conversion tests because it's not used in any of the tests.

Affects:

dEQP-VK.spirv_assembly.instruction.*.*convert*.*int16*

Components: Vulkan

VK-GL-CTS issue: 1417

Change-Id: Ie20658ff59d1fef03eda36672fbe8d0dccb27c4c

6 years agoFix pointer storage class for spirv_assembly tessellation tests.
Jeff Bolz [Tue, 20 Nov 2018 16:00:45 +0000 (10:00 -0600)]
Fix pointer storage class for spirv_assembly tessellation tests.

This was a new validation rule in
https://github.com/KhronosGroup/SPIRV-Tools/commit/d7cd1203a42b850e38a42e3606b22f810f671a90.

Errors look like:

Validation FAILED: From SPIR-V spec, section 3.32.8 on OpVariable:
Its Storage Class operand must be the same as the Storage Class operand of the result type.
  %gl_PrimitiveID = OpVariable %_ptr_Output_int Input

Also update to latest spirv-tools.

Components: Vulkan
Affects: dEQP-VK.spirv_assembly.*
Change-Id: I14a10b936da36ddc572551b1bf5fc3c837a79fb8

6 years agoglSpirvTests: fix transform feedback query
Alejandro Piñeiro [Mon, 11 Dec 2017 11:29:10 +0000 (12:29 +0100)]
glSpirvTests: fix transform feedback query

The test removes the names for several variables of the shader, and
then it expect a length of 1 for all of them when doing a state
query.

But on the case of TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH it is not
activating any varying.

This commits adds an output definition with xfb decorations so the
variable would become active without the need to call
glTransformFeedbackVaryings. From ARB_gl_spirv spec:

    "If the shader used to record output variables for transform
    feedback varyings uses the xfb_buffer, xfb_offset, or xfb_stride
    layout qualifiers, or its SPIR-V entry point declares the *Xfb*
    Execution Mode, the values specified by TransformFeedbackVaryings
    are ignored, and the set of variables captured for transform
    feedback is instead derived from the specified layout qualifiers
    or SPIR-V decorations: outputs specifying both an *XfbBuffer* and
    an *Offset* are captured, while outputs not specifying both of
    these are not captured. Values are captured each time the shader
    writes to such a decorated object."

As we are here, we also simplify how name reflection is
stripped. Instead of stripping each individual OpName and OpMemberName
that we know the shader have, we just remove any OpName and
OpMemberName line.

Modules: OpenGL

VK-GL-CTS issue: 886

Affects:
KHR-GL45.gl_spirv.spirv_modules_state_queries_test
KHR-GL46.gl_spirv.spirv_modules_state_queries_test

Change-Id: I124c90c61f8bee1e873867cf0d2b2e689679d70a

6 years agoFix anonymous namespace in UBO matrix padding test
Ari Suonpaa [Tue, 20 Nov 2018 13:31:36 +0000 (15:31 +0200)]
Fix anonymous namespace in UBO matrix padding test

UBO matrix padding test had anonymous namespace ending
too early. A function was wrongly indented which made
it look like the namespace would have ended at the
correct place.

Affects:

none

Components: Vulkan

VK-GL-CTS issue: 1476
Change-Id: I56520c3de41e152e7fa113bf8d599fcbb90125be

6 years agoMerge vk-gl-cts/vulkan-cts-1.1.2 into vk-gl-cts/master
Alexander Galazin [Fri, 23 Nov 2018 11:28:00 +0000 (12:28 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.2 into vk-gl-cts/master

Change-Id: Ie214ae458af3879e564fba6778ba1488e6032b98

6 years agoEnable previously excluded tests
Alexander Galazin [Sat, 15 Sep 2018 07:24:47 +0000 (09:24 +0200)]
Enable previously excluded tests

Component: Vulkan

Affects:
dEQP-VK.glsl.builtin.precision.clamp.highp_compute.*
dEQP-VK.glsl.builtin.precision.cos.mediump_*
dEQP-VK.glsl.builtin.precision.div.highp_compute.*
dEQP-VK.glsl.builtin.precision.max.highp_compute.*
dEQP-VK.glsl.builtin.precision.min.highp_compute.*
dEQP-VK.glsl.builtin.precision.mod.highp_compute.*
dEQP-VK.glsl.builtin.precision.sin.mediump_compute.*
dEQP-VK.glsl.builtin.precision.tan.mediump_compute.*
dEQP-VK.glsl.builtin.precision.dot.highp_compute.*
dEQP-VK.glsl.builtin.precision.acosh.highp_compute.*
dEQP-VK.glsl.builtin.precision.atanh.highp_compute.*
dEQP-VK.glsl.builtin.precision.atanh.mediump_compute.*
dEQP-VK.glsl.builtin.precision.reflect.mediump_compute.scalar
dEQP-VK.glsl.builtin.precision.reflect.highp_compute.scalar
dEQP-VK.glsl.builtin.precision.reflect.highp_compute.vec4
dEQP-VK.glsl.builtin.precision.acos.mediump_compute.*
dEQP-VK.glsl.builtin.precision.atan.mediump_compute.*
dEQP-VK.glsl.builtin.precision.atan2.mediump_compute.*
dEQP-VK.glsl.builtin.precision.inverse.highp_compute.mat2
dEQP-VK.glsl.builtin.precision.refract.*
dEQP-VK.api.copy_and_blit.core.blit_image.simple_tests.scaling_and_offset.b8g8r8a8_unorm_linear
dEQP-VK.wsi.android.surface.query_devgroup_*
dEQP-VK.spirv_assembly.instruction.*.indexing.*u32*
dEQP-VK.spirv_assembly.instruction.*.indexing.*s32*

Change-Id: Idc718e296d531e0c8aff5da991f81c2dcc03a693
(cherry picked from commit 5a65480e2223c9e81d9c92fd0df84ae1a0762c3e)

6 years agoSPIR-V validation understands VK_EXT_scalar_block_layout
David Neto [Wed, 10 Oct 2018 20:37:38 +0000 (16:37 -0400)]
SPIR-V validation understands VK_EXT_scalar_block_layout

Refactor SPIR-V validator options into own struct and header

Shader build options now record scalar layout flag.

Shader build options can yield a validator options object.

Update SSBO and UBO layout tests to tell validation when they are
using scalar layout.

Update fetch_sources.py to include GitLab SPIRV-Tools supporting
validation of scalar block layout.

Remaining validation failures:
- FPRoundingMode checks are not sensitive to capabilities in
  SPV_KHR_float_controls

Components: Vulkan
Affects:
dEQP-VK.ssbo.*
dEQP-VK.ubo.*

Change-Id: I4449b58f8c33c82eea8965847059fdeb22806876
(cherry picked from commit 3adebf1717d09fa7403f05325f4e8c5038b49a3c)

Add tests for VK_EXT_scalar_block_layout

Components: Vulkan, Framework

Affects:
dEQP-VK.ubo.*
dEQP-VK.ssbo.*

Change-Id: I373b9aed610d714b22e89910c98ce50ac882c513
(cherry picked from commit 71e336126ac2959418f9c39a9507e91e4dc61951)

6 years agoProperly align and pad vec16x2 values in UBO array
Slawomir Cygan [Mon, 22 Oct 2018 15:12:11 +0000 (17:12 +0200)]
Properly align and pad vec16x2 values in UBO array

Each of vec16x2 element should be thightly packed, followed by padding.

Without this change the test was padding each float16 value.

Components: Vulkan

VK-GL-CTS Issue: 1436

Affects:
dEQP-VK.spirv_assembly.instruction.compute.16bit_storage.uniform_16_to_64.uniform_vector_float
dEQP-VK.spirv_assembly.instruction.graphics.16bit_storage.uniform_float_16_to_64.uniform_vector_float*

Change-Id: I4405a96eb5a27cfd8bf362853b28d59f20cb2314
(cherry picked from commit 8dbff9d866aa838047c641a5eeab19381be3df4f)

6 years agoRequire VK_KHR_shader_float16_int8 in float16 opconstant tests
Iago Toral Quiroga [Thu, 4 Oct 2018 07:43:17 +0000 (09:43 +0200)]
Require VK_KHR_shader_float16_int8 in float16 opconstant tests

The SPIR-V code in the shaders used by these tests includes
16-bit floating point OpVectorTimesScalar and
OpMatrixTimesVector operations, which require the extension. There
is no compute version of these tests, only graphics.

Components: Vulkan
VK-GL-CTS issue: 1403

Affects:
dEQP-VK.spirv_assembly.instruction.graphics.float16.opconstant.*

Change-Id: If0f7960013759a0d5dad41629dcefc79350c3c88
(cherry picked from commit a83c04cd2f258fbce81ddbaa10f1e5ae092deb8b)

6 years agoMerge vk-gl-cts/vulkan-cts-next-dev into vk-gl-cts/master
Alexander Galazin [Fri, 23 Nov 2018 10:34:02 +0000 (11:34 +0100)]
Merge vk-gl-cts/vulkan-cts-next-dev into vk-gl-cts/master

Change-Id: I6d4f64f018882ace2106843270c2a0dc598ed61d

6 years agoProperly align and pad vec16x2 values in UBO array
Slawomir Cygan [Mon, 22 Oct 2018 15:12:11 +0000 (17:12 +0200)]
Properly align and pad vec16x2 values in UBO array

Each of vec16x2 element should be thightly packed, followed by padding.

Without this change the test was padding each float16 value.

Components: Vulkan

VK-GL-CTS Issue: 1436

Affects:
dEQP-VK.spirv_assembly.instruction.compute.16bit_storage.uniform_16_to_64.uniform_vector_float
dEQP-VK.spirv_assembly.instruction.graphics.16bit_storage.uniform_float_16_to_64.uniform_vector_float*

Change-Id: I4405a96eb5a27cfd8bf362853b28d59f20cb2314
(cherry picked from commit 8dbff9d866aa838047c641a5eeab19381be3df4f)