platform/upstream/VK-GL-CTS.git
4 years agoStop 10bit formats requiring GL_SRGB encoding
James Glanville [Fri, 17 Apr 2020 10:54:40 +0000 (11:54 +0100)]
Stop 10bit formats requiring GL_SRGB encoding

The EGL_KHR_gl_colorspace spec does not require formats that
are not SRGB8 to respect the given EGL_GL_COLORSPACE_KHR.

Components: EGL

VK-GL-CTS issue: 2288

Affects:

dEQP-EGL.functional.wide_color.window_1010102_colorspace_srgb
dEQP-EGL.functional.wide_color.pbuffer_1010102_colorspace_srgb

Change-Id: I41ab6c6a0467a29cf7e5e764bf2b2cfb78c51db3
(cherry picked from commit c90d90d4b1b006d0b39c04e7517b7252564bf2e0)

4 years agoMerge vk-gl-cts/opengl-es-cts-3.2.5 into vk-gl-cts/opengl-es-cts-3.2.6
Alexander Galazin [Mon, 27 Apr 2020 13:18:34 +0000 (15:18 +0200)]
Merge vk-gl-cts/opengl-es-cts-3.2.5 into vk-gl-cts/opengl-es-cts-3.2.6

Change-Id: I6263ae46427e5dcd439e26cb08e33c9e0c36dddd

4 years agoInitialize gl_PointSize if the test draws points
Amy Liu [Tue, 14 Jan 2020 08:34:30 +0000 (16:34 +0800)]
Initialize gl_PointSize if the test draws points

From GLSL specification: "If gl_PointSize is not written to,
its value is undefined in subsequent pipe stages"

Affects:

dEQP-GLES3.functional.primitive_restart.basic.points.*
dEQP-GLES3.functional.fragment_ops.scissor.partial_points

Components: AOSP

VK-GL-CTS issue: 2161

Change-Id: I3016287f7e55331522d6a7a8d562d8b57ab27e43
(cherry picked from commit 434240bf67d226947a3ccb73b10ea8e685f7aaaf)

4 years agoFix some bugs for EGL cases
Jian Li [Mon, 9 Dec 2019 05:24:05 +0000 (13:24 +0800)]
Fix some bugs for EGL cases

eglTerminate() wasn't called in proper sequence.
Resource wasn't released properly for not supported cases.

Affects:

dEQP-EGL.functional.image.*
dEQP-EGL.functional.resize.*
dEQP-EGL.functional.buffer_age.*
dEQP-EGL.functional.partial_update.*

Components: AOSP

VK-GL-CTS issue: 2153

Change-Id: Ic0a82aa176b9a8344f757916d61ea8f64c58eca5
(cherry picked from commit 53bfacd3d71753cda3448735e56ad249848c2460)

4 years agoMerge vk-gl-cts/opengl-es-cts-3.2.5 into vk-gl-cts/opengl-es-cts-3.2.6
Alexander Galazin [Sun, 12 Apr 2020 13:23:52 +0000 (15:23 +0200)]
Merge vk-gl-cts/opengl-es-cts-3.2.5 into vk-gl-cts/opengl-es-cts-3.2.6

Change-Id: I5c292b5227c3e6c22910fce671a0dca1eaf7be64

4 years agogl4cComputeShaderTests: correct conversion
Andres Gomez [Thu, 23 May 2019 16:34:13 +0000 (18:34 +0200)]
gl4cComputeShaderTests: correct conversion

Bug 13124 - gl45 conformance: Fix GL45-CTS.compute_shader.max to work with giant numbers
and
Bug 13582 - Checking values from glGet* incorrectly
didn't complete the job of avoiding conversion problems.

Now, we make sure that the comparison is done in the type that won't
cause a problem.

Components: OpenGL

VK-GL-CTS public issue: 149

Affects:

KHR-GLES31.core.compute_shader.dispatch-indirect
KHR-GLES31.core.compute_shader.max
KHR-GL43.compute_shader.dispatch-indirect
KHR-GL43.compute_shader.max

Change-Id: I69047d95ca4418a84f138ac9bfa7818fea45cc64

4 years agoOpenGL ES CTS fixes for passing on WGL
Piers Daniell [Wed, 4 Mar 2020 06:29:28 +0000 (23:29 -0700)]
OpenGL ES CTS fixes for passing on WGL

When running cts-runner --type=es32 on a WGL platform it will pick up several
pixel formats for the default framebuffer that aren't supported correctly
by the existing OpenGL ES 3.2 tests.

1. OpenGL ES 3.2 CTS expects the platform to expose rgb565, but that is not
available on WGL and should not be a requirement of OpenGL ES 3.2
conformance. This CL disables rgb565 is a requirement for all non-Android
platforms, which extends the change originally made for X11 in
https://gerrit.khronos.org/#/c/4615/ for issue VK-GL-CTS issue: 1474.

2. The 10-bit+ bits per pixel component WGL pixel formats are skipped since
the existing OpenGL ES 3.2 tests, which use pixel transfer functions
like glReadPixels, and assume an 8-bit type, don't work correctly since
glReadPixels is not defined to do format and type conversions like it
does with OpenGL.

3. Default framebuffers with sRGB color space are skipped because
under OpenGL ES sRGB encoded will default for on in this case and the
existing OpenGL ES tests do not currently support a non-linear
default framebuffer. This is not a problem with OpenGL since with
OpenGL sRGB encoding has to be enabled explicitly.

Affects: cts-runner --type=es32 on WGL

Components: OpenGL

VK-GL-CTS issue: 2257

Change-Id: If12aff8c10571b7c0f72da618b13753c340a60c4

4 years agoMerge vk-gl-cgts/opengl-es-cts-3.2.5 into vk-gl-cts/opengl-es-cts-3.2.6
Alexander Galazin [Tue, 4 Feb 2020 08:30:07 +0000 (09:30 +0100)]
Merge vk-gl-cgts/opengl-es-cts-3.2.5 into vk-gl-cts/opengl-es-cts-3.2.6

Change-Id: I0a9b7510a940e811c0bb0282f83df74cb6d83d33

4 years agoFix compiler warning
Alexander Galazin [Mon, 3 Feb 2020 09:49:48 +0000 (10:49 +0100)]
Fix compiler warning

Components: OpenGL

Change-Id: Ie61463fcd7d5ad006e364a8b18505af0a23ebf73

4 years agoMerge vk-gl-cts/opengl-es-cts-3.2.5 into vk-gl-cts/opengl-es-cts-3.2.6
Alexander Galazin [Thu, 23 Jan 2020 08:41:23 +0000 (09:41 +0100)]
Merge vk-gl-cts/opengl-es-cts-3.2.5 into vk-gl-cts/opengl-es-cts-3.2.6

Change-Id: I0eff6803c285cd39b3f6eab0343522f48c1701cf

4 years agoAllow tests to pass with a ES3+ context.
Emmanuel Tanguy [Mon, 7 Oct 2019 12:49:25 +0000 (13:49 +0100)]
Allow tests to pass with a ES3+ context.

Setting gl_MaxDrawBuffers ref value to GL_MAX_DRAW_BUFFERS for ES3 context.

Reduce code duplication where the same check exists in other tests.

Components: OpenGL ES

VK-GL-CTS issue: 2011

Affected tests:
dEQP-GLES2.functional.shaders.builtin_variable.max_draw_buffers_vertex
dEQP-GLES2.functional.shaders.builtin_variable.max_draw_buffers_fragment
dEQP-GLES2.functional.negative_api.buffer.framebuffer_texture2d
dEQP-GLES2.functional.texture.mipmap.cube.*

Change-Id: I6c5e522940256c98b54e5533f29fdafeac60a256
(cherry picked from commit 96d4f7bafa35a9567eef5c4d7658a316837b8a0b)

