platform/upstream/VK-GL-CTS.git
7 years agopreprocessor: Undefining __VERSION__ on GLSL 3.30 is not an error
Eduardo Lima Mitev [Wed, 8 Mar 2017 08:42:25 +0000 (09:42 +0100)]
preprocessor: Undefining __VERSION__ on GLSL 3.30 is not an error

OpenGL Shading Language 4.5 spec, section '3.3 Preprocessor',
page 12 states:

   "By convention, all macro names containing two consecutive
    underscores ( __ ) are reserved for use by underlying
    software layers. Defining such a name in a shader does not
    itself result in an error, but may result in unintended
    behaviors that stem from having multiple definitions of the
    same name."

There is no explicit mention to #undef, but the consensus is that
defining or undefining are both subject to the same restrictions
in this context.

Affects:
GL45-CTS.shaders.preprocessor.definitions.undefine_version_fragment
GL45-CTS.shaders.preprocessor.definitions.undefine_version_vertex

VK-GL-CTS issue: 206

Components: OpenGL

Change-Id: I36c9ada736d7704767e403b18f21d7343dff1aa2

7 years agoSkip FRAMEBUFFER_UNSUPPORTED subtests on DSA textures_buffer
Alejandro Piñeiro [Thu, 2 Mar 2017 17:49:50 +0000 (18:49 +0100)]
Skip FRAMEBUFFER_UNSUPPORTED subtests on DSA textures_buffer

From OpenGL 4.5 spec, section 9.4.2 "Whole Framebuffer Completeness":

   "Although the GL defines a wide variety of internal formats for
    framebuffer-attachable images, such as texture images and
    renderbuffer images, some implementations may not support
    rendering to particular combinations of internal formats. If the
    combination of formats of the images attached to a framebuffer
    object are not supported by the implementation, then the
    framebuffer is not complete under the clause labeled
    FRAMEBUFFER_UNSUPPORTED .

    Implementations are required to support certain combinations of
    framebuffer internal formats as described under “Required
    Framebuffer Formats” in sec- tion 9.4.3."

That means that if the combination being tested returns
FRAMEBUFFER_UNSUPPORTED, it is still allowed by OpenGL spec. For those
cases, the test should skip instead of fail.

Affects:
GL45-CTS.direct_state_access.textures_buffer

Components: OpenGL

VK-GL-CTS: 201

Change-Id: Ia272a975e8417837637cd47b621b91306d1aa567

7 years agoCullDistanceTests/coverage: Fix a couple issues in the shaders
Eduardo Lima Mitev [Mon, 6 Mar 2017 14:45:35 +0000 (15:45 +0100)]
CullDistanceTests/coverage: Fix a couple issues in the shaders

There are two specific problems in the shaders of this test, both
preventing the fragment shader from receiving any fragment (no geometry
is renderer), and thus the gl_maxCullDistances value read back from the
texture is always zero.

The first issue is in the geometry shader. The 4 emitted vertices have
a 0.0 normal, the quad is not visible.

The second issue is in the tessellation evaluation shader, where the
value of gl_Position is not explicitly set, so the point is rendered
at an undefined location.

Components: OpenGL

Affects:
GL45-CTS.cull_distance.coverage

VL-GL-CTS issue: 197

Change-Id: I145894192fe9504808666e2c2fcd6cf53dbb03df

7 years agoFix GL45-CTS.cull_distance.functional test
Juan A. Suarez Romero [Tue, 28 Feb 2017 10:05:46 +0000 (10:05 +0000)]
Fix GL45-CTS.cull_distance.functional test

This commit fixes several issues in this test:

- Coordinate X conversion from float in [0, 1] range to uint in range
[0, m_to_with] is wrong. Same for coordinate Y.

- Offset drawing point for primitive point is wrong.

- Generated vertex shader for the case of dynamic index writes with
culling but not clipping fails to compile, due "unsized array index must
be constant". This happens because we make reference in the code to the
clipdistance array, which is unsized. This problem also happens with
clipping but not culling.

- Program fails to link when using tessellation shaders, due
"definitions of interface block `gl_PerVertex' do not match". This
happens because tessellation control shader redefines gl_PerVertex, but
tessellation evaluation shader don't.

Components: OpenGL

VK-GL-CTS issue: 191

Affects:
GL45-CTS.cull_distance.functional

Change-Id: I5143b45caa5a0490f58628326b44c4373d5c8305

7 years agoAdd CTS_ARB_sparse_texture_clamp tests
Adam Czupryna [Mon, 30 Jan 2017 07:04:50 +0000 (08:04 +0100)]
Add CTS_ARB_sparse_texture_clamp tests

Added CTS_ARB_sparse_texture_clamp cases:
ShaderExtensionTestCase
SparseTextureClampLookupResidencyTestCase
SparseTextureClampLookupColorTestCase

affects:

GL45-CTS.sparse_texture_tests.*
GL45-CTS.sparse_texture2_tests.*

components: OpenGL, Framework

VK-GL-CTS issue: 60

Change-Id: I1d312fe7fd82d5de74926d189f1e6ec6ce910ce2

7 years agoMerge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/master
Pyry Haulos [Thu, 9 Mar 2017 23:41:19 +0000 (15:41 -0800)]
Merge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/master

Change-Id: Ic82729c2a686a720ac8c2775b8a2dc92a25989b1

7 years agoRefactor vktShaderExecutor
Pyry Haulos [Wed, 8 Mar 2017 21:05:00 +0000 (13:05 -0800)]
Refactor vktShaderExecutor

ShaderExecutor Vulkan port had several issues:

 * Lifetime of ShaderExecutor was designed to extend from TestCase to
TestInstance. This was done in order to allow generating shader sources at
TestCase and later reuse same object to do actual execution when Vulkan
device was available. Result was total lifetime mess and leak of Vulkan
objects beyond TestInstance lifetime.

 * Whole UniformSetup system was badly designed mess that provided
functionality for just a few tests.

Following cleanups and fixes have been made:

 * ShaderExecutor objects are now expected to be live only when Vulkan
device is available, i.e. only within vkt::TestInstance. Shader source
generation part has been moved into a separate utility.

 * UniformSetup mess is removed and replaced with much leaner and
extensible way to supply additional resources. Descriptor set 1 is
reserved for test case specific resources and those can be provided by
supplying custom descriptor layout and descriptor set. Tests using old
UniformSetup system have been adjusted accordingly.

There is still room for additional improvements, such as moving much of
pipeline construction from ShaderExecutor::execute() into constructors,
but these can be done in follow-up CLs.

Affects following test groups:

dEQP-VK.glsl.builtin.*
dEQP-VK.glsl.opaque_type_indexing.
dEQP-VK.texture.explicit_lod.*

VK-GL-CTS issue: 182
Components: Vulkan

Change-Id: Icfc45a36cb4651f39f12608842ef347a55353d84

7 years agoImprove precision handling in texture.explicit_lod
Pyry Haulos [Mon, 13 Feb 2017 21:11:53 +0000 (13:11 -0800)]
Improve precision handling in texture.explicit_lod

This change improves precision requirement handling in
dEQP-VK.texture.explicit_lod test group by adding separate controls for
format conversion and filtering math.

Changed tests:
dEQP-VK.texture.explicit_lod.*

Components: Vulkan

Change-Id: Id64da1d63d87d02c73c757a3f2d5d50f2fbc19c0
(cherry picked from commit 4269dc0c1e513c550d3d45c16f2760450dfcef5c)

