platform/upstream/VK-GL-CTS.git
6 years agoMerge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/vulkan-cts-1.1.0
Alexander Galazin [Thu, 1 Mar 2018 13:24:31 +0000 (14:24 +0100)]
Merge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/vulkan-cts-1.1.0

Change-Id: I8c2317b97955bbee922af624b91287071fbc7661

6 years agoAdded missing gl_PointSizes when drawing points
Dae Kim [Fri, 23 Feb 2018 08:39:12 +0000 (08:39 +0000)]
Added missing gl_PointSizes when drawing points

Some tests using point list primitive topology were not specifying point
sizes with the gl_PointSize built-in.

Affects:

dEQP-VK.subgroups.*
dEQP-VK.synchronization.*

Components: Vulkan

VK-GL-CTS issue: 1035

Change-Id: I8588e26ee47c58f6ec4e9ee5fdce70546ec28903

6 years agoDo not access temporary C++ object members by reference
Slawomir Cygan [Thu, 22 Feb 2018 17:55:01 +0000 (18:55 +0100)]
Do not access temporary C++ object members by reference

Fix undefined C++ behavior (resulting in errors when doing runtime memory checks),
where a temporary object returned by getInputAspects() method is used by a reference
to a member after the temporary is destructed.

It seems getInputAspects should just return reference.

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

Component: Vulkan

VK-GL-CTS Issue: 1033

Change-Id: I71edabed71ea63f46cdbc45c966d57cd020565ab

6 years agoEnsure sync_fd tests use valid file descriptors
Peter Quayle [Wed, 21 Feb 2018 15:34:55 +0000 (15:34 +0000)]
Ensure sync_fd tests use valid file descriptors

The external.*.sync_fd.* tests fail on some implementations
because vkGet*FdKHR may return -1 (meaning pre-signalled) instead
of a valid file descriptor.

Affects:

dEQP-VK.api.external.semaphore.sync_fd*
dEQP-VK.api.external.fence.sync_fd*

Components: Vulkan

VK-GL-CTS issue: 957

Change-Id: I91087db1595a19605956dad460caa344e850491e

6 years agoFix verification in robust buffer access tests
Dae Kim [Tue, 20 Feb 2018 13:37:39 +0000 (13:37 +0000)]
Fix verification in robust buffer access tests

Some buffer accesses to addresses less than 16 bytes away from the out
of bounds address where not considered potentially out of bounds, even
when there were out of bounds accesses in the same SPIR-V block.

Affects:

dEQP-VK.robustness.buffer_access.*:

Components: Vulkan

VK-GL-CTS issue: 1025

Change-Id: Ibcb61fb84cecc360d753ba5d3acc1f9d48169651

6 years agoMerge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/vulkan-cts-1.1.0
Alexander Galazin [Thu, 22 Feb 2018 11:45:50 +0000 (12:45 +0100)]
Merge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/vulkan-cts-1.1.0

Change-Id: I115b3e16d7282ef5f9abeb5bd382f744d891b5e3

6 years agoFix low memory in dedicated_alloc buffer tests
Tom Cooper [Mon, 12 Feb 2018 16:20:58 +0000 (16:20 +0000)]
Fix low memory in dedicated_alloc buffer tests

Observe platform memory limits to avoid low memory conditions.

Components: Vulkan

VK-GL-CTS issue: 1008

Affects: dEQP-VK.api.buffer.dedicated_alloc.create_buffer_*

Change-Id: Ib184b648126e8cb6e1acff533447a86be9a1a612

6 years agoUpdate glslang/spir-v headers tags
Alexander Galazin [Wed, 14 Feb 2018 09:17:22 +0000 (10:17 +0100)]
Update glslang/spir-v headers tags

Components: Framework

Affects: dEQP-VK.*

Change-Id: I1282fe5924abfb86fba7d32d3c67b94993a252fe

6 years agoDo not use depthClampEnable unconditionally.
Juan A. Suarez Romero [Fri, 10 Nov 2017 11:20:36 +0000 (11:20 +0000)]
Do not use depthClampEnable unconditionally.

Depth clamping is not needed by these tests, so
do not rely on the optional feature when creating
the pipeline object.

Affects:
dEQP-VK.spirv_assembly.*

Components: Vulkan

VK-GL-CTS issue: 846

Change-Id: I248759e6ac209ccbd7661068c3ef5f1dfb8ca501
(cherry picked from commit d33f62c935d51b4ecba0b6b97ea1baafe67ea3f4)

6 years agoYCbCr: go through the correct location ranges when sampling
Lionel Landwerlin [Fri, 9 Feb 2018 15:20:25 +0000 (15:20 +0000)]
YCbCr: go through the correct location ranges when sampling

Affects: dEQP-VK.ycbcr.conversion.*
Components: Vulkan
VK-GL-CTS issue: 1005

Change-Id: Ifac1026e82e1bb48195fc7ab5429951a15324042

6 years agoMerge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/vulkan-cts-1.1.0
Alexander Galazin [Mon, 5 Feb 2018 12:13:44 +0000 (13:13 +0100)]
Merge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/vulkan-cts-1.1.0

Change-Id: I36a59b8e50449e1788779380d6dc1dc4668b78fc

6 years agoPass in proper pWaitDstStageMask in vktWsiSharedPresentableImageTests
Vamsidhar Gaddam [Wed, 31 Jan 2018 10:23:48 +0000 (11:23 +0100)]
Pass in proper pWaitDstStageMask in vktWsiSharedPresentableImageTests

One of the submitInfos for a queue submit had
a semaphore passed in without passing in any stage mask. This is a
spec violation.

Affects:

dEQP-VK.wsi.android.shared_presentable_image.*

Components: Vulkan

VK-GL-CTS issue: 974

Change-Id: Iee2ea838e971a3610f44b8c1f765869a8a21fedb

6 years agoSpec relaxation for YCbCr Implicit chroma reconstruction
Panagiotis Apostolou [Wed, 17 Jan 2018 09:01:58 +0000 (10:01 +0100)]
Spec relaxation for YCbCr Implicit chroma reconstruction

Incorporates spec relaxation in the YCbCr tests which describes that when
doing implicit reconstruction with nearest chroma filtering, an
implementation may behave as if both xChromaOffset and yChromaOffset were
VK_CHROMA_LOCATION_MIDPOINT.

Tests affected:
dEQP-VK.ycbcr.conversion.*

Components: Vulkan

VK-GL-CTS issue: 979

Change-Id: I10e83d2f5845c3e74673aa9e42fc4f0950f9e6cd

6 years agoFix illegal memory access for robustness test
Noah Fredriks [Mon, 15 Jan 2018 21:09:55 +0000 (16:09 -0500)]
Fix illegal memory access for robustness test

Don't subtract 3 from buffer pointer for VK_FORMAT_A2B10G10R10_UNORM_PACK32
alpha channel because this format is a deUint32 instead of Vec4.

