platform/upstream/VK-GL-CTS.git
7 years agoAdd test: sparse buffer usage
Maciej Jesionowski [Mon, 7 Nov 2016 15:18:58 +0000 (16:18 +0100)]
Add test: sparse buffer usage

Test UBO, SSBO, VB, IB, InB with sparse buffers using:
- sparse binding
- sparse residency
- sparse aliasing
- residencyNonResidentStrict (with UBOs)

New tests:
- dEQP-VK.sparse_resources.buffer.ubo.*
- dEQP-VK.sparse_resources.buffer.vertex_buffer.*
- dEQP-VK.sparse_resources.buffer.index_buffer.*
- dEQP-VK.sparse_resources.buffer.indirect_buffer.*

Renamed tests:
in dEQP-VK.sparse_resources:
- .buffer_sparse_binding.* -> .buffer.transfer.sparse_binding.*
- .buffer_sparse_residency.* -> .buffer.ssbo.sparse_residency.*
- .buffer_sparse_memory_aliasing.* -> .buffer.ssbo.sparse_binding_aliased.*

Issue: #401

Change-Id: Iba583a16eba0b688849175813a86d44c9b038f0d

7 years agoExtend copyImage tests with depth/stencil formats
Szilard Ledan [Tue, 26 Jul 2016 12:43:02 +0000 (14:43 +0200)]
Extend copyImage tests with depth/stencil formats

Add tests with all depth/stencil formats into image to image copies cases.
It was needed to fix the 'uploadImage' and 'readImage' functions, because
the copying combined dept/stencil data between buffers and images are not
supprted at the same time.

Update and fix the generation of expected image.

Update the mustpass lists.

Fix conflict after rebase.

This affects:
 * dEQP-VK.api.copy_and_blit.image_to_image.all_formats.depth_stencil_*
 * dEQP-VK.api.copy_and_blit.blit_image.all_formats.scaling_partial_d16_unorm_d16_unorm_nearest
 * dEQP-VK.api.copy_and_blit.blit_image.all_formats.scaling_partial_x8_d24_unorm_pack32_x8_d24_unorm_pack32_nearest
 * dEQP-VK.api.copy_and_blit.blit_image.all_formats.scaling_partial_d32_sfloat_d32_sfloat_nearest
 * dEQP-VK.api.copy_and_blit.blit_image.all_formats.scaling_partial_s8_uint_s8_uint_nearest
 * dEQP-VK.api.copy_and_blit.blit_image.all_formats.scaling_partial_d16_unorm_s8_uint_d16_unorm_s8_uint_nearest
 * dEQP-VK.api.copy_and_blit.blit_image.all_formats.scaling_partial_d24_unorm_s8_uint_d24_unorm_s8_uint_nearest
 * dEQP-VK.api.copy_and_blit.blit_image.all_formats.scaling_partial_d32_sfloat_s8_uint_d32_sfloat_s8_uint_nearest

Fixes #488

Change-Id: I29bdaf1d87d7bdba112fd55526f8e661865baa6e

7 years agoMerge gerrit/vulkan-cts-1.0.1 into gerrit/vulkan-cts-1.0-dev
Pyry Haulos [Fri, 2 Dec 2016 16:42:53 +0000 (08:42 -0800)]
Merge gerrit/vulkan-cts-1.0.1 into gerrit/vulkan-cts-1.0-dev

Change-Id: I9afe7efd004ee04a7edd465457e5376b03e0abc0

7 years agoFix post-copy barrier in readImageAspect()
Pyry Haulos [Fri, 2 Dec 2016 16:34:43 +0000 (08:34 -0800)]
Fix post-copy barrier in readImageAspect()

 * Barrier was using TOP_OF_PIPE_BIT for flushing buffer contents for
host access. HOST_BIT must be used instead.

 * For combined depth stencil formats image was left in wrong image layout
for later stencil aspect copy.

Affects combined DS format cases in:

dEQP-VK.api.copy_and_blit.blit_image.all_formats.*

Change-Id: I80263efbc12da21c8205768687725416419e923e

7 years agoMerge gerrit/vulkan-cts-1.0.1 into gerrit/vulkan-cts-1.0-dev
Pyry Haulos [Fri, 2 Dec 2016 00:33:32 +0000 (16:33 -0800)]
Merge gerrit/vulkan-cts-1.0.1 into gerrit/vulkan-cts-1.0-dev

Non-trivial merge of 0b0c5dba7daed6439ec6352aacf3cd216d1c1dd5

Change-Id: I1fa72e1814387b05b935cd781126880e603c91b4

7 years agoDo not generate constructor utils if API creates multiple objects
Pyry Haulos [Thu, 1 Dec 2016 23:23:12 +0000 (15:23 -0800)]
Do not generate constructor utils if API creates multiple objects

See #541

Change-Id: I1aa9ddae3bb758a70f6a72d1eb31e58c524ca9f4

7 years agoFix combined depth stencil handling in dEQP-VK.api.copy_and_blit
Pyry Haulos [Tue, 25 Oct 2016 08:41:48 +0000 (17:41 +0900)]
Fix combined depth stencil handling in dEQP-VK.api.copy_and_blit

The existing code had several bugs related to handling of combined DS
formats that manifested on implementations that support blitting of
said formats.

vk::isSupportedByFramework(VkFormat) utility function is added for
checking whether format is mappable to tcu::TextureFormat. This query
is used to filter out test cases that will always result in InternalError,
namely all cases that attempted to exercise formats with 64-bit channels.

Vulkan null driver is updated to advertise
VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT to allow easier testing.

Affects:

dEQP-VK.api.copy_and_blit.*

See #488
See #515

Change-Id: Ic03c523aea6a4bc9115568ec486200c53ec37d80

7 years agoMerge gerrit/vulkan-cts-1.0.1 into gerrit/vulkan-cts-1.0-dev
Pyry Haulos [Thu, 1 Dec 2016 22:23:53 +0000 (14:23 -0800)]
Merge gerrit/vulkan-cts-1.0.1 into gerrit/vulkan-cts-1.0-dev

Change-Id: I8723ff8e2442c4311dad5b9c305d5def12d3a4f0

