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

5 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)

5 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)

5 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)

5 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)

5 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

5 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)

5 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)

5 years agoProperly analyze edge0>=edge1 cases in smoothstep
Boris Zanin [Thu, 18 Oct 2018 08:50:25 +0000 (10:50 +0200)]
Properly analyze edge0>=edge1 cases in smoothstep

Smoothstep result is undefined if edge0 >= edge1. Make tests
return NaNs for such cases to them.

Affected tests:
 * dEQP-VK.glsl.builtin.precision.smoothstep.mediump_compute.*
 * dEQP-VK.glsl.builtin.precision.smoothstep.highp_compute.*
 * dEQP-VK.glsl.builtin.precision_fp16_storage16b.smoothstep.compute.*
 * dEQP-VK.glsl.builtin.precision_fp16_storage32b.smoothstep.compute.*

Components: Vulkan

VK-GL-CTS issue: 1425

Change-Id: Ieafc34c176c6681c2377898dde9a4934a3e5bcd3
(cherry picked from commit 4b16ba6bbd7e97b47244e4fb52ed6ccda37b3a48)

5 years agoRemove NaN from OpFOrd* and OpFUnord* tests
Boris Zanin [Wed, 17 Oct 2018 13:50:49 +0000 (15:50 +0200)]
Remove NaN from OpFOrd* and OpFUnord* tests

Due to Vulkan specification enables NaNs to be unsupported
by implementation, the NaN values cannot be processed.

As it is quite complicated to remove NaNs from tested values
stream this fix just blocks their analysis.

Following instructions are not fully tested now:
 * OpFOrdEqual
 * OpFOrdGreaterThan
 * OpFOrdLessThan
 * OpFOrdGreaterThanEqual
 * OpFOrdLessThanEqual
 * OpFUnordEqual
 * OpFUnordGreaterThan
 * OpFUnordLessThan
 * OpFUnordGreaterThanEqual
 * OpFUnordLessThanEqual

Affected tests:
 * dEQP-VK.glsl.builtin.precision.comparison.mediump_compute.*
 * dEQP-VK.glsl.builtin.precision.comparison.highp_compute.*
 * dEQP-VK.glsl.builtin.precision_fp16_storage16b.comparison.compute.*
 * dEQP-VK.glsl.builtin.precision_fp16_storage32b.comparison.compute.*

Components: Vulkan

VK-GL-CTS issue: 1423

Change-Id: Ic64cfdbe23d796de90dae0931109421ded2b526a
(cherry picked from commit 000e5e5b71561a9f4ff411219f034cb72879b56f)

5 years agoTest OpSpecConstantOp in float_controls
Piotr Byszewski [Fri, 10 Aug 2018 11:07:55 +0000 (13:07 +0200)]
Test OpSpecConstantOp in float_controls

Only rounding controls for FConvert opcode can be tested
because other opcodes would require float operations
that are only available with Kernel capability.

Components: Vulkan

VK-GL-CTS issue: 1083

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

Change-Id: I42ce9adc88340450648c4c088cd975f1abe2d88f
(cherry picked from commit 84530d144c147db854606e5dbabd2bfdff5e8177)

5 years agoTests for VK_KHR_shader_float_controls
Piotr Byszewski [Wed, 28 Mar 2018 13:27:52 +0000 (15:27 +0200)]
Tests for VK_KHR_shader_float_controls

Tests are executed for both compute and graphics stages,
for all three float widths and for two argument preparation
methods (passed via SSBO and generated in SPIR-V code).

Components: Vulkan

VK-GL-CTS issue: 1083

Affects:
dEQP-VK.api.info.get_physical_device_properties2.properties
dEQP-VK.api.info.get_physical_device_properties2.features
dEQP-VK.spirv_assembly.instruction.compute.float_controls.*
dEQP-VK.spirv_assembly.instruction.graphics.float_controls.*

Change-Id: I2bb10b7aa51283600051ecf67e845ed5f2b2093f
(cherry picked from commit 64edd2b341e49acf09be0f0807f0c2d635967171)

5 years agoFP16 precision tests VK_KHR_shader_float16_int8
Alexander Galazin [Wed, 19 Jul 2017 08:57:20 +0000 (10:57 +0200)]
FP16 precision tests VK_KHR_shader_float16_int8

Add tests:
 * dEQP-VK.glsl.builtin.precision_fp16*
 * dEQP-VK.glsl.builtin.precision*.comparison.*

Components: Vulkan, Framework

VK-GL-CTS issues: 1094

Change-Id: Iff0d1c4c144231128e5cd80bc7f72ef162ec22fa
(cherry picked from commit 6971843a108455bc7e411d704b491d0802022e0f)

5 years agoSPIR-V tests for VK_KHR_shader_float16_int8
Boris Zanin [Fri, 13 Apr 2018 12:38:19 +0000 (14:38 +0200)]
SPIR-V tests for VK_KHR_shader_float16_int8

Add tests:
 * dEQP-VK.spirv_assembly.instruction.graphics.float16.function*
 * dEQP-VK.spirv_assembly.instruction.graphics.float16.logical.*
 * dEQP-VK.spirv_assembly.instruction.graphics.float16.opconstant.*
 * dEQP-VK.spirv_assembly.instruction.graphics.float16.derivative*
 * dEQP-VK.spirv_assembly.instruction.graphics.float16.opvectorextractdynamic*
 * dEQP-VK.spirv_assembly.instruction.graphics.float16.opvectorinsertdynamic*
 * dEQP-VK.spirv_assembly.instruction.graphics.float16.opvectorshuffle*
 * dEQP-VK.spirv_assembly.instruction.graphics.float16.opcompositeconstruct*
 * dEQP-VK.spirv_assembly.instruction.graphics.float16.opcompositeextract*
 * dEQP-VK.spirv_assembly.instruction.graphics.float16.opcompositeinsert*
 * dEQP-VK.spirv_assembly.instruction.graphics.float16.arithmetic*
 * dEQP-VK.spirv_assembly.instruction.graphics.opspecconstantop.fconvert16_*
 * dEQP-VK.spirv_assembly.instruction.graphics.opphi.swap16_*
 * dEQP-VK.spirv_assembly.instruction.graphics.fconvert.*float16*
 * dEQP-VK.spirv_assembly.instruction.graphics.convert*
 * dEQP-VK.spirv_assembly.instruction.compute.float16.function*
 * dEQP-VK.spirv_assembly.instruction.compute.float16.logical.*
 * dEQP-VK.spirv_assembly.instruction.compute.float16.opconstantcomposite.*
 * dEQP-VK.spirv_assembly.instruction.compute.float16.opvectorextractdynamic*
 * dEQP-VK.spirv_assembly.instruction.compute.float16.opvectorinsertdynamic*
 * dEQP-VK.spirv_assembly.instruction.compute.float16.opvectorshuffle*
 * dEQP-VK.spirv_assembly.instruction.compute.float16.opcompositeconstruct*
 * dEQP-VK.spirv_assembly.instruction.compute.float16.opcompositeextract*
 * dEQP-VK.spirv_assembly.instruction.compute.float16.opcompositeinsert*
 * dEQP-VK.spirv_assembly.instruction.compute.float16.arithmetic*
 * dEQP-VK.spirv_assembly.instruction.compute.opspecconstantop.fconvert16
 * dEQP-VK.spirv_assembly.instruction.compute.opphi.vartype_float16
 * dEQP-VK.spirv_assembly.instruction.compute.fconvert.*float16*
 * dEQP-VK.spirv_assembly.instruction.compute.convert*

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

