platform/upstream/VK-GL-CTS.git
6 years agoUse local binding for renderImage layout change
Vikram Kushwaha [Thu, 24 May 2018 20:57:44 +0000 (13:57 -0700)]
Use local binding for renderImage layout change

As implementations may not support VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT
access, a layout change with multi device binding can not be assumed in
all cases.

Affects:

dEQP-VK.device_group.sfr*

Components: Vulkan

VK-GL-CTS issue: 1193

Change-Id: I315ff69fc9eaac3b090a57989bd0c0d177fcbe7c

6 years agoTest omitting blend state with unused attachments
Paavo Pessi [Fri, 4 May 2018 12:26:40 +0000 (15:26 +0300)]
Test omitting blend state with unused attachments

This test creates a render pass with a single color attachment and two
subpasses. The first subpass uses the color attachment and creates a
graphics pipeline with a valid color blend state. The second subpass
sets the color attachment to VK_ATTACHMENT_UNUSED and creates a
graphics pipeline without a color blend state.

A new helper function was added for creating a graphics pipeline.

New tests:

dEQP-VK.renderpass.*.simple.color_unused_omit_blend_state

Components: Vulkan, Framework

VK-GL-CTS issue: 1115

Change-Id: I1d95dab7db5727ded22fe84aca5959110949f581

6 years agoTest does not clean up all references
Pierre Tsai [Fri, 25 May 2018 20:40:26 +0000 (16:40 -0400)]
Test does not clean up all references

Affects:
KHR-GL46.texture_repeat_mode.*

At the end of the test, resultTextureId needs to be
cleaned up properly, by the context.

Components: OpenGL

VK-GL-CTS issue: 1191

Change-Id: I96d45baaef7345c1c5b4a52ced223c20ddfd5735

6 years agoUpdate glslang, SPIR-V Tools/Headers
Alexander Galazin [Mon, 11 Jun 2018 07:45:59 +0000 (09:45 +0200)]
Update glslang, SPIR-V Tools/Headers

Components: Framework

Change-Id: I8dbcc9023abf55882df75aded4342b21c857458f

6 years agoUpdate GLES mustpass
Alexander Galazin [Mon, 11 Jun 2018 08:47:30 +0000 (10:47 +0200)]
Update GLES mustpass

Change-Id: I1d6dcd0f7ebdf98e1fbb706269ede5f8d1e37d2f

6 years agoAdd texture specification test for GL_OES_texture_half_float.
Nicolas Capens [Fri, 16 Mar 2018 13:51:47 +0000 (09:51 -0400)]
Add texture specification test for GL_OES_texture_half_float.

Google bug: b/74609191
Components: AOSP
Affects: dEQP-GLES2.functional.texture.specification.*

Change-Id: I85aec3469872f2733f528ef7902427e9e87935e7

6 years agoAdd test for VK_EXT_shader_stencil_export
Caio Marcelo de Oliveira Filho [Wed, 9 May 2018 22:14:54 +0000 (15:14 -0700)]
Add test for VK_EXT_shader_stencil_export

The extension allows fragment shader to output a reference value for
the pixel. The test uses a first subpass to set reference values based
on position and VK_STENCIL_OP_REPLACE to write those to the stencil
buffer. Then a second subpass will draw to a color buffer using the
generated stencil.

A new overload for addFunctionCaseWithPrograms() was added to the
framework.

New tests:
    dEQP-VK.pipeline.shader_stencil_export.op_replace

Components: Framework, Vulkan

VK-GL-CTS issue: 1029

Change-Id: Ic2c2f9ebe33c8575e1d6ccb20b2435aadc999b84

6 years agoFix various GCC 8 Warnings
Mika Väinölä [Thu, 3 May 2018 07:25:51 +0000 (10:25 +0300)]
Fix various GCC 8 Warnings

Remove unnecessary parentheses and ignored type qualifiers on cast.
Add breaks and returns to suppress fallthrough warnings. Catch
tcu::NotSupportedError by reference. Change some typedefs to fix
casts between incompatible function types. Clearing tcu::Vec4 with
memset caused warnings.

Affects: *

Components: Framework, OpenGL, Vulkan

VK-GL-CTS issue: 1160

Change-Id: Iffb9df16b29e02df2ec5610afb6793fba51cc33d

6 years agoMerge vk-gl-cts/opengl-cts-4.6.0 into vk-gl-cts/master
Alexander Galazin [Fri, 1 Jun 2018 09:22:26 +0000 (11:22 +0200)]
Merge vk-gl-cts/opengl-cts-4.6.0 into vk-gl-cts/master

Change-Id: I80cba075059ad393b8742838e1ae4a5cfe0302ea

6 years agoMerge vk-gl-cts/opengl-es-cts-3.2.5 into vk-gl-cts/master
Alexander Galazin [Fri, 1 Jun 2018 09:22:24 +0000 (11:22 +0200)]
Merge vk-gl-cts/opengl-es-cts-3.2.5 into vk-gl-cts/master

Change-Id: I3b5f0d071852a19deae0e3ccc317482db4eb444b

6 years agoMerge vk-gl-cts/opengl-es-cts-3.2.4 into vk-gl-cts/opengl-es-cts-3.2.5
Alexander Galazin [Fri, 1 Jun 2018 09:22:21 +0000 (11:22 +0200)]
Merge vk-gl-cts/opengl-es-cts-3.2.4 into vk-gl-cts/opengl-es-cts-3.2.5

Change-Id: Ie074683ba2b3818d0ceff54719c40e259deb3e71

6 years agoSkip BC/DXT formats in Texture3D tests
Juan A. Suarez Romero [Mon, 14 May 2018 15:24:04 +0000 (15:24 +0000)]
Skip BC/DXT formats in Texture3D tests

These formats only supports 2D images.

Affects:
KHR-GLES2.texture_3d.compressed_texture.negative_compressed_tex_image
KHR-GLES2.texture_3d.compressed_texture.negative_compressed_tex_sub_image

Components: OpenGL

VK-GL-CTS issue: 1163

Change-Id: I806dccfdbb2969b51c0ee9a1010c04107154733a
(cherry picked from commit a0b8363a7837546c73e4d30a6c6d37da21ea8645)

6 years agoEnable shader cache by default
Jari Komppa [Fri, 6 Apr 2018 19:53:29 +0000 (22:53 +0300)]
Enable shader cache by default

This change flips the command line option for the shader cache to be
enabled by default.

The change also incorporates shader cache truncation, which is enabled
by default. This resets the shader cache on the start of a CTS run. For
more performance the option can be disabled so the shader cache is used
across CTS runs, but this may lead to very large shader cache files over
time.

Affects:

dEQP-VK.*

Components: Framework, Vulkan

VK-GL-CTS issue: 899

Change-Id: Ia1bc8c932b6b280e2815f7de7f6e715b0e4edb27

6 years agoMerge vk-gl-cts/aosp-deqp-dev into vk-gl-cts/master
Alexander Galazin [Wed, 30 May 2018 10:28:18 +0000 (12:28 +0200)]
Merge vk-gl-cts/aosp-deqp-dev into vk-gl-cts/master

Change-Id: Iab9fd83b7c630343d12fa16b1c09bf4cd3b67302

6 years agoMacOS WSI test support
Mike Schuchardt [Tue, 1 May 2018 22:45:44 +0000 (16:45 -0600)]
MacOS WSI test support

Adds TYPE_MACOS to WSI framework to enable dEQP-VK.wsi.macos.* tests.
Adds WSI integration to tcu::osx::VulkanPlatform using an Objective-C++
wrapper around a native NSView subclass backed by a CAMetalLayer.

Affects:

dEQP-VK.wsi.macos.*

Components: Framework, Vulkan

Change-Id: I53b487ec6040e88b125d168be7e8c3408f44d959

6 years agoGL_SRG8_ALPHA8 also supported in OpenGL ES 3.0+
Juan A. Suarez Romero [Wed, 16 May 2018 11:01:52 +0000 (11:01 +0000)]
GL_SRG8_ALPHA8 also supported in OpenGL ES 3.0+