7 years agoMerge gerrit/vulkan-cts-1.0.0 into gerrit/vulkan-cts-1.0.1
Pyry Haulos [Thu, 1 Dec 2016 22:23:51 +0000 (14:23 -0800)]
Merge gerrit/vulkan-cts-1.0.0 into gerrit/vulkan-cts-1.0.1

Change-Id: I1881729f313bd8fbee7dcc2d305ac89e7aaf2761

7 years agoIncrease blit source to avoid extreme blit scaling
Oivind Boge [Tue, 22 Nov 2016 13:21:00 +0000 (14:21 +0100)]
Increase blit source to avoid extreme blit scaling

Fixes #548

Change-Id: Ied146b91dc748f9efe41b7b64d11c5da870e5ac0

7 years agoImprove coverage of dEQP-VK.pipeline.image test group
Dominik Witczak [Tue, 15 Nov 2016 08:51:05 +0000 (09:51 +0100)]
Improve coverage of dEQP-VK.pipeline.image test group

Change-Id: I711edd83f8c75e980d6e979a56810f67bbe2e204

7 years agoAdd test: image views with VK_REMAINING_* levels/layers
Maciej Jesionowski [Thu, 13 Oct 2016 14:18:07 +0000 (16:18 +0200)]
Add test: image views with VK_REMAINING_* levels/layers

Test image view subresource range with VK_REMAINING_MIP_LEVELS and VK_REMAINING_ARRAY_LAYERS.

New tests:
- dEQP-VK.pipeline.image_view.view_type.*.subresource_range.lod_base_mip_level_remaining_levels
- dEQP-VK.pipeline.image_view.view_type.*.subresource_range.base_array_layer_remaining_layers
- dEQP-VK.pipeline.image_view.view_type.*.subresource_range.lod_base_mip_level_base_array_layer_remaining_levels_and_layers

Fixes #504

Change-Id: I9b78c8ba345b45231d7a931de9effdbde8aa0fc2

7 years agoAdd granularity test cases.
Gabor Abraham [Mon, 10 Oct 2016 15:12:19 +0000 (17:12 +0200)]
Add granularity test cases.

New test:
- dEQP-VK.api.granularity.*

Change-Id: Ib3b045a0199aeb7195dd17a603c089834c64b904

7 years agoCheck in vulkan.h for generating framework code
Pyry Haulos [Wed, 30 Nov 2016 22:27:07 +0000 (14:27 -0800)]
Check in vulkan.h for generating framework code

Having copy of vulkan.h checked in makes it easier to re-generate
framework when needed.

vulkan.h is checked in as vulkan.h.in to discourage anyone from ever
attempting to include it directly in test code.

As part of this framework is updated to vulkan.h version 1.0.35.

Change-Id: I6e202a01d3633fe19855cf62afbf16e2b0ea67ea

7 years agoMove Vulkan CTS scripts to external/vulkancts/scripts
Pyry Haulos [Wed, 30 Nov 2016 22:23:57 +0000 (14:23 -0800)]
Move Vulkan CTS scripts to external/vulkancts/scripts

Change-Id: I928d848225d08f03d93fd700a80d36ac3fbc3ada

7 years agodEQP-VK.sparse_resources.shader_intrinsics fixes
Dominik Witczak [Thu, 17 Nov 2016 15:08:44 +0000 (16:08 +0100)]
dEQP-VK.sparse_resources.shader_intrinsics fixes

Some of the tests in the group form invalid SPIR-V code,
which tries to pass two arguments to the OpFAdd instruction,
whose number of components differs.

This change fixes this.

Khronos issue: #545

Change-Id: I3cad57d393f986cfb5b9bce85f758dcca3686d8a

7 years agoAdjust {Max,Min}Coords for {proj}offset texture tests with 3D texture targets
Iago Toral Quiroga [Tue, 22 Nov 2016 10:55:44 +0000 (06:55 -0400)]
Adjust {Max,Min}Coords for {proj}offset texture tests with 3D texture targets

As it is now, the computed lod ends up being ~0.962, which is very close to the
threshold that separates selection of the first two mipmap levels. At least on
Intel GPUs this leads to test failures because the miplevel selected by CTS to
produce the expected result does not match the one actually selected by the
hardware.

This patch alters the coordinates used with these tests so the comuted lod
isn't too close to a mipmap level threshold.

Affects:
dEQP-VK.glsl.texture_functions.texture{proj}offset.sampler3d*

Khronos issue: #552

Change-Id: I6ec766133905d2085cd795eea8aaf0b04e830278

7 years agoFixes incorrect usage of textureSamples().
Dominik Witczak [Fri, 18 Nov 2016 12:13:12 +0000 (13:13 +0100)]
Fixes incorrect usage of textureSamples().

The function should not be called against single-sample
images. See #538 for more details.

Tests affected: dEQP-VK.glsl.texture_functions.query.texturesamples.isampler*ms*

Change-Id: I7ce507c657b33cbcf99c9e3202fdafaee5ea1577

7 years agoFramework: Add assert to position deviation image compare
Maciej Jesionowski [Tue, 29 Nov 2016 12:38:22 +0000 (13:38 +0100)]
Framework: Add assert to position deviation image compare

When using position deviation tolerance it's easy to forget
about the depth and effectively skip the check for the whole
image.

Change-Id: Ide873be57ba19e7e9e45606d27aae403f9c131ec

7 years agoShaderRenderCaseInstance::uploadSparseImage() fix
Dominik Witczak [Thu, 17 Nov 2016 15:13:32 +0000 (16:13 +0100)]
ShaderRenderCaseInstance::uploadSparseImage() fix

The function is used by various test cases to fill sparse images
with actual content. What they are unaware of is that the func
does not assign memory backing to odd tiles.

This change fixes this by removing the malicious if() block.
The change affects dEQP-VK.glsl.*sparse* tests

Change-Id: Ia2b157181d5fdba2d4fa0bcaf37dc02c4a6fe320

7 years agoFix memory management, image layout issues in uploadImageSparse()
Dominik Witczak [Thu, 17 Nov 2016 12:10:19 +0000 (13:10 +0100)]
Fix memory management, image layout issues in uploadImageSparse()