Components: Vulkan

VK-GL-CTS issue: 1095

Change-Id: If6112d42a9b84eaff50e559f0a4b438372815ae7
(cherry picked from commit 449a2e07496fc77e1c267b00d3d9e4c070accbb9)

5 years agoAdd convert tests for 8-bit integers
Boris Zanin [Tue, 17 Jul 2018 13:51:07 +0000 (15:51 +0200)]
Add convert tests for 8-bit integers

Add tests:
 * dEQP-VK.spirv_assembly.instruction.*.sconvert*int8*
 * dEQP-VK.spirv_assembly.instruction.*.uconvert*uint8*
 * dEQP-VK.spirv_assembly.instruction.*.convertstof*int8*
 * dEQP-VK.spirv_assembly.instruction.*.convertftos*uint8*
 * dEQP-VK.spirv_assembly.instruction.*.convertutof*int8*
 * dEQP-VK.spirv_assembly.instruction.*.convertftou*uint8*

Affect tests:
 * dEQP-VK.spirv_assembly.instruction.*convert*

Components: Vulkan

VK-GL-CTS issues: 1095

Change-Id: I4f125634d993795029feee34a1818cdacc000517
(cherry picked from commit 59a188436f57fac4a89772302c96d843310605f2)

5 years agoAdd float <--> int conversion tests
Ilkka Saarelainen [Fri, 10 Aug 2018 11:39:07 +0000 (14:39 +0300)]
Add float <--> int conversion tests

Added compute and graphics tests for OpConvertSToF, OpConvertFToS,
OpConvertUToF and OpConvertFToU instructions.

New tests:

dEQP-VK.spirv_assembly.instruction.compute.convert*
dEQP-VK.spirv_assembly.instruction.graphics.convert*

Components: Vulkan

VK-GL-CTS issue: 1079

Change-Id: Ia9a293a71e563a379a94f237afa8ee15bda2e01b
(cherry picked from commit fc308c1d66c059d731222002c9b07e95ebb8cc64)

5 years agoAdd operation tests for 8-bit integers
Boris Zanin [Mon, 9 Jul 2018 07:49:53 +0000 (09:49 +0200)]
Add operation tests for 8-bit integers

New tests:
 * dEQP-VK.spirv_assembly.type.*.i8.*
 * dEQP-VK.spirv_assembly.type.*.u8.*

Affects tests:
 * dEQP-VK.spirv_assembly.type.*

VK-GL-CTS issue: 1095

Change-Id: If94bcce6a1fff6d424c49ce3bd0b374f826ff9cb
Components: Vulkan
(cherry picked from commit c58cb8e712db300e9f81afaaa17f7fa0a42910ea)

5 years agoAdd VK_KHR_shader_float16_int8 definitions
Boris Zanin [Mon, 14 May 2018 11:58:25 +0000 (13:58 +0200)]
Add VK_KHR_shader_float16_int8 definitions

Add VK_KHR_shader_float16_int8 definitions and update framework
appropriately.

Add core features check functionality.

Components: Vulkan, Framework

VK-GL-CTS issues: 1094, 1095

Change-Id: Ia6a7960bc802fd8903e89310e7f1b5afe49d8fdb
(cherry picked from commit dbdcee9e13d2457d8b5c181556844d322bae6d74)

5 years agoAdd fp16 <-> fp64 conversion tests
Samuel Iglesias Gonsálvez [Mon, 5 Mar 2018 13:01:40 +0000 (14:01 +0100)]
Add fp16 <-> fp64 conversion tests

Require support for VK_KHR_shader_float16_int8 extension.

Added tests:

dEQP-VK.spirv_assembly.instruction.*.16bit_storage*64*

VK-GL-CTS issue: 1116
Components: Vulkan, Framework

Fix 16-bit storage IO f64-to-f16 conversion tests

The tests were applying a rounding mode decoration
to OpFConvert that was used by OpReturnValue.
The extension doesn't allow this. The only allowed
successor for suc instruction is OpStore to specific
storage classes.

Components: Vulkan

VK-GL-CTS issue: 1424

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

Change-Id: Ia224e4c6d1e11e6bc1c250d68e5b24f90000d8e6
(cherry picked from commit 04ba8ac400a3a090cfdf68db9ff004cd142fa7ac)
(cherry picked from commit c74832c803b5df82482747fd4dd11fa1d7b6badc)

5 years agoFix array stride in uniform buffer for VK_KHR_16bit_storage
Lei Zhang [Fri, 14 Sep 2018 18:56:12 +0000 (14:56 -0400)]
Fix array stride in uniform buffer for VK_KHR_16bit_storage

Array stride need to be a multiple of 16.

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

Components: Vulkan, SPIR-V
VK-GL-CTS issue: 1344

Change-Id: If5c4415e8f1914a2579d914d33ab3b334affd8d3
(cherry picked from commit 503aa56f067bcd7d20ef55e676672098007e3782)

5 years agoRefactor: Compatible compute and graphics VerifyIO
Boris Zanin [Wed, 4 Jul 2018 09:02:23 +0000 (11:02 +0200)]
Refactor: Compatible compute and graphics VerifyIO

Refactoring:
 * Compatibilize VerifyIO function declaration
 * Add isCoreFeatureSupported
 * Graphic shader can run over whole area

Affects tests:
 * dEQP-VK.spirv_assembly.*

Components: Vulkan

VK-GL-CTS issue: 1095

Change-Id: Iba9bab9d40a06f1eba90572cc60f1c334c4b8474
(cherry picked from commit 9a41fa49a90f27544ff83fce678efbe3c58cc381)

5 years agoAdd tests for VK_EXT_scalar_block_layout
Jeff Bolz [Thu, 27 Sep 2018 17:36:06 +0000 (12:36 -0500)]
Add tests for VK_EXT_scalar_block_layout

Components: Vulkan, Framework

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

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 71e336126ac2959418f9c39a9507e91e4dc61951)
(cherry picked from commit 3adebf1717d09fa7403f05325f4e8c5038b49a3c)

5 years agoUpdate SPIR-V Tools/Headers
Alexander Galazin [Tue, 20 Nov 2018 08:15:23 +0000 (09:15 +0100)]
Update SPIR-V Tools/Headers

Update SPIR-V tools and headers to accommodate support for
Float16/Int8 and shader_float_controls

Components: Framework

Change-Id: Ie00979ec38f5d14bd99cb3a70690510111ed195f

5 years agoAdd 1.1.2.3 to known conformance versions
Alexander Galazin [Mon, 19 Nov 2018 12:34:58 +0000 (13:34 +0100)]
Add 1.1.2.3 to known conformance versions

Components: Vulkan

Affects: dEQP-VK.api.driver_properties.properties

Change-Id: I8dff4802eb777e0d4181bc896f55a2a706e65683

5 years agoRevert "Fix YCbCr requirement in image_format_properties tests"
Alexander Galazin [Tue, 20 Nov 2018 08:23:27 +0000 (03:23 -0500)]
Revert "Fix YCbCr requirement in image_format_properties tests"

This reverts commit 066eac79983dacc684c82f603da6c790e2dd8273.

Change-Id: Ia36f493e063c33acd18bf51b33a1ef4ad0d8b2ff