7 years agoMerge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/master
Pyry Haulos [Thu, 9 Mar 2017 23:01:35 +0000 (15:01 -0800)]
Merge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/master

Change-Id: I56bcaca8068dd1922af827f35253319b1106d5dd

7 years agoMerge vk-gl-cts/vulkan-cts-1.0.1 into vk-gl-cts/vulkan-cts-1.0.2
Pyry Haulos [Thu, 9 Mar 2017 23:01:33 +0000 (15:01 -0800)]
Merge vk-gl-cts/vulkan-cts-1.0.1 into vk-gl-cts/vulkan-cts-1.0.2

Change-Id: I14e2b7bbfe3940ace0e6ae9b661f2a56a49edf98

7 years agoMerge vk-gl-cts/vulkan-cts-1.0.0 into vk-gl-cts/vulkan-cts-1.0.1
Pyry Haulos [Thu, 9 Mar 2017 23:01:31 +0000 (15:01 -0800)]
Merge vk-gl-cts/vulkan-cts-1.0.0 into vk-gl-cts/vulkan-cts-1.0.1

Change-Id: Ica55df93dd12ea2c6460ec7c6fbb1383e6d38f4d

7 years agoAdd yflip versions of tessellation winding order tests
Jason Ekstrand [Thu, 26 Jan 2017 22:27:48 +0000 (14:27 -0800)]
Add yflip versions of tessellation winding order tests

Changed: dEQP-VK.tessellation.winding.triangles_*

Components: Vulkan

Change-Id: I3e0abc8d25132e129cb2979b1fce985ca4a60dc4

7 years agoImprove precision handling in tests with FragCoord
Arkadiusz Sarwa [Mon, 13 Feb 2017 09:24:26 +0000 (10:24 +0100)]
Improve precision handling in tests with FragCoord

The tests for gl_FragCoord are not accurate enough, these tests pass
event for invalid driver. The comparison is made on RGBA8 surfaces,
it is not accurate enough for the tests.

The fix makes comparison more precise for the tests.

Modified tests:
dEQP-VK.glsl.builtin_var.simple.fragcoord_xyz
dEQP-VK.glsl.builtin_var.simple.fragcoord_w

Components: Vulkan
VK-GL-CTS issue: 77

Change-Id: I34ba77e696524215468202ef3fe77d1284e3e3df

7 years agoAdd Khronos mustpass v3.2.3
Alexander Galazin [Wed, 8 Mar 2017 08:36:19 +0000 (09:36 +0100)]
Add Khronos mustpass v3.2.3

Change-Id: I7dafffd7928cee4653ac9073ecde18dba5a7a43a

7 years agoFix a compilation error on GCC 5.4
Maciej Jesionowski [Wed, 8 Mar 2017 13:15:55 +0000 (14:15 +0100)]
Fix a compilation error on GCC 5.4

Components: Vulkan
Change-Id: I6c6681d16613f18b2a3192368927f6d176f63a64

7 years agoTake snapshot of the AOSP master mustpass and use it in GL CTS
Alexander Galazin [Mon, 5 Dec 2016 09:25:27 +0000 (10:25 +0100)]
Take snapshot of the AOSP master mustpass and use it in GL CTS

Components: OpenGL
VK-GL-CTS issue: 23

Change-Id: I9ebb11fd8c69f1b697bb08ac7351033c9b06ef94

7 years agoMerge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/master
Pyry Haulos [Wed, 8 Mar 2017 23:26:36 +0000 (15:26 -0800)]
Merge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/master

Change-Id: Ice81ca8779a7f7cfea5d8fab0e4b48fe6e603ec2

7 years agoMerge vk-gl-cts/aosp-master into vk-gl-cts/master
Pyry Haulos [Wed, 8 Mar 2017 23:10:14 +0000 (15:10 -0800)]
Merge vk-gl-cts/aosp-master into vk-gl-cts/master

Components: AOSP, Framework

Change-Id: I0de6207abfc1c990a85fcf977d78ed1103c52a1b

7 years agoUse glReadnPixels only if KHR_robustness is supported
Alexander Galazin [Thu, 23 Feb 2017 12:01:18 +0000 (13:01 +0100)]
Use glReadnPixels only if KHR_robustness is supported

glReadnPixels is introduced in KHR_robustness/GLES 3.2.
Use of this function in GLES 3.1 tests will result in segfault
on implementations that don't support KHR_robustness.

Components: AOSP, Framework

Affects: dEQP-GLES31.functional.debug.negative_coverage.callbacks.buffer.read_pixels_format_mismatch

VK-GL-CTS issue: 166

Change-Id: Idbe8734f7d82882ea99c75a8b74d693ac6dd831f

7 years agoFix indirect draw line offset calculation
Graeme Leese [Thu, 2 Mar 2017 15:08:20 +0000 (15:08 +0000)]
Fix indirect draw line offset calculation

The GL_LINES test was correctly avoiding undefined rasterizer tie-break
conditions but other tests that draw lines were not. Include the fix in
the other tests.

Affects:
KHR-GLES31.core.draw_indirect.basic-mode-draw*-line*_adjacency

Components: OpenGL
VK-GL-CTS issue: 193

Change-Id: I58862469b0bae3b5f968bad8586adc7cad6ad7c7

7 years agoMerge "Modify EGL robustness tests to use VBOs"
Treehugger Robot [Mon, 6 Mar 2017 19:54:49 +0000 (19:54 +0000)]
Merge "Modify EGL robustness tests to use VBOs"

7 years agoModify EGL robustness tests to use VBOs
John Richardson [Fri, 3 Mar 2017 12:01:08 +0000 (12:01 +0000)]
Modify EGL robustness tests to use VBOs

Remove use of client-side vertex arrays and use buffer objects instead.
Delete buffers on teardown and in destructor.
Move test description logs to start log file.

Affected tests:
- dEQP-EGL.functional.robustness.reset_context.*

Change-Id: I9432258f30d6c7e02362c0b2f6c36fc3694bd72d

7 years agoFix "null" ID in sRGB decode tests
Pyry Haulos [Fri, 3 Mar 2017 16:44:08 +0000 (08:44 -0800)]
Fix "null" ID in sRGB decode tests

Use 0 as "null" GL object ID as -1 is potentially valid ID.

Change-Id: I95f9f0c300d5b6e95c0c7c81e29fd28ac9ca3b82

7 years agoAdd CTS_ARB_fragment_shader_interlock specification proposal
Adam Czupryna [Wed, 1 Feb 2017 14:07:45 +0000 (15:07 +0100)]
Add CTS_ARB_fragment_shader_interlock specification proposal

This is CTS_ARB_fragment_shader_interlock specification proposal

components: OpenGL

VK-GL-CTS issue: 61

Change-Id: I0a7827e87c807d1044d7434ac1e9833530be3cde

7 years agoFix narrowing conversion warning
Pyry Haulos [Thu, 2 Mar 2017 20:40:08 +0000 (12:40 -0800)]
Fix narrowing conversion warning

Change-Id: I07b20837e5dac2f6a88504b582732a7db10cf5c8

7 years agoModify single_tessellation_stage to check for GL_NV_gpu_shader5
Mark Adams [Thu, 2 Mar 2017 15:19:49 +0000 (10:19 -0500)]
Modify single_tessellation_stage to check for GL_NV_gpu_shader5

That extension permits the use of a tessellation control shader
without a tessellation evaluation shader. Affected tests:

dEQP-GLES31.functional.debug.negative_coverage.*.tessellation.single_tessellation_stage