Fixes an issue where ShaderRenderCaseInstance::uploadSparseImage()
would first configure sparse image bindings and then deallocate
the memory objects, prior to actually sampling the image.

Fixes an issue where the sparse image, after having been filled with
contents, would first be transitioned to SHADER_READ_ONLY_OPTIMAL
layout, and then used in a DS which was expecting it to be in
GENERLA layout.

Finally, the patch addresses a problem, where the function would not
correctly recognize the VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT,
as reported by the running driver.

The change affects dEQP-VK.glsl.*sparse* tests

Khronos issue: #543

Change-Id: Ie5717841fe0ef9c0672b5075380ff96bba9855b9

7 years agoAdd vktTextureFilteringAnisotropyTests.cpp to Android.mk
Pyry Haulos [Fri, 18 Nov 2016 18:40:10 +0000 (10:40 -0800)]
Add vktTextureFilteringAnisotropyTests.cpp to Android.mk

7 years agoAdd anisotropic filtering tests
Arkadiusz Sarwa [Wed, 19 Oct 2016 13:43:19 +0000 (15:43 +0200)]
Add anisotropic filtering tests

New tests:
- dEQP-VK.texture.filtering_anisotropy.basic.*
- dEQP-VK.texture.filtering_anisotropy.mipmap.*

Fixes #512

Change-Id: I96649846503e7ab349c774ad934f654388b01d0a

7 years agoExtends rasterization culling tests with polygonModes
Zoltan Janos Szabo [Wed, 26 Oct 2016 13:51:22 +0000 (15:51 +0200)]
Extends rasterization culling tests with polygonModes

Fixes #523

Change-Id: I2665e999f5ecb6bacd0d670b88e037bfbb0d5b2e

7 years agoAdd test: UBO out of order block member offsets
Maciej Jesionowski [Tue, 11 Oct 2016 09:35:24 +0000 (11:35 +0200)]
Add test: UBO out of order block member offsets

New tests:
- dEQP-VK.ubo.random.all_out_of_order_offsets.*

Modified tests:
- dEQP-VK.ubo.* - changed GLSL version from '310 es' to '450'
- dEQP-VK.ubo.random.all_* - include arrays of arrays

Version change is required to support 'offset' layout in GLSL.

Fixes #490

Change-Id: I0c07dcebd85874d64146e48db8fefe8ad9f88877

7 years agoAdd test: validate memoryTypeBits for buffers/images
Maciej Jesionowski [Wed, 5 Oct 2016 14:28:38 +0000 (16:28 +0200)]
Add test: validate memoryTypeBits for buffers/images

Query VkMemoryRequirements for various buffer and image configurations
and check:
- memoryTypeBits and alignment
- spec-imposed guarantees

New test:
- dEQP-VK.memory.requirements.*

Fixes #492

Change-Id: I3901cc4aa5501539404bdd900c5a1b4d3a62befb

7 years agoMerge gerrit/vulkan-cts-1.0.1 into gerrit/vulkan-cts-1.0-dev
Pyry Haulos [Fri, 18 Nov 2016 17:48:25 +0000 (09:48 -0800)]
Merge gerrit/vulkan-cts-1.0.1 into gerrit/vulkan-cts-1.0-dev

Change-Id: I0800a091d1025c0ff6efc7f22f901285e198fd38

7 years agoMerge gerrit/vulkan-cts-1.0.0 into gerrit/vulkan-cts-1.0.1
Pyry Haulos [Fri, 18 Nov 2016 17:48:22 +0000 (09:48 -0800)]
Merge gerrit/vulkan-cts-1.0.0 into gerrit/vulkan-cts-1.0.1

Change-Id: Ib79da8c670b790d009cdf977039ece08c4e14320

7 years agoBugfix: use per-subpass pipeline in MS image tests
Maciej Jesionowski [Wed, 16 Nov 2016 14:21:28 +0000 (15:21 +0100)]
Bugfix: use per-subpass pipeline in MS image tests

The tests created a single graphics pipeline with a subpass index 0
and incorrectly reused it across different subpasses within the
same renderpass.

Affected tests:
- dEQP-VK.pipeline.multisample.sampled_image.*
- dEQP-VK.pipeline.multisample.storage_image.*

Change-Id: I71463748f10f7bb8cf194622b07ce44a855d823a

7 years agoUse highp in linkage.varying.rules.differing_name_*
Pyry Haulos [Thu, 20 Oct 2016 20:07:45 +0000 (13:07 -0700)]
Use highp in linkage.varying.rules.differing_name_*

This resolves RelaxedPrecision mismatches

Affects:

dEQP-VK.glsl.linkage.varying.rules.differing_name_1
dEQP-VK.glsl.linkage.varying.rules.differing_name_2

See #518

Change-Id: I7a152138e2d6ff2092c04d4226f7d00c8a40f4e0

7 years agoFix RelaxedPrecision mismatch in shader return statement tests
Pyry Haulos [Thu, 20 Oct 2016 20:17:33 +0000 (13:17 -0700)]
Fix RelaxedPrecision mismatch in shader return statement tests

Affects:

dEQP-VK.glsl.return.single_return_vertex
dEQP-VK.glsl.return.double_return_vertex
dEQP-VK.glsl.return.last_statement_in_main_vertex
dEQP-VK.glsl.return.return_in_infinite_loop_vertex

See #518

Change-Id: I981b7623f7dc2eed2e438092226f3fa3bde44d58

7 years agoUse highp by default in ShaderLibrary-based tests
Pyry Haulos [Thu, 20 Oct 2016 20:07:45 +0000 (13:07 -0700)]
Use highp by default in ShaderLibrary-based tests

This resolves numerous RelaxedPrecision mismatches

Affects:

dEQP-VK.glsl.arrays.*
dEQP-VK.glsl.conditionals.*
dEQP-VK.glsl.constants.*
dEQP-VK.glsl.conversions.*
dEQP-VK.glsl.functions.*
dEQP-VK.glsl.linkage.*
dEQP-VK.glsl.scoping.*
dEQP-VK.glsl.swizzles.*