Affects: dEQP-VK.robustness.vertex_access.a2b10g10r10_unorm_pack32.*

Components: Vulkan

VK-GL-CTS issue: 946

Change-Id: I2a5241191e01252ce071658b8dbd79d3e424aa41

6 years agoMerge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/vulkan-cts-1.1.0
Alexander Galazin [Fri, 19 Jan 2018 09:08:43 +0000 (10:08 +0100)]
Merge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/vulkan-cts-1.1.0

Change-Id: I8db9696a5f7b9bafdf20e76afc8d1d42b96cfe1c

6 years agoCheck GS support before testing adjacent primitives
Yanjun Zhang [Wed, 10 Jan 2018 00:12:47 +0000 (16:12 -0800)]
Check GS support before testing adjacent primitives

Affects: dEQP-VK.draw.basic_draw.draw.*

Components: Vulkan

VK-GL-CTS issue: 926

Change-Id: I02569b1944eed52f641966f9206d44983d1ff165

6 years agoFix buffer usage flags for index and indirect buffers
Chris Forbes [Wed, 10 Jan 2018 02:13:15 +0000 (18:13 -0800)]
Fix buffer usage flags for index and indirect buffers

Previously, createAndUploadBuffer would provide
VK_BUFFER_USAGE_VERTEX_BUFFER_BIT for all buffers. This is no good for
index buffers and indirect buffers.

VK-GL-CTS: 930

Change-Id: I774beef7c7226f4fbd5670591eb66475300ee208
Components: Vulkan
Affects: dEQP-VK.draw.instanced.*

6 years agoMerge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/vulkan-cts-1.1.0
Alexander Galazin [Thu, 18 Jan 2018 09:51:31 +0000 (10:51 +0100)]
Merge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/vulkan-cts-1.1.0

Change-Id: I79e2e20649232a7ebd78088981f06ade6c5e6323

6 years agoAdd VK_ACCESS_SHADER_READ_BIT barrier access bit
Piers Daniell [Fri, 5 Jan 2018 21:04:29 +0000 (14:04 -0700)]
Add VK_ACCESS_SHADER_READ_BIT barrier access bit

The dEQP-VK.query_pool.statistics_query.compute_shader_invocations.secondary*
tests were missing a VK_ACCESS_SHADER_READ_BIT bit in the
pipeline barrier between compute dispatch calls. Each dispatch
was doing a read-modify-write of the same SSBO locations, but
the test only used the VK_ACCESS_SHADER_WRITE_BIT access bit.
This may cause the compute shader to read stale cache data
since the dependency between each dispatch was not expressed
correctly.

This fix simple adds the missing VK_ACCESS_SHADER_READ_BIT
access bit.

Affects:
dEQP-VK.query_pool.statistics_query.compute_shader_invocations.secondary*

Components: Vulkan

VK-GL-CTS issue: 927

Change-Id: I946d6113c897a03116db7a93a182e27497adfe6f

6 years agoSet maxDescriptorSet* limit table based on shader stages
Yanjun Zhang [Thu, 11 Jan 2018 19:44:54 +0000 (11:44 -0800)]
Set maxDescriptorSet* limit table based on shader stages

Re-submit the patch based on WG review and feedback.

Affects: dEQP-VK.api.info.device.properties

Components: Vulkan

VK-GL-CTS issue: 923

Change-Id: Ie627b52cfae099d87f5b6183118d42bcccd313ca

6 years agoMerge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/vulkan-cts-1.1.0
Alexander Galazin [Fri, 12 Jan 2018 14:03:32 +0000 (15:03 +0100)]
Merge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/vulkan-cts-1.1.0

Change-Id: I02ba5bcb0273934d93d91e2375f9d272c6c69904

6 years agoCheck sampleRateShading for sample_qualifier_distinct_values.* tests
Yanjun Zhang [Wed, 10 Jan 2018 00:26:50 +0000 (16:26 -0800)]
Check sampleRateShading for sample_qualifier_distinct_values.* tests

Affects: dEQP-VK.pipeline.*.sample_qualifier_distinct_values.*

Components: Vulkan

VK-GL-CTS issue: 925

Change-Id: Ife1166e8ed88699c67ee6acde79857f34c013398

6 years agoUse unique indices for each binding in out_of_pool_memory test
Chris Forbes [Tue, 9 Jan 2018 23:26:34 +0000 (15:26 -0800)]
Use unique indices for each binding in out_of_pool_memory test

Previously, all the layout bindings would use binding=0, which is
invalid. Give them their own binding indices.

VK-GL-CTS: 929

Change-Id: I28e62db6c257ed0843dd9b77b2d8cb01d02e3eba
Components: Vulkan
Affects: dEQP-VK.api.descriptor_pool.out_of_pool_memory

6 years agoMerge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/vulkan-cts-1.1.0
Alexander Galazin [Thu, 11 Jan 2018 12:40:39 +0000 (13:40 +0100)]
Merge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/vulkan-cts-1.1.0

Change-Id: I918575ed59c764d988fb98b718745605c5285b06

6 years agoBuild prebuilts for HLSL shaders
Chris Forbes [Wed, 10 Jan 2018 19:42:41 +0000 (11:42 -0800)]
Build prebuilts for HLSL shaders

Previously these prebuilts would be missing, causing all the HLSL tests
to fail when run via the Android CTS integration which relies on them.

VK-GL-CTS Issue: 939

Change-Id: Ib69f884818ea24692222cc74d8b69b0e0bcb465d
Components: Vulkan
Affects: dEQP-VK.*hlsl*

6 years agoSkip allocation subtests that allocate too much VA
Piers Daniell [Thu, 30 Nov 2017 21:40:00 +0000 (14:40 -0700)]
Skip allocation subtests that allocate too much VA

For 32-bit builds of CTS we can't allocate more host visible
memory than there is virtual address space for the process
since the allocation will fail and cause a false negative
result.

This CL skips over host visible allocations that would add
up to more than 1.5GB of virtual address space. This can
happen on platforms that expose very large heaps that
support memory types that include host visible memory.
The implementation can't cap the available memory size
since the heap can support allocations of memory other
than host visible and it doesn't want to restrict those
that don't consume CPU virtual address space. Its up
to CTS to limit how much virtual address space it
chooses to allocate.

Affects:
dEQP-VK.memory.allocation.basic.percent_1.*.count_12

Components: Vulkan

VK-GL-CTS issue: 859

Change-Id: I321f5cad567245571722f53397df26e23a4cee97

6 years agoFix for #895 - physical_device_groups testing
Marcin Rogucki [Wed, 13 Dec 2017 14:07:32 +0000 (15:07 +0100)]
Fix for #895 - physical_device_groups testing

For 1.1 version instances we do not require physical devices groups extension to be supported. Instead on 1.1 instances we just assume it's now a part of core implementation.

Components: Vulkan

VK-GL-CTS issue: 895