7 years agoFix a compilation error on MSVC12
Maciej Jesionowski [Thu, 2 Mar 2017 11:51:39 +0000 (12:51 +0100)]
Fix a compilation error on MSVC12

There's a problem with uint32_t, so better just use delib defines.

Components: Vulkan

Change-Id: I589ac7f220a7e651ed31910d16c643866314f681

7 years agoMerge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/master
Pyry Haulos [Wed, 1 Mar 2017 15:53:48 +0000 (07:53 -0800)]
Merge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/master

Change-Id: I453e9f9eedc6e07d785d054b69c6822c0a9e80b1

7 years agoMerge vk-gl-cts/vulkan-cts-1.0.1 into vk-gl-cts/vulkan-cts-1.0.2
Pyry Haulos [Wed, 1 Mar 2017 15:53:46 +0000 (07:53 -0800)]
Merge vk-gl-cts/vulkan-cts-1.0.1 into vk-gl-cts/vulkan-cts-1.0.2

Change-Id: I1a17ff8600abeab32614212bdab2e4646e50bc25

7 years agoMerge vk-gl-cts/vulkan-cts-1.0.0 into vk-gl-cts/vulkan-cts-1.0.1
Pyry Haulos [Wed, 1 Mar 2017 15:53:44 +0000 (07:53 -0800)]
Merge vk-gl-cts/vulkan-cts-1.0.0 into vk-gl-cts/vulkan-cts-1.0.1

Change-Id: I9eec4dd1fa88a85374eba8d0851b00a28c50b4ac

7 years agoAdd new robustness extension tests
John Richardson [Wed, 1 Feb 2017 15:00:53 +0000 (15:00 +0000)]
Add new robustness extension tests

New tests for KHR_robustness extension. Attempts to provoke context
reset scenarios and test GL state after a reset has occurred.

New test group:
- dEQP-EGL.functional.robustness.*

New tests:
- create_context.query_robust_access
- create_context.no_reset_notification
- create_context.lose_context_on_reset

- reset_context.shaders.infinite_loop.*   (various shaders)
- reset_context.shaders.out_of_bounds.*   (various resource types)
- reset_context.fixed_function_pipeline.* (index and vertex buffers)

- negative_context.invalid_robust_context_creation
- negative_context.invalid_robust_shared_context_creation

Note: Test groups ending in *_non_robust are for internal use only.

Change-Id: I91d7e3e95ec52f908dbaa1f49c56dcd94d60fd8f

7 years agoFix tessellation support checks in negative binding tests
Mika Isojärvi [Wed, 22 Feb 2017 21:25:59 +0000 (13:25 -0800)]
Fix tessellation support checks in negative binding tests

Bug: 35618877
Test: Run the tests on couple of devices supporting tessellation
Change-Id: Ieca6a28a57a278a07ff688f760eb7da807e66d49

7 years agoMerge Vulkan CTS 1.0.2.1 into AOSP
Pyry Haulos [Mon, 27 Feb 2017 19:26:45 +0000 (11:26 -0800)]
Merge Vulkan CTS 1.0.2.1 into AOSP

Change-Id: Ib0aaf12ec60902ebc31d00ad02291bd3d1cd7fae

7 years agoFix bug in reallocation callback validation
Pyry Haulos [Thu, 23 Feb 2017 22:11:27 +0000 (14:11 -0800)]
Fix bug in reallocation callback validation

vk::validateAllocationCallbacks() didn't correctly handle a case where
reallocate(NULL, size) returned previously seen pointer value.

VK-GL-CTS issue: 176
Components: Vulkan

Change-Id: I0822f8e4176d20d7bf296cd85f5c5223e189d250

7 years agoFix input attachment layout in renderpass tests
Igor Ostrowski [Mon, 27 Feb 2017 12:47:12 +0000 (13:47 +0100)]
Fix input attachment layout in renderpass tests

Input attachment layout was hardcoded for descriptor set update.
Added input attachment layout getter.

Affects:

dEQP-VK.renderpass.*

Components: Vulkan

VK-GL-CTS issue: 189

Change-Id: I2083c7b0cf4c68072f98d369f6c3089c6eb2b184

7 years agoMerge vk-gl-cts-public/master into vk-gl-cts/master
Pyry Haulos [Mon, 27 Feb 2017 06:12:52 +0000 (22:12 -0800)]
Merge vk-gl-cts-public/master into vk-gl-cts/master

7 years agoMerge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/master
Pyry Haulos [Mon, 27 Feb 2017 05:36:38 +0000 (21:36 -0800)]
Merge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/master

Change-Id: I9d823bd148d6767786e6ad28f19fc381070d149f

7 years agoFix extension support checks in negative api tests
Graeme Leese [Thu, 23 Feb 2017 16:56:10 +0000 (16:56 +0000)]
Fix extension support checks in negative api tests

Add checks for tessellation and geometry shader support for negative
shader storage and primitive bounding box tests.

Move all uses of cubemap array textures inside the extension checks in
the texture tests.

Bug: 29835218
Change-Id: I6051fff231285ed7d9c71015c2bb11a9fc7b909b
Signed-off-by: Pierre Couillaud <pierre@broadcom.com>
7 years agoFetch gl.xml, egl.xml from Github repos
Alexander Galazin [Fri, 24 Feb 2017 20:47:42 +0000 (21:47 +0100)]
Fetch gl.xml, egl.xml from Github repos

SVN repository containing gl.xml and egl.xml is no longer updated.
The new locations for these files are OpenGL-Registry and
EGL-Registry repositories on Github.
Adjust fetching scripts to use the new locations.

Components: Framework
Affects: headers generation

Change-Id: Ic091a46c636d446b6a4751bd3b797bcd19f90014

7 years agoFix [Named]FramebufferTextureLayer tests
Alejandro Piñeiro [Wed, 15 Feb 2017 12:48:19 +0000 (13:48 +0100)]
Fix [Named]FramebufferTextureLayer tests

The test was failing because it was reusing the texture ID used while
testing FramebufferTexture. But that is a GL_TEXTURE_2D, that is a
wrong target for [Named]FramebufferTextureLayer. So for the other
subtests, that were checking things like invalid attachment, etc,
there was two possible errors, and mesa driver raised first the one
related to a wrong target.

This patch reuses a texture ID with a valid target, being also used to
test [Named]FramebufferTextureLayer

For what it is worth, [Named]FramebufferTextureLayer with a wrong
target is also tested.

Affects:
GL45-CTS.direct_state_access.framebuffers_texture_attachment_errors

Components: OpenGL

VK-GL-CTS issue: 173

Change-Id: I388e1593e67d8708433d0f4763c716a4f3f03067

7 years agoMake vertex shader boilerplate to set gl_Position
Lionel Landwerlin [Fri, 16 Dec 2016 13:17:02 +0000 (13:17 +0000)]
Make vertex shader boilerplate to set gl_Position

If we don't generate any fragment from the previous stages, the
fragment shader might not be run. Hence invalid results for
GL45-CTS.shader_image_load_store.multiple-uniforms in the fragment
stage.

Components: OpenGL
Affects: GL45-CTS.shader_image_load_store.multiple-uniforms
VK-GL-CTS issue: 30

Change-Id: I6342e27ffd51725879fe1519d81122f41cb81eef

7 years agoMerge vk-gl-cts/opengl-es-cts-3.2.2 into vk-gl-cts/master
Alexander Galazin [Fri, 24 Feb 2017 17:12:13 +0000 (18:12 +0100)]
Merge vk-gl-cts/opengl-es-cts-3.2.2 into vk-gl-cts/master