See #518

Change-Id: I7b79f10c6dbdd5ae8da31359b680ac52ce2ad28c

7 years agoFix RelaxedPrecision mismatch in binding_model tests
Pyry Haulos [Thu, 20 Oct 2016 20:06:49 +0000 (13:06 -0700)]
Fix RelaxedPrecision mismatch in binding_model tests

Affects: dEQP-VK.binding_model.*

See #518

Change-Id: Iccda14ae17c7852c5283547e01573907f2eef18a

7 years agoFix race condition between query pool reset and accessing query results
Slawomir Cygan [Mon, 14 Nov 2016 16:57:31 +0000 (17:57 +0100)]
Fix race condition between query pool reset and accessing query results

Affects tests:
dEQP-VK.query_pool.occlusion_query.get_results*(wait_query|wait_none)*

These tests access query pool results on host, without any synchronization
with command buffer which performs the query - they either use
VK_QUERY_RESULT_WAIT_BIT or allow for incomplete results to be captured.

This may have a race condition, mentioned by spec:

"""
Applications must take care to ensure that use of the
VK_QUERY_RESULT_WAIT_BIT bit has the desired effect. For example, if
a query has been used previously and a command buffer records the
commands vkCmdResetQueryPool, vkCmdBeginQuery, and vkCmdEndQuery for
that query, then the query will remain in the available state until the
 vkCmdResetQueryPool command executes on a queue.
"""

In affected tests, this change moves vkCmdResetQueryPool to separate
command buffer that is sumitted and completed before query is used on
device & host.

Additionally code handling RESULTS_MODE_COPY mode is refactored to use
new haveSeparateCopyCmdBuf() function instead of tons of flags and conditions.

Change-Id: Id4a538b912030f2a86b09593fecaae37f1819a71

7 years agoUpdate SPIRV-Headers
Maciej Jesionowski [Thu, 17 Nov 2016 09:44:36 +0000 (10:44 +0100)]
Update SPIRV-Headers

Add constants required for VK_KHR_shader_draw_parameters

Change-Id: I3cbf7cfa68714c47c205be019ece7f1218a66e00

7 years agoFix typo in check_license.py error message
Pyry Haulos [Wed, 16 Nov 2016 18:17:26 +0000 (10:17 -0800)]
Fix typo in check_license.py error message

Change-Id: Id1d0ec96e8b81cb434f7b39dcde1ba087418fc2e

7 years agoUpdate to latest SPIRV-Tools
David Neto [Wed, 16 Nov 2016 16:25:58 +0000 (11:25 -0500)]
Update to latest SPIRV-Tools

Requested for use by https://gerrit.khronos.org/#/c/279/

Test: Android build; also "vk-build-programs -v" under Linux

Change-Id: Ic207f64f861c9e3824f77f09b301b3855351c7c4

7 years agoAdd getInstanceExtensions() to Context
Arkadiusz Sarwa [Tue, 15 Nov 2016 12:38:12 +0000 (13:38 +0100)]
Add getInstanceExtensions() to Context

Change-Id: I7d442578c3dbea007bbf77bdeac0177fde9b87cd

7 years agoMerge "Revert "Update SPIR-V dependencies"" into vulkan-cts-1.0-dev
Pyry Haulos [Tue, 15 Nov 2016 22:09:47 +0000 (17:09 -0500)]
Merge "Revert "Update SPIR-V dependencies"" into vulkan-cts-1.0-dev

7 years agoRevert "Update SPIR-V dependencies"
Pyry Haulos [Tue, 15 Nov 2016 22:09:41 +0000 (18:09 -0400)]
Revert "Update SPIR-V dependencies"

Reverted since latest SPIRV-Tools breaks Android build.

This reverts commit 53331f8a91b6ab5f6ea57707620c92435bc06dde.

Change-Id: Ib4de2ecb13a51c5ce3c664b85cf0004c7e4df403

7 years agoFix warnings reported by VS 2015
Pyry Haulos [Mon, 14 Nov 2016 17:05:16 +0000 (09:05 -0800)]
Fix warnings reported by VS 2015

Change-Id: Ifc12df928d6d2f939d01c39a55a48bf861c51be7

7 years agoMerge gerrit/vulkan-cts-1.0.1 into gerrit/vulkan-cts-1.0-dev
Pyry Haulos [Mon, 14 Nov 2016 16:56:12 +0000 (08:56 -0800)]
Merge gerrit/vulkan-cts-1.0.1 into gerrit/vulkan-cts-1.0-dev

Change-Id: I4a9d3481a1f3c3d4975fb7b8c1fad0262beea8b0

7 years agoMerge gerrit/vulkan-cts-1.0.0 into gerrit/vulkan-cts-1.0.1
Pyry Haulos [Mon, 14 Nov 2016 16:56:10 +0000 (08:56 -0800)]
Merge gerrit/vulkan-cts-1.0.0 into gerrit/vulkan-cts-1.0.1

Change-Id: I620cf36a16740b6697c9d46b0cb7b7d013bd529b

7 years agoUpdate to latest libpng release
Pyry Haulos [Mon, 14 Nov 2016 16:51:13 +0000 (08:51 -0800)]
Update to latest libpng release

Previously used release 1.6.17 has been deprecated due to security bugs.

Change-Id: Ie5b749eea96e34f88a6833fbfab40c59cd3d162c

7 years agoMove MatrixLoadFlags from vktTestCase.hpp
Pyry Haulos [Mon, 14 Nov 2016 14:44:11 +0000 (06:44 -0800)]
Move MatrixLoadFlags from vktTestCase.hpp

vktTestCase.hpp is wildly inappropriate place for such data type. Both
UBO and SSBO tests use it currently and it is now duplicated to both of
them. UBO and SSBO tests do contain a quite bit of duplication already
(describing blocks, layout computation, etc.) and dedup should be done
as a part of bigger refactoring.

Change-Id: I5d4b8a947522192ba0dd4e807e04c940c1770eef

7 years agoUse conformant main() signature for CTS suite
Michael Chock [Sat, 12 Nov 2016 00:11:31 +0000 (16:11 -0800)]
Use conformant main() signature for CTS suite