dEQP-GLES2.functional.fbo.completeness.renderable.texture.color0.srgb8_alpha8
assumes that using GL_SRGB8_ALPHA8 in GLES2 should fail unless proper
extensions are supported.

But the OpenGL ES context created can be either 2.0 or an upper version,
and upper versions (3.0+) supports this format without extensions.

Thus, if OpenGL ES 3.0+ context is returned, this test should assume
that rendering is possible.

This is an extension of fix done in Change-ID
Ibb95736959ff9d5b0ff972ccf3983abc98795be3.

Affectd tests:
dEQP-GLES2.functional.fbo.completeness.renderable.texture.color0.srgb8_alpha8

Components: OpenGL

VK-GL-CTS issue: 1137

Change-Id: I733a8595b1eba7756787cde4a6bca2391dc345d7
(cherry picked from commit dd951adf61b3b6ad6cdab92b26b00c6931235681)

6 years agoIntegrated SPIRV-Tools-opt to conformance test
Jari Komppa [Tue, 17 Apr 2018 09:51:08 +0000 (12:51 +0300)]
Integrated SPIRV-Tools-opt to conformance test

Added optional shader optimization pass to all shaders in the
conformance test. The optimizer is disabled by default, but can
be enabled through a command-line parameter.

Due to the nature of optimizations and certain hand-crafted
SPIR-V tests, the optimizer MUST NOT be enabled by default, because
it will alter the tests and possibly eliminate the things that
are being tested.

Running with the optimizer for testing is, however, recommended
since it can expose bugs in drivers. Only some optimization recipes
are currently supported, but adding new ones is relatively simple.

Affects:

None by default, most tests if enabled.

Components: Framework, Vulkan

VK-GL-CTS issue: 92

Change-Id: I74996448fda1f4e11a9b16bba8c44561723a1e4e

6 years agoFix UConvert validation error in mul_sdiv tests
Boris Zanin [Wed, 23 May 2018 09:25:05 +0000 (11:25 +0200)]
Fix UConvert validation error in mul_sdiv tests

With new spirv-tools the SPIR-V validator enforces type check
requirement in OpUConvert, making this test to fail.

Replace UConvert with SConvert for signed tests.
Update SPRV-Tools.

Update tests:
 * dEQP-VK.spirv_assembly.type.*high_part_zero*

Components: Vulkan

VK-GL-CTS issue: 1186

Change-Id: I73172eda179148d56aa104eb35cdc5afc25a9953

6 years agoNew tests for VK_NV_shader_subgroup_partitioned
Jeff Bolz [Sat, 17 Mar 2018 17:30:36 +0000 (12:30 -0500)]
New tests for VK_NV_shader_subgroup_partitioned

Forked from subgroup arithmetic tests, they are mostly the same but with different shaders

New Tests: dEQP-VK.subgroups.partitioned.*
Components: Vulkan

Change-Id: I74e4f9cf716cf0d7293e4259dedf116af750347a

6 years agoMerge vk-gl-cts/vulkan-cts-1.1.1 into vk-gl-cts/master
Alexander Galazin [Mon, 28 May 2018 08:22:48 +0000 (10:22 +0200)]
Merge vk-gl-cts/vulkan-cts-1.1.1 into vk-gl-cts/master

Change-Id: Ica9b46f19f9c3b45d0553db9deec82c696f3033a

6 years agoMerge vk-gl-cts/vulkan-cts-1.1.0 into vk-gl-cts/vulkan-cts-1.1.1
Alexander Galazin [Mon, 28 May 2018 08:15:07 +0000 (10:15 +0200)]
Merge vk-gl-cts/vulkan-cts-1.1.0 into vk-gl-cts/vulkan-cts-1.1.1

Change-Id: If0ab08c681fd90e94d179ded910a531dcc518861

6 years agoFix VkPipelineLayout use after free
Slawomir Cygan [Wed, 18 Apr 2018 13:56:37 +0000 (15:56 +0200)]
Fix VkPipelineLayout use after free

The test destroys pipeline layout, used to create the graphics pipeline,
before the command buffer using this pipeline is recorded.

This is invalid according to spec:
"A VkPipelineLayout object must not be destroyed while any
command buffer that uses it is in the recording state."

Components: Vulkan

VK-GL-CTS Issue: 1134

Affects:
dEQP-VK.draw.differing_interpolation.*

Change-Id: I2dd692cfb69afaf0b9d6e8d8a29b86b945b7eaba

6 years agoMade glsl loop tests a bit more robust
Jari Komppa [Thu, 17 May 2018 10:27:30 +0000 (13:27 +0300)]
Made glsl loop tests a bit more robust

The way the loop test suite checks for a correct result depends on
rotating the input vector's components, giving only 4 possible results.
In other words, a subtly failing implementation still had a 1 in 4
chance of passing the test.

This change increments the vector on each iteration and then decrements
the vector after the loop by the number of expected loop iterations. The
correctness test remains unchanged, but if the number of iterations does
not match the expected, the resulting vector will have a wrong value.

Also added tests where loops are within different control flow blocks,
and tests that contain a do..while block which should never loop unless
the loop variable is off by one.

Affects:

dEQP-VK.glsl.loops.*

New tests:

dEQP-VK.glsl.loops.special.*.pre_fallthrough_vertex
dEQP-VK.glsl.loops.special.*.pre_fallthrough_fragment
dEQP-VK.glsl.loops.special.*.post_fallthrough_vertex
dEQP-VK.glsl.loops.special.*.post_fallthrough_fragment
dEQP-VK.glsl.loops.special.*.dowhile_trap_vertex
dEQP-VK.glsl.loops.special.*.dowhile_trap_fragment
dEQP-VK.glsl.loops.special.*.ifblock_vertex
dEQP-VK.glsl.loops.special.*.ifblock_fragment
dEQP-VK.glsl.loops.special.*.elseblock_vertex
dEQP-VK.glsl.loops.special.*.elseblock_fragment

Components: Vulkan

VK-GL-CTS issue: 1166

Change-Id: I266537d6b5816a9e574b5b99061a4413d6493f41

6 years agoFix validation errors in synchronization tests
Mika Väinölä [Wed, 28 Feb 2018 14:51:05 +0000 (16:51 +0200)]
Fix validation errors in synchronization tests

Change a pipeline stage flag to one supported by
VK_ACCESS_COLOR_ATTACHMENT_READ_BIT and initialize
a VkExternalSemaphoreProperties struct.

Affects:

dEQP-VK.synchronization.cross_instance.*
dEQP-VK.synchronization.internally_synchronized_objects.
pipeline_cache_graphics

Components: Vulkan

VK-GL-CTS issue: 1046

Change-Id: I537933539b616c14942791accee689db40294dba

6 years agoFix multiview mutlisample tests
Alexander Galazin [Fri, 18 May 2018 09:51:14 +0000 (11:51 +0200)]
Fix multiview mutlisample tests

The multiview multisample tests used VK_SAMPLE_COUNT_2_BIT
without checking that it is supported.
The minimum requirement is to support 4-bit and 1-bit only.

Affects: dEQP-VK.multiview.multisample.*

Components: Vulkan

VK-GL-CTS issue: 1152

Change-Id: Id999cbb42a5961cca1f89c709c1f0bc8d6124645

6 years agoGL_SRG8_ALPHA8 also supported in OpenGL ES 3.0+
Juan A. Suarez Romero [Wed, 16 May 2018 11:01:52 +0000 (11:01 +0000)]
GL_SRG8_ALPHA8 also supported in OpenGL ES 3.0+

dEQP-GLES2.functional.fbo.completeness.renderable.texture.color0.srgb8_alpha8
assumes that using GL_SRGB8_ALPHA8 in GLES2 should fail unless proper
extensions are supported.

But the OpenGL ES context created can be either 2.0 or an upper version,
and upper versions (3.0+) supports this format without extensions.

Thus, if OpenGL ES 3.0+ context is returned, this test should assume
that rendering is possible.