Change-Id: I039aa2432d455394b254e0556a1ab63f02fba35a

7 years agoFix post-depth coverage shader test case
Iago Toral Quiroga [Tue, 21 Feb 2017 11:26:10 +0000 (12:26 +0100)]
Fix post-depth coverage shader test case

The tests uses 4 different versions of GLSL shader code for
the fragment shader that are supposed to be assigned to the
variables m_fragShader{1..4} that are then used in the 4
test cases implemented. However, the last shader code is not
assigned to m_fragShader4, instead it immediately overwrites
m_fragShader3. The test would then fail as it attempts to build
a shader program with an empty string for the fragment shader
when it uses m_fragShader4.

Components: OpenGL
VK-GL-CTS issue: 181

Affects:
GL45-CTS.post_depth_coverage_tests.PostDepthShader

Change-Id: I49474f04668de2037b4afc5570082bd4110f4fab

7 years agoDirectStateAccessTexturesTests: fix textures_parameters_errors
Alejandro Piñeiro [Mon, 20 Feb 2017 12:23:16 +0000 (13:23 +0100)]
DirectStateAccessTexturesTests: fix textures_parameters_errors

Right now GL45-CTS.direct_state_access.textures_parameter_errors
expects INVALID_OPERATION when using a wrong target.

From OpenGL 4.5 spec, section 8.11.2, Texture Parameter Queries:

   "An INVALID_ENUM error is generated if the effective target is not
    one of the texture targets described above."

The test even has a comment about expecting a INVALID_ENUM, so this
seems a typo when calling CheckErrorAndLog

Affects:
GL45-CTS.direct_state_access.textures_parameter_errors

Components: OpenGL

VK-GL-CTS issue: 180

Change-Id: Id82559090ccefa5713b0dd01d0ef26fdf4860ed3

7 years agoUse glInvalidateBuffer[Sub]Data correctly
Nicolai Hähnle [Fri, 17 Feb 2017 17:45:03 +0000 (18:45 +0100)]
Use glInvalidateBuffer[Sub]Data correctly

These function take a buffer name, not a bind point.

Modules: OpenGL
Affects:
GL45-CTS.sparse_buffer_tests.BufferStorageTest

VK-GL-CTS issue: 178

Change-Id: Iffdecfb5dd738ea82073ccb1b8771ca411f8f3b8

7 years agoFix shaders using reserved keywords incorrectly
Nicolai Hähnle [Fri, 17 Feb 2017 15:38:02 +0000 (16:38 +0100)]
Fix shaders using reserved keywords incorrectly

"input" is a reserved keyword in GLSL 1.40 (and other versions,
for that matter); this test should never have passed for any
correct implementation.

"unsigned int" should be "uint".

Affects:
GL45-CTS.sparse_buffer_tests.BufferStorageTest

Modules: OpenGL
VK-GL-CTS Issue: 177

Change-Id: I68bba7548225ada7949182a1239d423eff15fc35

7 years agoGetTextureSubImageTests: Remove m_texture_rectangle_compressed
Eduardo Lima Mitev [Wed, 15 Feb 2017 11:37:31 +0000 (12:37 +0100)]
GetTextureSubImageTests: Remove m_texture_rectangle_compressed

GetTextureSubImage::Errors test attempts to setup a compressed texture
using GL_TEXTURE_RECTANGLE as target, during test preparation. This is
explicitly forbidden by the spec.

From OpenGL 4.5 PDF, section "8.7. COMPRESSED TEXTURE IMAGES", page 214:

    "An INVALID_ENUM error is generated if the target parameter to any
     of the CompressedTexImagenD commands is TEXTURE_RECTANGLE or
     PROXY_TEXTURE_RECTANGLE ."

This patch removes the m_texture_rectangle_compressed texture from the
test, and all the associated test sub-cases.

Affects: GL45-CTS.get_texture_sub_image.errors_test
VK-GL-CTS issue: 169
Components: OpenGL

Change-Id: Ia3c2008cb948662f064dbc13fcd4d61c7d2caebf

7 years agoUnsized array of arrays in uniform block
Andres Gomez [Tue, 20 Dec 2016 17:25:46 +0000 (19:25 +0200)]
Unsized array of arrays in uniform block

From the GL_ARB_arrays_of_arrays spec:

   "For unsized arrays, only the outermost dimension can be lacking a
    size. A type that includes an unknown array size cannot be formed
    into an array until it gets an explicit size."

This is later further detailed as per OpenGL® Shading Language 4.40.

From page 3 (page 9 of the PDF) of the GLSL 4.00 v9 spec:

  "* Bug 11987: Allow array-of-array constructors and initialized
     variables to have any dimension unsized (not just the outer
     dimension) and get their size from the content of the constructor
     or initializer."

From page 37 (page 43 of the PDF) of the GLSL 4.00 v9 spec:

  " vec4 a[][] = { vec4[2](vec4(0.0), vec4(1.0)), // okay, size to
                   vec4[2](vec4(0.0), vec4(1.0)), //       a[3][2]
                   vec4[2](vec4(0.0), vec4(1.0)) };"

From page 38 (page 44 of the PDF) of the GLSL 4.00 v9 spec:

  "For implicitly-sized or run-time-sized arrays, only the outermost
   dimension can be lacking a size. A type that includes an unknown
   array size cannot be formed into an array until it gets an explicit
   size, except for shader storage blocks where the only unsized array
   member is the last member of the block."

Hence, in the absence of a constructor/initializer, unsized arrays are
only allowed for the outermost dimension of an AoA.

Affects:

GL43-CTS.arrays_of_arrays_gl.InteractionUniformBuffers3

Components: OpenGL
VK-GL-CTS issue: 146

Change-Id: Icbfe49c16e8ce7ffd55b92adede90405ac8e5f26

7 years agoMerge "Drop MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS to 2048"
Pyry Haulos [Fri, 24 Feb 2017 16:52:34 +0000 (16:52 +0000)]
Merge "Drop MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS to 2048"

7 years agoUnsized array of arrays in shader storage block
Andres Gomez [Tue, 20 Dec 2016 17:25:46 +0000 (19:25 +0200)]
Unsized array of arrays in shader storage block

From the GL_ARB_arrays_of_arrays spec:

   "For unsized arrays, only the outermost dimension can be lacking a
    size. A type that includes an unknown array size cannot be formed
    into an array until it gets an explicit size."

This is later further detailed as per OpenGL® Shading Language 4.40.

From page 3 (page 9 of the PDF) of the GLSL 4.00 v9 spec:

  "* Bug 11987: Allow array-of-array constructors and initialized
     variables to have any dimension unsized (not just the outer
     dimension) and get their size from the content of the constructor
     or initializer."

From page 37 (page 43 of the PDF) of the GLSL 4.00 v9 spec:

  " vec4 a[][] = { vec4[2](vec4(0.0), vec4(1.0)), // okay, size to
                   vec4[2](vec4(0.0), vec4(1.0)), //       a[3][2]
                   vec4[2](vec4(0.0), vec4(1.0)) };"

From page 38 (page 44 of the PDF) of the GLSL 4.00 v9 spec:

  "For implicitly-sized or run-time-sized arrays, only the outermost
   dimension can be lacking a size. A type that includes an unknown
   array size cannot be formed into an array until it gets an explicit
   size, except for shader storage blocks where the only unsized array
   member is the last member of the block."

Hence, in the absence of a constructor/initializer, unsized arrays are
only allowed for the outermost dimension of an AoA.

Affects:

