Chris Forbes [Tue, 15 May 2018 15:57:53 +0000 (08:57 -0700)]
Merge remote-tracking branch 'khronos/master' into deqp-dev
Change-Id: Ic7f1d3a9f9c59e23a51193eb616e62e638280877
Ari Suonpaa [Tue, 17 Apr 2018 11:13:24 +0000 (14:13 +0300)]
Add 16bit storage access chain tests
Add tests to index data inside an array of structures. Covers 16bit
floats, integers, and unsigned integers.
New tests:
dEQP-VK.spirv_assembly.instruction.compute.16bit_storage.uniform_16_to_32_chainaccess.*
Components: Vulkan
VK-GL-CTS issue: 893
Change-Id: Iec98775737f2c2885d97f346096dc95e6a652cef
Juan A. Suarez Romero [Mon, 16 Apr 2018 15:45:05 +0000 (15:45 +0000)]
Add tests for 16-bit OpSwitch
Extend OpSwitch testing to cover signed and unsigned 16-bit integer
cases.
Add tests:
dEQP-VK.spirv_assembly.type.scalar.u16.switch_*
dEQP-VK.spirv_assembly.type.scalar.i16.switch_*
Components: Vulkan
VK-GL-CTS issue: 995
Change-Id: Icb39d94fd6112be2e7a1d07d481c2098247babb1
Slawomir Cygan [Wed, 21 Mar 2018 16:32:50 +0000 (17:32 +0100)]
Add SPIR-V tests for return values of atomic functions
Most of atomic functions return values before applying
atomic operation - this change adds tests for that.
Return values are captured to separate buffer and
matched to the final result (and arguments).
Components: Vulkan
VK-GL-CTS Issue: 1092
New Tests:
dEQP-VK.spirv_assembly.instruction.compute.opatomic_return_values.*
Affects:
dEQP-VK.spirv_assembly.instruction.compute.opatomic*
Change-Id: I96390ed1b694f0aa2bd6d92868da46fef3d5e249
Caio Marcelo de Oliveira Filho [Wed, 7 Mar 2018 22:52:20 +0000 (14:52 -0800)]
Test using gl_Layer in Vertex and Tessellation shaders
Needs VK_EXT_shader_viewport_index_layer extension. Test works by
writing rectangles of different colors and positions in each layer,
then verifying the result.
New tests:
- dEQP-VK.draw.shader_layer.*
VK-GL-CTS issue: 1043
Components: Vulkan
Change-Id: I037b8b1283b467b755e94b54d43e68fa4531497e
Juan A. Suarez Romero [Thu, 19 Apr 2018 15:35:40 +0000 (15:35 +0000)]
GL_SRG8_ALPHA8 also supported in OpenGL ES 3.0+
dEQP-GLES2.functional.fbo.completeness.renderable.renderbuffer.color0.srgb8_alpha8
assumes that using GL_SRGB8_ALPHA8 format in RenderBuffer should fail
for OpenGL ES 2.0 because it is not supported in the specification,
unless either EXT_sRGB or EXT_sRGB_write_control are implemented, as
they add this format as supported.
But when creating the OpenGL context, it can be either 2.0 or an upper
version. If 3.0+ is returned, this version supports this format without
those extensions, and thus the test should pass.
So this change ensures that if OpenGL ES 3.0+ context is returned, then
the use of GL_SRGB8_ALPHA8 in RenderBuffer should work.
Affected tests:
dEQP-GLES2.functional.fbo.completeness.renderable.renderbuffer.color0.srgb8_alpha8
Components: OpenGL
VK-GL-CTS issue: 1137
Change-Id: Ibb95736959ff9d5b0ff972ccf3983abc98795be3
Alexander Galazin [Fri, 11 May 2018 11:53:34 +0000 (07:53 -0400)]
Merge "Merge vk-gl-cts/aosp-deqp-dev into vk-gl-cts/master"
Slawomir Cygan [Wed, 18 Apr 2018 13:14:23 +0000 (15:14 +0200)]
Multiview: do not use inline renderpass with secondary command buffers
There is a regression introduced in 7b76766 alongside the new render
pass begin utility:
The new utility sets the render pass contents flag to 'INLINE' by
default. This was overlooked in some multiview tests cases, which use
secondary command buffers - the default should be overriden to
'SECONDARY_COMMAND_BUFFERS'.
Components: Vulkan
VK-GL-CTS Issue: 1133
Affects:
dEQP-VK.multiview.secondary_cmd_buffer_geometry
dEQP-VK.multiview.secondary_cmd_buffer
Change-Id: Ibe42ba4c3e6d2b43ed18ac3684ba480f9dc659a8
Mateusz Zych [Sat, 14 Apr 2018 00:35:25 +0000 (20:35 -0400)]
Fix pipeline barrier for clearing multiview attachment
Specify correct destination access mask (VK_ACCESS_TRANSFER_WRITE_BIT) and
destination pipeline stage (VK_PIPELINE_STAGE_TRANSFER_BIT) for
transfer operation clearing all Views (array layers) of multiview attachment
using vkCmdClearColorImage().
Components: Vulkan
VK-GL-CTS Issue: 1085
Affects:
dEQP-VK.multiview.*
Change-Id: Ic87cd1d5a4c7373c3678c96fe942a5dde46ea03f
Mateusz Zych [Sat, 14 Apr 2018 00:11:14 +0000 (20:11 -0400)]
Clear all Views of Framebuffer Attachment to reference background color
The VK_KHR_multiview spec defines that during implicit clear (LOAD_OP_CLEAR)
all Active Views of Framebuffer attachment are cleared.
ViewMask defines which Views are active during particular subpass,
therefore a View is considered active during RenderPass
if it was active in any subpass of that RenderPass.
Without explicit clear of inactive Views their content will be undefined,
making test results unreliable.
This change removes MultiViewReadbackTestInstance::beforeDraw() and
relies on MultiViewRenderTestInstance::beforeDraw()
to clear all Views (array layers) of framebuffer attachment
by calling vkCmdClearColorImage().
Components: Vulkan
VK-GL-CTS Issue: 1085
Affects:
dEQP-VK.multiview.readback*
Change-Id: I70d8b1c48cb157df2518b7d241a302c54d5842f3
Alexander Galazin [Fri, 11 May 2018 10:29:10 +0000 (12:29 +0200)]
Merge vk-gl-cts/aosp-deqp-dev into vk-gl-cts/master
Change-Id: Ie711cb881e2de39c6bc881ae0ad72e16301145a3
Alexander Galazin [Fri, 11 May 2018 09:09:40 +0000 (11:09 +0200)]
Freeze 3.2.4.x mustpass
Change-Id: I1ed8e5fc0860c1e01d2eb7ed66f1ba411c31eef1
Paavo Pessi [Fri, 20 Apr 2018 11:56:37 +0000 (14:56 +0300)]
Fix validation errors in image tests
Image tests using VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR
and VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR had a pipeline barrier with
an invalid pipeline stage flag. The flag was changed to a valid value.
Affects:
dEQP-VK.image.texel_view_compatible.compute.basic.image_load.*
dEQP-VK.image.texel_view_compatible.compute.basic.texel_fetch.*
dEQP-VK.image.texel_view_compatible.compute.basic.texture.*
dEQP-VK.image.texel_view_compatible.compute.basic.image_store.*
dEQP-VK.image.texel_view_compatible.compute.extended.image_load.*
dEQP-VK.image.texel_view_compatible.compute.extended.texel_fetch.*
dEQP-VK.image.texel_view_compatible.compute.extended.texture.*
dEQP-VK.image.texel_view_compatible.compute.extended.image_store.*
dEQP-VK.image.texel_view_compatible.graphic.basic.attachment_write.*
dEQP-VK.image.texel_view_compatible.graphic.basic.texture_write.*
dEQP-VK.image.texel_view_compatible.graphic.extended.attachment_write.*
dEQP-VK.image.texel_view_compatible.graphic.extended.texture_write.*
dEQP-VK.image.extended_usage_bit.attachment_write.*
dEQP-VK.image.extended_usage_bit.texture_write.*
Components: Vulkan
VK-GL-CTS issue: 1051
Change-Id: Ie76fd515f04462d7f6ec2c2474d0af65737ccd9c
Ari Suonpaa [Fri, 20 Apr 2018 09:24:31 +0000 (12:24 +0300)]
Randomize image layout in renderpass attachment allocation test
Renderpass attachment allocation tests were using subpass image
layout of VK_IMAGE_LAYOUT_GENERAL. Now the layout is randomized
whenever possible.
Affects:
dEQP-VK.renderpass.*.attachment_allocation.input_output.*
Components: Vulkan
VK-GL-CTS issue: 1136
Change-Id: If59d42c50a2809c661ad56f0226b230659bc471f
Graeme Leese [Thu, 8 Mar 2018 15:54:13 +0000 (15:54 +0000)]
Check ballot requirement in subgroup basic tests
If ballot operations are not supported then the tests should return
NotSupported.
Components: Vulkan
Affects: dEQP-VK.subgroups.basic.*_framebuffer
VK-GL-CTS issue: 1127
Change-Id: I2c72a0821799ec2b94c08d2791f9d013ef7d122c
Chris Forbes [Thu, 3 May 2018 17:11:46 +0000 (10:11 -0700)]
Merge remote-tracking branch 'aosp/master' into deqp-dev
Change-Id: I24e845d3dd6283d88fed3fb17db9a5379e620a99
Chris Forbes [Thu, 3 May 2018 17:11:30 +0000 (10:11 -0700)]
Merge commit '
1d8110d34037070f007347a41b8212088d44df1e' into deqp-dev
Change-Id: Ifbbc3a9c5ebc1c4bc343369c227c2254162533a1
Chris Forbes [Wed, 2 May 2018 23:31:10 +0000 (16:31 -0700)]
Move unspecified-precision tests from ES2/ES3 to ES3.1
Got significant pushback from vendors about enforcing these tests on
ES2/ES3 -- ends up being a vendor choice between breaking shipping
content or failing CTS.
Moved all of these tests to ES3.1 only as a compromise.
Change-Id: I5a827064472f73908b01fa85e0097bda21038136
Components: AOSP
android-build-prod (mdb) [Tue, 1 May 2018 17:27:58 +0000 (10:27 -0700)]
[automerger skipped] Merge "DO NOT MERGE: Merge remote-tracking branch 'khronos/vulkan-cts-1.0.2' into HEAD" into oreo-mr1-cts-dev
am:
ea8d8c6e51 -s ours
Change-Id: Iafc1890dde07fdf56154e1742ce2d59648bc02af
android-build-prod (mdb) [Tue, 1 May 2018 17:23:07 +0000 (17:23 +0000)]
Merge "DO NOT MERGE: Merge remote-tracking branch 'khronos/vulkan-cts-1.0.2' into HEAD" into oreo-mr1-cts-dev
Lloyd Pique [Mon, 30 Apr 2018 19:34:53 +0000 (12:34 -0700)]
Allow the window to be recreated in the middle of a test am:
30ef1bf331 am:
38611cff1b
am:
6eca3b9153
Change-Id: I9347f789b79bf1bbcb128aab72ff4e62a662537a
Lloyd Pique [Mon, 30 Apr 2018 19:30:50 +0000 (12:30 -0700)]
Allow the window to be recreated in the middle of a test am:
30ef1bf331
am:
38611cff1b
Change-Id: Ib6b7ff02fe67679472877a9cc5dff04f7d01a17a
Lloyd Pique [Mon, 30 Apr 2018 19:26:18 +0000 (12:26 -0700)]
Allow the window to be recreated in the middle of a test
am:
30ef1bf331
Change-Id: Ic2683d5ad4515c3d65339b5027e76b1574374548
android-build-prod (mdb) [Mon, 30 Apr 2018 17:36:57 +0000 (10:36 -0700)]
[automerger skipped] Merge "DO NOT MERGE: Merge remote-tracking branch 'khronos/vulkan-cts-1.0.2' into HEAD" into oreo-cts-dev am:
354706417a -s ours
am:
c78fc14ea5 -s ours
Change-Id: Iedf43f729df806befedad07e7f8ae5d7b4bddd92
android-build-prod (mdb) [Mon, 30 Apr 2018 17:32:26 +0000 (10:32 -0700)]
[automerger skipped] Merge "DO NOT MERGE: Merge remote-tracking branch 'khronos/vulkan-cts-1.0.2' into HEAD" into oreo-cts-dev
am:
354706417a -s ours
Change-Id: I37e6dad1ab2d2eb9bee4a529f16c77981afbb54b
android-build-prod (mdb) [Mon, 30 Apr 2018 17:30:06 +0000 (17:30 +0000)]
Merge "DO NOT MERGE: Merge remote-tracking branch 'khronos/vulkan-cts-1.0.2' into HEAD" into oreo-cts-dev
Chris Forbes [Tue, 27 Feb 2018 00:31:59 +0000 (16:31 -0800)]
DO NOT MERGE: Merge remote-tracking branch 'khronos/vulkan-cts-1.0.2' into HEAD
Change-Id: Id624bed0598e117aff161ee6ed92a135095e33d7
Bug: b/
73945443
Chris Forbes [Fri, 27 Apr 2018 21:50:03 +0000 (14:50 -0700)]
Merge remote-tracking branch 'khronos/master' into deqp-dev
Change-Id: I7ae8d3a5d6fd711f7dc63c09b0c5d2fde386bb65
Chris Forbes [Fri, 27 Apr 2018 21:34:56 +0000 (14:34 -0700)]
Merge remote-tracking branch 'aosp/master' into deqp-dev
Change-Id: I868b09888968cdc3e233f5eef87967faa18b9b8e
Jari Komppa [Tue, 24 Apr 2018 09:08:28 +0000 (12:08 +0300)]
Fix logging issues when shader cache is enabled
When shaders were loaded from cache, log output said that linking
failed. This change fixes this and outputs the cache string as the
shader source. The info log also now says that the shader was loaded
from cache.
Affects:
None
Components: Framework, Vulkan
VK-GL-CTS issue: 1142
Change-Id: Ia9e060572c80a35152838fda1d5fbfd0fb6051a8
Lloyd Pique [Wed, 25 Apr 2018 02:08:39 +0000 (19:08 -0700)]
Allow the window to be recreated in the middle of a test
On ARC++ devices, some of the dEQP CTS tests were occasionally failing on
devices running in tablet mode, due to the timing of a WM relayout that
happens shortly after the orientation change is realized.
We traced it back to the dEQP test harness always expecting to see a
call from the system to onNativeWindowResized() after a call to
oNNativeWindowCreated(). It happened that the relayout on ARC++ devices
was not causing a size change, so this message was never received.
The result was that the test paused itself, and never completed. The
watchdog thread that the test harness creates ended up killing and
failing the test.
This patch adjusts the logic so that the activity only waits to process
the window creation for the very first call to onNativeWindowResized(),
as when the activity is first created that call is indeed made (but note
not really guaranteed). A subsequent call to onNativeWindowCreated()
will unpause the test (setting the READY state), as well as finish
processing the window creation.
Bug:
74371892
Test: dEQP-GLES3.functional.prerequisite#clear_color
Change-Id: I3c429aea272cbfee3f150a32c12233c9f38a7936
Chris Forbes [Tue, 27 Feb 2018 00:31:59 +0000 (16:31 -0800)]
DO NOT MERGE: Merge remote-tracking branch 'khronos/vulkan-cts-1.0.2' into HEAD
Change-Id: Id624bed0598e117aff161ee6ed92a135095e33d7
Bug: b/
73945443
Alexander Galazin [Tue, 24 Apr 2018 13:58:35 +0000 (15:58 +0200)]
Merge vk-gl-cts/vulkan-cts-1.1.1 into vk-gl-cts/master
Change-Id: I50e88f5187b0d970928fc00629158ceebd4659b4
Alexander Galazin [Tue, 24 Apr 2018 13:58:31 +0000 (15:58 +0200)]
Merge vk-gl-cts/vulkan-cts-1.1.0 into vk-gl-cts/vulkan-cts-1.1.1
Change-Id: I64646658117df9f4dd0260d0e0065e3f093b93d8
Paavo Pessi [Fri, 23 Mar 2018 13:32:30 +0000 (15:32 +0200)]
Test OpTypeImage with different depth property values
SPIR-V specification states that whether or not depth comparisons are
actually done depends on the sampling opcode, not the depth property
of the image itself.
New tests were added to verify that all three depth property values of
OpTypeImage can be used with both color and depth images, and that
depth comparisons are actually performed regardless of the depth
property.
New tests:
dEQP-VK.spirv_assembly.instruction.graphics.image_sampler.depth_property.*
Components: Vulkan
VK-GL-CTS issue: 1072
VK-GL-CTS public issue: 88
Change-Id: I5e0dbfba991ff1d477f5ebb706ffe1db32a2349f
Paavo Pessi [Thu, 5 Apr 2018 12:18:58 +0000 (15:18 +0300)]
Test copying data between compressed and uncompressed images
New tests were added to verify that when copying data between
compressed and uncompressed formats the extent members represent the
texel dimensions of the source image and not the destination.
Helper functions for querying information about compressed formats were
moved from vktImageTestUtil to vkImageUtil.
New tests:
dEQP-VK.api.copy_and_blit.core.image_to_image.all_formats.color.*
Components: Vulkan, Framework
VK-GL-CTS issue: 1081
VK-GL-CTS public issue: 90
Change-Id: Ie639e5d96a478ec1d8ef5c4abc73aa80a8005219
Ari Suonpaa [Fri, 13 Apr 2018 05:31:18 +0000 (08:31 +0300)]
Add 16bit to 16bit StorageInputOutput16 tests
Added 16bit storage tests where both inputs and outputs are 16bit.
New tests:
dEQP-VK.spirv_assembly.instruction.graphics.16bit_storage.input_output_*_16_to_16.*
Components: Vulkan
VK-GL-CTS issue: 893
Change-Id: I19b2e8f025b41a5b0a5d7d4699c7f101210e3c05
Jarred Davies [Thu, 12 Apr 2018 12:57:14 +0000 (13:57 +0100)]
Remove 4K min size from dedicated image tests
The tests dEQP-VK.memory.mapping.dedicated_alloc.image.*
all create an image with a minimum size of 4Kx4K, so the
tests in this subgroup test the exact same image size
regardless of what size the test itself is supposed to be
testing.
This change removes the 4Kx4K minimum to enable
the test to actually test multiple sizes of images.
Affect:
dEQP-VK.memory.mapping.dedicated_alloc.image.*
Components: Vulkan
VK-GL-CTS issue: 1118
Change-Id: I2ba9fa671f20eeb9bfa8b14972c903ac20875425
Panagiotis Apostolou [Mon, 26 Mar 2018 11:21:26 +0000 (13:21 +0200)]
Missing pipeline barriers from fragment variants of dEQP-VK.subgroups.*
This commit adds a missing image pipeline barrier in the fragment variant
of the subgroups test group. After the end of the renderpass and before the
vkCmdCopyImageToBuffer, a pipeline barrier is required to delay the copy
command so that all the writes to the color attachment are complete.
Tests affected:
dEQP-VK.subgroups.*
Components: Vulkan
VK-GL-CTS issue: 1135
Change-Id: I82a5179f97cf4435f96dd378f123f37bc26bd082
Alexander Galazin [Sun, 22 Apr 2018 20:39:57 +0000 (22:39 +0200)]
Merge vk-gl-cts/opengl-es-cts-3.2.5 into vk-gl-cts/master
Change-Id: I2982ab13ab697578f4206db28a55074b4344e68d
Alexander Galazin [Sun, 22 Apr 2018 20:39:09 +0000 (22:39 +0200)]
Merge vk-gl-cts/vulkan-cts-1.1.1 into vk-gl-cts/master
Change-Id: I2545688323c866d15daf56e4bc405889a4a8978c
Alexander Galazin [Sun, 22 Apr 2018 20:39:05 +0000 (22:39 +0200)]
Merge vk-gl-cts/vulkan-cts-1.1.0 into vk-gl-cts/vulkan-cts-1.1.1
Change-Id: I7a172b0447b8e67d7384dada152f7eb489d03f79
Jari Komppa [Mon, 16 Apr 2018 12:19:38 +0000 (15:19 +0300)]
Skip shader compile on unsupported ycbcr tests
Added a mechanism to check whether a test is supported before building
the shaders for the test. This also skips many of the tests earlier than
before.
This change also uses said mechanism to speed up the ycbcr tests.
Affects:
dEQP-VK.ycbcr.*
Components: Framework, Vulkan
VK-GL-CTS issue: 1066
VK-GL-CTS issue: 899
Change-Id: I477668e07a611349314f3eaf7ed741f28fb3ad0c
Dzmitry Malyshau [Fri, 2 Mar 2018 19:12:15 +0000 (14:12 -0500)]
VulkanPlatform for OSX
The change modularizes the OSX platform framework by splitting the GL
platform implementation out (into tcu::OSXGLPlatform) and adding a
basic Vulkan platform implementation (in tcu::osx::VulkanPlatform).
It is currently missing the WSI integration, and the memory limits may
need to be revised in follow-ups. This change allows the CTS to be run
against a Vulkan portability library on MacOS.
Components: Framework
Change-Id: I67eb9af5b97de701b4188aedcaca7485276d9001
Alexander Galazin [Thu, 19 Apr 2018 11:02:12 +0000 (13:02 +0200)]
Merge vk-gl-cts/opengl-cts-4.6.0 into vk-gl-cts/master
Change-Id: I7cfcc72895a1962b37815577c62fe8f0638728ee
Ari Suonpaa [Tue, 10 Apr 2018 05:31:16 +0000 (08:31 +0300)]
Use utility function for VkViewport and VkRect2D creation
Use makeViewport and makeRect2D whenever possible to make code a
bit more compact.
Affects:
dEQP-VK.api.*
dEQP-VK.draw.*
dEQP-VK.dynamic_state.*
dEQP-VK.geometry.*
dEQP-VK.image.*
dEQP-VK.multiview.*
dEQP-VK.pipeline.spec_constant.*
dEQP-VK.protected_memory.*
dEQP-VK.query_pool.*
dEQP-VK.subgroups.*
dEQP-VK.synchronization.*
dEQP-VK.tessellation.*
dEQP-VK.wsi.*.incremental_present.*
Components: Vulkan, Framework
VK-GL-CTS issue: 1113
Change-Id: I7ab9fd79c67015e7a1f855c41e0b599481b9d618
Ari Suonpaa [Mon, 9 Apr 2018 05:30:30 +0000 (08:30 +0300)]
Use common utility function for render pass creation
Several tests are creating a simple render pass with only a maximum
of one color and depth/stencil buffer. This task is now done using
an utility function to promote code reusability.
Affects:
dEQP-VK.api.*
dEQP-VK.binding_model.shader_access.*
dEQP-VK.device_group.*
dEQP-VK.draw.shader_viewport_index.*
dEQP-VK.fragment_operations.*
dEQP-VK.geometry.*
dEQP-VK.memory.pipeline_barrier.*
dEQP-VK.pipeline.*
dEQP-VK.protected_memory.*
dEQP-VK.renderpass.sparserendertarget.*
dEQP-VK.robustness.*
dEQP-VK.sparse_resources.*
dEQP-VK.spirv_assembly.instruction.graphics.cross_stage.*
dEQP-VK.synchronization.*
dEQP-VK.tessellation.*
dEQP-VK.ubo.*
dEQP-VK.wsi.*
Components: Vulkan, Framework
VK-GL-CTS issue: 1109
Change-Id: Idc748adf44e0b015b6d0c234d20424f9aec2e9e0
Alexander Galazin [Thu, 19 Apr 2018 10:28:23 +0000 (06:28 -0400)]
Merge "Merge vk-gl-cts/aosp-deqp-dev into vk-gl-cts/master"
Caio Marcelo de Oliveira Filho [Mon, 12 Mar 2018 21:56:57 +0000 (14:56 -0700)]
Check early for PythonInterp 2 in CMakeLists.txt
SPIRV-Tools looks for a Python without specifying the version, which
causes PYTHON_EXECUTABLE to reference a Python 3 executable even if
later code needs PythonInterp 2.
Since VK-GL-CTS currently depends on Python 2, this patch performs
that check early, which will be reused by SPIRV-Tools (i.e. it will
accept python2 found in the system instead of possibly taking a
python3).
Component: Framework
Change-Id: I588c1a1cbe06b95e7fda5db6a1a9f9d046dbda90
Alexander Galazin [Thu, 19 Apr 2018 08:50:40 +0000 (10:50 +0200)]
Merge vk-gl-cts/aosp-deqp-dev into vk-gl-cts/master
Change-Id: I5b8414ca16ddfc52c86d449e01ad23dad32246c6
Dzmitry Malyshau [Fri, 2 Mar 2018 19:22:25 +0000 (14:22 -0500)]
Add CONTRIBUTING.md for Github
Developers used to Github workflow may be tempted to make a PR change,
and it's important to point them to the guidelines as early as possible
in order to avoid the bounced response.
The message they'll see will look like this:
https://help.github.com/articles/setting-guidelines-for-repository-contributors/
Affects: users making Pull Requests on Github.
Components: none
Change-Id: I5921bb4ae4cb8a28f889f3f20c134ca82784c3f2
BMiles [Mon, 19 Mar 2018 18:46:26 +0000 (14:46 -0400)]
This change fixes an issue in BindBufferOffsetEXT
Change hard coded 0 to i for iterating in a loop
The test needs to be iterating through the indices of the buffer.
Affects: KHR-GL4*.transform_feedback.capture_vertex_separate_test
Components: OpenGL
VK-GL-CTS issue: 1108
Change-Id: I0654bf453c05fddad2e10c9843b9130619f4844a
Paavo Pessi [Fri, 6 Apr 2018 11:12:05 +0000 (14:12 +0300)]
Fix image validation errors in SPIR-V tests
A helper function for uploading images caused validation errors by
setting the image layout to SHADER_READ_ONLY_OPTIMAL regardless of the
image descriptor type.
A new parameter for defining the image layout was added to the helper
function, and tests using storage images were changed to use GENERAL
layout.
Affects:
dEQP-VK.spirv_assembly.instruction.compute.image_sampler.imageread.storage_image.*
Components: Vulkan, Framework
VK-GL-CTS issue: 1111
Change-Id: I783c87fe2dd91d65537343d1ae88e3a4f07b77c6
Ari Suonpaa [Mon, 26 Mar 2018 13:22:05 +0000 (16:22 +0300)]
Use common utility function for graphics pipeline creation
Graphics pipeline creation requires several structures to be input. By
replacing the inline implementations of graphics pipeline creation with
a common utility function we can eliminate most of the structures used.
The utility function will use default structure values in these cases.
Affects:
dEQP-VK.fragment_operations.*
dEQP-VK.geometry.*
dEQP-VK.image.*
dEQP-VK.pipeline.*
dEQP-VK.protected_memory.*
dEQP-VK.api.*
dEQP-VK.memory.pipeline_barrier.*
dEQP-VK.binding_model.shader_access.*
dEQP-VK.device_group.*
dEQP-VK.renderpass.*
dEQP-VK.robustness.*
dEQP-VK.glsl.*
dEQP-VK.texture.*
dEQP-VK.rasterization.*
dEQP-VK.ubo.*
dEQP-VK.clipping.*
dEQP-VK.ycbcr.*
dEQP-VK.wsi.*
dEQP-VK.sparse_resources.*
dEQP-VK.spirv_assembly.*
dEQP-VK.subgroups.*
dEQP-VK.synchronization.*
dEQP-VK.tessellation.*
Components: Vulkan, Framework
VK-GL-CTS issue: 1069
Change-Id: I44baccaa8eb670fccf2755e4c3a3370966c3765d
Chris Forbes [Tue, 17 Apr 2018 20:51:08 +0000 (13:51 -0700)]
Merge remote-tracking branch 'khronos/master' into deqp-dev
Change-Id: Ie0f7b6e81907b5b35f9eadf696063d0ec147c168
Alexander Galazin [Tue, 17 Apr 2018 09:44:33 +0000 (11:44 +0200)]
Retarget cts-runner to the master mustpass
Components: OpenGL
Affects: cts-runner
Change-Id: If9a68026a659006dd16d30a1d5ece7d8eb6e4153
Graeme Leese [Mon, 16 Apr 2018 15:04:07 +0000 (16:04 +0100)]
Use layered image bindings correctly
Where the shader uses, for example, image3d the image binding in the API
must be layered, otherwise behaviour is undefined.
Components: OpenGL
Affects: KHR-GLES31.shaders.layout_location.*
VK-GL-CTS Issue: 1123
Change-Id: I8267428d847d426945f1356bd654fb4f6c374881
Alexander Galazin [Tue, 17 Apr 2018 09:10:55 +0000 (11:10 +0200)]
Merge vk-gl-cts/opengl-es-cts-3.2.5 into vk-gl-cts/master
Change-Id: I8ed9b99ed838ef203a3af2c3bbfb769733a7e04e
Chris Forbes [Mon, 16 Apr 2018 21:51:58 +0000 (14:51 -0700)]
Merge remote-tracking branch 'aosp/master' into deqp-dev
Change-Id: I04266dedcbdbdea1b4e6d87bf662ba3d9317f411
Jeff Leger [Thu, 1 Feb 2018 01:31:13 +0000 (20:31 -0500)]
Relax the precision requirements for derivate built-ins
Allow for relaxed precision thredholds for derivatives,
with a quality warning.
Affects: dEQP-GLES3.functional.shaders.derivate.*
Components: AOSP
Khronos vk-gl-cts issue: 977
Change-Id: I1d69ad71b79a30a36daf2bf75b2f50d309bc5496
Jesse Hall [Mon, 4 Dec 2017 21:49:31 +0000 (13:49 -0800)]
Use NDK's CMake toolchain for NDK r15+
The ndk-r11.cmake file is pretty complex because neither CMake nor the
NDK provided adequate support. Starting in NDK r15, the NDK provides
an officially supported CMake toolchain file. So dEQP's
ndk-modern.cmake, used for NDK r15 and later, can just delegate to that
for everything that isn't specific to dEQP, instead of duplicating
large parts of it. This will make future NDK versions easier to support.
Components: Framework, AOSP
VK-GL-CTS issue: 723
Google bug:
75980403
Change-Id: Icc6ec38601017d2fb6ca40defe2f8e73ba76ca96
Chris Forbes [Thu, 12 Apr 2018 15:54:00 +0000 (08:54 -0700)]
Request GPDP2 extension if required in shared presentable image tests
Change-Id: Ifa4b19c6046d4f0b95a5fc65443bcd1df051b6a5
Components: Vulkan
Affects: dEQP-VK.wsi.*.shared_presentable_image.*
VK-GL-CTS: 1078
Alexander Galazin [Thu, 12 Apr 2018 10:21:17 +0000 (12:21 +0200)]
Add OpenGL ES CTS 3.2.5.x mustpass
Components: OpenGL
Change-Id: I860e4f6ee17c854066868f6b00e3cb0f41fb357b
Boris Zanin [Fri, 19 Jan 2018 14:35:46 +0000 (15:35 +0100)]
Add operation tests for 16-bit integers
New tests:
* dEQP-VK.spirv_assembly.type.*.i16.*
* dEQP-VK.spirv_assembly.type.*.u16.*
Update tests:
* dEQP-VK.spirv_assembly.type.*
VK-GL-CTS issue: 953
Components: Vulkan
Change-Id: I521e5af20658c675f0b0aa219e80595fe8219c7d
Alexander Galazin [Thu, 12 Apr 2018 08:15:01 +0000 (10:15 +0200)]
Merge vk-gl-cts/opengl-es-cts-3.2.4 into vk-gl-cts/master
Change-Id: I312b8f9df9f294a1bd5a63a7d5bba8bd5ae6da22
Tapani Pälli [Thu, 5 Apr 2018 05:13:46 +0000 (08:13 +0300)]
Prefer KHR entrypoints instead of EXT for robustness tests
When resolving function entrypoints, framework resolves EXT
entrypoints after KHR to the same pointers. There are drivers that
implement only KHR entrypoints, prefer KHR over EXT so that KHR
entrypoints will be the ones used if both extensions are supported
by the driver.
Components: OpenGL ES
VK-GL-CTS issue: 1107
Affects:
KHR-NoContext.es32.robustness.getnuniform
KHR-NoContext.es32.robustness.readnpixels
Change-Id: Iec5f7cbdd53061e105b3445f7613ee41fccc4553
Signed-off-by: Tapani Pälli <tapani.palli@intel.com>
Mika Väinölä [Tue, 20 Mar 2018 11:40:57 +0000 (13:40 +0200)]
Fix GCC 7 implicit fallthrough warnings
GCC 7 with -Wextra or -Wimplicit-fallthrough enabled warns when
a switch case falls through. For cases where this is intentional
the warning can be suppressed with a comment. Breaks and returns
were also added for cases which end in DE_FATAL.
Removing a fallthrough in vktSparseResourcesShaderIntrinsics.cpp
resulted in new test cases.
Affects: *
New tests:
dEQP-VK.sparse_resources.shader_intrinsics.3d_sparse_fetch.*
Components: Framework, Vulkan, OpenGL
VK-GL-CTS issue: 1067
Change-Id: I0306f96cf3a50e85144b4dd22a9a88cd908607d3
Slawomir Cygan [Fri, 9 Mar 2018 17:53:43 +0000 (18:53 +0100)]
Require protectedMemory feature for non-zero queue create flags
Protected memory feature is required for using
VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT.
Components: Vulkan
VK-GL-CTS Issue: 1068
Affects:
dEQP-VK.api.device_init.create_device_queue2_unmatched_flags
Change-Id: I0a83fd3aaf2ab20836ab706adc9a62534ac56864
Alexander Galazin [Wed, 11 Apr 2018 08:48:52 +0000 (10:48 +0200)]
Merge vk-gl-cts/aosp-deqp-dev into vk-gl-cts/master
Change-Id: I945204f314bc75c95e8b6c4056b01d24911bb92c
Piers Daniell [Fri, 6 Apr 2018 17:16:47 +0000 (11:16 -0600)]
Fix resource buffers used for the Op?Convert graphics tests
I didn't catch this when reviewing CL 2240. The "graphics"
variants of the OpUConvert/OpSConvert/OpFConvert tests are
writing the shader results to a UBO instead of an SSBO. UBOs
are read-only and writing to one has undefined results.
This CL simply changes the resources to use SSBOs rather than
UBOs, which follows the same template of most of the other
dEQP-VK.spirv_assembly.instruction.graphics.* tests.
Affects:
dEQP-VK.spirv_assembly.instruction.graphics.sconvert.*
dEQP-VK.spirv_assembly.instruction.graphics.uconvert.*
dEQP-VK.spirv_assembly.instruction.graphics.fconvert.*
Change-Id: Iab4014e6ca5e1482f74ff6d8bec7f04793b0e69d
Components: Vulkan
Jari Komppa [Tue, 10 Apr 2018 09:59:55 +0000 (12:59 +0300)]
Release info script without spir-v tools fix
This fix (based on work by imirkin) checks whether the spir-v tools
source files are available before trying to use them to generate the
release info include file.
Affects:
None
Components: Framework
VK-GL-CTS issue: 1114
Change-Id: I6764a469738a8e6a7797746d963da197b8380301
Mikael Tuomisalo [Mon, 5 Mar 2018 18:33:33 +0000 (20:33 +0200)]
Use de::min instead of std::min
std::min was used without including algorithm, which breaks build on
at least VS2017
Components: OpenGL ES
VK-GL-CTS issue: 1054
Affects:
dEQP-GLES2.functional.texture.size.*
dEQP-GLES3.functional.texture.size.*
Change-Id: Id3edb237931d6957095cf6b8fcb38359422decd3
(cherry picked from commit
177b82dfaff4531c10ddce2acf5cc43a15169670)
Graeme Leese [Wed, 21 Mar 2018 12:10:34 +0000 (12:10 +0000)]
Use the subgroups 'supportedCheck' helpers
This function exists in each test module but was only being used by one
out of the two places that the code is needed.
Components: Vulkan
Affects: dEQP-VK.subgroups.*
Change-Id: Idec5bf036b44b384c1c404d0a7d68805981a4ae4
Slawomir Cygan [Tue, 27 Mar 2018 14:41:33 +0000 (16:41 +0200)]
Fix stack overflow on vkGetPhysicalDeviceSparseImageFormatProperties
Function may return random number of structs overwriting
the sparseImageFormatProperties variable.
Components: Vulkan
VK-GL-CTS Issue: 1103
Affects: dEQP-VK.texture.*.sparse_*
Change-Id: I101b72360145c23cef14cfeb50c7f9cd02e62e2f
Caio Marcelo de Oliveira Filho [Mon, 5 Mar 2018 23:20:18 +0000 (15:20 -0800)]
Test using gl_ViewportIndex in tessellation shader
Needs VK_EXT_shader_viewport_index_layer extension. Test works by
setting up N viewports forming a grid and each pair of triangles is
assigned to one of the viewports. Colors are used to distinguish each
pair, and by consequence, each cell in the grid.
It reuses most of parts from the similar test for vertex shader.
New tests:
dEQP-VK.draw.shader_viewport_index.tessellation_shader_*
VK-GL-CTS issue: 1043
Components: Vulkan
Change-Id: Ie55be3e188f5ded3c8aafb90b97af8cf3af3f243
Alexander Galazin [Fri, 6 Apr 2018 08:16:25 +0000 (10:16 +0200)]
Update Vulkan Readme
Update Vulkan Readme with the new CTS version
Components: Vulkan
Change-Id: I4bbb541c3924efe32986e30051a4e82a2aaca50e
Alexander Galazin [Fri, 6 Apr 2018 08:15:15 +0000 (04:15 -0400)]
Merge "Merge vk-gl-cts/vulkan-cts-1.1.1 into vk-gl-cts/master"
Alexander Galazin [Fri, 6 Apr 2018 07:47:50 +0000 (09:47 +0200)]
Merge vk-gl-cts/vulkan-cts-1.1.1 into vk-gl-cts/master
Change-Id: Iece73f9d69d002433e394ed5f9ed472ccad037e9
Alexander Galazin [Mon, 26 Mar 2018 12:34:28 +0000 (14:34 +0200)]
Update spriv-tools
Change-Id: I7d24e707b2e0ef8b9591db20897c3c813664b41d
Alexander Galazin [Thu, 5 Apr 2018 19:21:04 +0000 (21:21 +0200)]
Update Vulkan Readme
Update Vulkan Readme to reflect the current CTS version
Components: Vulkan
Change-Id: I1e69df3934e2d35a072823e7bf9e5d2d03b011fe
Chris Forbes [Thu, 5 Apr 2018 17:24:12 +0000 (10:24 -0700)]
Merge remote-tracking branch 'khronos/master' into deqp-dev
Change-Id: Ib9e725f708993d7561a5251d4d3d3e8aa982bc00
Chris Forbes [Thu, 5 Apr 2018 16:50:52 +0000 (09:50 -0700)]
Merge remote-tracking branch 'aosp/master' into deqp-dev
Change-Id: Ibfcf52370db2296033a396dce933808c325fe645
Alexander Galazin [Thu, 5 Apr 2018 15:46:12 +0000 (17:46 +0200)]
Merge vk-gl-cts/vulkan-cts-1.1.1 into vk-gl-cts/master
Change-Id: Ie5c0fcea75496b342059629bb3c34c64c9f73226
Damien Leone [Mon, 30 Oct 2017 23:15:25 +0000 (16:15 -0700)]
Do not fail display tests when there is no display
Instead, we should mark these tests as not supported. It is valid per the
Vulkan spec to have the extension report 0 displays connected.
Affects: dEQP-VK.wsi.display.*
Component: Vulkan
VK-GL-CTS issue: 1105
Change-Id: Idfe09ec588be7b4c6c782e306e7bf1506d78808f
Alexander Galazin [Thu, 5 Apr 2018 12:02:09 +0000 (14:02 +0200)]
Merge vk-gl-cts/opengl-cts-4.6.0 into vk-gl-cts/master
Change-Id: Ice19bfdd5c995157824851fa183611a84d9b4c0a
Alexander Galazin [Thu, 5 Apr 2018 12:02:08 +0000 (14:02 +0200)]
Merge vk-gl-cts/opengl-es-cts-3.2.4 into vk-gl-cts/master
Change-Id: Ie3f6aca2d39bc1c7c1600d3ba4d809c39ed91efa
Alexander Galazin [Thu, 5 Apr 2018 12:02:04 +0000 (14:02 +0200)]
Merge vk-gl-cts/opengl-es-cts-3.2.3 into vk-gl-cts/opengl-es-cts-3.2.4
Change-Id: Id621f75848b554dc234d3b489a8a80773ac437bd
Alexander Galazin [Thu, 5 Apr 2018 08:34:26 +0000 (10:34 +0200)]
Merge vk-gl-cts/vulkan-cts-1.1.1 into vk-gl-cts/master
Change-Id: I84a639633f77095edfd99f1d5873b77896f35c97
Jarred Davies [Thu, 5 Apr 2018 09:51:23 +0000 (10:51 +0100)]
Drop linear filter requirement from YCbCr tests
Remove requirement for YCbCr base formats to support
VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT from
format_properties tests.
The standard does not require support for this feature
from any YCbCr format.
Affects:
dEQP-VK.api.info.format_properties.g8_b8_r8_3plane_420_unorm
dEQP-VK.api.info.format_properties.g8_b8r8_2plane_420_unorm
Components: Vulkan
VK-GL-CTS issue: 1090
Change-Id: I6fa1c6c7a7f9768c2001972ae1f04173310aa652
Alexander Galazin [Thu, 5 Apr 2018 07:58:39 +0000 (09:58 +0200)]
Merge vk-gl-cts/vulkan-cts-1.1.0 into vk-gl-cts/vulkan-cts-1.1.1
Change-Id: Idaa7c167a7485b1cc290dab87fab146e922887e9
Ari Suonpaa [Fri, 9 Mar 2018 12:06:11 +0000 (14:06 +0200)]
Use common utility function for render pass begin and end
Render pass begin and end are used in almost every test case. Some test
groups already implement an utility function for these. Others do it
inline. These are now replaced with common utility functions.
Affects:
dEQP-VK.glsl.*
dEQP-VK.api.*
dEQP-VK.device_group.*
dEQP-VK.draw.*
dEQP-VK.dynamic_state.*
dEQP-VK.fragment_operations.*
dEQP-VK.geometry.*
dEQP-VK.image.*
dEQP-VK.memory.*
dEQP-VK.multiview.*
dEQP-VK.pipeline.*
dEQP-VK.protected_memory.*
dEQP-VK.query_pool.*
dEQP-VK.rasterization.*
dEQP-VK.renderpass.*
dEQP-VK.robustness.*
dEQP-VK.sparse_resources.*
dEQP-VK.spirv_assembly.*
dEQP-VK.subgroups.*
dEQP-VK.synchronization.*
dEQP-VK.tessellation.*
dEQP-VK.texture.*
dEQP-VK.wsi.*
dEQP-VK.ubo.*
Components: Vulkan, Framework
VK-GL-CTS issue: 1056
Change-Id: If69a7bde883f7abfd1fd1362562abf1a5c550bd5
Slawomir Cygan [Wed, 14 Feb 2018 17:30:48 +0000 (18:30 +0100)]
Add tests for freeing descriptor sets followed by pool reset
This change adds new test cases for resetting a descriptor set pool
which is created with VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT
flag and already has some descriptor sets freed.
VK-GL-CTS Issue: 1020
Component: Vulkan
Affects: dEQP-VK.api.descriptor_pool.*
Change-Id: I791bfafc4b5bf85454e33e5d5de5d153b4b6a5ed
Slawomir Cygan [Wed, 7 Mar 2018 17:02:56 +0000 (18:02 +0100)]
Add tests for checking YCbCr format enums in Vulkan 1.1
Check that YCbCr format enums added in Vulkan 1.1 are
recognized by implementation, even when samplerYcbcrConversion
feature is not supported.
This change splits 'checkYcrbrConversionSupport' into:
- API support (if VkFormats are recognized by the implementation)
- the actual conversion support.
YCbCr feature check tests are run always when API is supported,
even if YCbCr conversion it not. However, support for format properties
and image format properties is still not required, if YCBCr conversion feature is
not supported.
Component: Vulkan
VK-GL-CTS Issue: 1059
Affects:
dEQP-VK.api.info.format_properties.*
dEQP-VK.api.info.*image_format_properties*
Change-Id: I84280eaa481a566e05ce028b9e4ec407f2d27599
Paavo Pessi [Fri, 16 Mar 2018 13:33:05 +0000 (15:33 +0200)]
Test viewport with zero height
New tests were added to verify that the driver does not crash and that
triangle primitives are not drawn when using a viewport with zero
height.
New tests:
dEQP-VK.draw.zero_viewport_height.*
Components: Vulkan
VK-GL-CTS issue: 1048
Change-Id: I886f604944ad6224e31eb70a72917e505d4e11c5
Arkadiusz Sarwa [Wed, 28 Feb 2018 16:52:10 +0000 (17:52 +0100)]
Alignment tests of 16bit types in structs
Add tests:
dEQP-VK.spirv_assembly.instruction.compute.16bit_storage.uniform_16struct_to_32struct.*
dEQP-VK.spirv_assembly.instruction.compute.16bit_storage.uniform_32struct_to_16struct.*
dEQP-VK.spirv_assembly.instruction.graphics.16bit_storage.uniform_16struct_to_32struct.*
dEQP-VK.spirv_assembly.instruction.graphics.16bit_storage.uniform_32struct_to_16struct.*
dEQP-VK.spirv_assembly.instruction.compute.16bit_storage.struct_mixed_types.*
dEQP-VK.spirv_assembly.instruction.graphics.16bit_storage.struct_mixed_types.*
Components: Vulkan
VK-GL-CTS issue: 1061
Change-Id: I9f206431cd313c736bc12b4b8a002426ffbf6398
Yunchao He [Fri, 16 Mar 2018 03:26:58 +0000 (11:26 +0800)]
Fix: Use correct format/type for RGB9_E5 internalformat
According to GLES 3.* specifications (say Table 8.3 in ES32 spec),
the original internalformat/format/type combination for RGB9_E5 is
not correct. The texture storage is not allocated at all.
So the followed test case can not verify what it really want to
test. This small change revises the format/type and make it to be
a correct combination for RGB9_E5.
Components: OpenGL
Affects:
dEQP-GLES31.functional.debug.negative_coverage.*.texture.copytexsubimage2d_texture_internalformat
Change-Id: I529f4aaed1f507f67d3dc5806eb5cb0e6c27d858
Peter Quayle [Wed, 28 Mar 2018 17:18:28 +0000 (18:18 +0100)]
Fix improper use of vkCmdWaitEvents
dEQP-VK.synchronization.smoke.events was calling vkCmdWaitEvents inside
a render-pass, which is not allowed if the event is later triggerd using
vkSetEvent. Additionally, the test was only waiting 1ns to determine if
a queue had made forward progress, which is too short to give the
implementation a chance to do any work.
Affects:
dEQP-VK.synchronization.smoke.events
Components: Vulkan
VK-GL-CTS issue: 1089
Change-Id: I6d9c9a635d82840f49fd3d9ed3736f91c4b6f88d
Graeme Leese [Thu, 1 Mar 2018 17:48:57 +0000 (17:48 +0000)]
Fix random shader generator
Put parentheses around the RHS when converting L == R into
abs(L - R) < 0.001.
Affects: dEQP-GLES2.functional.shaders.random.*
dEQP-GLES3.functional.shaders.random.*
Components: OpenGL
VK-GL-CTS issue: 286
Change-Id: I95d43ed40944c2815d7ce464ac4dc4993f87a4e9
Mikael Tuomisalo [Wed, 7 Feb 2018 14:45:36 +0000 (16:45 +0200)]
Add missing SConvert, FConvert and UConvert tests
Different variations of SConvert, FConvert and UConvert weren't properly
tested in compute and graphics shaders.
Affects:
dEQP-VK.spirv_assembly.instruction.compute.sconvert.*
dEQP-VK.spirv_assembly.instruction.compute.uconvert.*
New tests:
dEQP-VK.spirv_assembly.instruction.compute.sconvert.int32_to_*int16
dEQP-VK.spirv_assembly.instruction.compute.sconvert.int64_to_*
dEQP-VK.spirv_assembly.instruction.compute.sconvert.uint*
dEQP-VK.spirv_assembly.instruction.compute.sconvert.*vec*
dEQP-VK.spirv_assembly.instruction.compute.uconvert.uint32_to_uint16
dEQP-VK.spirv_assembly.instruction.compute.uconvert.uint64_to_*
dEQP-VK.spirv_assembly.instruction.compute.fconvert.*
dEQP-VK.spirv_assembly.instruction.graphics.sconvert.*
dEQP-VK.spirv_assembly.instruction.graphics.uconvert.*
dEQP-VK.spirv_assembly.instruction.graphics.fconvert.*
Components: Vulkan
VK-GL-CTS issue: 880
Change-Id: Id84c7a20749cd15e84a9c85993c1e6574712889e
Jari Komppa [Mon, 29 Jan 2018 11:57:57 +0000 (13:57 +0200)]
Added shader cache to speed up runtime
Added shader cache which hashes incoming shader sources and saves the
resulting binaries on disk, avoiding unneccessary recompilation.
On testing it was found that the conformance suite calls shader
compilation about 500k times while only about 30k shaders are unique.
When all shaders are prebuilt on disk, complete runtime is reduced by
about 30%.
The shader cache also affects vk-build-programs. If shaders already
exist and shader validation is not enabled, vk-build-programs runs about
95% faster.
The timings above are based on debug builds on a desktop PC. Release
builds get less benefit, but this may be helpful on mobile platforms.
The shader cache does not affect targets which do not include spir-v
tools.
Affects:
dEQP-VK.*
Components: Framework, Vulkan
VK-GL-CTS issue: 899
Change-Id: I9b1ea915b3c9d94be85adb17161c12f453175d78