4 years agoMerge vk-gl-cts/opengl-es-cts-3.2.5 into vk-gl-cts/opengl-es-cts-3.2.6
Alexander Galazin [Fri, 22 Nov 2019 13:41:59 +0000 (14:41 +0100)]
Merge vk-gl-cts/opengl-es-cts-3.2.5 into vk-gl-cts/opengl-es-cts-3.2.6

Change-Id: I069be78b5ad4a7299152d342c5cbfee6b7fc84f1

4 years agoRemove more tests due to GLSL ES 1.0/3.x differences
Alexander Galazin [Fri, 22 Nov 2019 12:49:30 +0000 (13:49 +0100)]
Remove more tests due to GLSL ES 1.0/3.x differences

Components: OpenGL

VK-GL-CTS issue: 2116

Removed tests:
dEQP-GLES2.functional.shaders.functions.invalid.attribute_argument_vertex
dEQP-GLES2.functional.shaders.functions.invalid.varying_argument_fragment
dEQP-GLES2.functional.shaders.functions.invalid.varying_argument_vertex

Change-Id: I628242739fade1310e36065da785b12be0912284

4 years agoKHR-GLES31.core.constant_expressions.* add T&G tests to the test tree
Emmanuel Tanguy [Fri, 25 Oct 2019 07:13:30 +0000 (08:13 +0100)]
KHR-GLES31.core.constant_expressions.* add T&G tests to the test tree

KHR-GLES31.core.shader_macros* add T&G tests to the test tree

Even if geometry and tessellation shaders are not surpported the tests
need to be added to the test tree for the tests to be run and be marked
as not supported if necessary.

Components: Vulkan

VK-GL-CTS Issue: 1859

Affects:
KHR-GLES31.core.constant_expressions.*
KHR-GLES31.core.shader_macros*

Change-Id: I38960349d7e52b546f8e02af3d5190a8f7225588

4 years agoRemove tests that check non-zero values for reservedMustBeZero on all APIs
Alejandro Piñeiro [Fri, 11 Oct 2019 09:40:16 +0000 (11:40 +0200)]
Remove tests that check non-zero values for reservedMustBeZero on all APIs

Although initially it was agreed to keep them for the APIs that still
include that field as reserved, and only remove them when the API
defines the field (baseInstance), in the end it was agreed to remove
it completely, as it is testing an undefined behaviour.

Components: OpenGL, OpenGL ES

VK-GL-CTS issue: 2029

Affects:
KHR-GL40.draw_indirect.misc-reservedMustBeZero-arrays
KHR-GL40.draw_indirect.misc-reservedMustBeZero-elements
KHR-GL41.draw_indirect.misc-reservedMustBeZero-arrays
KHR-GL41.draw_indirect.misc-reservedMustBeZero-elements
KHR-GLES31.core.draw_indirect.misc-reservedMustBeZero-arrays
KHR-GLES31.core.draw_indirect.misc-reservedMustBeZero-elements

Change-Id: Iafe3e711107da818a392ebcdfe50379cf3790d17

4 years agoDon't check color outcome for tests that expect undefined behaviour
Alejandro Piñeiro [Thu, 26 Sep 2019 09:55:49 +0000 (11:55 +0200)]
Don't check color outcome for tests that expect undefined behaviour

draw_indirect.misc-reservedMustBeZero-elements and its arrays
equivalent for both OpenGL and OpenGL ES tests the following paragraph
from the spec:

  "Results are undefined if reservedMustBeZero is non-zero, but must
   not lead to GL interruption or termination."

So it should check if there is no errors or crashes. But right now
those tests are also expecting a given color, that doesn't make sense
if the expected behaviour by spec is undefined.

This seems a C&P error from other tests.

Components: OpenGL, OpenGL ES

VK-GL-CTS issue: 2023

Affects:
KHR-GL41.draw_indirect.misc-reservedMustBeZero-arrays
KHR-GL41.draw_indirect.misc-reservedMustBeZero-elements
KHR-GLES31.core.draw_indirect.misc-reservedMustBeZero-arrays
KHR-GLES31.core.draw_indirect.misc-reservedMustBeZero-elements

Change-Id: I3e9a5d04893eec9359b55ea6c5130e940c943cf2

4 years agoReplace imageAtomicExchange with imageAtomicCompSwap in vertex shader
Alejandro Piñeiro [Wed, 25 Sep 2019 08:15:36 +0000 (10:15 +0200)]
Replace imageAtomicExchange with imageAtomicCompSwap in vertex shader

Recently the test was changed in order to replace a imageAtomicAdd for
a imageAtomicExchange, as the test can't assume that the vertex shader
will be executed exactly one per vertex shader (see VK-GL-CTS issue
1910).

But imageAtomicExchange is also problematic because in some
architecture/driver, specially tile-based, the test can't also assume
that all the vertex shader executions would finish before
rasterization starts (so fragment shader execution). So when using
imageAtomicExchange could happend that a vertex shader execution would
override the value that the fragment shader already started to update.

Due this two restrictions, this patch changes the atomic operation on
the vertex shader to imageAtomicCompSwap, that sets the value of the
image at the vertex shader only if it is the initial value (so
zero). That would prevent any possible execution when the
rasterization already started to override the value of such image.

This patch also adds a comment on the code explaining the situation,
to avoid any possible future change to a simpler atomic operation by
mistake.

Components: OpenGL ES

VK-GL-CTS issue: 1997

Affects:
KHR-GLES31.core.shader_image_load_store.advanced-allStages-oneImage

Change-Id: Icbc34662f33839a1ced9f728cee45a1198e4b495

4 years agoUnsized internalformats not valid GetInternalFormat
Emmanuel Tanguy [Thu, 24 Oct 2019 07:14:53 +0000 (08:14 +0100)]
Unsized internalformats not valid GetInternalFormat

Spec changed where unsized internal formats are not
valid for GetInternalFormativ
https://www.khronos.org/members/login/bugzilla/show_bug.cgi?id=15912

Components: OpenGL ES

VK-GL-CTS Issue: 2067

Affects:
dEQP-GLES3.functional.state_query.internal_format.*

Change-Id: I468c06bda3f077e02d8a811f32e0d3c894f1116b

4 years agoPrefer sized formats in internalformat tests
Graeme Leese [Mon, 7 Oct 2019 16:55:57 +0000 (17:55 +0100)]
Prefer sized formats in internalformat tests

These tests create a static map of format/type pairs to reference
formats, and then don't update it in subsequent tests. This goes wrong
when the ES2 version of the tests run first and leave extension-only
unsized formats in the map in place of supported-by-ES3-core sized
formats. This change uses the sized format if the test is being run in
an ES3 context, even if the test itself is an ES2 test. This means that
the map will contain valid values if an ES3 test is subsequently run.

Also, change a few places to use the IsES3Compatible helper function
instead of reimplementing it every time.

Components: OpenGL ES
VK-GL-CTS issue: 1903
Affects: KHR-GLES*.core.internalformat.texture2d.*

Change-Id: Ia9a5248085dc8bdde1d459dd4245702e6e53d26e

4 years agoAllow tests to pass with a ES3+ context.
Emmanuel Tanguy [Mon, 7 Oct 2019 12:49:25 +0000 (13:49 +0100)]
Allow tests to pass with a ES3+ context.

Setting gl_MaxDrawBuffers ref value to GL_MAX_DRAW_BUFFERS for ES3 context.

Reduce code duplication where the same check exists in other tests.

Components: OpenGL ES

VK-GL-CTS issue: 2011

Affected tests:
dEQP-GLES2.functional.shaders.builtin_variable.max_draw_buffers_vertex
dEQP-GLES2.functional.shaders.builtin_variable.max_draw_buffers_fragment
dEQP-GLES2.functional.negative_api.buffer.framebuffer_texture2d
dEQP-GLES2.functional.texture.mipmap.cube.*

Change-Id: I6c5e522940256c98b54e5533f29fdafeac60a256

4 years agoRemove tests that check non-zero values for reservedMustBeZero after GL 4.2
Alejandro Piñeiro [Thu, 26 Sep 2019 10:52:41 +0000 (12:52 +0200)]
Remove tests that check non-zero values for reservedMustBeZero after GL 4.2