Affects: All tests using createInstanceWithExtension function

Change-Id: Ib11999498c28156e1e5d0c5e9025cb6ca4ba75a0

6 years agoRound up vertex buffer size to stride multiple to fix OOB attribute reads
Noah Fredriks [Fri, 3 Nov 2017 18:20:06 +0000 (14:20 -0400)]
Round up vertex buffer size to stride multiple to fix OOB attribute reads

Partial stride multiple vertex buffer elements are now considered OOB
to accomodate implementations that fetch stride-sized elements

Affects: dEQP-VK.texture.*

Components: Vulkan

VK-GL-CTS issue: 812

Change-Id: I72a2143146b4ea0d893d70d41b7ca2c84c34542a
(cherry picked from commit 50c0544ec8c2e99158bf8a375eacfc9baf364a91)

6 years agoVulkan test list without waivers
Alexander Galazin [Thu, 7 Dec 2017 11:27:21 +0000 (12:27 +0100)]
Vulkan test list without waivers

Adds new test list - vk-default-no-waivers.txt which is the same as
the regular mustpass (vk-default.txt) but without exclusions for
waivers.

Component: Vulkan

Change-Id: I7127255bf975ee02ede284a6217b82baa3af2414

6 years agoFixed tests issue where vertex shader was misssing gl_PointSize
Oivind Boge [Tue, 19 Dec 2017 10:06:16 +0000 (11:06 +0100)]
Fixed tests issue where vertex shader was misssing gl_PointSize

Affects:
dEQP-VK.protected_memory.ssbo.*

Components: Vulkan

VK-GL-CTS issue:: 915

Change-Id: Ia7cc2b9a6b1593ca15f585a9dc052cb2528f9ee3

6 years agoAlso set gl_PointSize in subgroup quad tests
Graeme Leese [Thu, 14 Dec 2017 13:53:45 +0000 (13:53 +0000)]
Also set gl_PointSize in subgroup quad tests

Affects: dEQP-VK.subgroups.quad.*vertex_framebuffer

Components: Vulkan

VK-GL-CTS issue: 872

Change-Id: Ie73fb744737e079d42792f6c974534e57ae006ef

6 years agoInvalid handle in create_display_plane_surface
Alex Walters [Wed, 13 Dec 2017 15:47:23 +0000 (15:47 +0000)]
Invalid handle in create_display_plane_surface

This test attempts to create a display plane surface but incorrectly
fills in the VkDisplaySurfaceCreateInfo with an index into dEQP's array
of display modes instead of the VkDisplayModeKHR handle itself.

The app is required to specify a valid handle.

An invalid handle results in undefined behaviour.

Affects:

dEQP-VK.wsi.display.create_display_plane_surface

Components: Vulkan
VK-GL-CTS issue: 906

Change-Id: I9fbbd40926e26bf82ed11dc1b5e807922cbc4e73

6 years agoFix Invalid VkImageSubresourceRange
Noah Fredriks [Thu, 14 Dec 2017 19:48:48 +0000 (14:48 -0500)]
Fix Invalid VkImageSubresourceRange

Pipeline image barrier was using the arraySize of the wrong image.

Affects: dEQP-VK.api.copy_and_blit.core.resolve_image.*

Components: Vulkan

VK-GL-CTS Issue: 910

Change-Id: I021bdd0ba5eff9e894f21186b3d85bb2f2c99f16

6 years agoMerge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/vulkan-cts-1.1.0
Alexander Galazin [Thu, 14 Dec 2017 10:52:40 +0000 (11:52 +0100)]
Merge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/vulkan-cts-1.1.0

Change-Id: I3b358114c4158d2130e68632d4e02d7246c6f9af

6 years agoFix for getPhysicalDeviceFeatures2 loader issue
Marcin Rogucki [Mon, 20 Nov 2017 15:44:51 +0000 (16:44 +0100)]
Fix for getPhysicalDeviceFeatures2 loader issue

For all instance methods taking VkPhysicalDevice
as a first parameter that were moved to core in
1.1 there is now a dynamic dispatch based on
physical device api version. If version is 1.1 or
above a core method is used. If version is lower
than that a counterpart extension method is used.

Additionally a pre-instance is created to enumerate
all physical devices and select lowest version to
be able to enable proper extensions set for final
instance.

Components: Vulkan

VK-GL-CTS issue: 854

Affects: All tests using getPhysicalDeviceFeatures2

Change-Id: Ia68a5cac23ae35566fcf99bc56c93c9cb77f33e0

6 years agoModify spirv_assembly tests adding dependency on 16bit_storage extension
Jeff Leger [Sat, 2 Dec 2017 02:16:28 +0000 (21:16 -0500)]
Modify spirv_assembly tests adding dependency on 16bit_storage extension

Several tests were using 16bit_storage, but were not checking the
extension was supported nor declaring the required opCapability.

Affects:
dEQP-VK.spirv_assembly.instruction.compute.sconvert.*
dEQP-VK.spirv_assembly.instruction.compute.uconvert.*

Components: Vulkan

VK-GL-CTS issue: 875

Change-Id: I07fda13c69cdef09967d4aab5067edff07c47fa1

6 years agoAvoid creating vkInstances for not supported cases
Noah Fredriks [Wed, 29 Nov 2017 23:27:52 +0000 (18:27 -0500)]
Avoid creating vkInstances for not supported cases

Defer vkInstance creation for cross instance tests until not supported
checks complete to shorten the runtime of these 10k total test cases.

Affects: dEQP-VK.synchronization.cross_instance.*

Components: Vulkan

VK-GL-CTS Issue: 885

Change-Id: I481de90d8c0363c23a287aaf457ac101c327c558

6 years agoFix mediump zero division in matrix inverse tests
Igor Ostrowski [Wed, 15 Nov 2017 17:33:51 +0000 (18:33 +0100)]
Fix mediump zero division in matrix inverse tests

To avoid zero division all input matrix determinants should be same signed.

Affects:
dEQP-VK.glsl.matrix.inverse.*

Components: Vulkan
VK-GL-CTS issue: 881

Change-Id: Ib702f81c4eb7f25ba9081db6ead67da02f484ca9

6 years agoRemove max expected query result in pipeline statistics tests
Maciej Jesionowski [Wed, 29 Nov 2017 13:07:42 +0000 (14:07 +0100)]
Remove max expected query result in pipeline statistics tests

Query result is implementation-defined and some internal rendering
operations may count towards the results of queries.

Affects: dEQP-VK.query_pool.statistics_query.*

Components: Vulkan

VK-GL-CTS issue: 876

Change-Id: I0c86e1101c1ae00049623bd49dfe0c4de5798832

6 years agoAdd missing gl_PointSize in subgroup test shaders when drawing points
Stu Smith [Thu, 30 Nov 2017 13:30:20 +0000 (13:30 +0000)]
Add missing gl_PointSize in subgroup test shaders when drawing points