GL43-CTS.arrays_of_arrays_gl.InteractionStorageBuffers3

Components: OpenGL
VK-GL-CTS issue: 145

Change-Id: Ic751b3ff52a84e3aee604552edf9441211890a11

7 years agoUnsized array of arrays in uniform variable
Andres Gomez [Tue, 20 Dec 2016 16:57:57 +0000 (18:57 +0200)]
Unsized array of arrays in uniform variable

From the GL_ARB_arrays_of_arrays spec:

   "For unsized arrays, only the outermost dimension can be lacking a
    size. A type that includes an unknown array size cannot be formed
    into an array until it gets an explicit size."

This is later further detailed as per OpenGL® Shading Language 4.40.

From page 3 (page 9 of the PDF) of the GLSL 4.00 v9 spec:

  "* Bug 11987: Allow array-of-array constructors and initialized
     variables to have any dimension unsized (not just the outer
     dimension) and get their size from the content of the constructor
     or initializer."

From page 37 (page 43 of the PDF) of the GLSL 4.00 v9 spec:

  " vec4 a[][] = { vec4[2](vec4(0.0), vec4(1.0)), // okay, size to
                   vec4[2](vec4(0.0), vec4(1.0)), //       a[3][2]
                   vec4[2](vec4(0.0), vec4(1.0)) };"

From page 38 (page 44 of the PDF) of the GLSL 4.00 v9 spec:

  "For implicitly-sized or run-time-sized arrays, only the outermost
   dimension can be lacking a size. A type that includes an unknown
   array size cannot be formed into an array until it gets an explicit
   size, except for shader storage blocks where the only unsized array
   member is the last member of the block."

Hence, in the absence of a constructor/initializer, unsized arrays are
only allowed for the outermost dimension of an AoA.

Affects:

GL43-CTS.arrays_of_arrays_gl.InteractionUniforms2

Components: OpenGL
VK-GL-CTS issue: 144

Change-Id: Icd3e710f1bb69b35355a5c4172dc8839b9f98c82

7 years agoBufferStorageTests: do not unmap with MapOwner if not needed
Alejandro Piñeiro [Fri, 3 Feb 2017 17:33:02 +0000 (18:33 +0100)]
BufferStorageTests: do not unmap with MapOwner if not needed

This test uses the following method to call MapRange on a buffer:

   Buffer::MapOwner Buffer::MapRange(glw::GLintptr offset,
                                     glw::GLsizeiptr length,
                                     glw::GLenum access)

It returns a MapOwner, that unmaps the buffer when it is destroyed.

For some tests, it is called like this:

{ /* start test */
   {
     buffer.MapRange(<params>);
   } /* freed here */

   /* Do stuff with the buffer. Assumes to be still mapped */

   /* Checks the buffer */

} /* end test */

The problem with this approach is that as the Mapowner returned by
MapRange is not used, it is destroyed (on the previous code snippet at
"freed here"), and the buffer is unmapped unintentionally.

This patch gets out the call to MapRange, so it is not unmapped until
the end (on the code snippet, at "end test").

Fixes the following tests (only Mesa Intel driver tested):
GL45-CTS.buffer_storage.get_buffer_parameter
GL45-CTS.buffer_storage.map_persistent_buffer_sub_data
GL45-CTS.buffer_storage.map_persistent_read_pixels

Components: OpenGL
VK-GL-CTS issue: 148

Change-Id: I676eeaf0808e9bb19617bde7d658c14859f1357d

7 years agoMerge pull request #30 from BigBigos/master
Piers Daniell [Fri, 24 Feb 2017 16:05:36 +0000 (09:05 -0700)]
Merge pull request #30 from BigBigos/master

Fix GL45-CTS.pipeline_statistics_query_tests_ARB.functional_default_qo_values

7 years agoDrop MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS to 2048
Pyry Haulos [Thu, 23 Feb 2017 20:50:22 +0000 (12:50 -0800)]
Drop MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS to 2048

GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS minmax has been changed to
2048 (from 4096) in OpenGL ES 3.2 spec in response to bug 12823.

Bug: 35619900
Change-Id: I59d75d23df02d339bf7094a8e73d3a24d2e785be

7 years agoAdd render to mipmaps tests
Maciej Jesionowski [Tue, 17 Jan 2017 15:36:33 +0000 (16:36 +0100)]
Add render to mipmaps tests

This test repeatedly draws into the same image using consecutive
mip levels as color and dept/stencil attachments. All mip levels
and array layers are exercised.

Modified tests:

dEQP-VK.pipeline.render_to_image.*

New tests:

dEQP-VK.pipeline.render_to_image.*.mipmap.*

Components: Vulkan
Vulkan CTS issue: 487, 535

Change-Id: I7e4b3c6978d069c0accc377e9ab6e9d05e8e3cc6

7 years agoAdd max size attachments tests
Maciej Jesionowski [Tue, 17 Jan 2017 15:36:33 +0000 (16:36 +0100)]
Add max size attachments tests

This test creates very big color, and depth/stencil attachments
in all possible dimensions and layers.

Original tests in the affected group were moved to *.small.*
subgroup.

Modified tests:

dEQP-VK.pipeline.render_to_image.*.small.*

New tests:

dEQP-VK.pipeline.render_to_image.*.huge.*

Components: Vulkan
Vulkan CTS issue: 451, 535

Change-Id: I1e3bd1f7a657ff837b830bbada539a1240b1fd04

7 years agoAdd framebuffer attachment size tests
Iago Toral Quiroga [Tue, 10 Jan 2017 11:50:23 +0000 (12:50 +0100)]
Add framebuffer attachment size tests

New tests:
- dEQP-VK.pipeline.framebuffer_attachment.*

VK-GL-CTS issue: 72
Components: Vulkan

Change-Id: Iab4c077d60471633688476a87570e779d56bcda8

7 years agoModify tessellation_not_active to check for GL_NV_gpu_shader5
Mark Adams [Wed, 22 Feb 2017 22:03:36 +0000 (17:03 -0500)]
Modify tessellation_not_active to check for GL_NV_gpu_shader5

That extension permits use of GL_PATCHES for stages other than
tessellation stages. Affected test:

dEQP-GLES31.functional.debug.negative_coverage.get_error.tessellation.tessellation_not_active

Bug 35670519

7 years agoMerge "Fix whitespace issues"
Treehugger Robot [Wed, 22 Feb 2017 19:44:27 +0000 (19:44 +0000)]
Merge "Fix whitespace issues"

7 years agoAdd non-seperable TCS-but-no-TES subcase and fix draw time check subcase
John Richardson [Mon, 20 Feb 2017 11:26:04 +0000 (11:26 +0000)]
Add non-seperable TCS-but-no-TES subcase and fix draw time check subcase

- Add a non-separable TCS-but-no-TES (new subcase).

Section 7.3 of the OpenGL ES 3.2 specification says:

   "Linking can fail for [...] any of the following reasons:

    * program contains an object to form a tessellation evaluation
      shader [...] and [...] the program is not separable and
      contains no object to form a tessellation control shader"

Add a test to ensure the implementation does raise a link error.

- Make program separable in TES-but-no-TCS draw time check test (fix)

Since the test is trying to check for a draw time error, it should use
a separable program - otherwise we may hit a link error.

Changes made to test case:
dEQP-GLES31.functional.debug.negative_coverage.*.tessellation.single_tessellation_stage

Bug: 35354738
Change-Id: I902106864059cfbe7d718da0d0527284de04a915