draw_indirect.misc-reservedMustBeZero-arrays and
draw_indirect.misc-reservedMustBeZero-elements tests that the driver
doesn't crash or emit any error if the reserved field at
DrawArraysIndirectCommand and DrawEelementsIndirectCommand is
different to zero.

But that field become defined on GL 4.2 (it became baseInstance), so
after 4.2 those tests doesn't make sense.

Components: OpenGL

VK-GL-CTS issue: 2023

Affects:
KHR-GL42.draw_indirect.misc-reservedMustBeZero-arrays
KHR-GL42.draw_indirect.misc-reservedMustBeZero-elements
KHR-GL43.draw_indirect.misc-reservedMustBeZero-arrays
KHR-GL43.draw_indirect.misc-reservedMustBeZero-elements
KHR-GL44.draw_indirect.misc-reservedMustBeZero-arrays
KHR-GL44.draw_indirect.misc-reservedMustBeZero-elements
KHR-GL45.draw_indirect.misc-reservedMustBeZero-arrays
KHR-GL45.draw_indirect.misc-reservedMustBeZero-elements
KHR-GL46.draw_indirect.misc-reservedMustBeZero-arrays
KHR-GL46.draw_indirect.misc-reservedMustBeZero-elements

Change-Id: I6c9872efd4f161179da157f6f5f26731a2032372
(cherry picked from commit 4f710b59e549843a93971293a5cc76fbd25745a4)

4 years agoSet swap interval to 0
Juan A. Suarez Romero [Fri, 24 Nov 2017 11:36:19 +0000 (11:36 +0000)]
Set swap interval to 0

By default, when swapping front and back frame buffers, this is in sync
with v-blank, which prevents tearing.

So this means the tests does not run at is maximum allowed speed, but it
is restricted somewhat by the attached screen.

When running in a window and X realizes the is no monitor attached, the
server's Present code will vsync at 1 FPS, which artificially slow down
the tests a ton.

To avoid this issue, and also because we want to run things as fast as
possible, set the swap interval to 0, which basically deactivate the
sync.

Test: cmake .. -DDEQP_TARGET=x11_egl

Change-Id: I04bcb814fb289d58f8788e90f5118db0b7175777
(cherry picked from commit 27d658881fe4cc24890b28d3ee0162469b507665)

4 years agoAllow lower precision reference to support mediump
Emmanuel Tanguy [Mon, 7 Oct 2019 09:44:15 +0000 (10:44 +0100)]
Allow lower precision reference to support mediump

PackUnorm and PackSnorm take mediump argument

Components: OpenGL ES

VK-GL-CTS issue: 2030

Affects:
KHR-GLES31.core.shader_bitfield_operation.packUnorm4x8.*
KHR-GLES31.core.shader_bitfield_operation.packSnorm4x8.*

Change-Id: Id8188eb4d621e0324d4b1c04a4df7d4d33fe3356

4 years agoCorrect viewport rounding mismatch
Matthew Netsch [Fri, 4 Oct 2019 18:30:16 +0000 (11:30 -0700)]
Correct viewport rounding mismatch

Components: OpenGL
VK-GL-CTS Issue: 2031

Affects:
dEQP-GLES2.functional.clip_control.viewport_bounds

Change-Id: Ibe514741b19bc931ee304dda7cda462b08129816

4 years agoCorrect usage of the DEQP_SUPPORT_X11 macro with the cts-runner
Andres Gomez [Wed, 2 Oct 2019 19:58:15 +0000 (22:58 +0300)]
Correct usage of the DEQP_SUPPORT_X11 macro with the cts-runner

Components: OpenGL

VK-GL-CTS issue: 1601

Affects:

dEQP-GLES3.*

Change-Id: I106b6487558642f55b5900413d0fc2c60882a7e1

4 years agoDisable the 565 config requirement for X11
Andres Gomez [Mon, 26 Nov 2018 16:11:40 +0000 (18:11 +0200)]
Disable the 565 config requirement for X11

Previously to GLES3 CTS didn't require this config to be present.  On
an 8888 X11 system it doesn't make sense to expose 565 since there are
no 16-bit visuals to be rendered to.

Affects:

dEQP-GLES3.*

Components: OpenGL

VK-GL-CTS issue: 1474

Change-Id: I14fe98ea21a86c48f0d4d155ba51a916255ef3ba