C++ requires compilers to accept at least two signatures (3.6.1 in the
2014 and 2017 working drafts):

- a function of () returning int and
- a function of (int, pointer to pointer to char) returning int

There is no guarantee that a compiler will accept variations of argv
that use const. Use the second required form.

See #534.

Change-Id: I212b00e82b927fe25c5b2b20134db472c08e4c17

8 years agoMerge aosp/upstream-vulkan-cts-1.0-dev into aosp/master
Pyry Haulos [Fri, 11 Nov 2016 22:53:54 +0000 (14:53 -0800)]
Merge aosp/upstream-vulkan-cts-1.0-dev into aosp/master

Change-Id: I68f026a0c2f69918f03b14e479ad5473db08a7a0

8 years agoUpdate SPIR-V dependencies
Maciej Jesionowski [Wed, 9 Nov 2016 16:42:32 +0000 (17:42 +0100)]
Update SPIR-V dependencies

This will add support for SPV_KHR_shader_draw_parameters.

Change-Id: I172be89240c37e46e52dc005c5ae310e990672b8

8 years agoAdd Vulkan WSI support to the Wayland platform
Jason Ekstrand [Wed, 9 Nov 2016 17:38:22 +0000 (09:38 -0800)]
Add Vulkan WSI support to the Wayland platform

Change-Id: I572e30710202cd53d503036310c379f2fd5468a7

8 years agoEnable multithreading in glslang
Pyry Haulos [Fri, 11 Nov 2016 00:19:52 +0000 (16:19 -0800)]
Enable multithreading in glslang

Glslang is internally synchronized and able to support multithreaded
compilation as long as global lock is implemented.

This change provides 12x speedup in building SPIR-V binaries on a
40-core machine.

Change-Id: I27b8ce22db980c3657ac3ba67b7cec1543859d0d

8 years agoReuse binary indices when rebuilding SPIR-V binaries
Pyry Haulos [Fri, 28 Oct 2016 22:35:30 +0000 (07:35 +0900)]
Reuse binary indices when rebuilding SPIR-V binaries

When prebuilt SPIR-V binaries are stored in a version control system,
we want to minimize churn (rewritten files) when updating binaries in
response to test or compiler changes.

This change makes vk::BinaryRegistyWriter significantly smarter when
updating binary registry. Old binary files (and thus indices) are
reused if possible. Any newly unused binaries are removed, and new
indices are allocated only for binaries that haven't been present
before.

Change-Id: Ieac61ff32821e4381480dd56ff27dbcdd44e50cb

8 years agoMerge aosp/upstream-vulkan-cts-1.0-dev into aosp/master
Pyry Haulos [Fri, 11 Nov 2016 16:43:37 +0000 (08:43 -0800)]
Merge aosp/upstream-vulkan-cts-1.0-dev into aosp/master

Change-Id: I1bf942ca0cb3f4b92c522d60aed6b49a78ec1354

8 years agoAdd new files to Android.mk
Pyry Haulos [Fri, 11 Nov 2016 16:42:38 +0000 (08:42 -0800)]
Add new files to Android.mk

Change-Id: I68305d2ac6cc1f79bcb49ad9ee7611038bfbf634

8 years agoAdd test: queue bind sparse api
Maciej Jesionowski [Mon, 17 Oct 2016 15:32:50 +0000 (17:32 +0200)]
Add test: queue bind sparse api

Test vkQueueBindSparse with wait and signal semaphores,
zero bindInfos, etc.

New test:
- dEQP-VK.sparse_resources.queue_bind.*

See issue #401

Change-Id: If2201095cb9508bf9fa79f3c57e7de5a7dd03616

8 years agoRefactor sparse resources module
Maciej Jesionowski [Mon, 17 Oct 2016 15:30:33 +0000 (17:30 +0200)]
Refactor sparse resources module

Get rid of unused functions and custom classes where common
framework-provided utilities suffice.

Affected tests:
- dEQP-VK.sparse_resources.shader_intrinsics.*_sparse_sample_explicit_lod.*
- dEQP-VK.sparse_resources.shader_intrinsics.*_sparse_sample_implicit_lod.*
- dEQP-VK.sparse_resources.shader_intrinsics.*_sparse_gather.*
- dEQP-VK.sparse_resources.* (only code changed)

Sparse sample tests now use a different graphics pipeline, but their
behavior should remain unchanged.

Change-Id: Ib3b5158f142630360c1b5e176f16b2f604de8dfe

8 years agoAdd reset command pool reuseing test
Arkadiusz Sarwa [Mon, 17 Oct 2016 13:27:01 +0000 (15:27 +0200)]
Add reset command pool reuseing test

New test:
- dEQP-VK.api.command_buffers.pool_reset_reuse

Fixes #453

Change-Id: If21e5c833880530fc0a1f9e19e2c579d0b288ef9

8 years agoAdd geometry shader tests
Arkadiusz Sarwa [Tue, 27 Sep 2016 09:10:05 +0000 (11:10 +0200)]
Add geometry shader tests

New tests:
- dEQP-VK.geometry.*

Fixes #63

Change-Id: If1da0ce5e171ca6cb7396421f2fb8ffbcc55ce88

8 years agoAdd license check to scripts/src_util/check_all.py
Pyry Haulos [Fri, 11 Nov 2016 15:57:59 +0000 (07:57 -0800)]
Add license check to scripts/src_util/check_all.py

Change-Id: Id63ff1e351d01bc72253f298e373bfba963e2735

8 years agoFix license in a few files
Pyry Haulos [Fri, 11 Nov 2016 15:57:37 +0000 (07:57 -0800)]
Fix license in a few files

Change-Id: Ie26dfa6e9d151b71ddba7e00d05759532632b408

8 years agoUse VK_REMAINING_MIP_LEVELS in image clearing tests
Maciej Jesionowski [Mon, 26 Sep 2016 10:47:54 +0000 (12:47 +0200)]
Use VK_REMAINING_MIP_LEVELS in image clearing tests

Modified tests:
- dEQP-VK.api.image_clearing.clear_color_image.*
- dEQP-VK.api.image_clearing.* (refactor)