Affects: dEQP-VK.subgroups.*vertex_framebuffer

Components: Vulkan

VK-GL-CTS issue: 872

Change-Id: Iddf8362024d3dd750e6f0b9d4c71e1adcdfa63ca

6 years agoReduce GPU workload of pipeline_barrier tests
Jeff Leger [Wed, 22 Nov 2017 17:12:58 +0000 (12:12 -0500)]
Reduce GPU workload of pipeline_barrier tests

Tests with large buffer sizes will now clamp the
GPU workload to avoid triggering execution timeout
on implementations.

Affects: dEQP-VK-memory.pipeline_barrier.*

Components: Vulkan

VK_GL_CTS issue: 813

Change-Id: I479f6ad04ef2ec6f9d87b65a39a2bc13bcbcc6a2

6 years agoUpdate glslang tag
Alexander Galazin [Wed, 22 Nov 2017 11:36:02 +0000 (12:36 +0100)]
Update glslang tag

Update glslang tag to vulkan-1.1-rc6

Affects: dEQP-VK.*

Change-Id: I5bfbf717e1f0be51802b33f2a7b658d395c72019

6 years agoFix regression from "Add contextSupports functions"
Slawomir Cygan [Thu, 23 Nov 2017 10:51:23 +0000 (11:51 +0100)]
Fix regression from "Add contextSupports functions"

Fixes contextSupports condition for missing VK1.1.

This regression was introduced in 39a3dba4.

Affects:
dEQP-VK.spirv_assembly.instruction.compute.loop_control.dependency_infinite

Components: Vulkan

VK-GL-CTS issue: 860

Change-Id: I866c815b918af2860d888775179635011f757535
(cherry picked from commit 4f5fa8a6a62071624d9a2a703b9219abc301c72a)

6 years agoMerge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/vulkan-cts-1.1.0
Alexander Galazin [Thu, 30 Nov 2017 13:39:20 +0000 (14:39 +0100)]
Merge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/vulkan-cts-1.1.0

Change-Id: I9fbb4d01a6050ae79808e61649783ef698a1481d

6 years agoFix some CTS bugs that cause validation failures
Piers Daniell [Wed, 22 Nov 2017 20:23:12 +0000 (13:23 -0700)]
Fix some CTS bugs that cause validation failures

Most of these are misuse of the dstStageMask parameter to
vkCmdPipelineBarrier. The dstStageMask has to be compatible
with the destination access type of the buffer or image.

The other large source of validation errors is a bug
in the CTS framework when calling vkCreateDevice. The
wrong pNext member was used for setting the enabled
features. The effect is that all features were disabled.

Affects:

dEQP-VK.pipeline.push_constant.graphics_pipeline.*
dEQP-VK.pipeline.multisample_shader_builtin.sample_mask.pattern.*
dEQP-VK.*

Components: Vulkan

VK-GL-CTS issue: 862

Change-Id: I58ca4e033d7d66b52c6726a635808b9b747546d8

6 years agoEnforce OOB requirements for binding with multiple attributes
Noah Fredriks [Thu, 9 Nov 2017 21:00:29 +0000 (16:00 -0500)]
Enforce OOB requirements for binding with multiple attributes

The spec states that, if any vertex input attribute using a specific
vertex input binding is out of bounds, then all vertex input attributes
using that vertex input binding for that vertex shader invocation are
considered out of bounds.

Affects: dEQP-VK.robustness.vertex_access.*.vertex_incomplete

Components: Vulkan

VK-GL-CTS issue: 848

Change-Id: I6a9222a0b2a53368af361419105793a5301a6bf6

6 years agoPipeline must be bound before calling vkCmdSetViewport/Scissor etc
Tom Cooper [Wed, 22 Nov 2017 15:57:37 +0000 (15:57 +0000)]
Pipeline must be bound before calling vkCmdSetViewport/Scissor etc

Affects:
dEQP-VK.dynamic_state.*

Components: Vulkan

VK-GL-CTS issue: 861

Change-Id: I0f5312c83096cebebfa4ab01987c2ab9ede7306b

6 years agoAdded constraints for random access flags
Jari Komppa [Tue, 14 Nov 2017 12:21:06 +0000 (14:21 +0200)]
Added constraints for random access flags

The pipeline barrier tests randomize access flags and stages, sometimes
resulting in access flags being enabled for stages that do not support
said accesses. This fix removes the illegal access flags while leaving
the random flag generation intact.

Affects:

dEQP-VK.memory.pipeline_barrier.*

Components: Vulkan

VK-GL-CTS issue: 814

Change-Id: I135ea8a9e41b5d8428ef77fe6ecbdf2380d80c7d

6 years agoFix regression from "Add contextSupports functions"
Slawomir Cygan [Fri, 17 Nov 2017 12:59:14 +0000 (13:59 +0100)]
Fix regression from "Add contextSupports functions"

Fixes contextSupports condition for missing VK1.1.

This regression was introduced in 39a3dba450.

Affects:
dEQP-VK.spirv_assembly.instruction.compute.loop_control.dependency_infinite
dEQP-VK.spirv_assembly.instruction.compute.loop_control.dependency_length

Components: Vulkan

VK-GL-CTS issue: 727

Change-Id: I64c0b5fbd40f67ae6cfe314ac66ddc9d7f201dbb

6 years agoget_physical_device_properties2: add information print
Arkadiusz Sarwa [Thu, 19 Oct 2017 11:20:24 +0000 (13:20 +0200)]
get_physical_device_properties2: add information print

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

Components: Vulkan

VK-GL-CTS issue:: 777

Change-Id: Ib7462d63de521574f7fab018d7aed2d449a58dd3
(cherry picked from commit 45b164c54682c8e1d3de14d9ef425860adae4ec1)

6 years agoRound up vertex buffer size to stride multiple to fix OOB attribute reads
Noah Fredriks [Fri, 3 Nov 2017 18:20:06 +0000 (14:20 -0400)]
Round up vertex buffer size to stride multiple to fix OOB attribute reads

Partial stride multiple vertex buffer elements are now considered OOB
to accomodate implementations that fetch stride-sized elements

Affects: dEQP-VK.texture.*

Components: Vulkan

VK-GL-CTS issue: 812

Change-Id: I72a2143146b4ea0d893d70d41b7ca2c84c34542a

6 years agoAdd contextSupports functions
Arkadiusz Sarwa [Mon, 9 Oct 2017 15:13:48 +0000 (17:13 +0200)]
Add contextSupports functions

Components: Vulkan

VK-GL-CTS issue: 727

Change-Id: Ic2912106268402eb61c2a7aa4d487a2c3c7755e3

6 years agoMerge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/vulkan-cts-1.1.0
Alexander Galazin [Fri, 10 Nov 2017 10:24:18 +0000 (11:24 +0100)]
Merge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/vulkan-cts-1.1.0

Change-Id: I38a420841bb08c1d2d993eee39c16046c7680c3f