4 years agoUse unsized internal format in KHR-GLES2.texture_3d.[copy_sub_image|framebuffer_textu...
Tim Van Patten [Wed, 28 Aug 2019 18:15:23 +0000 (12:15 -0600)]
Use unsized internal format in KHR-GLES2.texture_3d.[copy_sub_image|framebuffer_texture].rgba8

These tests are using GL_RGBA8 as an internal format for TexImage2D.
Sized internal formats are not allowed for GLES 2.0.

Affects:
KHR-GLES2.texture_3d.copy_sub_image.rgba
KHR-GLES2.texture_3d.framebuffer_texture.rgba8

VK-GL-CTS issue: 1960

Change-Id: I8272e4ca0e2a9eda1161a5135e11f67b4ea5af6d
(cherry picked from commit eec82ceff77877bdad7fc94f8ae793db09ffff46)

4 years agoUse GL_MAX_3D_TEXTURE_SIZE_OES when testing textures 3D
Alejandro Piñeiro [Wed, 28 Aug 2019 22:12:52 +0000 (00:12 +0200)]
Use GL_MAX_3D_TEXTURE_SIZE_OES when testing textures 3D

Components: OpenGL-ES

VK-GL-CTS issue: 1962

Affects:
KHR-GLES2.texture_3d.compressed_texture.negative_compressed_tex_image
KHR-GLES2.texture_3d.framebuffer_texture.negative

Change-Id: I1b721755da9fd02cd47d1abce670bc788abf8f61
(cherry picked from commit 1c080cd9b5477ac2e405e47a007699e088b8c49d)

4 years agoDo not use DeleteRenderbuffers to delete a texure
Reed Koser [Wed, 11 Sep 2019 21:22:18 +0000 (14:22 -0700)]
Do not use DeleteRenderbuffers to delete a texure

Fixes a minor copy/paste error in the ClipControlDepthModeTest test fixture.

Affects:
dEQP-GLES2.functional.clip_control.depth_mode_zero_to_one
dEQP-GLES2.functional.clip_control.depth_mode_one_to_one

VK-GL-CTS issue: 1996

Change-Id: Id788f85e9b19eef8ad042c9ea3021b5d61620001

4 years agoAdd 3.2.6.x mustpass
Alexander Galazin [Thu, 29 Aug 2019 08:54:40 +0000 (10:54 +0200)]
Add 3.2.6.x mustpass

Components: OpenGL

Change-Id: Idbcd7e30faeebc34ea8c50ea268cf07d5c736df4

4 years agoReplace imageAtomicAdd with imageAtomicExchange in vertex shader
Iago Toral Quiroga [Tue, 6 Aug 2019 06:28:24 +0000 (08:28 +0200)]
Replace imageAtomicAdd with imageAtomicExchange in vertex shader

The test used imageAtomicAdd and relied on the
vertex shader being invoked exactly once per vertex
to produce the expected output before the fragment
shader (and later a compute shader) ran, however,
the OpenGL ES spec says:

"While a vertex or tessellation evaluation shader will
 be executed at least once for each unique vertex
 specified by the application, (vertex shaders) or
 generated by the tessellation primitive generator
 (tessellation evaluation shaders),it may be executed
 more than once for implementation-dependent reasons."

For platforms where the vertex sader is executed more
than once, the test won't produce the expected result.
This change fixes this issue by using atomic exchange
instead of atomic add to ensure that the value written
by the vertex shader is not dependent on the number
of vetex shader invocations.

Components: OpenGL ES

VK-GL-CTS issue: 1910

Affects:
KHR-GLES31.core.shader_image_load_store.advanced-allStages-oneImage

Change-Id: Iedaa0c11109abfdfb5a1afe5c20e8e46a5ae07f2

4 years agoFix invalid parameter for GLES 2.0
Courtney Goeltzenleuchter [Tue, 30 Jul 2019 16:20:29 +0000 (10:20 -0600)]
Fix invalid parameter for GLES 2.0

Test was creating a texture with format of GL_DEPTH_STENCIL and
internalformat of GL_DEPTH24_STENCIL8_OES. In ES 2.0 the format and
internalformat must match.
Added an extra case when running 3.0 or better that does allow different
values for format and internalformat.

Affects:

KHR-GLES2.core.internalformat.texture2d.depth_stencil_unsigned_int_24_8_depth24_stencil

Components: OpenGL

VK-GL-CTS issue: 1903

Change-Id: I710975a0ea7c1d551f412590f887d9412be6f897

4 years agoMerge vk-gl-cts/vulkan-cts-1.1.5 into vk-gl-cts/master
Alexander Galazin [Tue, 27 Aug 2019 09:23:35 +0000 (11:23 +0200)]
Merge vk-gl-cts/vulkan-cts-1.1.5 into vk-gl-cts/master

Change-Id: I146c93073fe6c5c2d453759d1606859e0e1afff1

4 years agoMerge vk-gl-cts/vulkan-cts-1.1.4 into vk-gl-cts/vulkan-cts-1.1.5
Alexander Galazin [Tue, 27 Aug 2019 07:13:13 +0000 (09:13 +0200)]
Merge vk-gl-cts/vulkan-cts-1.1.4 into vk-gl-cts/vulkan-cts-1.1.5

Change-Id: I99471c0d878e8abb8c01d7b43a71a9b3e7fbe285

4 years agoVK_EXT_fragment_shader_interlock tests
Jeff Bolz [Thu, 16 May 2019 04:27:53 +0000 (23:27 -0500)]
VK_EXT_fragment_shader_interlock tests

Components: Vulkan
New Tests: dEQP-VK.fragment_shader_interlock.*
VK-GL-CTS issue: 1856

Change-Id: I0246519ac51fcb2eb30fa264b02eb1f30c763e24
(cherry picked from commit 36005ceedd19e39bd11972dd39c419521767dac6)

4 years agoNew tests for VK_EXT_shader_demote_to_helper_invocation
Jeff Bolz [Sun, 2 Jun 2019 04:11:00 +0000 (23:11 -0500)]
New tests for VK_EXT_shader_demote_to_helper_invocation

Based on dEQP-VK.glsl.discard.*

New Tests: dEQP-VK.glsl.demote.*

Components: Vulkan
Change-Id: I9c2346592cac51cfe2de10f9586c4790c04766b6
(cherry picked from commit 529b996513d092334de3dabd4b3e44031201bdd9)

4 years agoUpdate SPIR-V Tools and Headers
Alexander Galazin [Mon, 26 Aug 2019 12:54:02 +0000 (14:54 +0200)]
Update SPIR-V Tools and Headers

Components: Framework

Affects: dEQP-VK.*

Change-Id: Icb7162387230660e99f40d48b8ae1f3055ef3534

4 years agoWhitelist 1.1.4.3 and 1.1.3.3 versions
Alexander Galazin [Mon, 26 Aug 2019 12:15:18 +0000 (14:15 +0200)]
Whitelist 1.1.4.3 and 1.1.3.3 versions

Affects: dEQP-VK.api.driver_properties.properties

Components: Vulkan

Change-Id: Ia071c4983326e9e47a58d268264e568bea777c1c

4 years agoTest coverage for VK_EXT_index_type_uint8
Piers Daniell [Wed, 24 Jul 2019 05:07:47 +0000 (23:07 -0600)]
Test coverage for VK_EXT_index_type_uint8

Adds coverage for VK_EXT_index_type_uint8 by adding
a new VK_INDEX_TYPE_UINT8_EXT variant to the existing
input_assembly tests. The coverage includes drawing
all the primitive topologies with uint8 indices,
and also primitive restart.

Affects:

dEQP-VK.pipeline.input_assembly.*

Change-Id: I939c1e0d2c3d4fcfd4386b8b4e419a8ca0e73413
Components: Vulkan
(cherry picked from commit e0e648699ac9279650486609cf16ec6e10d73042)

4 years agoMerge vk-gl-cts/vulkan-cts-1.1.5 into vk-gl-cts/master
Alexander Galazin [Thu, 22 Aug 2019 18:29:52 +0000 (20:29 +0200)]
Merge vk-gl-cts/vulkan-cts-1.1.5 into vk-gl-cts/master

Change-Id: I20bbf3397d574e49dd45deb2c337201fa46bfbb3

4 years agoMerge vk-gl-cts/vulkan-cts-1.1.4 into vk-gl-cts/vulkan-cts-1.1.5
Alexander Galazin [Thu, 22 Aug 2019 15:46:27 +0000 (17:46 +0200)]
Merge vk-gl-cts/vulkan-cts-1.1.4 into vk-gl-cts/vulkan-cts-1.1.5

Change-Id: If70c0a43c7453bdea1cfe4666be9bdc946108a31

4 years agoUpdate SPIRV-Tools and SPIRV-Headers
David Neto [Thu, 11 Jul 2019 14:41:26 +0000 (10:41 -0400)]
Update SPIRV-Tools and SPIRV-Headers

Adds extra validation for VK_KHR_16bit_storage, VK_KHR_8bit_storage.
Adds a bugfix for inlining.
This change requires several other fixes before it can go in.

Components: Vulkan

Affects:
DEQP-VK:*

VK-GL-CTS issue: 1874

Change-Id: Iba20766b36e4372f07076c67a3554d174e584edf

4 years agoDon't allocate a GL_TEXTURE_2D_ARRAY with full render target width/height
Alejandro Piñeiro [Wed, 31 Jul 2019 11:03:24 +0000 (13:03 +0200)]
Don't allocate a GL_TEXTURE_2D_ARRAY with full render target width/height

On the following test:
KHR-GLES31.core.shader_image_load_store.advanced-sso-simple

Storage is specified as this:
glTexStorage3D(GL_TEXTURE_2D_ARRAY, 1, GL_RGBA32F, getWindowWidth(), getWindowHeight(), 8);

This is not an issue by default, as the default window is generall
small, but it is problematic when using the fbo surface type. In that
case the render target would be allocated with width and height as
GL_MAX_RENDERBUFFER_SIZE.

The problem is that most drivers doesn't support a texture with so big
dimensions.

This patch specify a default size, and small enough to be supported by
most driver, for the texture, as most tests on that group are already
doing.

Components: OpenGL-ES

VK-GL-CTS issue: 1905

Affects:
KHR-GLES31.core.shader_image_load_store.advanced-sso-simple

Change-Id: Ib998567151a230dd6b3550dbf6e014eed6cbb957

4 years agoRemove illegal parameter use in fbo.completeness
Courtney Goeltzenleuchter [Wed, 31 Jul 2019 15:59:40 +0000 (09:59 -0600)]
Remove illegal parameter use in fbo.completeness

dEQP.GLES2.functional.fbo.completeness.renderable.texture
was calling glTexImage2D with a internalformat of GL_SRGB8
which is not valid for GLES 2.0 even with GL_EXT_sRGB.

Affects:
dEQP-GLES2.functional.fbo.completeness.renderable.texture.color0.srgb8
dEQP-GLES2.functional.fbo.completeness.renderable.texture.stencil.srgb8
dEQP-GLES2.functional.fbo.completeness.renderable.texture.depth.srgb8

Components: AOSP

VK-GL-CTS issue: 1906

Change-Id: I97003eda10600a0a33e7212b6b5de34c5b2c8848

4 years agoUse binding 0 for atomic counter buffers
Shahbaz Youssefi [Mon, 22 Jul 2019 18:13:55 +0000 (14:13 -0400)]
Use binding 0 for atomic counter buffers

GLES3.1 has a minimum requirement of one atomic counter buffer binding.
The following tests were binding atomic counter buffers to bindings 1
and 2 respectively:

  dEQP-GLES31.functional.atomic_counter.*
  dEQP-GLES31.functional.synchronization.inter_call.without_memory_barrier.*atomic_counter*

This makes the tests fail on implementations that support the minimum
required number of bindings.

VK-GL-CTS github issue: 156

Change-Id: I512478626b592c38e74150c83617176380f27c3d

4 years agoMerge vk-gl-cts/vulkan-cts-1.1.3 into vk-gl-cts/vulkan-cts-1.1.4
Alexander Galazin [Thu, 22 Aug 2019 11:42:23 +0000 (13:42 +0200)]
Merge vk-gl-cts/vulkan-cts-1.1.3 into vk-gl-cts/vulkan-cts-1.1.4

Change-Id: I4059d84b79a3ad4504f436fa39dc2cddb294f8d7

4 years agoAdd touch tests for volatile atomics
Jeff Bolz [Wed, 24 Jul 2019 18:09:04 +0000 (13:09 -0500)]
Add touch tests for volatile atomics

Volatile atomics are a late addition to the SPV_KHR_vulkan_memory_model
extension. This change adds variants of the spirv_assembly opatomic tests
that use the bit to make sure it is accepted, but don't actually prove
that the access is treated as volatile.

SPIR-V issue: 476
Components: Vulkan
Affects: dEQP-VK.spirv_assembly.*atomic*

Change-Id: I38202242dade7dcf42aa2bbcd1927a1cac1bc9ad

4 years agoSpeed up hierarchy traversal, part 2
Jari Komppa [Wed, 31 Jul 2019 10:29:15 +0000 (13:29 +0300)]
Speed up hierarchy traversal, part 2

Some of the tests do premature heavy work during test hierarchy
traversal, meaning that they waste time regardless of whether the tests
are run or not. These changes move some of that work to later stage of
test run, or otherwise speed things up a bit.

Affects:

dEQP-VK.pipeline.stencil.*
dEQP-VK.synchronization.cross_instance.*
dEQP-VK.synchronization.op.multi_queue.*
dEQP-VK.transform_feedback.fuzz.*

Components: Vulkan

VK-GL-CTS issue: 1830

Change-Id: I1c124cbf17068e56375ef2e467036e959cde8aa4

4 years agoMerge common util functions, part 3
Ilkka Saarelainen [Tue, 23 Jul 2019 12:32:46 +0000 (15:32 +0300)]
Merge common util functions, part 3

Many tests have their own util functions for creating commonly used
Vulkan objects.
This CL moves the following helper functions to the framework:

- bindImage()
- bindBuffer()
- zeroBuffer()
- makeBuffer()
- makeImage()
- makeBufferCreateInfo()
- makeBufferImageCopy()

Affects: dEQP-VK.*

Components: Vulkan, Framework

VK-GL-CTS issue: 1709

Change-Id: I77c09d4213ca708fb3255d00d2aa2506077def40

4 years agoSplit compute workload into multiple submissions
Matthew Netsch [Wed, 14 Aug 2019 11:08:32 +0000 (16:38 +0530)]
Split compute workload into multiple submissions

Reduces workload per submission

Components: Vulkan
VK-GL-CTS Issue: 1751

Affects:
dEQP-VK.memory_model.message_passing.*

Change-Id: Ia9e9b63851b18ae1d5c1b65426ee864d760bf87c

4 years ago1d_image: basic: compute: texel_view_compatible: set size.y to 1
Yahan Zhou [Wed, 7 Aug 2019 19:44:50 +0000 (12:44 -0700)]
1d_image: basic: compute: texel_view_compatible: set size.y to 1

1d images need to have size.y=1. Otherwise Vulkan validation layer will
complain.

Affects:
dEQP-VK.image.texel_view_compatible.compute.basic.1d_image*

Components: Vulkan

VK-GL-CTS issue: 1920

Change-Id: I0dd24d612aafb416a74b5eb6f16bb55c76175a0f
(cherry picked from commit fe76a662df108542ff27e1c4f5a83077b54444c4)

4 years ago1d_image: basic: compute: texel_view_compatible: set size.y to 1
Yahan Zhou [Wed, 7 Aug 2019 19:44:50 +0000 (12:44 -0700)]
1d_image: basic: compute: texel_view_compatible: set size.y to 1

1d images need to have size.y=1. Otherwise Vulkan validation layer will
complain.

Affects:
dEQP-VK.image.texel_view_compatible.compute.basic.1d_image*

Components: Vulkan

VK-GL-CTS issue: 1920

Change-Id: I0dd24d612aafb416a74b5eb6f16bb55c76175a0f

4 years agoTexel view compatible: Image: proper check for image format supports
Yahan Zhou [Fri, 9 Aug 2019 18:35:15 +0000 (11:35 -0700)]
Texel view compatible: Image: proper check for image format supports

The queried image usage is different from what is acutally used. Fix it
so that we would not end up with an unsupported usage.

Affects:
dEQP-VK.image.texel_view_compatible*

Components: Vulkan

Google bug: 139193497
VK-GL-CTS issue: 1920

Change-Id: Ib8db61808db5f9391a54b7722f965b6608e7e694

4 years agoFloat controls: graphics: fix 16bit storage validation
David Neto [Fri, 12 Jul 2019 16:38:08 +0000 (12:38 -0400)]
Float controls: graphics: fix 16bit storage validation

For graphics shaders:

Add Float16 capability and shaderFloat16 when the test case uses
16bit float in a way not supported by the 16bit storage extension.

If not using the Float16 capability, drop definitions of 16bit
constants.

Components: Vulkan

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

VK-GL-CTS issue: 1874

Change-Id: I1e25a706e0667a45b3e5b0a6c496c77feac90465

4 years agoNeed Float16 capability for float16 tests
David Neto [Fri, 12 Jul 2019 20:20:13 +0000 (16:20 -0400)]
Need Float16 capability for float16 tests

Fixes validation of 2537 tests.

Components: Vulkan

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

VK-GL-CTS issue: 1874

Change-Id: I68bf7951939b5ff8382ab40e9adcaa8e1ee61c4d

4 years agoFix incorrect layout transition in render pass
Piers Daniell [Tue, 13 Aug 2019 22:11:23 +0000 (16:11 -0600)]
Fix incorrect layout transition in render pass

For the dEQP-VK.device_group.* tests the renderImage was
created with an UNDEFINED layout and then explicitly
transitioned to COLOR_ATTACHMENT_OPTIMAL during the test
initialization. Then the renderPass was created using the
makeRenderPass() utility function which assumed the
image was in the UNDEFINED state. This caused the
image to be transitioned again from UNDEFINED
to COLOR_ATTACHMENT_OPTIMAL at begin render pass time,
which might modify any valid image data.

The solution is to fix the render pass creation
to indicate that the renderImage is already in the
COLOR_ATTACHMENT_OPTIMAL layout.

Affects:

dEQP-VK.device_group.*

VK-GL-CTS issue: 1922

Change-Id: I5e1dff19eb854af9651615a7318379a318b8c273
Components: Vulkan

4 years agoAdd pipeline barriers flushing buffer data to host
Panagiotis Apostolou [Thu, 25 Jul 2019 10:29:18 +0000 (12:29 +0200)]
Add pipeline barriers flushing buffer data to host

This commit adds a few buffer pipeline barriers whose purpose is to flush
gpu caches, making the buffer data visible to the host.

Affects:
dEQP-VK.pipeline.push_constant.compute_pipeline.simple_test
dEQP-VK.glsl.builtin.precision.*
dEQP-VK.glsl.builtin.function.*
dEQP-VK.api.command_buffers.record_simul_use_secondary_one_primary
dEQP-VK.synchronization.op.single_queue.*
dEQP-VK.query_pool.occlusion_query.*

Components: Vulkan

VK-GL-CTS issue: 1898

Change-Id: Ic6a467b4d1db6cebebf34c8d386e519016fc3fe9

4 years agoShare instance/device across test case instances in dEQP-VK.synchronization.*
Jeff Bolz [Thu, 18 Jul 2019 19:45:02 +0000 (14:45 -0500)]
Share instance/device across test case instances in dEQP-VK.synchronization.*

Some of the dEQP-VK.synchronization.* test groups create new devices or new
instances for each test case. This is a really expensive thing to do tens of
thousands of times, and makes this the longest-running test group in the CTS.
This change uses singleton objects to store the instance/device, and adds
cleanup callbacks to destroy the singletons when the group is finished.

VK-GL-CTS Issue: 1886
Components: Vulkan
Affects: dEQP-VK.synchronization.*

Change-Id: If935b457276790faf4a86e6f2afb5fd911987a85

4 years agoMerge vk-gl-cts/vulkan-cts-1.1.5 into vk-gl-cts/master
Alexander Galazin [Fri, 16 Aug 2019 13:05:42 +0000 (15:05 +0200)]
Merge vk-gl-cts/vulkan-cts-1.1.5 into vk-gl-cts/master

Change-Id: I12856e0c5f601fa1bf6022a53e5532dac5e97e1a

4 years agoFix Float16 validation for 16bt storage tests
David Neto [Mon, 15 Jul 2019 15:02:20 +0000 (11:02 -0400)]
Fix Float16 validation for 16bt storage tests

* Refactor interface functions to avoid arithmetic capabilities
  * new string template

Components: Vulkan

VK-GL-CTS issue: 1874

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

Change-Id: I05198eedb59a545785a65026847885ea7fae85bf

4 years agoFloat controls: break out extra functions as separate from constants
David Neto [Fri, 12 Jul 2019 16:27:07 +0000 (12:27 -0400)]
Float controls: break out extra functions as separate from constants

This should not be a functional change.

Components: Vulkan

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

Change-Id: I03d3f2d4d9792786b159e5472368859d518cdc3e

4 years agoAccount for precision loss in unorm depth pipeline
Gary Sweet [Thu, 1 Aug 2019 11:50:40 +0000 (12:50 +0100)]
Account for precision loss in unorm depth pipeline

https://gerrit.khronos.org/#/c/4049/ introduced a regression
related to the use of depths other than 0.0 and 1.0 in the round-trip
to the depth buffer and back.

The test can now write 1.0/255.0 to gl_FragDepth and expects to see
exactly 1.0/255.0 when it is read back in the input attachment.
The unorm depth formats are only specified to be exact for the integer
values (0.0 and 1.0). We can differ by 1-bit after the round-trip.

This change adds an epsilon range check for the unorm depth tests
that resolve the issue.

Affected tests:
dEQP-VK.renderpass.dedicated_allocation.*
dEQP-VK.renderpass.suballocation.*
dEQP-VK.renderpass2.dedicated_allocation.*
dEQP-VK.renderpass2.suballocation.*

Components: Vulkan
VK_GL_CTS issue: 1908

Change-Id: Iaec3503595afd3409d2c21d8af72b469467d6673

4 years agoTest coverage for VK_EXT_index_type_uint8
Piers Daniell [Wed, 24 Jul 2019 05:07:47 +0000 (23:07 -0600)]
Test coverage for VK_EXT_index_type_uint8

Adds coverage for VK_EXT_index_type_uint8 by adding
a new VK_INDEX_TYPE_UINT8_EXT variant to the existing
input_assembly tests. The coverage includes drawing
all the primitive topologies with uint8 indices,
and also primitive restart.

Affects:

dEQP-VK.pipeline.input_assembly.*

Change-Id: I939c1e0d2c3d4fcfd4386b8b4e419a8ca0e73413
Components: Vulkan

4 years agoNew tests for VK_EXT_shader_demote_to_helper_invocation
Jeff Bolz [Sun, 2 Jun 2019 04:11:00 +0000 (23:11 -0500)]
New tests for VK_EXT_shader_demote_to_helper_invocation

Based on dEQP-VK.glsl.discard.*

New Tests: dEQP-VK.glsl.demote.*

Components: Vulkan
Change-Id: I9c2346592cac51cfe2de10f9586c4790c04766b6

4 years agoVK_KHR_pipeline_executable_properties tests
Jason Ekstrand [Tue, 21 May 2019 23:35:19 +0000 (18:35 -0500)]
VK_KHR_pipeline_executable_properties tests

Components: Vulkan
New Tests: dEQP-VK.pipeline.executable_properties.*

Change-Id: I5534d945e65e645b8e43c23008b887797f4a5b85

4 years agodEQP-VK.graphicsfuzz.nested-ifs-and-return-in-for-loop
Alastair Donaldson [Thu, 4 Jul 2019 22:44:58 +0000 (23:44 +0100)]
dEQP-VK.graphicsfuzz.nested-ifs-and-return-in-for-loop

Components: Vulkan

New Tests:

dEQP-VK.graphicsfuzz.nested-ifs-and-return-in-for-loop

Change-Id: I81849a849a85e36bfea53c6979f8760d91f148fe

4 years agoMerge vk-gl-cts/opengl-cts-4.6.0 into vk-gl-cts/master
Alexander Galazin [Thu, 15 Aug 2019 11:03:17 +0000 (13:03 +0200)]
Merge vk-gl-cts/opengl-cts-4.6.0 into vk-gl-cts/master

Change-Id: Idfcda7642a83ee8e573e7da2f847957d04c664fc

4 years agoMerge vk-gl-cts/vulkan-cts-1.1.5 into vk-gl-cts/master
Alexander Galazin [Wed, 14 Aug 2019 15:09:33 +0000 (17:09 +0200)]
Merge vk-gl-cts/vulkan-cts-1.1.5 into vk-gl-cts/master

Change-Id: Idbd535ccaa0b8db6fcace470af92c29a999dede7

4 years agoMerge vk-gl-cts/vulkan-cts-1.1.4 into vk-gl-cts/vulkan-cts-1.1.5
Alexander Galazin [Wed, 14 Aug 2019 14:11:55 +0000 (16:11 +0200)]
Merge vk-gl-cts/vulkan-cts-1.1.4 into vk-gl-cts/vulkan-cts-1.1.5

Change-Id: I9cc0f3b31193377219058dce043d7b8a929b9eea

4 years agoMerge vk-gl-cts/vulkan-cts-1.1.3 into vk-gl-cts/vulkan-cts-1.1.4
Alexander Galazin [Wed, 14 Aug 2019 12:04:45 +0000 (14:04 +0200)]
Merge vk-gl-cts/vulkan-cts-1.1.3 into vk-gl-cts/vulkan-cts-1.1.4

Change-Id: I6c972fa2e2028e4f813ab96eb565c93c440faf9d

4 years agoMerge vk-gl-cts/vulkan-cts-1.1.2 into vk-gl-cts/vulkan-cts-1.1.3
Alexander Galazin [Wed, 14 Aug 2019 11:52:47 +0000 (13:52 +0200)]
Merge vk-gl-cts/vulkan-cts-1.1.2 into vk-gl-cts/vulkan-cts-1.1.3

Change-Id: I7f00708e05e1cf20c6439e52287d21eacf32ca01

4 years agoEarly support check for tests (part 2)
Ari Suonpaa [Tue, 25 Jun 2019 12:33:55 +0000 (15:33 +0300)]
Early support check for tests (part 2)

Moved feature and extension checks into checkSupport function
which gets called before initPrograms. This speeds up the
test execution in case a test is not supported.

This the second batch of changes.

Affects:

dEQP-VK.dynamic_state.*
dEQP-VK.fragment_operations.*
dEQP-VK.geometry.*
dEQP-VK.image.*
dEQP-VK.memory.*
dEQP-VK.multiview.*
dEQP-VK.pipeline.*

Components: Vulkan

VK-GL-CTS issue: 1786

Change-Id: Ibbf0b32425cce048d937b5da324ff097b46afd23

4 years agoProvide a highp variable to MAKE_HIGH_BALLOT_RESULT
Hsin-Hsiao Lin [Thu, 25 Jul 2019 07:13:34 +0000 (09:13 +0200)]
Provide a highp variable to MAKE_HIGH_BALLOT_RESULT

The MAKE_HIGH_BALLOT_RESULT macro assumes the input is 32bit.
Given a mediump variable, ex: gl_SubgroupSize, would produce an
undefined result when the input value is >= 16 and the computation
is in 16 bits.
Provide a highp input would ensure the computation is in 32 bits.

Affects:
  dEQP-VK.subgroups.ballot_other.*

Components: vulkan

VK-GL-CTS issue: 1894

Change-Id: I22987f20be3d08444c52cb722fc23494777a5636

4 years agoFloat controls: compute: fix for strict 16bit storage validation
David Neto [Thu, 11 Jul 2019 19:12:37 +0000 (15:12 -0400)]
Float controls: compute: fix for strict 16bit storage validation

Emit definitions of float constants only if those constants
are used in the rest of the shader.  In the case of 16bit
float this saves us from having to also declare a Float16 capability.

Non-storage-related use of fp16 requires Float16 capability,
and shaderFloat16 Vulkan feature from VK_KHR_shader_float16_int8.
Such uses include declaring constants, using fp16 arithmetic, etc.

Components: Vulkan

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

VK-GL-CTS issue: 1874

Change-Id: Ia403aac8ae32646329f67bf48d6231af233e9c20

4 years agoUpdate device_group test to ignore VK_SUBOPTIMAL_KHR
Fabio [Thu, 25 Jul 2019 15:08:16 +0000 (17:08 +0200)]
Update device_group test to ignore VK_SUBOPTIMAL_KHR

The transform used to create the swapchain does not match the
surface rotation. This causes vkQueuePresentKHR to return
VK_SUBOPTIMAL_KHR. This return code can be ignored.

Components: Vulkan

VK-GL-CTS Issue: 1899

Affects: dEQP-VK.wsi.android.swapchain.render.device_group

Change-Id: I27d8e61007dd049b8e9cc532918056b8493a9b52

4 years agoAdd result buffer invalidates to depth stencil resolve tests
Stephen Gallimore [Wed, 31 Jul 2019 15:24:57 +0000 (16:24 +0100)]
Add result buffer invalidates to depth stencil resolve tests

Components: Vulkan
VK-GL-CTS issue: 1907
Affects: dEQP-VK.renderpass2.depth_stencil_resolve.*

Change-Id: I90920f6005b0d6a72a78c588f4c3abec81826516

4 years agoAdd missing invalidates in depth/stencil resolve tests
Ricardo Garcia [Wed, 7 Aug 2019 14:18:53 +0000 (16:18 +0200)]
Add missing invalidates in depth/stencil resolve tests

If the driver returns a non-coherent heap then the
dEQP-VK.renderpass2.depth_stencil_resolve.* may fail unpredictably as
the verify methods do not invalidate the result buffer before reading
the contents.

Affected tests:
dEQP-VK.renderpass2.depth_stencil_resolve.*

Components: Vulkan
VK-GL-CTS issue: 1907

Change-Id: I61c3fdc58ff521b751f1181282291ec1d941206b

4 years agoAdd missing checks for sampleShading feature
Chris Forbes [Sun, 28 Jul 2019 20:34:13 +0000 (13:34 -0700)]
Add missing checks for sampleShading feature

These cases were missed in the previous pass as they were masked by the
(correct) check for fragmentStoresAndAtomics.

Components: Vulkan

Affects: dEQP-VK.glsl.builtin_var.*

VK-GL-CTS Issue: 1901

Change-Id: I4d19c5075d14f60ead4c6df6370fffc870cde68a

4 years agoAlways dynamically lookup egl functions
Courtney Goeltzenleuchter [Wed, 10 Apr 2019 21:25:16 +0000 (15:25 -0600)]
Always dynamically lookup egl functions

Android's latest NDK includes support for EGL 1.5 functions.
However, only for API level 29. But due to unified headers
folks building for older API levels will also see the new
functions but won't be able to link. Making the egl functions
dynamic avoids build time issues.

Change-Id: I718e28c7422faf3c7b964ca70b86a1711a08ae54
Affects: EGL
Bug: 1873

4 years agoExplicitly set current values before drawing
James Dong [Mon, 8 Jul 2019 16:39:27 +0000 (10:39 -0600)]
Explicitly set current values before drawing

dEQP-GLES3.functional.vertex_array_objects.all_attributes was relying on
the value of disabled integer attributes. This behavior results in
undefined values, as the initial values for all vertex attributes are of
floating-point type.

Affects:

dEQP-GLES3.functional.vertex_array_objects.all_attributes

Components: AOSP

VK-GL-CTS public issue: 153

Change-Id: I8ffe4b581f100884b46fe68a751bf991cccb71e3

4 years agoBackport performance fix from cts-next-dev
Graeme Leese [Wed, 10 Jul 2019 11:13:29 +0000 (12:13 +0100)]
Backport performance fix from cts-next-dev

The subgroups tests on next-dev have been changed to run on a reduced
set of workgroup sizes to improve performance, so apply that change to
master as well.

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

Change-Id: I4fb386b567666589688f7265e5efe6c72d5fd0cd

4 years agoRemove superfluous shuffle code
Graeme Leese [Wed, 10 Jul 2019 10:53:32 +0000 (11:53 +0100)]
Remove superfluous shuffle code

The supportedCheck was checking whether the case was supported but the
actual test code was checking it again.

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

Change-Id: Ie98cb3aef8fe3f50068fd908feae95735b892f9c

4 years agoUpdate Vulkan headers to 1.1.117
Jeff Bolz [Thu, 8 Aug 2019 04:40:54 +0000 (23:40 -0500)]
Update Vulkan headers to 1.1.117

Should be no functional change, just brings the header up to date
to ease submitting new tests for those extensions. Two minor name
remaps were necessary in gen_framework.py

Components: Vulkan
Change-Id: I44a07f3a5ccd3426c22e95c70f231a24daf0d994

4 years agoMerge vk-gl-cts/gl-subgroups-dev into vk-gl-cts/master
Alexander Galazin [Fri, 9 Aug 2019 13:08:17 +0000 (15:08 +0200)]
Merge vk-gl-cts/gl-subgroups-dev into vk-gl-cts/master

Change-Id: Ib69ac2a513b45fbd1c3bfd72d72ae2b3ed9da046

4 years agoRename subgroup.partitioned tests
Jeff Bolz [Mon, 15 Jul 2019 19:51:44 +0000 (14:51 -0500)]
Rename subgroup.partitioned tests

Somehow the grouping of tests got out of sync with the other subgroup
tests like arithmetic/clustered. This fixes the naming/grouping to
be consistent with those.

Components: Vulkan
Affects: dEQP-VK.subgroups.partitioned.*
Change-Id: Ia8e02fd6ea7df04b91d0d086fcfdbd4e3e265d38

4 years agoUse templates instead of copying code
Graeme Leese [Wed, 26 Jun 2019 12:14:30 +0000 (13:14 +0100)]
Use templates instead of copying code

The precision tests make heavy use of templates yet they still have code
copied rather than making use of the templates. Squash some of the test
factory code into templates.

Components: Vulkan
Affects: dEQP-VK.glsl.builtin.precision*

Change-Id: Ic10cd7b3f65a632bd57b6f3beb01d087185e705a

4 years agoFix 16bit/8bit storage validation for workgroup memory tests
David Neto [Fri, 12 Jul 2019 20:52:03 +0000 (16:52 -0400)]
Fix 16bit/8bit storage validation for workgroup memory tests

Components: Vulkan

Affects:
dEQP-VK.spirv_assembly.instruction.compute.workgroup_memory.int8
dEQP-VK.spirv_assembly.instruction.compute.workgroup_memory.uint8
dEQP-VK.spirv_assembly.instruction.compute.workgroup_memory.float16

VK-GL-CTS issue: 1874

Change-Id: Ife60e90a6d190fa37b7d8055c1260b363c051e3d

4 years agoNeed Float16 in some derivative tests
David Neto [Fri, 12 Jul 2019 22:07:41 +0000 (18:07 -0400)]
Need Float16 in some derivative tests

Components: Vulkan

Affects:
dEQP-VK.spirv_assembly.instruction.graphics.float16.derivative_1.*
dEQP-VK.spirv_assembly.instruction.graphics.float16.derivative_2.*
dEQP-VK.spirv_assembly.instruction.graphics.float16.derivative_4.*

VK-GL-CTS issue: 1874

Change-Id: Ia75d608568c7580c1f11137507b142e1dbd397fd

4 years agoCheck if the statistics query results are linear
Pawel Ksiezopolski [Wed, 19 Jun 2019 09:07:37 +0000 (11:07 +0200)]
Check if the statistics query results are linear

Current tests check if query results are greater than or equal to
minimum values defined by the specification.
The task of this commit is to create additional constraint that
checks if query results do not produce some random garbage values.
In case of vertex, geometry and tesselation queries it is enough
to perform the same tests few times with varying number of
input vertices and to check if query results are linear.
Linearity of query results is estimated using Pearson correlation
coefficient.

Affects tests:
dEQP-VK.query_pool.statistics_query.*

Components: Vulkan

VK-GL-CTS issue: 876

Change-Id: Ie58b53d2a35291f565ac9c88773a4c2fa5d89656

4 years agoTest input attachments in random descriptor sets test group
Ricardo Garcia [Fri, 5 Jul 2019 09:44:54 +0000 (11:44 +0200)]
Test input attachments in random descriptor sets test group

Add support for input attachments in the random descriptor sets tests
group. This will improve test coverage and allow us to test
vkUpdateDescriptorSetWithTemplate with
VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, which is a case known to be missing
coverage.

Note: every descriptorset_random test will get a new component in its
name with several variants.

Affected tests:
dEQP-VK.binding_model.descriptorset_random.*

Components: Vulkan
VK-GL-CTS issue: 1869

Change-Id: I64ac976f24c291884e71aafb0c058a9340b584c1

4 years agoTest buffer and image properties with external host memory
Ricardo Garcia [Tue, 16 Jul 2019 09:02:40 +0000 (11:02 +0200)]
Test buffer and image properties with external host memory

This commit adds image and buffer property checks to the existing
external host memory tests (VK_EXT_external_memory_host).

In addition, fix a couple of validation errors in the existing memory
synchronization test.

Affected tests:
dEQP-VK.memory.external_memory_host.*

Components: Vulkan
VK-GL-CTS issue: 1884

Change-Id: I95aa3701769cb97ac0aa8873db4a43a1bd9f3667

4 years agoAdd barrier to access chain workgroup tests
Martin Freebody [Mon, 22 Jul 2019 13:30:24 +0000 (14:30 +0100)]
Add barrier to access chain workgroup tests

These tests can complete with a failure to match expected
result in the last array element due to a race condition
with the parallel work-items.

The first work-item should set the last array element to 0
before a function to read the last array element is executed
on a parallel work-item.

Without the barrier it's possible on occasional test runs
to read uninitialised memory into the last array element.

Components: Vulkan

VK-GL-CTS issue: 1893

Affects:
dEQP-VK.spirv_assembly.instruction.compute.ptr_access_chain.*

Change-Id: I072299f7995b8f65e26195cfddd12f49cffcc9ff

4 years agoFix wrong image usage flags in external memory info tests
Slawomir Cygan [Tue, 6 Aug 2019 19:53:18 +0000 (21:53 +0200)]
Fix wrong image usage flags in external memory info tests

According to spec:
  "If usage includes VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, usage must
   also contain at least one of VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT,
   VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, or
   VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT."

This change adds adds COLOR, DEPTH or INPUT usage bit alongside TRANSIENT usage.

VK-GL-CTS Issue: 1913

Components: Vulkan

Change-Id: If7d4b3889f9b8709af09d448fdb24e61d493ebde
Affects: dEQP-VK.api.external.memory*info

4 years agoMake random number usage platform independent
Ari Suonpaa [Tue, 23 Apr 2019 11:57:47 +0000 (14:57 +0300)]
Make random number usage platform independent

Generating multiple random numbers in argument
list can happen in different order depending on
implementation. This change makes these happen
in the same order with all implementations.

Affects:

dEQP-VK.api.granularity.*
dEQP-VK.draw.basic_draw.*
dEQP-VK.protected_memory.*
dEQP-VK.glsl.builtin.function.common.*
dEQP-VK.glsl.builtin.function.pack_unpack.*
dEQP-VK.glsl.texture_gather.*
dEQP-VK.spirv_assembly.*
dEQP-GLES3*.functional.shaders.builtin_functions.common.*

Components: Vulkan, OpenGL, Framework

(cherry picked from commit 0106f01209fe7abb7f4daf029318a1de17844c48)

VK-GL-CTS issue: 1591

Change-Id: Iaaff9625fd331ed7184efd50b89fc835c701ac6f

4 years agoUpdate Opengl registry files
Daniel Koch [Mon, 29 Jul 2019 15:29:24 +0000 (11:29 -0400)]
Update Opengl registry files

from latest public registry

Component: OpenGL
VK-GL-CTS Issue: 1698

Change-Id: I0eda9b7af5d13689a141e67f968a697241f32e1f

4 years agoAdd VK_EXT_shader_subgroup_ballot gl_SubGroup*MaskARB tests
Samuel Iglesias Gonsálvez [Thu, 13 Jun 2019 09:13:45 +0000 (11:13 +0200)]
Add VK_EXT_shader_subgroup_ballot gl_SubGroup*MaskARB tests

Added tests:

   dEQP-VK.subgroups.ballot_mask.ext_shader_subgroup_ballot.*

Components: Vulkan
VK-GL-CTS issue: 1692

Change-Id: I2c2523ac6f8bb6ab13b084700137227dd6882850

4 years agoFixes 64bit random values for 32bit CTS build
Arkadiusz Sarwa [Wed, 24 Jul 2019 10:41:42 +0000 (12:41 +0200)]
Fixes 64bit random values for 32bit CTS build

In 32bit build a 64bit random value is assigned
to 32bit value what cause different path of execution.

Components: Vulkan
VK-GL-CTS Issue: 1895

Affects:
dEQP-VK.memory.pipeline_barrier.all.*

Change-Id: I1f51b8b30be9a70ae82326609bc382431b8f3b80

4 years agoTesting for sampleShadingEnable
Boris Zanin [Fri, 5 Jul 2019 10:09:06 +0000 (12:09 +0200)]
Testing for sampleShadingEnable

Additional testing for sampleShadingEnable.

Add:
 * dEQP-VK.pipeline.multisample.min_sample_shading_enabled.*
 * dEQP-VK.pipeline.multisample.min_sample_shading_disabled.*

Components: vulkan

VK-GL-CTS issue: 1782

Change-Id: Idc7b5ab964a7f65fa6bb12a0dd9668fba2fa4bec

4 years agoMerge vk-gl-cts/vulkan-cts-1.1.5 into vk-gl-cts/master
Alexander Galazin [Wed, 24 Jul 2019 09:11:56 +0000 (11:11 +0200)]
Merge vk-gl-cts/vulkan-cts-1.1.5 into vk-gl-cts/master

Change-Id: Ica3065aaf5d56791205074a44bcce66bfa26f6cd

4 years agoMerge vk-gl-cts/vulkan-cts-1.1.4 into vk-gl-cts/vulkan-cts-1.1.5
Alexander Galazin [Wed, 24 Jul 2019 06:56:55 +0000 (08:56 +0200)]
Merge vk-gl-cts/vulkan-cts-1.1.4 into vk-gl-cts/vulkan-cts-1.1.5

Change-Id: I1e2517f737ee503fdd0f50c517270e35ed25b203