This is an extension of fix done in Change-ID
Ibb95736959ff9d5b0ff972ccf3983abc98795be3.

Affectd tests:
dEQP-GLES2.functional.fbo.completeness.renderable.texture.color0.srgb8_alpha8

Components: OpenGL

VK-GL-CTS issue: 1137

Change-Id: I733a8595b1eba7756787cde4a6bca2391dc345d7

6 years agoFix barriers in dEQP-VK.api.fill_and_update_buffer.*
Chris Forbes [Sat, 19 May 2018 01:50:47 +0000 (18:50 -0700)]
Fix barriers in dEQP-VK.api.fill_and_update_buffer.*

Change-Id: Icb7ac6167e358556178c864884e7c7c53afd455c
Affects: dEQP-VK.api.fill_and_update_buffer.*
Components: Vulkan
VK-GL-CTS: 1177

6 years agoAdd missing self-dependency in color->input self-dep tests
Chris Forbes [Fri, 18 May 2018 22:50:39 +0000 (15:50 -0700)]
Add missing self-dependency in color->input self-dep tests

Change-Id: Ibf400c91bbc59abb49795078804e35e50c59c7db
VK-GL-CTS: 1181
Components: Vulkan
Affects: dEQP-VK.renderpass.*

6 years agoAccount for noncoherent atom size in renderpass memory flush
Chris Forbes [Fri, 18 May 2018 20:49:26 +0000 (13:49 -0700)]
Account for noncoherent atom size in renderpass memory flush

Change-Id: Ibffb14fcdbaba5e9fbeb8ba9d9aba9cc59db4b17
Components: Vulkan
Affects: dEQP-VK.renderpass.*
VK-GL-CTS: 1180

6 years agoRemove spurious TS/GS stage bits from renderpass test barriers
Chris Forbes [Fri, 18 May 2018 17:46:27 +0000 (10:46 -0700)]
Remove spurious TS/GS stage bits from renderpass test barriers

None of this code actually uses these stages, and we weren't checking
whether they were supported. This was invalid on devices that don't
support the TS/GS stages.

Change-Id: I06cd1df95f52060150e36d28bc0525f2d398aef0
VK-GL-CTS: 1180
Components: Vulkan
Affects: dEQP-VK.renderpass.*

6 years agoFix gl_FragData[u_index] test in OpenGL ES 3.x context
Yabin Zheng [Wed, 21 Mar 2018 01:38:40 +0000 (09:38 +0800)]
Fix gl_FragData[u_index] test in OpenGL ES 3.x context

The test is valid if GL_EXT_draw_buffers or GL_NV_draw_buffers
is supported

Affects:
dEQP-GLES3.functional.shaders.fragdata.draw_buffers

Components: OpenGL

VK-GL-CTS issue: 1168

Change-Id: I44b41330ca37614920ed1cb0d6d021a8bc1e0fa3

6 years agoAdd SPIR-V tests for 16, 32 and 64-bit integers
Paavo Pessi [Thu, 19 Apr 2018 11:47:40 +0000 (14:47 +0300)]
Add SPIR-V tests for 16, 32 and 64-bit integers

New tests were added to test various SPIR-V bit operations,
comparators, constants and initializers with signed and unsigned
integers of different width.

In bit field and shift operations some of the parameters are not
required to have the same bit width as Base and Result. This kind of
operations are tested with all possible combinations of result type
and parameter bit width.

The result type of bit field operations is always a 32-bit integer.

New tests:

dEQP-VK.spirv_assembly.type.*.shift_right_logical*
dEQP-VK.spirv_assembly.type.*.shift_right_arithmetic*
dEQP-VK.spirv_assembly.type.*.shift_left_logical*
dEQP-VK.spirv_assembly.type.*.bitwise_or*
dEQP-VK.spirv_assembly.type.*.bitwise_xor*
dEQP-VK.spirv_assembly.type.*.bitwise_and*
dEQP-VK.spirv_assembly.type.*.not*
dEQP-VK.spirv_assembly.type.*.iequal*
dEQP-VK.spirv_assembly.type.*.inotequal*
dEQP-VK.spirv_assembly.type.*.ugreaterthan*
dEQP-VK.spirv_assembly.type.*.sgreaterthan*
dEQP-VK.spirv_assembly.type.*.ugreaterthanequal*
dEQP-VK.spirv_assembly.type.*.sgreaterthanequal*
dEQP-VK.spirv_assembly.type.*.ulessthan*
dEQP-VK.spirv_assembly.type.*.slessthan*
dEQP-VK.spirv_assembly.type.*.ulessthanequal*
dEQP-VK.spirv_assembly.type.*.slessthanequal*
dEQP-VK.spirv_assembly.type.*.bit_field_insert*
dEQP-VK.spirv_assembly.type.*.bit_field_s_extract*
dEQP-VK.spirv_assembly.type.*.bit_field_u_extract*
dEQP-VK.spirv_assembly.type.*.bit_reverse*
dEQP-VK.spirv_assembly.type.*.bit_count*
dEQP-VK.spirv_assembly.type.*.constant*
dEQP-VK.spirv_assembly.type.*.constant_composite*
dEQP-VK.spirv_assembly.type.*.constant_null*
dEQP-VK.spirv_assembly.type.*.variable_initializer*
dEQP-VK.spirv_assembly.type.*.spec_constant_initializer*
dEQP-VK.spirv_assembly.type.*.spec_constant_composite_initializer*

Components: Vulkan

VK-GL-CTS issue: 1096

Change-Id: Id1d6c5b741b52f5acc9c759e5cfcd8ac4825532d

6 years agoFix dependencies in vulkan pipeline test
Joan Bonet Orantos [Tue, 22 May 2018 08:09:05 +0000 (10:09 +0200)]
Fix dependencies in vulkan pipeline test

The srcStageMask field in the subpass dependency was not strict
enough. This can cause that the incoming subpasses, that try to copy
samples from this subpass, may try to read content that may not be
 written yet.

Affects:

dEQP-VK.pipeline.multisample.min_sample_shading.min_*

Components: Vulkan

VK-GL-CTS issue: 1185

Change-Id: Ide5e3d2a709e8fe26d23ada1d20bf2eb27beffd8

6 years agoSkip BC/DXT formats in Texture3D tests
Juan A. Suarez Romero [Mon, 14 May 2018 15:24:04 +0000 (15:24 +0000)]
Skip BC/DXT formats in Texture3D tests

These formats only supports 2D images.

Affects:
KHR-GLES2.texture_3d.compressed_texture.negative_compressed_tex_image
KHR-GLES2.texture_3d.compressed_texture.negative_compressed_tex_sub_image

Components: OpenGL

VK-GL-CTS issue: 1163

Change-Id: I806dccfdbb2969b51c0ee9a1010c04107154733a

6 years agoFix VulkanPlatform compiling and linking on OSX
Dzmitry Malyshau [Wed, 9 May 2018 18:15:26 +0000 (14:15 -0400)]
Fix VulkanPlatform compiling and linking on OSX

There where 2 problems with the code:
  1. it broke upon the change to vk::Library interface,
since OSX is not yet CI tested
  2. it didn't link against OpenGL library for Default target,
which appears to be required for anything on OSX

The latter was always an issue, but one we could work around locally.
I believe the proposed upstream patch is clean enough to avoid our hacks.

Change-Id: I9b570e3700031d92367a815baf5b32f751e248b3
Components: Framework

6 years agoFix image blit mirrored comparisons
Dzmitry Malyshau [Wed, 9 May 2018 17:14:21 +0000 (13:14 -0400)]
Fix image blit mirrored comparisons

The old looping would not go through any iterations for mirrored offsets.
The looping has to be mirrored when the destination is mirrored, and the
source texture coordinate computation adjusted accordingly.

Affects:
dEQP-VK.api.copy_and_blit.core.blit_image.*.mirror*.*

Change-Id: I8feb1d8b90c8013b292865b0e3b20ef414b05920
Components: Vulkan