Tests were refactored to use images with more than one mip map,
but multiple mip maps were only added to clear_color_image tests.

Image is now cleared with two distinct colors, one for explicit
range of mip maps, the other for VK_REMAINING_MIP_LEVELS.

Fixes #459

Change-Id: Ia02289bf81faebd47c2e4c86a6bd8a4d06ddf34d

8 years agoUse all KHR and EXT extensions by default
Arkadiusz Sarwa [Fri, 4 Nov 2016 12:22:30 +0000 (13:22 +0100)]
Use all KHR and EXT extensions by default

Change-Id: If6111170be15db7a90692a730bffdfb7c5382be8

8 years agoFix wrong barriers in D+S texture upload routines in vkt::pipeline tests
Slawomir Cygan [Wed, 2 Nov 2016 17:16:30 +0000 (18:16 +0100)]
Fix wrong barriers in D+S texture upload routines in vkt::pipeline tests

Affects tests:
dEQP-VK.texture.shadow.2d.nearest.less_or_equal_d24_unorm_s8_uint
dEQP-VK.texture.shadow.2d.nearest.less_or_equal_d32_sfloat_s8_uint
...and possibly other dEQP-VK.texture.shadow.*d.*.*d*s8_uint

In case of D+S textures, there was an invalid aspect mask used in
barriers before and after the copy to image operation in
vkt::pipeline::uploadTestTextureInternal.

Because the upload of textures was split into D-only and S-only phases,
the barriers were operating separately on D and S aspects of DS texture,
what is forbidden by spec:

"""
If image has a depth/stencil format with both depth and stencil
components, then aspectMask member of subresourceRange must include
both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT".
"""

This change batches D & S uploads together (uploadTestTextureInternal is
called once), so full DS aspect mask is used in case of D+S textures.

Change-Id: Ib9d8b2a0156ffc8437edc0d5ed76c54116dd736b

8 years agoFix fetching geometry in dEQP-VK.renderpass test
Slawomir Cygan [Thu, 27 Oct 2016 18:11:15 +0000 (20:11 +0200)]
Fix fetching geometry in dEQP-VK.renderpass test

The renderpass test uses 48 byte vertex buffer for 6x 2-element float
values. At the same time pipeline tries to fetch 4-element atributes,
so the last vertex from buffer is outside of bounds (and may be zeroed).

Affected: All dEQP-VK.renderpass* that have the render geoemtry visible
in tested attachments.

Change-Id: If58e18c4df0ea053aa0a766b2bab381a0648326f

8 years agoFix GLSL precision in dEQP-VK.memory.pipeline_barrier.*storage_buffer
Slawomir Cygan [Thu, 27 Oct 2016 16:37:24 +0000 (18:37 +0200)]
Fix GLSL precision in dEQP-VK.memory.pipeline_barrier.*storage_buffer

The GLSL global precision qualifier in many shaders in this test was malformed
 - it essentially did not change any default precision.

Additionally *storage_buffer.65536 cases require higp integer precision in
 storage_buffer fragment shaders - otherwise the buffer indexing can wrap.

Change-Id: Ic5e965b8e418b1c68bee3a058a771d2b894c0f63

8 years agoMerge gerrit/vulkan-cts-1.0.1 into gerrit/vulkan-cts-1.0-dev
Pyry Haulos [Tue, 25 Oct 2016 05:36:23 +0000 (22:36 -0700)]
Merge gerrit/vulkan-cts-1.0.1 into gerrit/vulkan-cts-1.0-dev

Change-Id: I766de7d6d392d4a2503caae6e321836fde09c804

8 years agodEQP-VK.api.image_clearing: Use the correct aspects for depth/stencil attachments
Jason Ekstrand [Sat, 22 Oct 2016 16:16:55 +0000 (09:16 -0700)]
dEQP-VK.api.image_clearing: Use the correct aspects for depth/stencil attachments

These tests were blindly setting the aspectMask field of VkClearAttachment
to VK_IMAGE_ASPECT_DEPTH_BIT | VK_IMAGE_ASPECT_STENCIL_BIT even though the
format of the attachment may be a depth-only format.  This affects the
following tests:

dEQP-VK.api.image_clearing.clear_depth_stencil_attachment.2d_d16_unorm
dEQP-VK.api.image_clearing.clear_depth_stencil_attachment.2d_d32_sfloat
dEQP-VK.api.image_clearing.clear_depth_stencil_attachment.2d_x8_d24_unorm_pack32
dEQP-VK.api.image_clearing.partial_clear_depth_stencil_attachment.2d_d16_unorm
dEQP-VK.api.image_clearing.partial_clear_depth_stencil_attachment.2d_d32_sfloat
dEQP-VK.api.image_clearing.partial_clear_depth_stencil_attachment.2d_x8_d24_unorm_pack32

Change-Id: I7c0de07de97ae8529e429c26b1b99798cc1443a4

8 years agocopy_and_blit.blit_image: loosen threshold of float/float blits
Lionel Landwerlin [Sat, 15 Oct 2016 00:01:03 +0000 (01:01 +0100)]
copy_and_blit.blit_image: loosen threshold of float/float blits

In commit bd6f90c07f4bd0e0667ada50e134b479eeab78c5 :

  blit_image: compute validation threshold based on I/O formats

We tried to introduce an error threshold for unorm/integer formats and
removed all the precomputed thresholds for floating point formats. Also
introducing a bug where the threshold was ceiled to 1.0 (making a lot of
tests pass no matter the results).

In commit 161314f0ff255dfe47e280dd4945292295dab1ed :

  copy_and_blit.blit_image: fix threshold computation

We fixed the threshold to computation for unorm/integer formats but now all
threshold would be computed on the assumption that the resolution of numbers
is based of the number of bits in the fractional part of the number's
representation (which is incorrect for floating point formats).

This commit brings back the precomputed thresholds for floating point
formats, while still computing a threshold based on the number of bits in
the fractional part of the unorm formats.

Affected tests:
- dEQP-VK.api.copy_and_blit.blit_image.all_formats.*float*float*

Change-Id: I52034a58d145a8e046fb33bcc6becb9e83774d73