5 years agoDon't include source files in other source files
Chris Forbes [Sun, 18 Nov 2018 20:06:18 +0000 (12:06 -0800)]
Don't include source files in other source files

This broke the Android CTS integrated build. Include the headers
instead.

Components: Vulkan
Affects: Build fix only
Change-Id: I5836881dd78be90ed3a57181121e9333f94f98b8

5 years agoDisable PCH for ninja+msvc
Jeff Bolz [Mon, 19 Nov 2018 15:06:49 +0000 (09:06 -0600)]
Disable PCH for ninja+msvc

Components: Vulkan, OpenGL
Change-Id: Icc27e31734e8e7a9296eb407cca64f05b8da69e7

5 years agoAdded tests for OpCompositeInsert
Ari Suonpaa [Thu, 1 Nov 2018 10:50:54 +0000 (12:50 +0200)]
Added tests for OpCompositeInsert

Using OpCompositeInsert to construct a matrix was reported
to generate an error in pipeline creation. Using
OpCompositeConstruct avoided this problem. This change
reproduces the reported issue.

New tests:

dEQP-VK.spirv_assembly.instruction.*.composite_insert.*

Components: Vulkan

VK-GL-CTS issue: 1408

Change-Id: I383c6fcd824a0440dd4cd124205a75269ccc84a8