7 years agoFix whitespace issues
Pyry Haulos [Wed, 22 Feb 2017 18:05:57 +0000 (10:05 -0800)]
Fix whitespace issues

Change-Id: I31cd4e4d3e113192fce0bccd20fd8fa14d182620

7 years agoAdd GetFrameTimestamps tests
Brian Anderson [Sun, 22 Jan 2017 00:03:19 +0000 (16:03 -0800)]
Add GetFrameTimestamps tests

Add tests for EGL_ANDROID_get_frame_timestamps.

Verifies:
1) Frame IDs properly identify frames.
2) The frame timestamp ordering is correct
3) The compositor timing values are reasonable.
4) All timestamps from the most recently swapped frame can
   be retrieved without additional swaps.

Test: --deqp-case=dEQP-EGL*get_frame_timestamps*
Change-Id: I393a3bc79f019951a2fddb83760b6e1d919663b6

7 years agoMerge "Fix multiple resource leaks in new srgb_texture_decode tests"
Treehugger Robot [Tue, 21 Feb 2017 18:52:36 +0000 (18:52 +0000)]
Merge "Fix multiple resource leaks in new srgb_texture_decode tests"

7 years agoMerge "Reduce read pixel calls in copy image tests"
Kalle Raita [Tue, 21 Feb 2017 17:43:45 +0000 (17:43 +0000)]
Merge "Reduce read pixel calls in copy image tests"

7 years agoMerge "Restructure copy image test iterations"
Kalle Raita [Tue, 21 Feb 2017 17:43:25 +0000 (17:43 +0000)]
Merge "Restructure copy image test iterations"

7 years agoFix multiple resource leaks in new srgb_texture_decode tests
Mark Adams [Fri, 17 Feb 2017 19:14:18 +0000 (14:14 -0500)]
Fix multiple resource leaks in new srgb_texture_decode tests

There were multiple issues here, ranging from never freeing resources,
to overwriting resources, to only freeing them at class destruction
instead of deinit time. This was resulting in hitting OOM on platforms
without tons of memory.

Bug: 35457323
Change-Id: I492177bb9e71bdbc7efc9d3a7c8a34bef35c709e

7 years agoBuild fix (uint32_t used instead of deUint32)
Boris Zanin [Tue, 21 Feb 2017 11:56:07 +0000 (12:56 +0100)]
Build fix (uint32_t used instead of deUint32)

It looks like uint32_t is not used within the CTS.
Replacing it with deUint32 allows build to pass.

Components: Vulkan

VK-GL-CTS Issue #66

Change-Id: Ia23f3fb7fe87ec21349c46df52c7b9f83dd14a32

7 years agoMerge changes Icb29d2da,Ida906e21
Pyry Haulos [Fri, 17 Feb 2017 20:21:40 +0000 (20:21 +0000)]
Merge changes Icb29d2da,Ida906e21

* changes:
  Add a non-separable TCS-but-no-TES subcase.
  Make program separable in TCS-but-no-TES draw time check test.

7 years agoWorkaround SSL cert issues, enable python 3
Boris Zanin [Mon, 13 Feb 2017 09:47:28 +0000 (10:47 +0100)]
Workaround SSL cert issues, enable python 3

 * The script command line switch --insecure added to bypass SSL
   certificate validity checks. Though bypassing is not recommended,
   sometimes the issue can be resolved on the remote side only,
   which we have no control over. For example please see
   https://sourceforge.net/p/forge/site-support/14336/
   The parameter is supported for pythons 2.7.9 and 3.4.3 and newer,
   due to older versions of urlopen do not support context parameter

 * Minor changes allow to run fetch_sources.py under both v2 and v3
   pythons. Changes required due to python 3 prohibits statement-style
   usage for print and forces print statements to be converted into
   functions. Also urlopen() is in library urllib.request in python 3

Components: Framework

VK-GL-CTS Issue #64

Change-Id: If4354332ea19878f8f72352e2df5cac9ee254ac6

7 years agoFix incorrectly defined image memory barrier
Marcin Kańtoch [Fri, 10 Feb 2017 09:43:52 +0000 (10:43 +0100)]
Fix incorrectly defined image memory barrier

In ResolveImageToImage::iterate() method a memory barrier is defined
to change the layout of source image. By mistake destination image
parameters are used to define subresource range. It causes validation
errors as in some cases the subresource range extends beyond
the dimensions of the source image.

The fix uses source image parameters to define the memory barrier.

Modified tests:
dEQP-VK.api.copy_and_blit.resolve_image.*

Components: Vulkan
VK-GL-CTS issue: 160

Change-Id: I0ef72fbc99b127129441b7c66b43afd7b5a1e0ef

7 years agoMove DrawElementsBaseVertexTests to GL40 package
Nicolai Hähnle [Thu, 2 Feb 2017 15:18:57 +0000 (16:18 +0100)]
Move DrawElementsBaseVertexTests to GL40 package

These tests make use of tessellation shaders, which were introduced
in 4.0.

The "using deqp::TestCaseGroup" is added to fix compilation:
gl3cTestPackages.cpp refers to glcts::TestCaseGroup. Similar using
directives are spread throughout the code base, one of them is in
esextcDrawElementsBaseVertexTests.hpp, which is no longer included.

Affects:
GL45-CTS.draw_elements_base_vertex_tests.*

Components: OpenGL
VK-GL-CTS issue: 28
Change-Id: I7fd2d2a641532ee4ac44ad2d71544ce08b9b69ec

7 years agodEQP-VK: Enable b10g10r11 and e5b9g9r9 blitting tests
Jason Ekstrand [Tue, 24 Jan 2017 01:44:17 +0000 (17:44 -0800)]
dEQP-VK: Enable b10g10r11 and e5b9g9r9 blitting tests

This enables 620 new tests for blitting to/from e5b9g9r9 and b10g10r10.
Looking through vulkan.gpuinfo.org, most implementations support the
BLIT_SRC_BIT on these formats.  I have a branch of our driver that
supports BLIT_DST_BIT for these formats and the tests all work fine.

Change-Id: I964abad8c44d3d7cc52a79bbb73ee6b9833845d6

7 years agoFix dethread build for OS X and iOS
Pyry Haulos [Thu, 16 Feb 2017 19:24:18 +0000 (11:24 -0800)]
Fix dethread build for OS X and iOS

Change-Id: I6fb2f2af89d7568bd473597a0d413c3987e457ae

7 years agoFix atan2() precision tests and add to mustpass
Pyry Haulos [Fri, 27 Jan 2017 17:02:12 +0000 (09:02 -0800)]
Fix atan2() precision tests and add to mustpass

atan2() had a bug where tests were rounding codomain -PI..PI inwards,
not outwards, causing it to reject perfectly valid roundings of constant
PI.

Changed tests:

dEQP-VK.glsl.builtin.precision.atan2.*

Change-Id: Ib75da103944f773dd819c459b9aa1257c58ca921
Components: Vulkan

7 years agoTest descriptor_update_template, push_descriptor
Petros Bantolas [Fri, 4 Nov 2016 15:12:52 +0000 (15:12 +0000)]
Test descriptor_update_template, push_descriptor

Extended the existing binding_model tests with 3 new variants,
'with_template', 'with_push_template' and 'with_push'.

The least invasive method to support push descriptor updates without
template was to persist the DescriptorSetUpdateBuilder object in the
test instance classes, so that it can be referenced when building the
command buffer.

Change-Id: I731fa41c5ff99ab1d390d77d7aabb4424e091e35
(cherry picked from commit 7f5ba3914c1d9033dd4f896ef6fcaa22f5c5e038)