8 years agoCheck dependency between multiViewport and geometry
Maciej Jesionowski [Wed, 19 Oct 2016 09:48:30 +0000 (11:48 +0200)]
Check dependency between multiViewport and geometry

Modified tests:
- dEQP-VK.api.info.device.features

Public issue #25

Change-Id: Ifea108a909113f4628a7bfb1a75d9bdbd10866f3

8 years agoCheck for geometryShader in multi-viewport scissor
Maciej Jesionowski [Wed, 19 Oct 2016 09:32:29 +0000 (11:32 +0200)]
Check for geometryShader in multi-viewport scissor

Affected tests:
- dEQP-VK.fragment_operations.scissor.multi_viewport.*

Public issue #25

Change-Id: I82c45e7bff2f771b9874966246341d14d3371d8a

8 years agoRemove XML mustpass lists
Pyry Haulos [Wed, 24 Aug 2016 22:19:40 +0000 (15:19 -0700)]
Remove XML mustpass lists

Android CTS no longer uses per-package XML test lists.

(cherry picked from commit af8270690ae19b52cf673bdda853a57755b7d3fe)

Change-Id: I66c76af2c9b8dafbec7db9a9a7c150d4e5400ac2

8 years agoMerge aosp/upstream-vulkan-cts-1.0-dev into aosp/master
Pyry Haulos [Thu, 20 Oct 2016 18:42:41 +0000 (11:42 -0700)]
Merge aosp/upstream-vulkan-cts-1.0-dev into aosp/master

Change-Id: Ia92eae5ac913055ba0cd769b8ca3ac877e02d48c

8 years agoAdd excluded copy and blit tests back to mustpass
Pyry Haulos [Thu, 29 Sep 2016 21:43:55 +0000 (14:43 -0700)]
Add excluded copy and blit tests back to mustpass

See #431

Change-Id: I4d06edd0ad05e62fabe9f14c192aec3eb8d457c8

8 years agoAdd user clip plane tests back to mustpass
Pyry Haulos [Thu, 29 Sep 2016 21:22:06 +0000 (14:22 -0700)]
Add user clip plane tests back to mustpass

See #420

Change-Id: If0c5265298281241d50691a092b8af9720c1d2d7

8 years agoEnable some of dEQP-VK.glsl.texture_functions.texelfetchoffset.*
Slawomir Cygan [Tue, 20 Sep 2016 10:56:27 +0000 (12:56 +0200)]
Enable  some of dEQP-VK.glsl.texture_functions.texelfetchoffset.*

These are still disabled:
dEQP-VK.glsl.texture_functions.texelfetchoffset.sparse_sampler*

These tests were blacklisted as a part of issue 410, but it seems it was because of driver bug.

Change-Id: I01e3fdff78edef37dc0e7e72f129bd50e600b4aa

8 years agoAdd fragment sampled images to pipeline barrier tests
Mika Isojärvi [Thu, 15 Sep 2016 22:55:05 +0000 (15:55 -0700)]
Add fragment sampled images to pipeline barrier tests

Change-Id: I100f97a18206fc8e92e28b8c62289666048de6ea

8 years agoAdd fragment storage images to pipeline barrier tests
Mika Isojärvi [Fri, 9 Sep 2016 19:55:14 +0000 (12:55 -0700)]
Add fragment storage images to pipeline barrier tests

Change-Id: I34614de9bbc6ac567ba5a0faab1fc78c7b6375ca

8 years agoAdd fragment storage texel buffers to pipeline barrier tests
Mika Isojärvi [Wed, 7 Sep 2016 21:42:24 +0000 (14:42 -0700)]
Add fragment storage texel buffers to pipeline barrier tests

Change-Id: Id1ea453508d36b10908e46e79c4a7c2e4f7add5b

8 years agoAdd fragment uniform texel buffers to pipeline barrier tests
Mika Isojärvi [Wed, 7 Sep 2016 18:23:33 +0000 (11:23 -0700)]
Add fragment uniform texel buffers to pipeline barrier tests

Change-Id: I6a3bf3d522f952d0e0eb9ce623ff0f4efa4343c9

8 years agoAdd fragment storage buffers to pipeline barrier tests
Mika Isojärvi [Thu, 1 Sep 2016 22:51:56 +0000 (15:51 -0700)]
Add fragment storage buffers to pipeline barrier tests

Change-Id: Iac04ac1015064e8f5159c2d0f9838ccc79e33072

8 years agoAdd fragment uniform buffers to pipeline barrier tests
Mika Isojärvi [Thu, 1 Sep 2016 21:03:37 +0000 (14:03 -0700)]
Add fragment uniform buffers to pipeline barrier tests

Change-Id: I9a5ef06501c1969ee71f4adc37bbe5dd142646bb

8 years agoSplit pipeline barrier tests over multiple iterations
Mika Isojärvi [Wed, 31 Aug 2016 00:37:03 +0000 (17:37 -0700)]
Split pipeline barrier tests over multiple iterations

- Split different pipeline barrier test stages over multiple iterate() calls.
- Instead of running 100 ops once for each memory type run 50ops 5 times.
- Reduces resource usage, but increases number of operations performed.

Change-Id: I16f46ef94591cc45877f880dcf871f6302744c06

8 years agoExtend renderpass tests to use input attachments
Mika Isojärvi [Wed, 17 Aug 2016 20:23:36 +0000 (13:23 -0700)]
Extend renderpass tests to use input attachments

- Render only values 0 and 1 to all attachments.
- The value depends on attachment, subpass and pixel location.
- Depth formats also sets gl_FragDepth to 0.0 or 1.0 depending on location.
- Stencil uses only values 0 and 0xff.
- Verification requires that the quads are rasterized exactly and
  that all result values are either 0 or 1.
- Input attachment containing 1s and 0s are interpreted as true and
  false bools and input values are combined with boolean operations and
  written to shader outputs.

See #447
Change-Id: I4ebe3d9b5151d40558e473a028ee458cf6285a85

8 years agoFixes invalid subresource defs in *.simple_tests.
Dominik Witczak [Fri, 14 Oct 2016 14:18:15 +0000 (16:18 +0200)]
Fixes invalid subresource defs in *.simple_tests.