6 years agoRemove one copy of the ballot test source
Graeme Leese [Wed, 25 Apr 2018 15:52:21 +0000 (16:52 +0100)]
Remove one copy of the ballot test source

The code for the ballot tests is the same for framebuffer and
non-framebuffer tests but it's all written out twice. Make both tests
use the same source.

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

Change-Id: I3f8ac60a3339fd974742d8a6a3eb540559e2a382

6 years agoFix barrier and invalidation of the fill_buffer readback
Dzmitry Malyshau [Mon, 7 May 2018 20:24:07 +0000 (16:24 -0400)]
Fix barrier and invalidation of the fill_buffer readback

The old code had a barrier waiting for a different memory region that is being
filled, and same goes for the memory invalidation call that follows.
It resulted in the range of size=0 being requeste for invalidation, which
doesn't include actual bytes filled by cmdFillBuffer that is being tested.

Affects:
dEQP-VK.api.fill_and_update_buffer.*

Change-Id: Id2d68dc65145b42ecb0f966c70d57db81e9acb4a
Components: Vulkan

6 years agoTest copying data from/to tightly sized buffers
Paavo Pessi [Thu, 3 May 2018 08:53:30 +0000 (11:53 +0300)]
Test copying data from/to tightly sized buffers

New tests were added to verify that the source and destination buffers
in vkCmdCopyBufferToImage and vkCmdCopyImageToBuffer respectively can
be just large enough to contain the accessed elements, specifically in
cases where the buffer size is not a multiple of buffer row length.

New tests:

dEQP-VK.api.copy_and_blit.*.image_to_buffer.tightly_sized_buffer
dEQP-VK.api.copy_and_blit.*.image_to_buffer.tightly_sized_buffer_offset
dEQP-VK.api.copy_and_blit.*.buffer_to_image.tightly_sized_buffer
dEQP-VK.api.copy_and_blit.*.buffer_to_image.tightly_sized_buffer_offset

Components: Vulkan

VK-GL-CTS issue: 1124

Change-Id: Ice8f542a37bc45f969e33eb148ad0e77f40f8dd8

6 years agoAdd tests for render targets with write masks
Toni Merilehti [Thu, 3 May 2018 12:04:09 +0000 (15:04 +0300)]
Add tests for render targets with write masks

New tests verify correct rendering when using multiple render targets
with write masks.

New tests:

dEQP-VK.renderpass.suballocation.attachment_write_mask.*
dEQP-VK.renderpass.dedicated_allocation.attachment_write_mask.*

Components: Vulkan

VK-GL-CTS issue: 1082

VK-GL-CTS public issue: 91

Change-Id: I3b308bdcd83f7936c078ecedcf21bd6339dd1f28

6 years agoWrong shaders in glcParallelShaderCompileTests.cpp
Rahul Jain [Mon, 21 May 2018 11:48:01 +0000 (17:18 +0530)]
Wrong shaders in glcParallelShaderCompileTests.cpp

In glcParallelShaderCompileTests.cpp:50
it is written as
"int main() {\n"

which is invalid as per spec.

As per spec GLSL 4.60, section 6.1 last paragraph:
It is a compile-time or link-time error to declare or define a function
main with any other parameters or return type.

in glcParallelShaderCompileTests.cpp:55

it is written as "out ver4 fragColor;\n"
it should be "out vec4 fragColor;\n"

there is no data type as "ver4"

Affects:
KHR-GL46.parallel_shader_compile.compilation_completion_parallel

Components: OpenGL

VK-GL-CTS issue: 1182

Change-Id: I2f213eeaf28039c1f36b7772257090d81e1f013e

6 years agoWhitelist VK_KHR_get_display_properties2
Alexander Galazin [Fri, 18 May 2018 13:01:32 +0000 (15:01 +0200)]
Whitelist VK_KHR_get_display_properties2

Components: Vulkan

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

Change-Id: Ic064e283e164cad2c9785ffe6253a2c192419668

6 years agoAdded more early-out hardware support checks
Jari Komppa [Fri, 4 May 2018 11:51:17 +0000 (14:51 +0300)]
Added more early-out hardware support checks

This patch adds more early-out hardware support checks to speed up the
conformance test especially on hardware that does not support some
features.

Affects:

dEQP-VK.api.pipeline.*
dEQP-VK.api.copy_and_blit.*
dEQP-VK.api.buffer_view.create.*
dEQP-VK.api.buffer.*

Components: Framework, Vulkan

VK-GL-CTS issue: 899

Change-Id: Ied10dfd4ce60eda4d1830a38f42b5f38f813d50f

6 years agoAdd test for dynamically indexing output variable components
Ari Suonpaa [Thu, 26 Apr 2018 09:27:44 +0000 (12:27 +0300)]
Add test for dynamically indexing output variable components

Added test where output variable component is dynamically selected
using input data. Graphics test framework was modified to support
code inside main function as the output variables are not visible
inside a test function. Fixed support for vec4 output variables in
the same framework. Previously it was resulting in a code that wasn't
accepted by the validator.

Affects:

dEQP-VK.spirv_assembly.*

Components: Vulkan

VK-GL-CTS issue: 1122

Change-Id: I78f149b0f709e1d11dd977cc432fec0e5f971bed

6 years agoAdd AHardwareBuffer support to external memory tests
Khushal [Fri, 13 Apr 2018 23:53:42 +0000 (16:53 -0700)]
Add AHardwareBuffer support to external memory tests

Added tests:
* dEQP-VK.api.external.memory.android_hardware_buffer.*

Components: Vulkan
VK-GL-CTS issue: 738

cherry-picked from: https://gerrit.khronos.org/#/c/1455/

V4: fix broken handle lifetime (Thanks Tony)

Change-Id: I8c9911692c46b4dd622424b20bd1f9827fac6796

6 years agoMerge vk-gl-cts/vulkan-cts-1.1.0 into vk-gl-cts/vulkan-cts-1.1.1
Alexander Galazin [Fri, 18 May 2018 11:12:32 +0000 (13:12 +0200)]
Merge vk-gl-cts/vulkan-cts-1.1.0 into vk-gl-cts/vulkan-cts-1.1.1

Change-Id: I4b35a41d666a707410f88f222c93b661f7d983a1

6 years agoFix check for 16-bit extension for 16-bit conversion functions.
Dave Airlie [Mon, 30 Apr 2018 03:02:29 +0000 (13:02 +1000)]
Fix check for 16-bit extension for 16-bit conversion functions.

All the 16-bit conversion tests run even if the vulkan implementation
doesn't advertise the 16-bit storage feature. Request the 16-bit
storage feature for all the 16-bit tests.

Components: Vulkan

Affect:
dEQP-VK.spirv_assembly.instruction.*convert*16*
VK-GL-CTS issue: 1150

Change-Id: Icf58fdd0af5c757d44716b5cddd193f78827192f

6 years agoLimit protected swapchain images based on memory
Jesse Hall [Wed, 16 May 2018 23:56:54 +0000 (16:56 -0700)]
Limit protected swapchain images based on memory

A surface's maxImageCount isn't based on the swapchain image extents
or format, so it's valid for swapchain creation to fail for
out-of-memory reasons even when the image count is within the
supported range.

This is particularly problematic for protected swapchains, since many
implementations have a limit on the total amount of protected memory
that can be allocated which is much smaller than total device memory.

This change estimates how much memory is used by protected swapchain
images, compares that to the size of heaps that support protected
memory types, and doesn't try to create swapchains that would have
more images than would fit within that size.

Components: Vulkan

VK-GL-CTS Issue: 1167

Affects:
    dEQP-VK.protected_memory.interaction.wsi.*.swapchain.create.min_image_count

Change-Id: I6cc3bd25f7f22de8424f9e3375ade35fac26a884

6 years agoDon't use invalid sType as canary value for arrays
Piers Daniell [Fri, 4 May 2018 22:53:25 +0000 (16:53 -0600)]
Don't use invalid sType as canary value for arrays

Using an invalid sType in an array is a violation of Vulkan
valid usage and will fail the test if validation layers
are enabled.