7 years agoFix coding error in protocol detection
Alexander Galazin [Tue, 14 Feb 2017 12:24:14 +0000 (13:24 +0100)]
Fix coding error in protocol detection

* add 'return' statement to detectProtocol
* call detectProtocol as a class member not as a global function

Components: Framework
Affects: KC CTS checkout

Change-Id: Id226166d0c35f6d10b23307e5cdec0fbd29102e8

7 years agoAdd sRGB skip decode test
Michael Hadley [Wed, 1 Feb 2017 12:48:08 +0000 (12:48 +0000)]
Add sRGB skip decode test

New Tests:
- deqp-case=dEQP-GLES31.functional.srgb_texture_decode.*

Change-Id: I0257e63b15ee0334efad985411d8070ddecdd51a

7 years agoReduce read pixel calls in copy image tests
Kalle Raita [Thu, 19 Jan 2017 22:15:58 +0000 (14:15 -0800)]
Reduce read pixel calls in copy image tests

Reduce glReadPixels calls in the copy image tests by rendering multiple
texture sub-images for each read back. Significant improvement for
certain platforms, no impact on others.

Bug: 33965234
Test: Run tests on Pixel C and Pixel XL, Check that old N9 results still
have same failures. Spot checks with 240x200 target surface.
Change-Id: I133c56b7855a664f164f1eb0b1307259462e098f

7 years agoRestructure copy image test iterations
Kalle Raita [Tue, 24 Jan 2017 19:47:17 +0000 (11:47 -0800)]
Restructure copy image test iterations

Packing test iterations so that work per buffer swap is maximized
without running the risk of hitting per-iteration timeout. Yields
execution time drops of roughly 50% on at least 2 GPU architectures.

Bug: 33965234
Test: Copy image tests on multiple devices and L MR1 N9 for detection capability.
Change-Id: I7de5231da0d8a1d2bd22ec3741f1481e2ebd5475

7 years agoAdd create functions for common Vulkan types.
Mika Isojärvi [Wed, 8 Feb 2017 00:37:51 +0000 (16:37 -0800)]
Add create functions for common Vulkan types.

These functions simplify creating the Vulkan objects by taking the
arguments directly instead of passing through struct. Multiple test
cases already reimplement these functions.

Change-Id: I09f6b0163b5aa2198617230767cd072185afe45c

7 years agoImprove precision handling in texture.explicit_lod
Pyry Haulos [Mon, 13 Feb 2017 21:11:53 +0000 (13:11 -0800)]
Improve precision handling in texture.explicit_lod

This change improves precision requirement handling in
dEQP-VK.texture.explicit_lod test group by adding separate controls for
format conversion and filtering math.

Changed tests:
dEQP-VK.texture.explicit_lod.*

Components: Vulkan

Change-Id: Id64da1d63d87d02c73c757a3f2d5d50f2fbc19c0

7 years agoStart new mustpass for Vulkan CTS 1.0.3
Pyry Haulos [Mon, 13 Feb 2017 19:16:33 +0000 (11:16 -0800)]
Start new mustpass for Vulkan CTS 1.0.3

Vulkan CTS 1.0.2 mustpass is now archived under mustpass/1.0.2 and new
mustpass can be found under mustpass/1.0.3.

Components: Vulkan

Change-Id: I7c073dc7436a434558ba1710e01988377a8d686c

7 years agoAdd a non-separable TCS-but-no-TES subcase.
Kenneth Graunke [Sat, 11 Feb 2017 06:45:39 +0000 (22:45 -0800)]
Add a non-separable TCS-but-no-TES subcase.

   "Linking can fail for [...] any of the following reasons:

* program contains an object to form a tessellation control
  shader [...] and [...] the program is not separable and
  contains no object to form a tessellation evaluation shader"

Add a test to ensure the implementation does raise a link error.

The new subcase is part of:
dEQP-GLES31.functional.debug.negative_coverage.*.tessellation.single_tessellation_stage

Change-Id: Icb29d2da50b2c327bfd2196af9be56bb7d8644f9

7 years agoMake program separable in TCS-but-no-TES draw time check test.
Kenneth Graunke [Sat, 11 Feb 2017 05:30:50 +0000 (21:30 -0800)]
Make program separable in TCS-but-no-TES draw time check test.

Section 7.3 of the OpenGL ES 3.2 specification says:

   "Linking can fail for [...] any of the following reasons:

    * program contains an object to form a tessellation control
      shader [...] and [...] the program is not separable and
      contains no object to form a tessellation evaluation shader"

Since the test is trying to check for a draw time error, it should use
a separable program - otherwise we may hit a link error.

Fixes a bug in:
dEQP-GLES31.functional.debug.negative_coverage.*.tessellation.single_tessellation_stage

Change-Id: Ida906e21c3e3534fd2a8c7bac0334083881bdb19

7 years agoMerge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/master
Pyry Haulos [Mon, 13 Feb 2017 19:06:24 +0000 (11:06 -0800)]
Merge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/master

Change-Id: I0fc80b05b1d3a795fff26f6c971e57064d224478

7 years agoUpdate Android CTS Vulkan mustpass
Pyry Haulos [Mon, 13 Feb 2017 18:42:12 +0000 (10:42 -0800)]
Update Android CTS Vulkan mustpass

Following commits modify Vulkan CTS 1.0.2 mustpass:

 * fbaba83dbee101b3096ce33f21ae398efee3fa67
 * c09596ed4b8d17f057f77a42475d59c1ac126797

This change simply updates Android version of mustpass to match Khronos
Vulkan CTS 1.0.2 mustpass.

Change-Id: I79e2696ec4c457d11b59e03cf2a73977ab98d8d5
Components: AOSP

7 years agoUpdate Android CTS Vulkan mustpass to match 1.0.2
Pyry Haulos [Tue, 31 Jan 2017 00:02:32 +0000 (16:02 -0800)]
Update Android CTS Vulkan mustpass to match 1.0.2

This CL updates Android CTS mustpass for Vulkan to match Khronos Vulkan
CTS 1.0.2.0.

Change-Id: Ia2f82b5f6675c67940679eb98f59510f264d62bf
(cherry picked from commit 15f342274521c1be1032e993dbfd4a46b878f337)

7 years agoMerge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/master
Pyry Haulos [Mon, 13 Feb 2017 18:34:40 +0000 (10:34 -0800)]
Merge vk-gl-cts/vulkan-cts-1.0.2 into vk-gl-cts/master

Change-Id: Ie75f95c0972b43843398ca6d68fd39a538f23761

7 years agoMerge vk-gl-cts/vulkan-cts-1.0.1 into vk-gl-cts/vulkan-cts-1.0.2
Pyry Haulos [Mon, 13 Feb 2017 18:34:37 +0000 (10:34 -0800)]
Merge vk-gl-cts/vulkan-cts-1.0.1 into vk-gl-cts/vulkan-cts-1.0.2

Change-Id: Ida077bae420c265f4a92d78d68b0f1c9b8d1c85c

7 years agoWrite gl_PointSize value when it is undefined
Iago Toral Quiroga [Fri, 10 Feb 2017 10:35:52 +0000 (11:35 +0100)]
Write gl_PointSize value when it is undefined

gl_PointSize is undefined unless expicitly written to. The only
exception to this rule is the case when
shaderTessellationAndGeometryPointSize is disabled, in which case it
defaults to 1.0 for these stages.