6 years agoDo not use depthClampEnable unconditionally.
Jorg Wagner [Mon, 6 Nov 2017 13:56:49 +0000 (14:56 +0100)]
Do not use depthClampEnable unconditionally.

Depth clamping is not needed by this test, so
do not rely on the optional feature when creating
the pipeline object.

Affects:
dEQP-VK.api.smoke.*

Components: Vulkan

VK-GL-CTS issue: 817

Change-Id: I6794f7f5d17d7610ff43dcb4080a6a30e12ed95b

6 years agoFixed double type declarations and invalid OpUConvert usage.
Ari Suonpaa [Fri, 13 Oct 2017 11:59:43 +0000 (14:59 +0300)]
Fixed double type declarations and invalid OpUConvert usage.

Fixed access chain indexing test by removing double declarations
of the same integer type. Also replaced OpUConvert instruction
with OpCopyObject when the conversion would result into the
same bit width as the original.

Affects: dEQP-VK.spirv_assembly.instruction.*.indexing.*

VK-GL-CTS issue: 702

Change-Id: I91a9de22976b109ae988391d5cb7e4388bda4adf

6 years agoFix image layout transitions for peer Image
Vikram Kushwaha [Wed, 1 Nov 2017 23:02:57 +0000 (16:02 -0700)]
Fix image layout transitions for peer Image

When SFR/AFR copies are performed by peer device into
the primary device's render target, the image layout transitions are
also being performed by peer device.
This is only correct if GENERIC_SRC\GENERIC_DST feature flags
are supported.

VK-GL-CTS issue: 807

Change-Id: Ie3ffe6a68976ad644de12bd2c923cd0a34defe5f
Affects: dEQP-VK.device_group.*
Components: Vulkan

6 years agoFix subgroup tests error message
Graeme Leese [Thu, 2 Nov 2017 13:11:03 +0000 (13:11 +0000)]
Fix subgroup tests error message

Basic is a feature bit, not a shader stage, so use the correct string
getter.

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

Change-Id: Ibb9b88cf1efcf4f6459b277cb4e4beaadeda01c9

6 years agoUpdate glslang tag
Alexander Galazin [Tue, 24 Oct 2017 08:06:06 +0000 (10:06 +0200)]
Update glslang tag

Update glslang tag to vulkan-1.1-rc4

Affects: dEQP-VK.*

Change-Id: Idd20ba8a7c3d58124062da119af5186acc08a4d2

6 years agoKHR_swapchain: Trigger the fence off vkQueueSubmit
Chris Forbes [Mon, 23 Oct 2017 22:13:38 +0000 (15:13 -0700)]
KHR_swapchain: Trigger the fence off vkQueueSubmit

Another instance of 438ea0888e8ccae.

VK-GL-CTS issue: 756

Component: Vulkan

Affects:
dEQP-VK.wsi.*.swapchain.*

Change-Id: I87da6800e0c8402c2c50ca88eb3360b31c3a515d

6 years agoGOOGLE_display_timing: Trigger the fence off vkQueueSubmit
Chris Forbes [Mon, 23 Oct 2017 22:09:56 +0000 (15:09 -0700)]
GOOGLE_display_timing: Trigger the fence off vkQueueSubmit

Another instance of 438ea0888e8ccae.

VK-GL-CTS issue: 756

Component: Vulkan

Affects:
dEQP-VK.wsi.*.display_timing.*

Change-Id: If94644402579ba1f46347d155313f6ef52d125a0

6 years agoMerge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/vulkan-cts-1.1.0
Alexander Galazin [Tue, 31 Oct 2017 11:42:28 +0000 (12:42 +0100)]
Merge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/vulkan-cts-1.1.0

Change-Id: If71ec6d93e19e3dd2744f9c1375ec08553dec392

6 years agoAdd missing barrier to texel_view_compatible tests
Maciej Jesionowski [Mon, 23 Oct 2017 10:14:36 +0000 (12:14 +0200)]
Add missing barrier to texel_view_compatible tests

There was no GPU to Host barrier. GPU writes are not automatically
visible to the Host.

Affected tests: dEQP-VK.image.texel_view_compatible.compute.*
VK-GL-CTS issue: 786
Components: Vulkan

Change-Id: I47797add1c5e48dfa1a7c7be8897e822091c2044

6 years agoVK_KHR_variable_pointers: Don't use OpPtrAccessChain on a bare SSBO
Jason Ekstrand [Thu, 19 Oct 2017 16:07:52 +0000 (09:07 -0700)]
VK_KHR_variable_pointers: Don't use OpPtrAccessChain on a bare SSBO

You can't use OpPtrAccessChain on the direct result of an OpVariable
because it's not the element of any array.  Instead, we need to do our
OpPtrAccessChain on a pointer to an actual array element and that
pointer needs to be properly decorated with a stride.

Component: Vulkan

VK-GL-CTS issue: https://gitlab.khronos.org/Tracker/vk-gl-cts/issues/686

Affects:
dEQP-VK.spirv_assembly.instruction.graphics.variable_pointers.multi_buffer_*

Change-Id: I9c45fb1320099e404672ee169a6a8e5c41eb13f7

6 years agoVK_KHR_variable_pointers: Delete an unused and invalid variable
Jason Ekstrand [Thu, 19 Oct 2017 15:43:36 +0000 (08:43 -0700)]
VK_KHR_variable_pointers: Delete an unused and invalid variable

The %float_var variable was not being used in any way by the test.  It
was also invalid because it had the StorageBuffer storage class (so it's
in external memory) but also had a constant initializer.  The real
variable being tested in these tests is %f32_ptr_var which has the
Function storage class so a constant initializer is fine.

Component: Vulkan

VK-GL-CTS issue: https://gitlab.khronos.org/Tracker/vk-gl-cts/issues/686

Affects:
dEQP-VK.spirv_assembly.instruction.graphics.variable_pointers.nullptr_graphics.opvariable_initialized_null_*
dEQP-VK.spirv_assembly.instruction.graphics.variable_pointers.nullptr_graphics.opselect_null_or_valid_ptr_*

Change-Id: I9e2f118b1c774a84c0b6900ef0db081cb5256c2f

6 years agoYCbCr image views need a VkSamplerYcbcrConversionInfo
Tom Cooper [Wed, 25 Oct 2017 06:26:39 +0000 (08:26 +0200)]
YCbCr image views need a VkSamplerYcbcrConversionInfo

Ensure the image views are created using the
VkSamplerYcbcrConversionInfo object via the pNext
chaining, as this is mandated by the Spec.

Affects:
dEQP-VK.ycbcr.query.*

Components: Vulkan

VK-GL-CTS issue: 788

Change-Id: If641b08432c26ca5b32c084c4c0b9c7f935bcb94

6 years agogl_PrimitiveIDIn tests have sketchy loop bounds.
Marcin Rogucki [Wed, 25 Oct 2017 11:33:44 +0000 (13:33 +0200)]
gl_PrimitiveIDIn tests have sketchy loop bounds.