This CL also ensures the property structs passed into the
get functions have their sType initialized correctly.

Affects: dEQP-VK.wsi.display.*

Components: Vulkan

VK-GL-CTS issue: 1155

Change-Id: I4b9b00248265b2e3c7d0b2b652e98d2f0f5a0902

6 years agoClear image layer 0 in memory commitment test
Graeme Leese [Thu, 26 Apr 2018 14:06:12 +0000 (15:06 +0100)]
Clear image layer 0 in memory commitment test

Components: Vulkan
Affected:   dEQP-VK.api.get_memory_commitment.memory_commitment
VK-GL-CTS issue: 1151

Change-Id: I95676f18f91470248ac19270778b897626a31f2c

6 years agoMerge remote-tracking branch 'khronos/master' into deqp-dev
Chris Forbes [Thu, 17 May 2018 17:00:15 +0000 (10:00 -0700)]
Merge remote-tracking branch 'khronos/master' into deqp-dev

Change-Id: I895c6d9ec918a2c89ec28df2ca75fbecb0adaaa1

6 years agoFix improper use of vkCmdWaitEvents
Peter Quayle [Wed, 16 May 2018 13:30:38 +0000 (14:30 +0100)]
Fix improper use of vkCmdWaitEvents

dEQP-VK.synchronization.smoke.events was calling vkCmdWaitEvents inside
a render-pass, which is not allowed if the event is later set using
vkSetEvent.

This is the part of change 2421 which was lost when change 2362 was
merged to master.

Affects:

dEQP-VK.synchronization.smoke.events

Components: Vulkan

VK-GL-CTS issue: 1089

Change-Id: Iddb17805fbffc426ac370e058a217ee7daf08e6a

6 years agoFixed some visual studio warnings
Jari Komppa [Tue, 15 May 2018 11:26:15 +0000 (14:26 +0300)]
Fixed some visual studio warnings

Added some casts to quiet some warnings given by visual studio, mainly
int-float conversions and signed-unsigned comparison mismatches.

Affects:

None

Components: OpenGL

VK-GL-CTS issue: 1164

Change-Id: I56735830f275ff50116b53051a9b9a6d333edf7f

6 years agoGL_SRG8_ALPHA8 also supported in OpenGL ES 3.0+
Juan A. Suarez Romero [Thu, 19 Apr 2018 15:35:40 +0000 (15:35 +0000)]
GL_SRG8_ALPHA8 also supported in OpenGL ES 3.0+

dEQP-GLES2.functional.fbo.completeness.renderable.renderbuffer.color0.srgb8_alpha8
assumes that using GL_SRGB8_ALPHA8 format in RenderBuffer should fail
for OpenGL ES 2.0 because it is not supported in the specification,
unless either EXT_sRGB or EXT_sRGB_write_control are implemented, as
they add this format as supported.

But when creating the OpenGL context, it can be either 2.0 or an upper
version. If 3.0+ is returned, this version supports this format without
those extensions, and thus the test should pass.

So this change ensures that if OpenGL ES 3.0+ context is returned, then
the use of GL_SRGB8_ALPHA8 in RenderBuffer should work.

Affected tests:
dEQP-GLES2.functional.fbo.completeness.renderable.renderbuffer.color0.srgb8_alpha8

Components: OpenGL

VK-GL-CTS issue: 1137

Change-Id: Ibb95736959ff9d5b0ff972ccf3983abc98795be3
(cherry picked from commit a72652c15bbb6bbeed3fdf357630166095c44d91)

6 years agoMerge remote-tracking branch 'khronos/master' into deqp-dev
Chris Forbes [Tue, 15 May 2018 15:57:53 +0000 (08:57 -0700)]
Merge remote-tracking branch 'khronos/master' into deqp-dev

Change-Id: Ic7f1d3a9f9c59e23a51193eb616e62e638280877

6 years agoAdd 16bit storage access chain tests
Ari Suonpaa [Tue, 17 Apr 2018 11:13:24 +0000 (14:13 +0300)]
Add 16bit storage access chain tests

Add tests to index data inside an array of structures. Covers 16bit
floats, integers, and unsigned integers.

New tests:

dEQP-VK.spirv_assembly.instruction.compute.16bit_storage.uniform_16_to_32_chainaccess.*

Components: Vulkan

VK-GL-CTS issue: 893

Change-Id: Iec98775737f2c2885d97f346096dc95e6a652cef

6 years agoAdd tests for 16-bit OpSwitch
Juan A. Suarez Romero [Mon, 16 Apr 2018 15:45:05 +0000 (15:45 +0000)]
Add tests for 16-bit OpSwitch

Extend OpSwitch testing to cover signed and unsigned 16-bit integer
cases.

Add tests:
dEQP-VK.spirv_assembly.type.scalar.u16.switch_*
dEQP-VK.spirv_assembly.type.scalar.i16.switch_*

Components: Vulkan

VK-GL-CTS issue: 995

Change-Id: Icb39d94fd6112be2e7a1d07d481c2098247babb1

6 years agoAdd SPIR-V tests for return values of atomic functions
Slawomir Cygan [Wed, 21 Mar 2018 16:32:50 +0000 (17:32 +0100)]
Add SPIR-V tests for return values of atomic functions

Most of atomic functions return values before applying
atomic operation - this change adds tests for that.

Return values are captured to separate buffer and
matched to the final result (and arguments).

Components: Vulkan

VK-GL-CTS Issue: 1092

New Tests:
dEQP-VK.spirv_assembly.instruction.compute.opatomic_return_values.*
Affects:
dEQP-VK.spirv_assembly.instruction.compute.opatomic*

Change-Id: I96390ed1b694f0aa2bd6d92868da46fef3d5e249

6 years agoTest using gl_Layer in Vertex and Tessellation shaders
Caio Marcelo de Oliveira Filho [Wed, 7 Mar 2018 22:52:20 +0000 (14:52 -0800)]
Test using gl_Layer in Vertex and Tessellation shaders

Needs VK_EXT_shader_viewport_index_layer extension. Test works by
writing rectangles of different colors and positions in each layer,
then verifying the result.

New tests:
- dEQP-VK.draw.shader_layer.*

VK-GL-CTS issue: 1043

Components: Vulkan

Change-Id: I037b8b1283b467b755e94b54d43e68fa4531497e

6 years agoGL_SRG8_ALPHA8 also supported in OpenGL ES 3.0+
Juan A. Suarez Romero [Thu, 19 Apr 2018 15:35:40 +0000 (15:35 +0000)]
GL_SRG8_ALPHA8 also supported in OpenGL ES 3.0+

dEQP-GLES2.functional.fbo.completeness.renderable.renderbuffer.color0.srgb8_alpha8
assumes that using GL_SRGB8_ALPHA8 format in RenderBuffer should fail
for OpenGL ES 2.0 because it is not supported in the specification,
unless either EXT_sRGB or EXT_sRGB_write_control are implemented, as
they add this format as supported.

But when creating the OpenGL context, it can be either 2.0 or an upper
version. If 3.0+ is returned, this version supports this format without
those extensions, and thus the test should pass.

So this change ensures that if OpenGL ES 3.0+ context is returned, then
the use of GL_SRGB8_ALPHA8 in RenderBuffer should work.

Affected tests:
dEQP-GLES2.functional.fbo.completeness.renderable.renderbuffer.color0.srgb8_alpha8

Components: OpenGL

VK-GL-CTS issue: 1137

Change-Id: Ibb95736959ff9d5b0ff972ccf3983abc98795be3

6 years agoAdd tests for VK_KHR_draw_indirect_count
Ostrowski, Igor [Fri, 9 Feb 2018 10:56:15 +0000 (11:56 +0100)]
Add tests for VK_KHR_draw_indirect_count

This change add new tests for VK_KHR_draw_indirect_count
extension.

New Tests:
dEQP-VK.draw.indirect_draw.*.indirect_draw_count.*
dEQP-VK.draw.indirect_draw.*.indirect_draw_first_instance.*
dEQP-VK.draw.indirect_draw.*.indirect_draw_count_first_instance.*
dEQP-VK.draw.indirect_draw.*.indirect_draw_count_instanced.*