Affects dEQP-VK.api.copy_and_blit.blit_image.simple_tests

Fixes #519

Change-Id: I3c8331f27495333ece5bd43c160128fa49a7950d

8 years agoMerge "Check for EXT_color_buffer_float in read_pixels_fbo_format_mismatch" into...
Tina Zhou [Wed, 19 Oct 2016 18:13:50 +0000 (18:13 +0000)]
Merge "Check for EXT_color_buffer_float in read_pixels_fbo_format_mismatch" into nougat-cts-dev
am: 544e0e3b1d

Change-Id: I9b6b41060c199df465bb1aaf602b6c4e65170f19

8 years agoCheck for EXT_color_buffer_float in read_pixels_fbo_format_mismatch
Pyry Haulos [Wed, 19 Oct 2016 18:13:49 +0000 (18:13 +0000)]
Check for EXT_color_buffer_float in read_pixels_fbo_format_mismatch
am: 37e360591e

Change-Id: Iebccb4130e83bc05880ed19700b627920bd2c195

8 years agoMerge "CP: Use empty region when buffer age is not supported" into nougat-cts-dev
Tina Zhou [Wed, 19 Oct 2016 18:13:35 +0000 (18:13 +0000)]
Merge "CP: Use empty region when buffer age is not supported" into nougat-cts-dev
am: b82263e2ad

Change-Id: I48d7e3cf7abc24ea85d15e2c8e1cc28f495a715b

8 years agoCP: Use empty region when buffer age is not supported
Kalle Raita [Wed, 19 Oct 2016 18:13:34 +0000 (18:13 +0000)]
CP: Use empty region when buffer age is not supported
am: 8230646213

Change-Id: If04b5b6d5d8fc49177eae42772be8d8cfa5df7dd

8 years agoMerge "Fix deStrnlen fall-back implementation" into nougat-cts-dev
Tina Zhou [Wed, 19 Oct 2016 18:13:17 +0000 (18:13 +0000)]
Merge "Fix deStrnlen fall-back implementation" into nougat-cts-dev
am: a04db6628e

Change-Id: Iab81c26287e321d1ae9d15873866617690977868

8 years agoFix deStrnlen fall-back implementation
Pyry Haulos [Wed, 19 Oct 2016 18:13:16 +0000 (18:13 +0000)]
Fix deStrnlen fall-back implementation
am: 54ebe093a9

Change-Id: Ib970fc5430045b05006dee1fb47a08de6997c5df

8 years agoMerge "Remove a few preprocessor cases testing undefined behavior" into nougat-cts-dev
Tina Zhou [Wed, 19 Oct 2016 18:13:06 +0000 (18:13 +0000)]
Merge "Remove a few preprocessor cases testing undefined behavior" into nougat-cts-dev
am: 4275d2099c

Change-Id: I6dddd9f4d9f8223e6a639266cc9d2a3afe800598

8 years agoresolve merge conflicts of e5f7483 to master
Pyry Haulos [Wed, 19 Oct 2016 16:16:00 +0000 (09:16 -0700)]
resolve merge conflicts of e5f7483 to master

Change-Id: Id295761e33e8e58447f4b0bc9726f1bb03887d53

8 years agoMerge "Check for EXT_color_buffer_float in read_pixels_fbo_format_mismatch" into...
Tina Zhou [Wed, 19 Oct 2016 15:59:19 +0000 (15:59 +0000)]
Merge "Check for EXT_color_buffer_float in read_pixels_fbo_format_mismatch" into nougat-cts-dev

8 years agoMerge "CP: Use empty region when buffer age is not supported" into nougat-cts-dev
Tina Zhou [Wed, 19 Oct 2016 15:58:07 +0000 (15:58 +0000)]
Merge "CP: Use empty region when buffer age is not supported" into nougat-cts-dev

8 years agoMerge "Fix deStrnlen fall-back implementation" into nougat-cts-dev
Tina Zhou [Wed, 19 Oct 2016 15:56:53 +0000 (15:56 +0000)]
Merge "Fix deStrnlen fall-back implementation" into nougat-cts-dev

8 years agoMerge "Remove a few preprocessor cases testing undefined behavior" into nougat-cts-dev
Tina Zhou [Wed, 19 Oct 2016 15:56:21 +0000 (15:56 +0000)]
Merge "Remove a few preprocessor cases testing undefined behavior" into nougat-cts-dev

8 years agoMerge "Check for shader type support in negative precise tests" into nougat-cts-dev
Tina Zhou [Wed, 19 Oct 2016 15:54:14 +0000 (15:54 +0000)]
Merge "Check for shader type support in negative precise tests" into nougat-cts-dev
am: c30d04b8e7

Change-Id: I51397ade865e084fda6ea469615b19eeeefe38bd

8 years agoCheck for shader type support in negative precise tests
Pyry Haulos [Wed, 19 Oct 2016 15:54:13 +0000 (15:54 +0000)]
Check for shader type support in negative precise tests
am: 4a3a2d79a0

Change-Id: If11ec3c8cffdf5c152da4ebe8ea434aa67a61671

8 years agoMerge "Check for shader type support in negative shader directive tests" into nougat...
Tina Zhou [Wed, 19 Oct 2016 15:53:59 +0000 (15:53 +0000)]
Merge "Check for shader type support in negative shader directive tests" into nougat-cts-dev
am: a3513e86ff

Change-Id: I2c16e596fd38fb2a2b0455df8dab147fe69a8d99

8 years agoCheck for shader type support in negative shader directive tests
Pyry Haulos [Wed, 19 Oct 2016 15:53:58 +0000 (15:53 +0000)]
Check for shader type support in negative shader directive tests
am: cf6e6ab134

Change-Id: I575d8bebe3e3fdda7cb97b87325715bf940aeef3

8 years agoMerge "Check for shader type support in negative precise tests" into nougat-cts-dev
Tina Zhou [Wed, 19 Oct 2016 15:52:15 +0000 (15:52 +0000)]
Merge "Check for shader type support in negative precise tests" into nougat-cts-dev