Components: Vulkan

VK-GL-CTS issue: 778

Updates:
dEQP-VK.geometry.basic.primitive_id_in
dEQP-VK.geometry.basic.primitive_id_in_restarted

Change-Id: Icd2be56814de18067ce058a5f2a1da80338f80d6

6 years agoUpdate README for Vulkan multi-device platforms
Piers Daniell [Tue, 17 Oct 2017 20:11:55 +0000 (14:11 -0600)]
Update README for Vulkan multi-device platforms

Added some language to the Vulkan CTS README describing the
valid CTS log criteria for products that are multi-device
capable.

Change-Id: Ia5d39d5ab2c14b73bcad09531065b7dc5251c14b
Components: Vulkan

6 years agoAvoid hitting fp16 NaN values
Piers Daniell [Wed, 18 Oct 2017 17:01:13 +0000 (11:01 -0600)]
Avoid hitting fp16 NaN values

Modify the test references values to avoid situations where
they hit NaN values when viewed as fp16. This can happen
when uploading {0.1, 0.5, 0.9, 0.2} to r8g8b8a8_unorm which,
depending on the rounding of the 0.5, could end up as a 0x7F
value which when viewed as the MSB of a fp16 value is a NaN.

Affects:

dEQP-VK.image.mutable.*

Components: Vulkan

VK-GL-CTS Issue: 784

Change-Id: I2adbd27aa7d94254c9f19d788eacace2ea95d10c

6 years agoFix subgroups basic test
Arkadiusz Sarwa [Thu, 19 Oct 2017 12:08:13 +0000 (14:08 +0200)]
Fix subgroups basic test

Affects:
dEQP-VK.subgroups.basic.*_fragment_framebuffer

Components: Vulkan

VK-GL-CTS issue: 782

Change-Id: I54a125af75863e7dd56bf1c3785ee5e51be3d7b4

6 years agoAvoid watchdog timeout in Vulkan builtin precision tests
Chris Forbes [Mon, 16 Oct 2017 19:42:35 +0000 (12:42 -0700)]
Avoid watchdog timeout in Vulkan builtin precision tests

Calculating the reference intervals can take a substantial amount of
time. On some very slow targets, this can cause us to trip the watchdog
in the verification loop.

Same approach and limit as in modules/glshared/glsBuiltinPrecisionTests.cpp

Affected tests:
dEQP-VK.glsl.builtin.precision.*

Component: Vulkan

Bug: 67854695
Test: run on google devices
Change-Id: I492b656e7e2a9aa724bb3785bdf1416a4c22ec04

6 years agoUse env.apiVersion when creating instance for object management test group
Mais Alnasser [Sun, 15 Oct 2017 19:10:59 +0000 (15:10 -0400)]
Use env.apiVersion when creating instance for object management test group

Affects: dEQP-VK.api.object_management.single.device_group

Components: Vulkan

VK-GL-CTS issue: 773

Change-Id: Ie6673133bc4d0de352b054fa797e2455433423d2

6 years agoFix compile error caused by usage of unit32_t instead of deUint32
Mais Alnasser [Sun, 15 Oct 2017 15:16:15 +0000 (11:16 -0400)]
Fix compile error caused by usage of unit32_t instead of deUint32

Affects: Compilation

Components: Vulkan

VK-GL-CTS issue: 774

Change-Id: Ibc647d3714a818b61f99d1fc67903a24f59f8d6a

6 years agoDo not use SFR bindings when device group has 1 device
Vikram Kushwaha [Wed, 18 Oct 2017 19:55:03 +0000 (12:55 -0700)]
Do not use SFR bindings when device group has 1 device

As per the spec, when device group has 1 device:
sfrRects must not be specified
image create flag should not contain the BIND_SFR_BIT

Also use peer memory reads if VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT
is supported. This saves an additionaly copy in the test.

VK-GL-CTS issue: 779

Change-Id: Ic316fc8858886f99156dc1b9c0a0810b3f48e714
Affects: dEQP-VK.device_group.sfr*
Components: Vulkan

6 years agoIgnore the patch number when comparing apiVersions
Piers Daniell [Thu, 12 Oct 2017 18:09:00 +0000 (12:09 -0600)]
Ignore the patch number when comparing apiVersions

Modify the getSpirvVersionForAsm() and getSpirvVersionForGlsl()
functions to ignore the patch version number when checking
for Vulkan 1.0 vs Vulkan 1.1. It's often the case that the loader
or implementation will have a non-zero patch number to indicate
what version of the spec and vulkan header they built with.

Affects: startup

Components: Vulkan

VK-GL-CTS issue: 767

Change-Id: I947cb43db5e1f93e5b0b9cb93d205863b8e3c4b1

6 years agoDetect Core VK 1.1 device_group_creation support
Daniel Koch [Thu, 12 Oct 2017 05:25:39 +0000 (01:25 -0400)]
Detect Core VK 1.1 device_group_creation support

Check if the core version of VK_KHR_device_group_creation
is supported in addition to checking for the extension string.

VK-GL-CTS Issue: 766
Component: Vulkan
Affects: dEQP-VK.api.object_management.*device_group

Change-Id: I5d3ee7733293d27e9ae94cdc085b85ea144be445

6 years agoRemove OpUConvert to signed integer tests
Andrey Tuganov [Thu, 28 Sep 2017 21:18:51 +0000 (17:18 -0400)]
Remove OpUConvert to signed integer tests

OpUConvert only convers to unsigned integers.

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

VK-GL-CTS issue: 720

Change-Id: I68b13c8584d64359e52910091347de03b933ba42

6 years agoFix VK version selection in version_check.entry_points test
Slawomir Cygan [Wed, 11 Oct 2017 12:17:25 +0000 (14:17 +0200)]
Fix VK version selection in version_check.entry_points test

The test was validating only VK1.0 entrypoints due to wrong
version check.

Components: Vulkan
VK-GL-CTS Issue: 764
Affects: dEQP-VK.api.version_check.entry_points

Change-Id: Id555746f79d40c06cc8a95013608f9a1928847e2

6 years agoout_of_pool_memory test reports wrong error code
Marcin Rogucki [Wed, 11 Oct 2017 09:26:33 +0000 (11:26 +0200)]
out_of_pool_memory test reports wrong error code

While creating default device a device version was used to select
enabled extensions however this should be based on used API version
(a minimum of Vulkan version and device version). It is fixed now.

Component: Vulkan

VK-GL-CTS issue: 763

Affects: dEQP-VK.api.descriptor_pool.out_of_pool_memory

Change-Id: I879d296ab56c1e2118dca84845cce6abc0e75f92

6 years agodEQP-VK.ycbcr.* tests throw NotSupported incorrectly
Marcin Rogucki [Mon, 9 Oct 2017 13:56:44 +0000 (15:56 +0200)]
dEQP-VK.ycbcr.* tests throw NotSupported incorrectly