Affected tests:
dEQP-VK.api.info.device.extensions

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

Change-Id: I3d53806eb1a45293a77b940d9c2fa540a6d83d50
(cherry picked from commit 7b47cd53c6656b866e7c3a3c0a590da85f3b2de1)

6 years agoVulkan: Fix WIN32 NativeHandle importMemory leaks
Tony Zlatinski [Thu, 3 May 2018 18:35:51 +0000 (13:35 -0500)]
Vulkan: Fix WIN32 NativeHandle importMemory leaks

importMemory(), incorrectly calls handle.disown()
that discards the reference that the handle originally
added via its copy constructor to the underlying memory
handle.

Affects:
dEQP-VK.api.external.memory.opaque_win32

Components: Vulkan
VK-GL-CTS issue: 1139

Change-Id: Idb5111b7efc2dfbf7d693d79b7ab57814329f33e

6 years agoMerge vk-gl-cts/vulkan-cts-1.1.0 into vk-gl-cts/vulkan-cts-1.1.1
Alexander Galazin [Fri, 11 May 2018 14:45:49 +0000 (16:45 +0200)]
Merge vk-gl-cts/vulkan-cts-1.1.0 into vk-gl-cts/vulkan-cts-1.1.1

Change-Id: I8ddf54dafd3de02f14526e98aa135176a6d3f3a3

6 years agoMerge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/vulkan-cts-1.1.0
Alexander Galazin [Fri, 11 May 2018 13:28:20 +0000 (15:28 +0200)]
Merge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/vulkan-cts-1.1.0

Change-Id: I06a95f88214707d9108a46f7374a5e8e0f9bdb59

6 years agoRemove some problematic texture_functions tests
James Glanville [Tue, 24 Apr 2018 21:26:17 +0000 (22:26 +0100)]
Remove some problematic texture_functions tests

Some of the tests in dEQP-GLES3.functional.shaders.texture_functions
are overly sensitive to rounding modes and precision of the CPU
reference implementation. For this reason they were removed from
AOSP. This change removes them from mustpass to match.

VK-GL-CTS issue: 1146
Components: OpenGL

Affects:
dEQP-GLES3.functional.shaders.texture_functions.texturelodoffset.usampler2darray_vertex
dEQP-GLES3.functional.shaders.texture_functions.textureprojlodoffset.isampler3d_vertex
dEQP-GLES3.functional.shaders.texture_functions.textureprojoffset.sampler3d_bias_fixed_fragment
dEQP-GLES3.functional.shaders.texture_functions.textureprojoffset.sampler3d_bias_float_fragment
dEQP-GLES3.functional.shaders.texture_functions.textureprojoffset.isampler3d_bias_fragment
dEQP-GLES3.functional.shaders.texture_functions.textureprojoffset.usampler3d_bias_fragment

Change-Id: Id6bfc025a350deb0914d27151e0bae88b42710b6

6 years agoMove unspecified-precision tests from ES2/ES3 to ES3.1
Chris Forbes [Wed, 2 May 2018 23:31:10 +0000 (16:31 -0700)]
Move unspecified-precision tests from ES2/ES3 to ES3.1

Got significant pushback from vendors about enforcing these tests on
ES2/ES3 -- ends up being a vendor choice between breaking shipping
content or failing CTS.

Moved all of these tests to ES3.1 only as a compromise.

Change-Id: I5a827064472f73908b01fa85e0097bda21038136
Components: AOSP
(cherry picked from commit 047891af31d1c8827a84e49e81b5b526ee5ee485)

6 years agoRemove line expression tests
Juan A. Suarez Romero [Thu, 10 May 2018 16:54:21 +0000 (16:54 +0000)]
Remove line expression tests

Using #line directive with an expression is considered as undefined
behaviour. Thus, remove these tests.

Removed:
dEQP-GLES2.functional.shaders.preprocessor.builtin.line_and_file_expression_fragment
dEQP-GLES2.functional.shaders.preprocessor.builtin.line_and_file_expression_vertex
dEQP-GLES2.functional.shaders.preprocessor.builtin.line_expression_fragment
dEQP-GLES2.functional.shaders.preprocessor.builtin.line_expression_vertex
dEQP-GLES3.functional.shaders.preprocessor.builtin.line_and_file_expression_fragment
dEQP-GLES3.functional.shaders.preprocessor.builtin.line_and_file_expression_vertex
dEQP-GLES3.functional.shaders.preprocessor.builtin.line_expression_fragment
dEQP-GLES3.functional.shaders.preprocessor.builtin.line_expression_vertex

Components: OpenGL

VK-GL-CTS issue: 1145

Change-Id: Ib8cb58a8e712397114eb33d8d36c1957b3f5e9b0

6 years agoMerge "Merge vk-gl-cts/aosp-deqp-dev into vk-gl-cts/master"
Alexander Galazin [Fri, 11 May 2018 11:53:34 +0000 (07:53 -0400)]
Merge "Merge vk-gl-cts/aosp-deqp-dev into vk-gl-cts/master"

6 years agoMultiview: do not use inline renderpass with secondary command buffers
Slawomir Cygan [Wed, 18 Apr 2018 13:14:23 +0000 (15:14 +0200)]
Multiview: do not use inline renderpass with secondary command buffers

There is a regression introduced in 7b76766 alongside the new render
pass begin utility:

The new utility sets the render pass contents flag to 'INLINE' by
default. This was overlooked in some multiview tests cases, which use
secondary command buffers - the default should be overriden to
'SECONDARY_COMMAND_BUFFERS'.

Components: Vulkan

VK-GL-CTS Issue: 1133

Affects:
dEQP-VK.multiview.secondary_cmd_buffer_geometry
dEQP-VK.multiview.secondary_cmd_buffer

Change-Id: Ibe42ba4c3e6d2b43ed18ac3684ba480f9dc659a8

6 years agoFix pipeline barrier for clearing multiview attachment
Mateusz Zych [Sat, 14 Apr 2018 00:35:25 +0000 (20:35 -0400)]
Fix pipeline barrier for clearing multiview attachment

Specify correct destination access mask (VK_ACCESS_TRANSFER_WRITE_BIT) and
destination pipeline stage (VK_PIPELINE_STAGE_TRANSFER_BIT) for
transfer operation clearing all Views (array layers) of multiview attachment
using vkCmdClearColorImage().

Components: Vulkan

VK-GL-CTS Issue: 1085

Affects:
    dEQP-VK.multiview.*

Change-Id: Ic87cd1d5a4c7373c3678c96fe942a5dde46ea03f

6 years agoClear all Views of Framebuffer Attachment to reference background color
Mateusz Zych [Sat, 14 Apr 2018 00:11:14 +0000 (20:11 -0400)]
Clear all Views of Framebuffer Attachment to reference background color

The VK_KHR_multiview spec defines that during implicit clear (LOAD_OP_CLEAR)
all Active Views of Framebuffer attachment are cleared.
ViewMask defines which Views are active during particular subpass,
therefore a View is considered active during RenderPass
if it was active in any subpass of that RenderPass.

Without explicit clear of inactive Views their content will be undefined,
making test results unreliable.

This change removes MultiViewReadbackTestInstance::beforeDraw() and
relies on MultiViewRenderTestInstance::beforeDraw()
to clear all Views (array layers) of framebuffer attachment
by calling vkCmdClearColorImage().

Components: Vulkan

VK-GL-CTS Issue: 1085

Affects:
    dEQP-VK.multiview.readback*

Change-Id: I70d8b1c48cb157df2518b7d241a302c54d5842f3

6 years agoMerge vk-gl-cts/aosp-deqp-dev into vk-gl-cts/master
Alexander Galazin [Fri, 11 May 2018 10:29:10 +0000 (12:29 +0200)]
Merge vk-gl-cts/aosp-deqp-dev into vk-gl-cts/master

