Separate types and cases in random descriptor set tests
authorRicardo Garcia <rgarcia@igalia.com>
Fri, 19 Jun 2020 13:33:28 +0000 (15:33 +0200)
committerAlexander Galazin <Alexander.Galazin@arm.com>
Fri, 26 Jun 2020 10:41:40 +0000 (06:41 -0400)
commit916d8734f509267b4999a1009e78c2beb43eed15
treef045275707c87a9f6baa9ef669cff8f244135a7a
parent84a406a003a155c04a18c29a80c1216e68c919c3
Separate types and cases in random descriptor set tests

Several descriptor types are now allowed to have test combinations with
no descriptors of that type when using dynamic indexing. This enables us
to check dynamic indexing features only when the amount of descriptors
for the given type is nonzero. For example, if dynamic indexing is
available for uniform buffers but not texel buffers in a given
implementation, dynamic indexing tests can now run for combinations in
which the amount of texel buffers is zero.

Storage images, previously only used for storing test results, are now
part of the combinations too and independent from storage texel buffers.

This commit also introduces some checks to make sure the number of test
combinations and the resulting shader size remain reasonable.

In addition, this commit prepares the random descriptor set tests to
include write checks in the future for the following descriptor types:

* VK_DESCRIPTOR_TYPE_STORAGE_BUFFER
* VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC
* VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER
* VK_DESCRIPTOR_TYPE_STORAGE_IMAGE

The plan is to pseudorandomly choose around half the checks to be read
checks and the other half to be write checks.

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

Components: Vulkan
VK-GL-CTS issue: 1973

Change-Id: I43708bf7a4e630c2299ccf6215ed7a78294e9ba0
android/cts/master/src/vk-master-2019-03-01.txt
android/cts/master/vk-master-2019-03-01.txt
android/cts/master/vk-master-2020-03-01.txt
android/cts/master/vk-master.txt
external/vulkancts/modules/vulkan/binding_model/vktBindingDescriptorSetRandomTests.cpp
external/vulkancts/mustpass/master/src/excluded-tests.txt
external/vulkancts/mustpass/master/vk-default.txt