Generic way of checking samplerYcbcrConversion support
added to DefaultDevice and Context.
Used in dEQP-VK.ycbcr.* tests group in checkImageSupport() function.

Component: Vulkan

VK-GL-CTS issue: 755

Affects: dEQP-VK.ycbcr.*

Change-Id: I0774a476f7ed94351c00387bc2e75d9c09492970

6 years agoDispatch base test does not enable pipeline flag
Marcin Rogucki [Tue, 10 Oct 2017 09:04:05 +0000 (11:04 +0200)]
Dispatch base test does not enable pipeline flag

dEQP-VK.compute.device_group.dispatch_base does not enable pipeline flag which violates valid usage rule: If any of baseGroupX, baseGroupY, or baseGroupZ are not zero, then the currently bound
compute pipeline must have been created with the VK_PIPELINE_CREATE_DISPATCH_BASE flag.

An overloaded method vktComputeTestsUtil.cpp::makeComputePipeline was added that allows to pass additional parameters:
- flags for pipeline creation
- flags for compute shader creation
Old method redirected to call a new one with flags set to zero.

A method vktComputeTestsUtil.cpp::makePipelineLayout no longer takes useDeviceGroups parameter and always sets pipeline layout flags to 0.

New method used in test with proper flags passed in.

Component: Vulkan

VK-GL-CTS issue: 760

Affects: dEQP-VK.compute.device_group.dispatch_base

Change-Id: I2c7400a55809b28bb7096dcdfeba2095c1541e1b

6 years agoAdjust the result verification in loop_control tests
Slawomir Cygan [Tue, 10 Oct 2017 16:13:51 +0000 (18:13 +0200)]
Adjust the result verification in loop_control tests

Change epsilon value to 0.001f

Component: Vulkan
VK-GL-CTS issue: 742
Affects: dEQP-VK.spirv_assembly.instruction.compute.loop_control.*

Change-Id: I4601e026e53a2b4256f77b690c6938ac53d5991b

6 years agoUpdate Vulkan README
Alexander Galazin [Tue, 10 Oct 2017 07:36:18 +0000 (09:36 +0200)]
Update Vulkan README

Update references to the mustpass location,
parameterize package name.

Components: Vulkan

VK-GL-CTS issue: 759

Change-Id: I4f15a1aa5eb54ad4b11e3b7a3a5a391fe81b9dac

6 years agoExclude invalid spirv_assembly indexing cases
Maciej Jesionowski [Tue, 10 Oct 2017 09:29:26 +0000 (11:29 +0200)]
Exclude invalid spirv_assembly indexing cases

32 bit int cases were trying to convert to the same bit width, which is
forbidden by the spec. We can safely remove these cases as all other
tests in this group use 32 bit access, so no coverage is lost.

Excluded tests:
* dEQP-VK.spirv_assembly.instruction.*.indexing.*u32*
* dEQP-VK.spirv_assembly.instruction.*.indexing.*s32*

VK-GL-CTS issue: 702
Components: Vulkan

Change-Id: I049ab07824a92f757829c4db810ab099a3fb59e6

6 years agoMerge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/vulkan-cts-1.1.0
Alexander Galazin [Tue, 10 Oct 2017 07:11:48 +0000 (09:11 +0200)]
Merge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/vulkan-cts-1.1.0

Change-Id: I1c26d0567159f88871148d48d2509e469a3c8abf

6 years agoVK_KHR_incremental_present: Trigger the fence off vkQueueSubmit
Jason Ekstrand [Fri, 6 Oct 2017 23:10:26 +0000 (16:10 -0700)]
VK_KHR_incremental_present: Trigger the fence off vkQueueSubmit

Previously, the tests were using AcquireNextImage to trigger the fence
and using it to guard the vkFreeCommandBuffers call.  However, the
acquire fence tells you when the PE is done with an image and when you
can start rendering to it.  This meant that the test was waiting for the
start of the previous frame's rendering not the end before deleting the
previous frame's command buffer.  This meant that the previous frame's
rendering could still be active on the GPU when the command buffer was
freed.  By triggering the fence off of the vkQueueSubmit, we wait for
the end of the previous frame's rendering before freeing its command
buffer.

VK-GL-CTS issue: 756

Component: Vulkan

Affects:
dEQP-VK.wsi.*.incremental_present.*

Change-Id: I87b25eb2a25e4ae48c8c527d5d63c45d89a31a30
(cherry picked from commit db916576a76a17c02c14390fc5d5b3db1488d1d2)

6 years agoDrawUtil: Fix depthBounds check
Igor Ostrowski [Mon, 9 Oct 2017 14:41:31 +0000 (16:41 +0200)]
DrawUtil: Fix depthBounds check

Affects:
dEQP-VK.glsl.builtin_var.fragdepth*

Components: Vulkan

VK-GL-CTS issue: 758

Change-Id: I4da79b236921e64f11566fe386b144497249123b

6 years agoMerge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/vulkan-cts-1.1.0
Alexander Galazin [Mon, 9 Oct 2017 08:32:25 +0000 (10:32 +0200)]
Merge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/vulkan-cts-1.1.0

Change-Id: I3cef9c5da6238a99dcb3f96cdbe356963c79d88d

6 years agoVK_KHR_incremental_present: Trigger the fence off vkQueueSubmit
Jason Ekstrand [Fri, 6 Oct 2017 23:10:26 +0000 (16:10 -0700)]
VK_KHR_incremental_present: Trigger the fence off vkQueueSubmit

Previously, the tests were using AcquireNextImage to trigger the fence
and using it to guard the vkFreeCommandBuffers call.  However, the
acquire fence tells you when the PE is done with an image and when you
can start rendering to it.  This meant that the test was waiting for the
start of the previous frame's rendering not the end before deleting the
previous frame's command buffer.  This meant that the previous frame's
rendering could still be active on the GPU when the command buffer was
freed.  By triggering the fence off of the vkQueueSubmit, we wait for
the end of the previous frame's rendering before freeing its command
buffer.

VK-GL-CTS issue: 756

Component: Vulkan

Affects:
dEQP-VK.wsi.*.incremental_present.*

Change-Id: I87b25eb2a25e4ae48c8c527d5d63c45d89a31a30

6 years agoRemove blindly enabling all device extensions
Noah Fredriks [Fri, 6 Oct 2017 21:43:54 +0000 (17:43 -0400)]
Remove blindly enabling all device extensions

A couple didn't need any or just one extension, but enabled all of
them.

This is not correct.  For example, AMD's Vulkan implementation exposes
both VK_KHR_maintenance1 and VK_AMD_negative_viewport_height, which
cannot be enabled at the same time according to VkDeviceCreateInfo
valid usage.

Components: vulkan

VK_GL_CTS Issue: 734, 736

Affects:
dEQP-VK.synchronization.op.multi_queue.*
dEQP-VK.multiview.*