Change-Id: Ie711cb881e2de39c6bc881ae0ad72e16301145a3

6 years agoFreeze 3.2.4.x mustpass
Alexander Galazin [Fri, 11 May 2018 09:09:40 +0000 (11:09 +0200)]
Freeze 3.2.4.x mustpass

Change-Id: I1ed8e5fc0860c1e01d2eb7ed66f1ba411c31eef1

6 years agoFix validation errors in image tests
Paavo Pessi [Fri, 20 Apr 2018 11:56:37 +0000 (14:56 +0300)]
Fix validation errors in image tests

Image tests using VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR
and VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR had a pipeline barrier with
an invalid pipeline stage flag. The flag was changed to a valid value.

Affects:

dEQP-VK.image.texel_view_compatible.compute.basic.image_load.*
dEQP-VK.image.texel_view_compatible.compute.basic.texel_fetch.*
dEQP-VK.image.texel_view_compatible.compute.basic.texture.*
dEQP-VK.image.texel_view_compatible.compute.basic.image_store.*
dEQP-VK.image.texel_view_compatible.compute.extended.image_load.*
dEQP-VK.image.texel_view_compatible.compute.extended.texel_fetch.*
dEQP-VK.image.texel_view_compatible.compute.extended.texture.*
dEQP-VK.image.texel_view_compatible.compute.extended.image_store.*
dEQP-VK.image.texel_view_compatible.graphic.basic.attachment_write.*
dEQP-VK.image.texel_view_compatible.graphic.basic.texture_write.*
dEQP-VK.image.texel_view_compatible.graphic.extended.attachment_write.*
dEQP-VK.image.texel_view_compatible.graphic.extended.texture_write.*
dEQP-VK.image.extended_usage_bit.attachment_write.*
dEQP-VK.image.extended_usage_bit.texture_write.*

Components: Vulkan

VK-GL-CTS issue: 1051

Change-Id: Ie76fd515f04462d7f6ec2c2474d0af65737ccd9c

6 years agoRandomize image layout in renderpass attachment allocation test
Ari Suonpaa [Fri, 20 Apr 2018 09:24:31 +0000 (12:24 +0300)]
Randomize image layout in renderpass attachment allocation test

Renderpass attachment allocation tests were using subpass image
layout of VK_IMAGE_LAYOUT_GENERAL. Now the layout is randomized
whenever possible.

Affects:

dEQP-VK.renderpass.*.attachment_allocation.input_output.*

Components: Vulkan

VK-GL-CTS issue: 1136

Change-Id: If59d42c50a2809c661ad56f0226b230659bc471f

6 years agoCheck ballot requirement in subgroup basic tests
Graeme Leese [Thu, 8 Mar 2018 15:54:13 +0000 (15:54 +0000)]
Check ballot requirement in subgroup basic tests

If ballot operations are not supported then the tests should return
NotSupported.

Components: Vulkan
Affects: dEQP-VK.subgroups.basic.*_framebuffer
VK-GL-CTS issue: 1127

Change-Id: I2c72a0821799ec2b94c08d2791f9d013ef7d122c

6 years agoFix window size issues in several new tests
Mark Adams [Mon, 16 Apr 2018 20:39:06 +0000 (16:39 -0400)]
Fix window size issues in several new tests

Some of the new tests added in the last 6 months fail when run with
non-default window sizes. In two cases, the tests were hardcoded to use
64x64 without checking the underlying size and thus could end up
with corruption if the window size was smaller.

In another case, the test changes the framebuffer to zero mid-test
instead of to the default framebuffer, resulting in invalid results
with deqp-surface-type=fbo.

Finally, the generated texture data's alpha is intended to always
be 1.0, but it can vary slightly due to numerical instability
depending on the window size. It is now hardcoded to ensure we
get the intended result.

VK-GL-CTS issue: 1126

Components: OpenGL

Affects:
KHR-GL*.internalformat.renderbuffer.*
KHR-GL*.internalformat.texture2d.*
KHR-GLES*.shaders.aggressive_optimizations.*

Change-Id: I3c1779cc7818ba5b1a798ec683af2780eeb9c9f4

6 years agoFixes wrong MIN_MAP_BUFFER_ALIGNMENT limit
Rahul Jain [Tue, 8 May 2018 11:16:49 +0000 (16:46 +0530)]
Fixes wrong MIN_MAP_BUFFER_ALIGNMENT limit

As per GL spec 4.6 P:632, Table 23.55,
It is given that MIN_MAP_BUFFER_ALIGNMENT should be aleast 64 or higher
Currently CTS test is limiting to 64 as maximum.

Affects:

KHR-GL46.limits.min_map_buffer_alignment
KHR-GL46.map_buffer_alignment.query
KHR-GL46.map_buffer_alignment.functional

Components: OpenGL

VK-GL-CTS issue: 1158

Change-Id: I6e4feea6e91bbf0e030b0dfcdbc49c716ffd8145

6 years agoMerge remote-tracking branch 'aosp/master' into deqp-dev
Chris Forbes [Thu, 3 May 2018 17:11:46 +0000 (10:11 -0700)]
Merge remote-tracking branch 'aosp/master' into deqp-dev

Change-Id: I24e845d3dd6283d88fed3fb17db9a5379e620a99

6 years agoMerge commit '1d8110d34037070f007347a41b8212088d44df1e' into deqp-dev
Chris Forbes [Thu, 3 May 2018 17:11:30 +0000 (10:11 -0700)]
Merge commit '1d8110d34037070f007347a41b8212088d44df1e' into deqp-dev

Change-Id: Ifbbc3a9c5ebc1c4bc343369c227c2254162533a1

6 years agoMove unspecified-precision tests from ES2/ES3 to ES3.1
Chris Forbes [Wed, 2 May 2018 23:31:10 +0000 (16:31 -0700)]
Move unspecified-precision tests from ES2/ES3 to ES3.1

Got significant pushback from vendors about enforcing these tests on
ES2/ES3 -- ends up being a vendor choice between breaking shipping
content or failing CTS.

Moved all of these tests to ES3.1 only as a compromise.

Change-Id: I5a827064472f73908b01fa85e0097bda21038136
Components: AOSP

6 years ago[automerger skipped] Merge "DO NOT MERGE: Merge remote-tracking branch 'khronos/vulka...
android-build-prod (mdb) [Tue, 1 May 2018 17:27:58 +0000 (10:27 -0700)]
[automerger skipped] Merge "DO NOT MERGE: Merge remote-tracking branch 'khronos/vulkan-cts-1.0.2' into HEAD" into oreo-mr1-cts-dev
am: ea8d8c6e51  -s ours

Change-Id: Iafc1890dde07fdf56154e1742ce2d59648bc02af

6 years agoMerge "DO NOT MERGE: Merge remote-tracking branch 'khronos/vulkan-cts-1.0.2' into...
android-build-prod (mdb) [Tue, 1 May 2018 17:23:07 +0000 (17:23 +0000)]
Merge "DO NOT MERGE: Merge remote-tracking branch 'khronos/vulkan-cts-1.0.2' into HEAD" into oreo-mr1-cts-dev

6 years agoAllow the window to be recreated in the middle of a test am: 30ef1bf331 am: 38611cff1b
Lloyd Pique [Mon, 30 Apr 2018 19:34:53 +0000 (12:34 -0700)]
Allow the window to be recreated in the middle of a test am: 30ef1bf331 am: 38611cff1b
am: 6eca3b9153

Change-Id: I9347f789b79bf1bbcb128aab72ff4e62a662537a

6 years agoAllow the window to be recreated in the middle of a test am: 30ef1bf331
Lloyd Pique [Mon, 30 Apr 2018 19:30:50 +0000 (12:30 -0700)]
Allow the window to be recreated in the middle of a test am: 30ef1bf331
am: 38611cff1b

Change-Id: Ib6b7ff02fe67679472877a9cc5dff04f7d01a17a

6 years agoAllow the window to be recreated in the middle of a test
Lloyd Pique [Mon, 30 Apr 2018 19:26:18 +0000 (12:26 -0700)]
Allow the window to be recreated in the middle of a test
am: 30ef1bf331