5 years agoMerge vk-gl-cts/vulkan-cts-1.1.2 into vk-gl-cts/master
Alexander Galazin [Thu, 15 Nov 2018 12:13:40 +0000 (13:13 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.2 into vk-gl-cts/master

Change-Id: Ia8831045cbcd2ec8efe1089d624a24d24eaa19ff

5 years agoFix ARB_gl_spirv multiple shader object test
Alejandro Piñeiro [Mon, 29 Oct 2018 17:42:40 +0000 (18:42 +0100)]
Fix ARB_gl_spirv multiple shader object test

Right now it fails when calling glslangUtils::spirvValidate. Note that
this test is using a custom SPIR-V shader in assembly text format,
that is then assembled for the test itself. So it seems that became
outdated.

Affects:

KHR-GL46.gl_spirv.spirv_modules_shader_binary_multiple_shader_objects_test

Components: OpenGL

VK-GL-CTS issue: 1445

Change-Id: I04b841fb3fba80537346da06bf889b21902e8da5

5 years agoSplit same_module tests
Toni Merilehti [Fri, 2 Nov 2018 12:13:50 +0000 (14:13 +0200)]
Split same_module tests

Test dEQP-VK.spirv_assembly.instruction.graphics.module.same_module
currently uses tessellation and geometry stages, and will only run if
the device has tessellation and geometry support. This will split
the test into four different variations and allows the test to run
without tessellation and/or geometry stages.

Components: Vulkan

VK-GL-CTS issue: 1052

New tests:

dEQP-VK.spirv_assembly.instruction.graphics.module.same_module*

Affects:

dEQP-VK.spirv_assembly.instruction.graphics.module.same_module*

Change-Id: I10a62a313afe17cfc37360eec53102c7b06ea103

5 years agoAdd tests for OpSpecConstantOp INotEqual
Jeff Bolz [Tue, 30 Oct 2018 19:39:14 +0000 (14:39 -0500)]
Add tests for OpSpecConstantOp INotEqual

This was the only spec constant operation missing tests.

Components: Vulkan
New Tests: dEQP-VK.spirv_assembly.instruction.*.opspecconstantop.inotequal*

Change-Id: I5549880871d9afbc95ad239f0622562e21a4312d

5 years agoUpdate glslang/spirv-tools/spirv-headers to TOT github.
Jeff Bolz [Wed, 7 Nov 2018 17:37:16 +0000 (11:37 -0600)]
Update glslang/spirv-tools/spirv-headers to TOT github.

There was a revlock between these components due to the raytracing
extension rename. This updates all three to past that point. It also
picks up some updated precompiled header performance.

Components: Vulkan
Change-Id: I86a4ff8b50e4cd7ff4ddbf0dc351112d7e21d4d1

5 years agoMerge vk-gl-cts/vulkan-cts-1.1.2 into vk-gl-cts/master
Alexander Galazin [Thu, 15 Nov 2018 10:35:52 +0000 (11:35 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.2 into vk-gl-cts/master

Change-Id: I95716dc2f4ae3cb6bce8299415734d69337a6e68

5 years agoMerge vk-gl-cts/vulkan-cts-1.1.1 into vk-gl-cts/vulkan-cts-1.1.2
Alexander Galazin [Thu, 15 Nov 2018 09:20:24 +0000 (10:20 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.1 into vk-gl-cts/vulkan-cts-1.1.2

Change-Id: I5345587323415ff836b8b6f66a0d6fa8716107dd

5 years agoMerge vk-gl-cts/vulkan-cts-1.1.0 into vk-gl-cts/vulkan-cts-1.1.1
Alexander Galazin [Thu, 15 Nov 2018 08:39:17 +0000 (09:39 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.0 into vk-gl-cts/vulkan-cts-1.1.1

Change-Id: I93bd8195bc88e16a631bd26fc75095d3b2bbf43c

5 years agoFix missing self dependency in renderpass tests
Leif-Julian Ovrelid [Thu, 8 Nov 2018 09:16:10 +0000 (10:16 +0100)]
Fix missing self dependency in renderpass tests

The dEQP-VK.renderpass.suballocation.formats and
dEQP-VK.renderpass.dedicated_allocation.formats tests were missing self
dependencies in some cases where they read then write one attachment
in one subpass. In cases with overlapping rendering this would give a
read-write-then-read-write situation, which neads a self dependency to
work reliably. Some of the tests were missing the self dependency, some
of them had the color attachment bits set when depending on depth, and
one case had a self dependency where it should not.
This patch adds a self dependency to two test cases that need it,
removes self dependency from a case that does not need it, and fixes
the depth tests to have the correct bits set.

Affects:

dEQP-VK.renderpass.suballocation.formats.*.input.*
dEQP-VK.renderpass.dedicated_allocation.formats.*.input.*
dEQP-VK.renderpass2.suballocation.formats.*.input.*
dEQP-VK.renderpass2.dedicated_allocation.formats.*.input.*

Components: Vulkan

VK-GL-CTS Issue: 1454

Change-Id: I4a9bec3ef6b088ab3a50d7f658867076f68788b9

5 years agoFixes for Protected Memory
Martin Freebody [Wed, 7 Nov 2018 12:40:32 +0000 (12:40 +0000)]
Fixes for Protected Memory

This change removes errors reported by core validation layer.

Affects: dEQP-VK.protected_memory.*

Components: Vulkan

Change-Id: Id7223e5777747345778babe83b0d9c3605a4ce1f

5 years agoFurther validation fixes for renderpass tests
Graeme Leese [Thu, 8 Nov 2018 13:59:27 +0000 (13:59 +0000)]
Further validation fixes for renderpass tests

All the VkInputAttachmentAspectReference structures were pointing to
incorrect subpasses.
The multisample_resolve tests were transitioning the multisample images
to TRANSFER_SRC, which was invalid but also superfluous, so remove it.

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

Change-Id: I9356f9d4ee0dfa8938cd2fe9a062c732706e3a3f

5 years agoFix invalid color values in image.mutable tests
Dae Kim [Thu, 1 Nov 2018 10:17:00 +0000 (10:17 +0000)]
Fix invalid color values in image.mutable tests

The color values used in the tests ended up reinterpreted as f16/f32 denorms
for some combinations of image/imageview formats (e.g. rgba16_uint -> f16/f32).
With this patch the tests select color values depending on the formats under
test and avoids denorms.

Affects:

dEQP-VK.image.mutable.*

Components: Vulkan

VK-GL-CTS issue: 1285

Change-Id: Idd7ec555261109c54af865adb344f3239e49064d

5 years agoAdd watchdog touches to dEQP-VK.api.descriptor_pool#repeated_reset_long
Pierre Couillaud [Wed, 31 Oct 2018 11:57:40 +0000 (04:57 -0700)]
Add watchdog touches to dEQP-VK.api.descriptor_pool#repeated_reset_long

On some low-end devices, this test would hit the dEQP watchdog. Add some
watchdog touches to avoid this.

Google Bug: b/116847904
Component: Vulkan
Signed-off-by: Pierre Couillaud <pierre@broadcom.com>
VK-GL-CTS Issue: 1464

Change-Id: I18181aa274ab1dc191b5f0acbb58b41465b5cdad

5 years agoUpdate SPIR-V compiler wrapper for OpenGL
Piers Daniell [Thu, 8 Nov 2018 18:57:05 +0000 (11:57 -0700)]
Update SPIR-V compiler wrapper for OpenGL

This copies the change for Vulkan made in:
https://gerrit.khronos.org/#/c/2980/

Change-Id: I30ebb4cc9c131480df5c27a4846d7cb664df4cb9
Components: OpenGL

5 years agoUse the correct type for image creation flags
Graeme Leese [Thu, 10 May 2018 11:11:48 +0000 (12:11 +0100)]
Use the correct type for image creation flags

Components: Vulkan
Affects:    dEQP-VK.api.info.image_format_properties2.*

Change-Id: I73fe492be9da52f9feb1aa32a1d161c9214b767d

5 years agoMerge vk-gl-cts/vulkan-cts-1.1.2 into vk-gl-cts/master
Alexander Galazin [Thu, 8 Nov 2018 13:55:15 +0000 (14:55 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.2 into vk-gl-cts/master

Change-Id: I16aa60e3d83febd0e9268ed51eebe8d0671768e7

5 years agoMerge vk-gl-cts/vulkan-cts-1.1.1 into vk-gl-cts/vulkan-cts-1.1.2
Alexander Galazin [Thu, 8 Nov 2018 12:40:50 +0000 (13:40 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.1 into vk-gl-cts/vulkan-cts-1.1.2

Change-Id: I07c6dba293349d24486832cbd2288c765f647003

5 years agoAdded framework function for image to buffer copy
Ari Suonpaa [Thu, 4 Oct 2018 09:26:29 +0000 (12:26 +0300)]
Added framework function for image to buffer copy

Several existing tests have their own implementation for
copying image to a buffer. Use a framework function where
it leads to a cleaner code.

Affects:

dEQP-VK.api.buffer_view.access.*
dEQP-VK.api.command_buffers.*
dEQP-VK.api.smoke.*
dEQP-VK.binding_model.shader_access.*
dEQP-VK.compute.basic.*
dEQP-VK.draw.shader_layer.*
dEQP-VK.draw.shader_viewport_index.*
dEQP-VK.fragment_operations.early_fragment.*
dEQP-VK.fragment_operations.scissor.multi_viewport.*
dEQP-VK.fragment_operations.scissor.*
dEQP-VK.geometry.*
dEQP-VK.memory.binding.*
dEQP-VK.memory.external_memory_host.*
dEQP-VK.pipeline.multisample.sampled_image.*
dEQP-VK.pipeline.multisample.storage_image.*
dEQP-VK.pipeline.shader_stencil_export.*
dEQP-VK.rasterization.*
dEQP-VK.renderpass*.multisample_resolve.*
dEQP-VK.renderpass*.multisample.*
dEQP-VK.renderpass*.sampleread.*
dEQP-VK.renderpass*.sparserendertarget.*
dEQP-VK.glsl.*
dEQP-VK.sparse_resources.buffer.*
dEQP-VK.spirv_assembly.instruction.graphics.cross_stage.*
dEQP-VK.subgroups.*
dEQP-VK.tessellation.common_edge.*
dEQP-VK.tessellation.geometry_interaction.scatter.*
dEQP-VK.tessellation.geometry_interaction.passthrough.*
dEQP-VK.tessellation.geometry_interaction.point_size.*
dEQP-VK.tessellation.misc_draw.*
dEQP-VK.tessellation.primitive_discard.*
dEQP-VK.tessellation.shader_input_output.*
dEQP-VK.tessellation.user_defined_io.*
dEQP-VK.tessellation.winding.*
dEQP-VK.texture.*
dEQP-VK.ubo.*

Components: Vulkan

VK-GL-CTS issue: 1375
Change-Id: Ib2041e801446ea78d8591c348c3b438061de9a67

5 years agoMerge vk-gl-cts/vulkan-cts-1.1.0 into vk-gl-cts/vulkan-cts-1.1.1
Alexander Galazin [Thu, 8 Nov 2018 11:52:47 +0000 (12:52 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.0 into vk-gl-cts/vulkan-cts-1.1.1

Change-Id: I7e4ffa1e9b7956f0c77ee9b8dfc3d958743c0929

5 years agoCorrect invalidate->flush after writing to host-mapped memory
Thomas Spurden [Thu, 1 Nov 2018 17:56:19 +0000 (17:56 +0000)]
Correct invalidate->flush after writing to host-mapped memory

Affects:

dEQP-VK.pipeline.push_constant.graphics_pipeline.*

Change-Id: Iee43b30343581efe94b606811d2dc90c0bcd6993
Components: Vulkan

5 years agoSpecify PointSize when drawing point lists
Dae Kim [Tue, 6 Nov 2018 10:01:43 +0000 (10:01 +0000)]
Specify PointSize when drawing point lists

Test cases for vertex stages are using VK_PRIMITIVE_TOPOLOGY_POINT_LIST without
specifying a value for gl_PointSize in the vertex shader.

Affects:

dEQP-VK.binding_model.descriptorset_random.*vert*
dEQP-VK.memory_model.message_passing.*vert*

Components: Vulkan

VK-GL-CTS issue: 1450

Change-Id: If1279a0b2a5989a267c57d72f2495c790dcdc4bb

5 years agoFix swapchain creation in dEQP-VK.wsi.*.swapchain.*
Chad Versace [Mon, 15 Oct 2018 19:45:46 +0000 (12:45 -0700)]
Fix swapchain creation in dEQP-VK.wsi.*.swapchain.*

In the Vulkan 1.1.87 spec release, the release fixed a bug in
VkSwapchainCreateInfoKHR by adding the following VU:

    * imageFormat, imageUsage, imageExtent, and imageArrayLayers must be
      supported for VK_IMAGE_TYPE_2D VK_IMAGE_TILING_OPTIMAL images as
      reported by vkGetPhysicalDeviceImageFormatProperties.

Jesse Hall authored the fix in response to behavior discovered by Chad
Versace while debugging failures in dEQP-VK.wsi.android.swapchain.* on
Intel Chrome OS devices.  This patch fixes the failing tests to comply
with the spec bugfix.

Components: Vulkan
VK-GL-CTS Issue: 1395
Affects: dEQP-VK.wsi.*.swapchain.*
See-Also: https://gitlab.khronos.org/vulkan/vulkan/issues/1029
Change-Id: I959774833d03b63eb6e23fbd3a7ff33378b44110
(cherry picked from commit 49eab80e4a8b3af1790b9ac88b096aa9bffd193f)

5 years agoUtilize copyBufferToImage framework function where possible
Ari Suonpaa [Thu, 27 Sep 2018 10:05:47 +0000 (13:05 +0300)]
Utilize copyBufferToImage framework function where possible

Several existing tests have their own implementation for
copying buffer to an image. Use a framework function where
it leads to a cleaner code.

Affects:

dEQP-VK.binding_model.shader_access.*
dEQP-VK.compute.basic.copy_image_to_ssbo*
dEQP-VK.geometry.basic.*
dEQP-VK.image.atomic_operations.*
dEQP-VK.multiview.*
dEQP-VK.glsl.*
dEQP-VK.spirv_assembly.instruction.graphics.*
dEQP-VK.texture.explicit_lod.*

Components: Vulkan, Framework

VK-GL-CTS issue: 1376
Change-Id: Icfda7bdde1e8e0a7bf77ccb36bf4ca948d45a200

5 years agoFixed unused attachment tests to properly use renderpass2
Ari Suonpaa [Thu, 25 Oct 2018 10:46:17 +0000 (13:46 +0300)]
Fixed unused attachment tests to properly use renderpass2

Unused attachment tests under renderpass group were still
using a legacy renderpass API. Now the tests under
renderpass2 group properly use the correct functions and
structures. Also removed final layout parameter from tests
since they are generating a validation error. It was
confirmed the validator is correctly checking the final
layout even when the attachment is unused.

Affects:

dEQP-VK.renderpass*.unused_attachment.*

Components: Vulkan

VK-GL-CTS issue: 1397
Change-Id: Ib14828ee37371a702303cc5c6a91a4fb76a74724

5 years agoSubgroupBallot: Don't test 0 <= id
Graeme Leese [Wed, 25 Apr 2018 20:15:24 +0000 (21:15 +0100)]
SubgroupBallot: Don't test 0 <= id

Since id is a uint this is always true.

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

Change-Id: I57065c9748126c71e22ee7d38b7501c2db175396

5 years agoRationalise the 'check*' functions in subgroups
Graeme Leese [Tue, 17 Apr 2018 16:45:09 +0000 (17:45 +0100)]
Rationalise the 'check*' functions in subgroups

There are loads of these and they all do the same thing. Move them to
the common subgroups utils section and reuse them throughout the tests.

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

Change-Id: Ie2373d53b77234eba7a8afa6acdbbaf12c89e9f8

5 years agoRemove one copy of the clustered test sources
Graeme Leese [Tue, 30 Oct 2018 16:54:58 +0000 (16:54 +0000)]
Remove one copy of the clustered test sources

We really shouldn't have duplicates of test code like this.

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

Change-Id: I3b32d6d7f3762d2d21375aa9b8095b0f64543942

5 years agoFurther validation fixes for renderpass tests
Graeme Leese [Wed, 24 Oct 2018 10:59:48 +0000 (11:59 +0100)]
Further validation fixes for renderpass tests

Correct synchronisation for multisample tests and include stencil usage
in pipline barriers.

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

Change-Id: I481dca4a2544911a36cdb9773efe4e7ad1a94c7f

5 years agoFix case when unsuported create flag was used for AHB
Kacper Kleczewski [Tue, 23 Oct 2018 12:50:51 +0000 (13:50 +0100)]
Fix case when unsuported create flag was used for AHB

Additional validation step is added to ValidateAHardwareBuffer function
which return false if API level is lower than 28 and
VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT create flag is requested.

Components: Vulkan

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

VK-GL-CTS Issue: 1439

Change-Id: Iadaa5c1d584bbf3d3335952c501799aff3c5b2d6

5 years agoMerge "Merge vk-gl-cts/github-master into vk-gl-cts/master"
Alexander Galazin [Tue, 6 Nov 2018 13:01:44 +0000 (08:01 -0500)]
Merge "Merge vk-gl-cts/github-master into vk-gl-cts/master"

5 years agoMerge vk-gl-cts/github-master into vk-gl-cts/master
Alexander Galazin [Tue, 6 Nov 2018 12:12:37 +0000 (13:12 +0100)]
Merge vk-gl-cts/github-master into vk-gl-cts/master

Change-Id: I6e7da6cfd1fe7d69bccf4231f4b04d9d3fdbd30b

5 years agoMerge pull request #131 from werman/vulkan/VK_EXT_conditional_rendering
Alexander Galazin [Tue, 6 Nov 2018 11:44:00 +0000 (12:44 +0100)]
Merge pull request #131 from werman/vulkan/VK_EXT_conditional_rendering

Add tests for VK_EXT_conditional_rendering

5 years agoMerge vk-gl-cts/vulkan-cts-1.1.2 into vk-gl-cts/master
Alexander Galazin [Tue, 6 Nov 2018 11:41:45 +0000 (12:41 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.2 into vk-gl-cts/master

Change-Id: I0bc9d40f5467c3fcef1840984651ed3cdb953e5c

5 years agoMerge vk-gl-cts/vulkan-cts-1.1.1 into vk-gl-cts/vulkan-cts-1.1.2
Alexander Galazin [Tue, 6 Nov 2018 10:59:01 +0000 (11:59 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.1 into vk-gl-cts/vulkan-cts-1.1.2

Change-Id: Ia532a2dca73418c4dda309ff8f3b58c5d7da15e7

5 years agoMerge vk-gl-cts/vulkan-cts-1.1.0 into vk-gl-cts/vulkan-cts-1.1.1
Alexander Galazin [Thu, 1 Nov 2018 10:24:35 +0000 (11:24 +0100)]
Merge vk-gl-cts/vulkan-cts-1.1.0 into vk-gl-cts/vulkan-cts-1.1.1

Change-Id: I5874225ecf8aae48bd833a15492668a83f985f38

5 years agoTerminate EGL display after use
Yogesh Gole [Wed, 17 Oct 2018 11:21:19 +0000 (16:51 +0530)]
Terminate EGL display after use

Previously function getDefaultEglConfigList destroyed native
display but did not terminate the EGL display. It may happen
that next create call will allocate native display at same
address as previous and as per spec multiple calls made to
eglGetPlatformDisplayEXT with the same <platform> and
<native_display> will return the same EGLDisplay handle. But
returned EGLDisplay will have references to stale data.

To fix this destroy the EGL Display along with native display.

Affects: CTS-Configs.*

Components: OpenGL and Framework

VK-GL-CTS Issue: 1426

Change-Id: I8e4c7d693d26bd9be6d7f892d0b5162d9b2b245c

5 years agoMerge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/vulkan-cts-1.1.0
Alexander Galazin [Thu, 1 Nov 2018 09:53:29 +0000 (10:53 +0100)]
Merge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/vulkan-cts-1.1.0

Change-Id: I587d40c09a99e93dd4cccf359ceba1dbf9ff47a9

5 years agoExtend push desriptors test to 128 compute dispatches
Slawomir Cygan [Tue, 4 Sep 2018 10:16:20 +0000 (12:16 +0200)]
Extend push desriptors test to 128 compute dispatches

This adds new test case with 128 compute dispatches,
each with different pushed descriptor offset being pushed.

Component: Vulkan

VK-GL-CTS Issue: 1429

New Tests: dEQP-VK.pipeline.push_descriptor.compute.binding1_numcalls128_storage_buffer

Change-Id: Ib5914e034679c962fadf6dcadfb722a85a468c6d

5 years agoCorrect vertex input tests on null driver
Piotr Byszewski [Thu, 25 Oct 2018 14:50:20 +0000 (16:50 +0200)]
Correct vertex input tests on null driver

On Null driver all features are enabled and this triggered execution
of tests for 128 vertex attributes that are not commonly supported.
Tests allocate buffer for verification which is not big enough for
128 attributes. This causes memory corruption and crash.
This change resolves those issues.

Components: Vulkan

VK-GL-CTS issue: 1443

Affects:
dEQP-VK.pipeline.vertex_input.*

Change-Id: I9a89cc62fdd34f9da40ebf9d84e6cf5b5aed07d5

5 years agoUse GENERAL image layout for images used as STORAGE image
Slawomir Cygan [Wed, 24 Oct 2018 14:19:20 +0000 (16:19 +0200)]
Use GENERAL image layout for images used as STORAGE image

The test was using VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL,
which is not valid for STORAGE images.

Components: Vulkan

VK-GL-CTS Issue: 1441

Affects:
dEQP-VK.pipeline.push_descriptor.*

Change-Id: Ic858ba32ce04601541a224aecbc105f42a36687d

5 years agoCorrect image properties tests on Null driver
Piotr Byszewski [Tue, 23 Oct 2018 09:42:49 +0000 (11:42 +0200)]
Correct image properties tests on Null driver

On Null driver all features are enabled and this trigered some issues
with YCBCR format in image_format_properties tests. This change
resolves those issues.

VK-GL-CTS issue: 1438

Components: Vulkan

Change-Id: I3d1707438909ae4f5e828092a97a6380b615beca
Affects: dEQP-VK.api.info.image_format_properties.*

5 years agoFix for unnormalized coordinate test using mipmaps
Jari Komppa [Wed, 24 Oct 2018 09:18:40 +0000 (12:18 +0300)]
Fix for unnormalized coordinate test using mipmaps

The unnormalized coodinate test used textures with mipmaps, while
unnormalized coordinates are only defined for single mip level textures.
This required adding new constructors to the texture framework that
allow explicit setting of mip levels.

Affects:

dEQP-VK.texture.filtering.unnormal.*

Components: Vulkan, Framework

VK-GL-CTS issue: 1390

Change-Id: Ibd049a04d143979624d10148e3911728579b3a2c

5 years agoFix API usage errors in dEQP-VK.geometry.basic.*
Ilkka Saarelainen [Thu, 25 Oct 2018 13:06:58 +0000 (16:06 +0300)]
Fix API usage errors in dEQP-VK.geometry.basic.*

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

Components: Vulkan

Affects:

dEQP-VK.geometry.basic.*

VK-GL-CTS issue: 1418

Change-Id: Iaa226bff5728a711b79f863b990b950cf95dd1c6

5 years agoFix swapchain creation in dEQP-VK.wsi.*.swapchain.*
Chad Versace [Mon, 15 Oct 2018 19:45:46 +0000 (12:45 -0700)]
Fix swapchain creation in dEQP-VK.wsi.*.swapchain.*

In the Vulkan 1.1.87 spec release, the release fixed a bug in
VkSwapchainCreateInfoKHR by adding the following VU:

    * imageFormat, imageUsage, imageExtent, and imageArrayLayers must be
      supported for VK_IMAGE_TYPE_2D VK_IMAGE_TILING_OPTIMAL images as
      reported by vkGetPhysicalDeviceImageFormatProperties.

Jesse Hall authored the fix in response to behavior discovered by Chad
Versace while debugging failures in dEQP-VK.wsi.android.swapchain.* on
Intel Chrome OS devices.  This patch fixes the failing tests to comply
with the spec bugfix.

Components: Vulkan
VK-GL-CTS Issue: 1395
Affects: dEQP-VK.wsi.*.swapchain.*
See-Also: https://gitlab.khronos.org/vulkan/vulkan/issues/1029
Change-Id: I959774833d03b63eb6e23fbd3a7ff33378b44110

5 years agoAdd tests for VK_EXT_conditional_rendering
Danylo Piliaiev [Fri, 12 Oct 2018 15:19:55 +0000 (18:19 +0300)]
Add tests for VK_EXT_conditional_rendering

All functions affected by VK_EXT_conditional_rendering are tested:
 - vkCmdDraw, vkCmdDrawIndexed, vkCmdDrawIndirect, vkCmdDrawIndexedIndirect
 - vkCmdDrawIndirectCountKHR, vkCmdDrawIndexedIndirectCountKHR (VK_KHR_draw_indirect_count)
 - vkCmdDispatch, vkCmdDispatchIndirect, vkCmdDispatchBase
 - vkCmdClearAttachments

The only limitation of these tests is that combination of different functions in one render
pass are not tested - only several calls of the same functions. Due to the different hardware
specific support of conditional rendering some implementations may have exhibit issues in such cases,
especially when combining conditional rendering with functions from VK_KHR_draw_indirect_count.

Components: Vulkan

New Tests: dEQP-VK.conditional_rendering.*

Signed-off-by: Danylo Piliaiev <danylo.piliaiev@globallogic.com>
5 years agoAdd option for Android dEQP builds to link against and embed ANGLE shared object...
Tim Van Patten [Fri, 5 Oct 2018 22:14:47 +0000 (16:14 -0600)]
Add option for Android dEQP builds to link against and embed ANGLE shared object libraries

Add the option '--angle-path' to scripts/android/build_apk.py to point
to the directory containing ANGLE shared object libraries for the
specified ABI.   This will cause dEQP to link against and embed the ANGLE
shared object libraries and use them during the dEQP test execution.

Components: Android dEQP

Google bug: 80239516

Change-Id: I04043d03b7837601656690126296e61b8ed9e658

5 years agoUse precompiled headers on MSVC
Jeff Bolz [Fri, 19 Oct 2018 04:00:34 +0000 (23:00 -0500)]
Use precompiled headers on MSVC

This is a significant improvement in build time on MSVC,
maybe 25% overall. Qualitatively, compile time is about 2x
faster, but link time, lack of parallelism for the whole
duration of the build, and some unaccelerated components
(e.g. glslang and some internal modules) reduce the total
wall clock time improvement from 50% down to that 25%.

This also helps a lot with performance of the builds for
generating mustpass lists.

Components: Vulkan, OpenGL, Framework
Change-Id: I6013d9728444d9892e9a5ec8f31a574c10ca06b2

5 years agoExtend transcoding tests to 1D/3D images
Piotr Byszewski [Fri, 24 Aug 2018 16:05:26 +0000 (18:05 +0200)]
Extend transcoding tests to 1D/3D images

Previously implementation assumed that
VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT feature is
only for 2D images. This change executes most of the tests
aslo for 1D and 3D images.

Components: Vulkan

VK-GL-CTS issue: 1209

Affects:
dEQP-VK.image.texel_view_compatible.*

Change-Id: Iefc2b4f5658b39836cb28a62e9d38d3c4662cfbe

5 years agoMerge vk-gl-cts/vulkan-cts-1.1.2 into vk-gl-cts/master
Alexander Galazin [Thu, 25 Oct 2018 19:17:25 +0000 (21:17 +0200)]
Merge vk-gl-cts/vulkan-cts-1.1.2 into vk-gl-cts/master

Change-Id: Idfc653d433d9eaadcf155da6e3ab94f76662e8e9

5 years agoAdd 1.1.2.2 to known conformance versions
Alexander Galazin [Thu, 25 Oct 2018 15:27:30 +0000 (17:27 +0200)]
Add 1.1.2.2 to known conformance versions

Components: Vulkan

Affects: dEQP-VK.api.driver_properties.properties

Change-Id: I4bcd1140981c7eac4b5e3a97da3cfc8458520448

5 years agoFix uninitialised variable warning for some compilers
Steve Hill [Thu, 25 Oct 2018 09:36:50 +0000 (10:36 +0100)]
Fix uninitialised variable warning for some compilers

Some compilers seem to get confused as to whether the scope
string-variable is initialised properly.

This change makes the switch that sets it up consistent with the
other switches and pacifies those compilers.

Components: Vulkan

Affects: dEQP-VK.memory_model.*

VK-GL-CTS issue: 1442

Change-Id: Id5ff742c85510af173020cf1bbfc16429a33f29f

5 years agoMerge vk-gl-cts/vulkan-cts-1.1.1 into vk-gl-cts/vulkan-cts-1.1.2
Alexander Galazin [Thu, 25 Oct 2018 16:33:14 +0000 (18:33 +0200)]
Merge vk-gl-cts/vulkan-cts-1.1.1 into vk-gl-cts/vulkan-cts-1.1.2

Change-Id: Ic2ef309419e39a4b2baf634017e25979d743a607

5 years agoTest 2D texture swizzles with VkComponentMappings
Mika Väinölä [Thu, 27 Sep 2018 14:03:15 +0000 (17:03 +0300)]
Test 2D texture swizzles with VkComponentMappings

Add an optional VkComponentMapping parameter to TextureRenderer and
new tests that verify quads rendered with given component mapping are
swizzled correctly.

New tests:
dEQP-VK.texture.swizzle.component_mapping.*

Components: Vulkan

VK-GL-CTS issue: 1394

Change-Id: I33601e8eaed134462defabfa007fe0c9103c869a

5 years agoMerge vk-gl-cts/vulkan-cts-1.1.0 into vk-gl-cts/vulkan-cts-1.1.1
Alexander Galazin [Thu, 25 Oct 2018 15:03:10 +0000 (17:03 +0200)]
Merge vk-gl-cts/vulkan-cts-1.1.0 into vk-gl-cts/vulkan-cts-1.1.1

Change-Id: I2d8288ee3b75ef786496453b0efa6591f4f5c0ad

5 years agoMerge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/vulkan-cts-1.1.0
Alexander Galazin [Thu, 25 Oct 2018 13:52:47 +0000 (15:52 +0200)]
Merge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/vulkan-cts-1.1.0

Change-Id: Ic87368f606cb8ec126d42ec9f72b1baffcdcf950

5 years agoFix incomplete VkImageSubresourceRange
Noah Fredriks [Wed, 11 Jul 2018 21:56:05 +0000 (17:56 -0400)]
Fix incomplete VkImageSubresourceRange

Pipeline image barrier arraySize doesn't include the entire image.

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

Components: Vulkan

VK-GL-CTS Issue: 910

Change-Id: I9974c9390478cf70f2238e03a7180fc81166f84e

5 years agoMerge vk-gl-cts/master into vk-gl-cts/vulkan-cts-next-dev
Alexander Galazin [Thu, 25 Oct 2018 13:27:17 +0000 (15:27 +0200)]
Merge vk-gl-cts/master into vk-gl-cts/vulkan-cts-next-dev

Change-Id: Ie615d2294ca51629dd202087883acee9b0791f51

5 years agoMerge vk-gl-cts/vulkan-cts-1.1.2 into vk-gl-cts/master
Alexander Galazin [Thu, 25 Oct 2018 12:46:24 +0000 (14:46 +0200)]
Merge vk-gl-cts/vulkan-cts-1.1.2 into vk-gl-cts/master

Change-Id: I52a560f1c5cbd065182b36b6e8bff7d3a9c81879

5 years agoMerge vk-gl-cts/vulkan-cts-1.1.1 into vk-gl-cts/vulkan-cts-1.1.2
Alexander Galazin [Thu, 25 Oct 2018 12:20:14 +0000 (14:20 +0200)]
Merge vk-gl-cts/vulkan-cts-1.1.1 into vk-gl-cts/vulkan-cts-1.1.2

Change-Id: Ie74a921aba656d271738734379ad7bf5ff596fa4

5 years agoMerge vk-gl-cts/vulkan-cts-1.1.0 into vk-gl-cts/vulkan-cts-1.1.1
Alexander Galazin [Thu, 25 Oct 2018 11:51:47 +0000 (13:51 +0200)]
Merge vk-gl-cts/vulkan-cts-1.1.0 into vk-gl-cts/vulkan-cts-1.1.1

Change-Id: I116b300bfdd3ee78827aa671a737de007eb241ef

5 years agoFix spelling on NotSupported error message
Slawomir Cygan [Mon, 22 Oct 2018 11:12:16 +0000 (13:12 +0200)]
Fix spelling on NotSupported error message

Components: Vulkan

VK-GL-CTS Issue: 1433

Affects: dEQP-VK.api.info.device_group.peer_memory_features

Change-Id: I42e2d7a50d2f74d706e42f0f196ff76c8446fa1c

5 years agoAdded tests for out-of-order attribute locations
Ari Suonpaa [Wed, 17 Oct 2018 10:33:03 +0000 (13:33 +0300)]
Added tests for out-of-order attribute locations

Extended vertex input tests to issue attribute locations
out-of-order.

New tests:

dEQP-VK.pipeline.vertex_input.*.out_of_order.*

Components: Vulkan

VK-GL-CTS issue: 1416
Change-Id: I2e0a90a14c3c663bbf4dd3b4d0b9a73cbdb859a3

5 years agoMake VK_KHR_shader_subgroup_vote tests work with sparse dispatch
Connor Abbott [Thu, 18 Oct 2018 12:20:31 +0000 (14:20 +0200)]
Make VK_KHR_shader_subgroup_vote tests work with sparse dispatch

The voteallequal tests created a value which was supposed to be
different for some threads in the subgroup, and then called
voteAllEqual() on it expecting it to return false. However, because the
entire expression was reduced modulo 2, if the implementation dispatched
threads in a sparse manner so that some subgroup indices were skipped,
then all the active threads could have wound up with the same value. In
particular, this caused the graphics voteallequal tests to fail in the
fragment stage on AMD due to how the hardware dispatches single-pixel
point sprites.

Fix this by just using gl_SubgroupIndex directly, so that every thread
is guaranteed to get a unique value. Some care has to be taken for
boolean values -- I've just made them use subgroupElect() instead, as
that's the simplest way to get a guaranteed-divergent boolean value.

Affected tests:
dEQP-VK.subgroups.vote.*

Components: Vulkan
VK-GL-CTS Issue: 1437

Change-Id: I10ddc438db4cd4925bdbc4f458a082fcab9c9155

5 years agoFix unaligned host accesses in UBO and SSBO tests
Gary Sweet [Mon, 22 Oct 2018 11:39:09 +0000 (12:39 +0100)]
Fix unaligned host accesses in UBO and SSBO tests

Prevent uniform blocks from starting unaligned.
Previously these tests would end up casting
non-4-byte aligned addresses to float*. On 32-bit
ARM CPUs this can cause unaligned access faults.

Components: Vulkan

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

VK-GL-CTS issue: 1434

Change-Id: Ied437b150b61f11630b5c1511ccedd410308b004

5 years agoAdd flush to binding descriptor set random tests
Steve Hill [Mon, 22 Oct 2018 08:48:57 +0000 (09:48 +0100)]
Add flush to binding descriptor set random tests

Components: Vulkan

Affects: dEQP-VK.binding_model.descriptorset_random.*

VK-GL-CTS issue: 1432

Change-Id: I56df9fefbeb511e441310df9f52d0e9a897bcbef

5 years agoFix the device_group test failure by allowing same number of tries to
Mohd Faisal [Fri, 19 Oct 2018 09:35:36 +0000 (10:35 +0100)]
Fix the device_group test failure by allowing same number of tries to
create object as device test.

Components: Vulkan

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

VK-GL-CTS Issue: 1431

Change-Id: I099a05f3109c1997cad323a0577f66c95755b151

5 years agoImport dedicated allocs w/ importDedicatedMemory
crohde [Wed, 17 Oct 2018 10:33:35 +0000 (12:33 +0200)]
Import dedicated allocs w/ importDedicatedMemory

When exported memory was a dedicated allocation,
the memory must be imported also as dedicated allocation.
This was already implemented for images,
this change does it for buffers, too.

Affects:
dEQP-VK.api.external.memory.opaque_fd.dedicated.device_only.import_twice
dEQP-VK.api.external.memory.opaque_fd.dedicated.device_only.import_multiple_times
dEQP-VK.api.external.memory.opaque_fd.dedicated.device_only.dup
dEQP-VK.api.external.memory.opaque_fd.dedicated.device_only.dup2
dEQP-VK.api.external.memory.opaque_fd.dedicated.device_only.dup3
dEQP-VK.api.external.memory.opaque_fd.dedicated.device_only.send_over_socket
dEQP-VK.api.external.memory.opaque_fd.dedicated.buffer.bind_export_import_bind
dEQP-VK.api.external.memory.opaque_fd.dedicated.buffer.export_bind_import_bind
dEQP-VK.api.external.memory.opaque_fd.dedicated.buffer.export_import_bind_bind

Components: Vulkan

VK-GL-CTS issue: 1422
Change-Id: I782aeb256151dd98cc6a91b8a6942cd916d3f7b7

5 years agoImport dedicated allocs w/ importDedicatedMemory
crohde [Wed, 17 Oct 2018 10:33:35 +0000 (12:33 +0200)]
Import dedicated allocs w/ importDedicatedMemory

When exported memory was a dedicated allocation,
the memory must be imported also as dedicated allocation.
This was already implemented for images,
this change does it for buffers, too.

Affects:
dEQP-VK.api.external.memory.opaque_fd.dedicated.device_only.import_twice
dEQP-VK.api.external.memory.opaque_fd.dedicated.device_only.import_multiple_times
dEQP-VK.api.external.memory.opaque_fd.dedicated.device_only.dup
dEQP-VK.api.external.memory.opaque_fd.dedicated.device_only.dup2
dEQP-VK.api.external.memory.opaque_fd.dedicated.device_only.dup3
dEQP-VK.api.external.memory.opaque_fd.dedicated.device_only.send_over_socket
dEQP-VK.api.external.memory.opaque_fd.dedicated.buffer.bind_export_import_bind
dEQP-VK.api.external.memory.opaque_fd.dedicated.buffer.export_bind_import_bind
dEQP-VK.api.external.memory.opaque_fd.dedicated.buffer.export_import_bind_bind

Components: Vulkan

VK-GL-CTS issue: 1422
Change-Id: I782aeb256151dd98cc6a91b8a6942cd916d3f7b7

5 years agoProperly analyze edge0>=edge1 cases in smoothstep
Boris Zanin [Thu, 18 Oct 2018 08:50:25 +0000 (10:50 +0200)]
Properly analyze edge0>=edge1 cases in smoothstep

Smoothstep result is undefined if edge0 >= edge1. Make tests
return NaNs for such cases to them.

Affected tests:
 * dEQP-VK.glsl.builtin.precision.smoothstep.mediump_compute.*
 * dEQP-VK.glsl.builtin.precision.smoothstep.highp_compute.*
 * dEQP-VK.glsl.builtin.precision_fp16_storage16b.smoothstep.compute.*
 * dEQP-VK.glsl.builtin.precision_fp16_storage32b.smoothstep.compute.*

Components: Vulkan

VK-GL-CTS issue: 1425

Change-Id: Ieafc34c176c6681c2377898dde9a4934a3e5bcd3

5 years agoRemove NaN from OpFOrd* and OpFUnord* tests
Boris Zanin [Wed, 17 Oct 2018 13:50:49 +0000 (15:50 +0200)]
Remove NaN from OpFOrd* and OpFUnord* tests

Due to Vulkan specification enables NaNs to be unsupported
by implementation, the NaN values cannot be processed.

As it is quite complicated to remove NaNs from tested values
stream this fix just blocks their analysis.

Following instructions are not fully tested now:
 * OpFOrdEqual
 * OpFOrdGreaterThan
 * OpFOrdLessThan
 * OpFOrdGreaterThanEqual
 * OpFOrdLessThanEqual
 * OpFUnordEqual
 * OpFUnordGreaterThan
 * OpFUnordLessThan
 * OpFUnordGreaterThanEqual
 * OpFUnordLessThanEqual

Affected tests:
 * dEQP-VK.glsl.builtin.precision.comparison.mediump_compute.*
 * dEQP-VK.glsl.builtin.precision.comparison.highp_compute.*
 * dEQP-VK.glsl.builtin.precision_fp16_storage16b.comparison.compute.*
 * dEQP-VK.glsl.builtin.precision_fp16_storage32b.comparison.compute.*

Components: Vulkan

VK-GL-CTS issue: 1423

Change-Id: Ic64cfdbe23d796de90dae0931109421ded2b526a

5 years agoValidation fixes for device group tests
Graeme Leese [Tue, 9 Oct 2018 08:39:10 +0000 (09:39 +0100)]
Validation fixes for device group tests

Flush and invalidate whole allocations and fix a stray pipeline barrier
stage.

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

Change-Id: I0e214ccde2dff72a6d004702aa362bb88c47d977

5 years agoFix asserts and check for base image format support in image.mutable tests
Slawomir Cygan [Thu, 2 Aug 2018 16:01:57 +0000 (18:01 +0200)]
Fix asserts and check for base image format support in image.mutable tests

This adds a check if base image can be created given the format.

It is required for implementations supporting VK_KHR_maintenance2 or 1.1:
if these are supported, the exisiting VkImageView format support does not
cover base image format support.

Additionally, fix malformed asserts and missign case switches in this test.

Components: Vulkan

Affects: dEQP-VK.image.mutable

VK-GL-CTS Issue: 1295, 1294

(cherry picked from commit eaaa3979b015e2a923b3250b4269d3c9d21137cc)

Change-Id: I7a4afbb624d73aadca4f9a6edf955b3cdc2d863e