Change-Id: I22682f15e0ef552d778e980c5f836c48d26d4905

6 years agoFix checkImageSupport()
Alexander Galazin [Fri, 6 Oct 2017 22:27:45 +0000 (00:27 +0200)]
Fix checkImageSupport()

Use proper getPhysicalDeviceFeatures2() to detect
samplerYcbcrConversion support.

Component: Vulkan

VK-GL-CTS issue: 755

Affects: dEQP-VK.ycbcr.*

Change-Id: I5e25eae7a1c25340e56eabb1ab6ca3709eb15399

6 years agoAdd StorageImageExtendedFormats cap check
Alexander Galazin [Fri, 6 Oct 2017 20:07:30 +0000 (22:07 +0200)]
Add StorageImageExtendedFormats cap check

dEQP-VK.image.texel_view_compatible.compute.* didn't check
for shaderStorageImageExtendedFormats

Component: Vulkan

VK-GL-CTS issue: 753

Affects:
dEQP-VK.image.texel_view_compatible.compute.*

Change-Id: I957329a66d2f4bedb950a597a702ec29680418de

6 years agoUpdate vulkan.h.in for WSI device-group functionality
Alexander Galazin [Fri, 6 Oct 2017 13:32:50 +0000 (15:32 +0200)]
Update vulkan.h.in for WSI device-group functionality

Sync with the header generated after Vulkan MR 2409

Component: Vulkan

Change-Id: Ic6bbf67f094b6744ab2749a67b1112e593290d6e

6 years agoFix API version for functions in CoreFunctionalities
Alexander Galazin [Fri, 6 Oct 2017 21:19:41 +0000 (23:19 +0200)]
Fix API version for functions in CoreFunctionalities

Originally gen_framework.py deduced API version for a function
based on extension aliasing information. But this can be done
directly using VK_VERSION_1_0, VK_VERSION_1_1 placement.

Components: Vulkan

VK_GL_CTS Issue: 754

Affects: dEQP-VK.api.version_check.entry_points

Change-Id: I2432076fdad1b290ed123792138c4c364e5def5b

6 years agoWSI devgroup tests need VK_KHR_swapchain
Daniel Koch [Fri, 6 Oct 2017 14:36:18 +0000 (10:36 -0400)]
WSI devgroup tests need VK_KHR_swapchain

Restore requirement of VK_KHR_swapchain as a requirement for
the WSI portion of the device_group tests.

Components: Vulkan

VK-GL-CTS issue: 733

Affects:
dEQP-VK.wsi.*.surface.query_devgroup*

Change-Id: I59c1ba12b9fb87b0c0c68b09b86aa76ab50fcd1e

6 years agoFix instance-rate vertex attribute verification
Maciej Jesionowski [Thu, 5 Oct 2017 12:40:53 +0000 (14:40 +0200)]
Fix instance-rate vertex attribute verification

There was a bug in the test where it expected instance-rate vertex
attribute data at incorrect offsets in the input buffer. As a result
these attributes were always treated as out of bounds.

Affects: dEQP-VK.robustness.vertex_access.*

VK-GL-CTS issue: 752
Components: Vulkan

Change-Id: Ied900ab4174d4e8c25fd07c95e90d3c8228d5a26

6 years agoAvoid 32-bit precision issues in ShaderRender tests
Maciej Jesionowski [Wed, 4 Oct 2017 17:08:12 +0000 (19:08 +0200)]
Avoid 32-bit precision issues in ShaderRender tests

These tests are very sensitive to floating-point precision. The default
GRID_SIZE of 90 units is problematic in 32-bit mode. The error is
visible only in Release builds and affects CPU-generated reference
image.

Affects:
* dEQP-VK.glsl.texture_functions.*
* dEQP-VK.glsl.operator.*

VK-GL-CTS issue: 751
Components: Vulkan

Change-Id: I0ca501e180339cd0e1430cab3eb08a14f68f9802

6 years agoVK_KHR_maintenance3: Fix per-stage descriptor limit checks
Jason Ekstrand [Fri, 6 Oct 2017 02:21:30 +0000 (19:21 -0700)]
VK_KHR_maintenance3: Fix per-stage descriptor limit checks

It wasn't actually checking the storage image limit (there were two
copies of the storage buffer check instead) nor was it checking the
input attachment limit.

VK-GL-CTS issue: 750

Component: Vulkan

Affects:
dEQP-VK.api.maintenance3_check.descriptor_set

Change-Id: I44cc388d0b20d4c1886db0d283c2b92712c54dc9

6 years agoSync AOSP and VK-GL-CTS exclusion lists
Alexander Galazin [Fri, 6 Oct 2017 13:27:50 +0000 (15:27 +0200)]
Sync AOSP and VK-GL-CTS exclusion lists

Components: AOSP, Vulkan

Change-Id: Ia500d19e967e015cc1ef09f72a37b0757207cd15

6 years agoRemove atan2 mediump precision tests
Alexander Galazin [Fri, 6 Oct 2017 07:54:36 +0000 (09:54 +0200)]
Remove atan2 mediump precision tests

Component: Vulkan

Affects:
dEQP-VK.glsl.builtin.precision.atan2.mediump_compute.*

VK-GL-CTS issue: 749

Change-Id: I477fc6bd2b40e3ca14392444894f752fc0530281

6 years agoAdd tests for multi GPU (device group)
Vikram Kushwaha [Fri, 2 Jun 2017 22:36:17 +0000 (15:36 -0700)]
Add tests for multi GPU (device group)

Device Group tests may use multiple physical devices for rendering.
If there are 2 or more physical devices in a device group, tests
are looped through all physical devices, 2 at a time.
If there is only 1 physical device, the test is only run on it.

Primarily, there are 2 main test modes:
AFR(Alternate frame rendering) and SFR(Split frame rendering)

AFR: A frame(tessellated or filled sphere) is drawn by one of the
physical devices ['i'+1] and copied to the render target of phys
device 'i' which then does a check against reference image.

SFR: Each half of the frame is drawn by a physical device 'i'
and 'i+1'%(num phys devices), then phys device 'i' does a check
against reference image.

SFR and AFR have 6 modes each:
1. Rendering a triangle with render target in device memory
2. Rendering a triangle with render target in host memory
3. dedicated memory allocations for buffers and render target
4. Peer fetching of vertex, uniform and sbo data, (ith physical
device fetches attributes from (i+1)%(num phys devices)th peer device
5. Render a tessellated sphere
6. Render a tesslated sphere in line fill mode

For validation, the rendering is either compared against a system
renderer(for triangle) or compared against a stored png (in case of
a tessellated sphere)

New tests:
 dEQP-VK.device_group.sfr*
 dEQP-VK.device_group.afr*

Components: Vulkan

VK-GL-CTS issue: 110

Change-Id: Ibace53a1c3be610798925a339a763a808f9f76b9