Change-Id: Ic2683d5ad4515c3d65339b5027e76b1574374548

6 years ago[automerger skipped] Merge "DO NOT MERGE: Merge remote-tracking branch 'khronos/vulka...
android-build-prod (mdb) [Mon, 30 Apr 2018 17:36:57 +0000 (10:36 -0700)]
[automerger skipped] Merge "DO NOT MERGE: Merge remote-tracking branch 'khronos/vulkan-cts-1.0.2' into HEAD" into oreo-cts-dev am: 354706417a  -s ours
am: c78fc14ea5  -s ours

Change-Id: Iedf43f729df806befedad07e7f8ae5d7b4bddd92

6 years ago[automerger skipped] Merge "DO NOT MERGE: Merge remote-tracking branch 'khronos/vulka...
android-build-prod (mdb) [Mon, 30 Apr 2018 17:32:26 +0000 (10:32 -0700)]
[automerger skipped] Merge "DO NOT MERGE: Merge remote-tracking branch 'khronos/vulkan-cts-1.0.2' into HEAD" into oreo-cts-dev
am: 354706417a  -s ours

Change-Id: I37e6dad1ab2d2eb9bee4a529f16c77981afbb54b

6 years agoMerge "DO NOT MERGE: Merge remote-tracking branch 'khronos/vulkan-cts-1.0.2' into...
android-build-prod (mdb) [Mon, 30 Apr 2018 17:30:06 +0000 (17:30 +0000)]
Merge "DO NOT MERGE: Merge remote-tracking branch 'khronos/vulkan-cts-1.0.2' into HEAD" into oreo-cts-dev

6 years agoDO NOT MERGE: Merge remote-tracking branch 'khronos/vulkan-cts-1.0.2' into HEAD
Chris Forbes [Tue, 27 Feb 2018 00:31:59 +0000 (16:31 -0800)]
DO NOT MERGE: Merge remote-tracking branch 'khronos/vulkan-cts-1.0.2' into HEAD

Change-Id: Id624bed0598e117aff161ee6ed92a135095e33d7
Bug: b/73945443

6 years agoMerge remote-tracking branch 'khronos/master' into deqp-dev
Chris Forbes [Fri, 27 Apr 2018 21:50:03 +0000 (14:50 -0700)]
Merge remote-tracking branch 'khronos/master' into deqp-dev

Change-Id: I7ae8d3a5d6fd711f7dc63c09b0c5d2fde386bb65

6 years agoMerge remote-tracking branch 'aosp/master' into deqp-dev
Chris Forbes [Fri, 27 Apr 2018 21:34:56 +0000 (14:34 -0700)]
Merge remote-tracking branch 'aosp/master' into deqp-dev

Change-Id: I868b09888968cdc3e233f5eef87967faa18b9b8e

6 years agoDo not fail plane tests when there is no display
Liam Middlebrook [Thu, 26 Apr 2018 21:43:25 +0000 (14:43 -0700)]
Do not fail plane tests when there is no display

Instead, we should mark these tests as not supported. The Vulkan spec
states that:
    Devices must support at least one plane on each display

If there are no displays connected, the driver is allowed to return 0
planes.

VK-GL-CTS issue: 1138

Change-Id: Ie7ddc35f4f11fbfa54f8c31cc3864f52adb1bb7f
Affects: dEQP-VK.wsi.display.get_display_plane_capabilities
Affects: dEQP-VK.wsi.display.create_display_plane_surface

6 years agoDo not fail display tests when there is no display
Damien Leone [Mon, 30 Oct 2017 23:15:25 +0000 (16:15 -0700)]
Do not fail display tests when there is no display

Instead, we should mark these tests as not supported. It is valid per the
Vulkan spec to have the extension report 0 displays connected.

Affects: dEQP-VK.wsi.display.*

Component: Vulkan

VK-GL-CTS issue: 1105

Change-Id: Iaae928a862dcc3827094d898a5455ecfe3920936

6 years agoDo not test CLEAR loadOp with read-only depth stencil image layouts
Slawomir Cygan [Tue, 24 Apr 2018 15:50:19 +0000 (17:50 +0200)]
Do not test CLEAR loadOp with read-only depth stencil image layouts

It is invalid to use implicit clears with depth stencil images, which first
render pass usage is in read only depth/stencil image layout

Spec:
"
For any member of pAttachments with a loadOp equal to VK_ATTACHMENT_LOAD_OP_CLEAR,
the first use of that attachment must not specify a layout equal to
VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL.

For any member of pAttachments with a stencilLoadOp equal to VK_ATTACHMENT_LOAD_OP_CLEAR,
the first use of that attachment must not specify a layout equal to
VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL."

Component: Vulkan

Affects:
dEQP-VK.renderpass.suballocation.formats.d*.clear.*_read_only

VK-GL-CTS Issue: 1144

Change-Id: Iad78473fe4bdf87dac5aff5bcc1c2b888e790cb8

6 years agoFix logging issues when shader cache is enabled
Jari Komppa [Tue, 24 Apr 2018 09:08:28 +0000 (12:08 +0300)]
Fix logging issues when shader cache is enabled

When shaders were loaded from cache, log output said that linking
failed. This change fixes this and outputs the cache string as the
shader source. The info log also now says that the shader was loaded
from cache.

Affects:

None

Components: Framework, Vulkan

VK-GL-CTS issue: 1142

Change-Id: Ia9e060572c80a35152838fda1d5fbfd0fb6051a8

6 years agoAllow the window to be recreated in the middle of a test
Lloyd Pique [Wed, 25 Apr 2018 02:08:39 +0000 (19:08 -0700)]
Allow the window to be recreated in the middle of a test

On ARC++ devices, some of the dEQP CTS tests were occasionally failing on
devices running in tablet mode, due to the timing of a WM relayout that
happens shortly after the orientation change is realized.

We traced it back to the dEQP test harness always expecting to see a
call from the system to onNativeWindowResized() after a call to
oNNativeWindowCreated(). It happened that the relayout on ARC++ devices
was not causing a size change, so this message was never received.

The result was that the test paused itself, and never completed. The
watchdog thread that the test harness creates ended up killing and
failing the test.

This patch adjusts the logic so that the activity only waits to process
the window creation for the very first call to onNativeWindowResized(),
as when the activity is first created that call is indeed made (but note
not really guaranteed). A subsequent call to onNativeWindowCreated()
will unpause the test (setting the READY state), as well as finish
processing the window creation.

Bug: 74371892
Test: dEQP-GLES3.functional.prerequisite#clear_color
Change-Id: I3c429aea272cbfee3f150a32c12233c9f38a7936

6 years agoDO NOT MERGE: Merge remote-tracking branch 'khronos/vulkan-cts-1.0.2' into HEAD
Chris Forbes [Tue, 27 Feb 2018 00:31:59 +0000 (16:31 -0800)]
DO NOT MERGE: Merge remote-tracking branch 'khronos/vulkan-cts-1.0.2' into HEAD

Change-Id: Id624bed0598e117aff161ee6ed92a135095e33d7
Bug: b/73945443

6 years agoMerge vk-gl-cts/vulkan-cts-1.1.1 into vk-gl-cts/master
Alexander Galazin [Tue, 24 Apr 2018 13:58:35 +0000 (15:58 +0200)]
Merge vk-gl-cts/vulkan-cts-1.1.1 into vk-gl-cts/master

Change-Id: I50e88f5187b0d970928fc00629158ceebd4659b4

6 years agoMerge vk-gl-cts/vulkan-cts-1.1.0 into vk-gl-cts/vulkan-cts-1.1.1
Alexander Galazin [Tue, 24 Apr 2018 13:58:31 +0000 (15:58 +0200)]
Merge vk-gl-cts/vulkan-cts-1.1.0 into vk-gl-cts/vulkan-cts-1.1.1

Change-Id: I64646658117df9f4dd0260d0e0065e3f093b93d8