Since we don't have access to the physical device features at shader
compile time, implement two variants of the tessellation evaluation
shader when point mode is enabled, one that writes gl_PointSize and
one that doesn't and decide the one we need at run time based on
whether the feature is enabled or not.

Components: Vulkan
Fixes VK-GL-CTS issue: 159

Affects:
dEQP-VK.tessellation.primitive_discard.*point_mode

Change-Id: Idadbc70a704f00ed601ff65afeb2a3edfbeb3f19

7 years agoFix a few bugs in a EGL_KHR_no_config_context test.
Kenneth Graunke [Thu, 2 Feb 2017 18:40:02 +0000 (10:40 -0800)]
Fix a few bugs in a EGL_KHR_no_config_context test.

The dEQP-EGL.functional.create_context.no_config test had the eglBindAPI
check backwards - so it was skipping APIs assuming they failed when they
actually succeeded.

Secondly, it failed to actually set the test result to "pass" if all
cases passed, which led to assertion failures:

    Assertion `testResult != QP_TEST_RESULT_LAST' failed.

Change-Id: I7a20467012fd6c174f79679bbf640917c327574c

7 years agoFix crashes in dEQP-VK.glsl.matrix.inverse.*
Iago Toral Quiroga [Thu, 2 Feb 2017 09:09:53 +0000 (10:09 +0100)]
Fix crashes in dEQP-VK.glsl.matrix.inverse.*

This is a regression caused by altering the value of the GRID_SIZE
in commit 2ba66fa2, which results in the inverse() tests generating
input matrices which determinant is zero, and thus, cannot be
inverted, which makes the tests hit an assertion.

This patch adds a mechanism for shader tests to specify a grid size
different from the default. This allows shader testst that are
sensitive to this value, such as matrix inverse tests, to define
their own requirements.

Fixes VK-GL-CTS isssue: 66
Components: Vulkan

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

Change-Id: I31a34c2d156ee5b98d2de1b10ac4cec1a90d480e

7 years agogeometry_shader/api: Fix linking error
Antia Puentes [Tue, 17 Jan 2017 20:30:31 +0000 (21:30 +0100)]
geometry_shader/api: Fix linking error

The tests redeclared the built-in 'gl_PerVertex' interface block in the
Vertex shader when run in a GL context. However, they did not redeclare
'in gl_PerVertex gl_in[]' and they used it, leading to an undesirable
linking error which is not what the test wished to check.

The patch adds the 'in gl_PerVertex gl_in[]' redeclaration to the
Geometry shader when the tests are run under GL.

From the GLSL 4.5 specification, "7.1 Built-In Language Variables"
(page 130):

"If multiple shaders using members of a built-in block belonging to
the same interface are linked together in the same program, they
must all redeclare the built-in block in the same way, as described
in section 4.3.9 “Interface Blocks” for interface-block matching, or
a link-time error will result. It will also be a link-time error if
some shaders in a program redeclare a specific built-in interface
block while another shader in that program does not redeclare that
interface block yet still uses a member of that interface block. If
a built-in block interface is formed across shaders in different
programs, the shaders must all redeclare the built-in block in the
same way (as described for a single program), or the values passed
along the interface are undefined."

VK-GL-CTS Issue: 130

Components: OpenGL

Affects:

GL44-CTS.geometry_shader.api.insufficient_emitted_vertices
GL44-CTS.geometry_shader.api.incompatible_draw_call_mode
GL45-CTS.geometry_shader.api.insufficient_emitted_vertices
GL45-CTS.geometry_shader.api.incompatible_draw_call_mode

Change-Id: I7d5f54b287b778e46376ef6ac9effcd90778705c

7 years agoTake GL_MAX_IMAGE_SAMPLES into account
Nicolai Hähnle [Thu, 2 Feb 2017 15:43:40 +0000 (16:43 +0100)]
Take GL_MAX_IMAGE_SAMPLES into account

GL45-CTS.shader_texture_image_samples_tests.image_functional_test
tests imageSamples(), but binds images without checking whether their
number of samples are within the bounds allowed by
GL_MAX_IMAGE_SAMPLES.

This change brings the test in line with the shader_image_size_test,
which also skips unsupported sample counts.

Affects:
GL45-CTS.shader_texture_image_samples_tests.image_functional_test

Components: OpenGL
VK-GL-CTS issue: 29
Change-Id: Ia945a0f6472317f9014d4f820572eb006743450a

7 years agoAdd CTS_ARB_sparse_texture_clamp test specification proposal
Adam Czupryna [Mon, 19 Dec 2016 15:07:42 +0000 (16:07 +0100)]
Add CTS_ARB_sparse_texture_clamp test specification proposal

This is CTS_ARB_sparse_texture_clamp test specification proposal.

components: OpenGL

VK-GL-CTS issue: 60

Change-Id: Ic11f1752e7f875d2cf55ad3fa4bf954c8a714fe3

7 years agoEnable GL support for Android build
Daniel Koch [Thu, 8 Dec 2016 07:24:40 +0000 (02:24 -0500)]
Enable GL support for Android build

- Add GL45Activity which creates a GL4.5 core activity
- Enable android build scripts to take 'gl' as argument for
  -glcts-gtf-target
- update documentation for Android building and running

Components: Framework, AOSP, OpenGL

Change-Id: I2231adac800ac641287f157c712a25d9ddd66853

7 years agoLimit changes by xor to upper 8 bits in mixed atomic tests am: 6bc3c7a634
Mika Isojrvi [Thu, 9 Feb 2017 22:44:03 +0000 (22:44 +0000)]
Limit changes by xor to upper 8 bits in mixed atomic tests am: 6bc3c7a634
am: eef2e716e7

Change-Id: Icadf536794c067056e66f6a2041fbb937952f35a

7 years agoLimit changes by xor to upper 8 bits in mixed atomic tests
Mika Isojrvi [Thu, 9 Feb 2017 22:41:59 +0000 (22:41 +0000)]
Limit changes by xor to upper 8 bits in mixed atomic tests
am: 6bc3c7a634

Change-Id: I354ee074ad57d53c2b4b0a84d8bc02a02912f19d

7 years agoAndroid: Warn about inconsistent OpSMod and OpSRem
Pyry Haulos [Wed, 11 Jan 2017 23:11:26 +0000 (15:11 -0800)]
Android: Warn about inconsistent OpSMod and OpSRem

Change-Id: Ib0e32c55f9236e4f77ad461341329cce41c22e0a

7 years agoAdd copy image to image and blit image tests with various image layouts. Refactor...
Igor Ostrowski [Mon, 2 Jan 2017 16:41:30 +0000 (17:41 +0100)]
Add copy image to image and blit image tests with various image layouts. Refactor copy and blit tests generation.

Tests took into account only optimal layout cases. Added general and mixed ones.
Structure of all copy and blit tests was too flat. Lowered granularity of test groups.

New tests:
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.*optimal_optimal*
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.*optimal_general*
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.*general_optimal*
- dEQP-VK.api.copy_and_blit.image_to_image.all_formats.*general_general*

- dEQP-VK.api.copy_and_blit.blit_image.all_formats.*optimal_optimal*
- dEQP-VK.api.copy_and_blit.blit_image.all_formats.*optimal_general*
- dEQP-VK.api.copy_and_blit.blit_image.all_formats.*general_optimal*
- dEQP-VK.api.copy_and_blit.blit_image.all_formats.*general_general*

Affected tests:
- dEQP-VK.api.copy_and_blit.*

Components: Vulkan

Change-Id: I5724bb7c0a3ccb2e36319a20671761a9b16fe4ed