From bf9fcaf371244ff01a7f98e015bf6ad2ea211441 Mon Sep 17 00:00:00 2001 From: Gabor Abraham Date: Mon, 10 Oct 2016 17:12:19 +0200 Subject: [PATCH] Add granularity test cases. New test: - dEQP-VK.api.granularity.* Change-Id: Ib3b045a0199aeb7195dd17a603c089834c64b904 --- android/cts/master/vk-master.txt | 520 ++++++++++++++++++++ .../vulkancts/modules/vulkan/api/CMakeLists.txt | 2 + .../modules/vulkan/api/vktApiGranularityTests.cpp | 537 +++++++++++++++++++++ .../modules/vulkan/api/vktApiGranularityTests.hpp | 41 ++ .../vulkancts/modules/vulkan/api/vktApiTests.cpp | 2 + external/vulkancts/mustpass/1.0.2/vk-default.txt | 520 ++++++++++++++++++++ 6 files changed, 1622 insertions(+) create mode 100644 external/vulkancts/modules/vulkan/api/vktApiGranularityTests.cpp create mode 100644 external/vulkancts/modules/vulkan/api/vktApiGranularityTests.hpp diff --git a/android/cts/master/vk-master.txt b/android/cts/master/vk-master.txt index 0dc3d08..961a7a0 100644 --- a/android/cts/master/vk-master.txt +++ b/android/cts/master/vk-master.txt @@ -18773,6 +18773,526 @@ dEQP-VK.api.null_handle.destroy_shader_module dEQP-VK.api.null_handle.free_command_buffers dEQP-VK.api.null_handle.free_descriptor_sets dEQP-VK.api.null_handle.free_memory +dEQP-VK.api.granularity.single.r4g4_unorm_pack8 +dEQP-VK.api.granularity.single.r4g4b4a4_unorm_pack16 +dEQP-VK.api.granularity.single.b4g4r4a4_unorm_pack16 +dEQP-VK.api.granularity.single.r5g6b5_unorm_pack16 +dEQP-VK.api.granularity.single.b5g6r5_unorm_pack16 +dEQP-VK.api.granularity.single.r5g5b5a1_unorm_pack16 +dEQP-VK.api.granularity.single.b5g5r5a1_unorm_pack16 +dEQP-VK.api.granularity.single.a1r5g5b5_unorm_pack16 +dEQP-VK.api.granularity.single.r8_unorm +dEQP-VK.api.granularity.single.r8_snorm +dEQP-VK.api.granularity.single.r8_uscaled +dEQP-VK.api.granularity.single.r8_sscaled +dEQP-VK.api.granularity.single.r8_uint +dEQP-VK.api.granularity.single.r8_sint +dEQP-VK.api.granularity.single.r8_srgb +dEQP-VK.api.granularity.single.r8g8_unorm +dEQP-VK.api.granularity.single.r8g8_snorm +dEQP-VK.api.granularity.single.r8g8_uscaled +dEQP-VK.api.granularity.single.r8g8_sscaled +dEQP-VK.api.granularity.single.r8g8_uint +dEQP-VK.api.granularity.single.r8g8_sint +dEQP-VK.api.granularity.single.r8g8_srgb +dEQP-VK.api.granularity.single.r8g8b8_unorm +dEQP-VK.api.granularity.single.r8g8b8_snorm +dEQP-VK.api.granularity.single.r8g8b8_uscaled +dEQP-VK.api.granularity.single.r8g8b8_sscaled +dEQP-VK.api.granularity.single.r8g8b8_uint +dEQP-VK.api.granularity.single.r8g8b8_sint +dEQP-VK.api.granularity.single.r8g8b8_srgb +dEQP-VK.api.granularity.single.b8g8r8_unorm +dEQP-VK.api.granularity.single.b8g8r8_snorm +dEQP-VK.api.granularity.single.b8g8r8_uscaled +dEQP-VK.api.granularity.single.b8g8r8_sscaled +dEQP-VK.api.granularity.single.b8g8r8_uint +dEQP-VK.api.granularity.single.b8g8r8_sint +dEQP-VK.api.granularity.single.b8g8r8_srgb +dEQP-VK.api.granularity.single.r8g8b8a8_unorm +dEQP-VK.api.granularity.single.r8g8b8a8_snorm +dEQP-VK.api.granularity.single.r8g8b8a8_uscaled +dEQP-VK.api.granularity.single.r8g8b8a8_sscaled +dEQP-VK.api.granularity.single.r8g8b8a8_uint +dEQP-VK.api.granularity.single.r8g8b8a8_sint +dEQP-VK.api.granularity.single.r8g8b8a8_srgb +dEQP-VK.api.granularity.single.b8g8r8a8_unorm +dEQP-VK.api.granularity.single.b8g8r8a8_snorm +dEQP-VK.api.granularity.single.b8g8r8a8_uscaled +dEQP-VK.api.granularity.single.b8g8r8a8_sscaled +dEQP-VK.api.granularity.single.b8g8r8a8_uint +dEQP-VK.api.granularity.single.b8g8r8a8_sint +dEQP-VK.api.granularity.single.b8g8r8a8_srgb +dEQP-VK.api.granularity.single.a8b8g8r8_unorm_pack32 +dEQP-VK.api.granularity.single.a8b8g8r8_snorm_pack32 +dEQP-VK.api.granularity.single.a8b8g8r8_uscaled_pack32 +dEQP-VK.api.granularity.single.a8b8g8r8_sscaled_pack32 +dEQP-VK.api.granularity.single.a8b8g8r8_uint_pack32 +dEQP-VK.api.granularity.single.a8b8g8r8_sint_pack32 +dEQP-VK.api.granularity.single.a8b8g8r8_srgb_pack32 +dEQP-VK.api.granularity.single.a2r10g10b10_unorm_pack32 +dEQP-VK.api.granularity.single.a2r10g10b10_snorm_pack32 +dEQP-VK.api.granularity.single.a2r10g10b10_uscaled_pack32 +dEQP-VK.api.granularity.single.a2r10g10b10_sscaled_pack32 +dEQP-VK.api.granularity.single.a2r10g10b10_uint_pack32 +dEQP-VK.api.granularity.single.a2r10g10b10_sint_pack32 +dEQP-VK.api.granularity.single.a2b10g10r10_unorm_pack32 +dEQP-VK.api.granularity.single.a2b10g10r10_snorm_pack32 +dEQP-VK.api.granularity.single.a2b10g10r10_uscaled_pack32 +dEQP-VK.api.granularity.single.a2b10g10r10_sscaled_pack32 +dEQP-VK.api.granularity.single.a2b10g10r10_uint_pack32 +dEQP-VK.api.granularity.single.a2b10g10r10_sint_pack32 +dEQP-VK.api.granularity.single.r16_unorm +dEQP-VK.api.granularity.single.r16_snorm +dEQP-VK.api.granularity.single.r16_uscaled +dEQP-VK.api.granularity.single.r16_sscaled +dEQP-VK.api.granularity.single.r16_uint +dEQP-VK.api.granularity.single.r16_sint +dEQP-VK.api.granularity.single.r16_sfloat +dEQP-VK.api.granularity.single.r16g16_unorm +dEQP-VK.api.granularity.single.r16g16_snorm +dEQP-VK.api.granularity.single.r16g16_uscaled +dEQP-VK.api.granularity.single.r16g16_sscaled +dEQP-VK.api.granularity.single.r16g16_uint +dEQP-VK.api.granularity.single.r16g16_sint +dEQP-VK.api.granularity.single.r16g16_sfloat +dEQP-VK.api.granularity.single.r16g16b16_unorm +dEQP-VK.api.granularity.single.r16g16b16_snorm +dEQP-VK.api.granularity.single.r16g16b16_uscaled +dEQP-VK.api.granularity.single.r16g16b16_sscaled +dEQP-VK.api.granularity.single.r16g16b16_uint +dEQP-VK.api.granularity.single.r16g16b16_sint +dEQP-VK.api.granularity.single.r16g16b16_sfloat +dEQP-VK.api.granularity.single.r16g16b16a16_unorm +dEQP-VK.api.granularity.single.r16g16b16a16_snorm +dEQP-VK.api.granularity.single.r16g16b16a16_uscaled +dEQP-VK.api.granularity.single.r16g16b16a16_sscaled +dEQP-VK.api.granularity.single.r16g16b16a16_uint +dEQP-VK.api.granularity.single.r16g16b16a16_sint +dEQP-VK.api.granularity.single.r16g16b16a16_sfloat +dEQP-VK.api.granularity.single.r32_uint +dEQP-VK.api.granularity.single.r32_sint +dEQP-VK.api.granularity.single.r32_sfloat +dEQP-VK.api.granularity.single.r32g32_uint +dEQP-VK.api.granularity.single.r32g32_sint +dEQP-VK.api.granularity.single.r32g32_sfloat +dEQP-VK.api.granularity.single.r32g32b32_uint +dEQP-VK.api.granularity.single.r32g32b32_sint +dEQP-VK.api.granularity.single.r32g32b32_sfloat +dEQP-VK.api.granularity.single.r32g32b32a32_uint +dEQP-VK.api.granularity.single.r32g32b32a32_sint +dEQP-VK.api.granularity.single.r32g32b32a32_sfloat +dEQP-VK.api.granularity.single.r64_uint +dEQP-VK.api.granularity.single.r64_sint +dEQP-VK.api.granularity.single.r64_sfloat +dEQP-VK.api.granularity.single.r64g64_uint +dEQP-VK.api.granularity.single.r64g64_sint +dEQP-VK.api.granularity.single.r64g64_sfloat +dEQP-VK.api.granularity.single.r64g64b64_uint +dEQP-VK.api.granularity.single.r64g64b64_sint +dEQP-VK.api.granularity.single.r64g64b64_sfloat +dEQP-VK.api.granularity.single.r64g64b64a64_uint +dEQP-VK.api.granularity.single.r64g64b64a64_sint +dEQP-VK.api.granularity.single.r64g64b64a64_sfloat +dEQP-VK.api.granularity.single.b10g11r11_ufloat_pack32 +dEQP-VK.api.granularity.single.e5b9g9r9_ufloat_pack32 +dEQP-VK.api.granularity.single.d16_unorm +dEQP-VK.api.granularity.single.x8_d24_unorm_pack32 +dEQP-VK.api.granularity.single.d32_sfloat +dEQP-VK.api.granularity.single.s8_uint +dEQP-VK.api.granularity.single.d16_unorm_s8_uint +dEQP-VK.api.granularity.single.d24_unorm_s8_uint +dEQP-VK.api.granularity.single.d32_sfloat_s8_uint +dEQP-VK.api.granularity.multi.r4g4_unorm_pack8 +dEQP-VK.api.granularity.multi.r4g4b4a4_unorm_pack16 +dEQP-VK.api.granularity.multi.b4g4r4a4_unorm_pack16 +dEQP-VK.api.granularity.multi.r5g6b5_unorm_pack16 +dEQP-VK.api.granularity.multi.b5g6r5_unorm_pack16 +dEQP-VK.api.granularity.multi.r5g5b5a1_unorm_pack16 +dEQP-VK.api.granularity.multi.b5g5r5a1_unorm_pack16 +dEQP-VK.api.granularity.multi.a1r5g5b5_unorm_pack16 +dEQP-VK.api.granularity.multi.r8_unorm +dEQP-VK.api.granularity.multi.r8_snorm +dEQP-VK.api.granularity.multi.r8_uscaled +dEQP-VK.api.granularity.multi.r8_sscaled +dEQP-VK.api.granularity.multi.r8_uint +dEQP-VK.api.granularity.multi.r8_sint +dEQP-VK.api.granularity.multi.r8_srgb +dEQP-VK.api.granularity.multi.r8g8_unorm +dEQP-VK.api.granularity.multi.r8g8_snorm +dEQP-VK.api.granularity.multi.r8g8_uscaled +dEQP-VK.api.granularity.multi.r8g8_sscaled +dEQP-VK.api.granularity.multi.r8g8_uint +dEQP-VK.api.granularity.multi.r8g8_sint +dEQP-VK.api.granularity.multi.r8g8_srgb +dEQP-VK.api.granularity.multi.r8g8b8_unorm +dEQP-VK.api.granularity.multi.r8g8b8_snorm +dEQP-VK.api.granularity.multi.r8g8b8_uscaled +dEQP-VK.api.granularity.multi.r8g8b8_sscaled +dEQP-VK.api.granularity.multi.r8g8b8_uint +dEQP-VK.api.granularity.multi.r8g8b8_sint +dEQP-VK.api.granularity.multi.r8g8b8_srgb +dEQP-VK.api.granularity.multi.b8g8r8_unorm +dEQP-VK.api.granularity.multi.b8g8r8_snorm +dEQP-VK.api.granularity.multi.b8g8r8_uscaled +dEQP-VK.api.granularity.multi.b8g8r8_sscaled +dEQP-VK.api.granularity.multi.b8g8r8_uint +dEQP-VK.api.granularity.multi.b8g8r8_sint +dEQP-VK.api.granularity.multi.b8g8r8_srgb +dEQP-VK.api.granularity.multi.r8g8b8a8_unorm +dEQP-VK.api.granularity.multi.r8g8b8a8_snorm +dEQP-VK.api.granularity.multi.r8g8b8a8_uscaled +dEQP-VK.api.granularity.multi.r8g8b8a8_sscaled +dEQP-VK.api.granularity.multi.r8g8b8a8_uint +dEQP-VK.api.granularity.multi.r8g8b8a8_sint +dEQP-VK.api.granularity.multi.r8g8b8a8_srgb +dEQP-VK.api.granularity.multi.b8g8r8a8_unorm +dEQP-VK.api.granularity.multi.b8g8r8a8_snorm +dEQP-VK.api.granularity.multi.b8g8r8a8_uscaled +dEQP-VK.api.granularity.multi.b8g8r8a8_sscaled +dEQP-VK.api.granularity.multi.b8g8r8a8_uint +dEQP-VK.api.granularity.multi.b8g8r8a8_sint +dEQP-VK.api.granularity.multi.b8g8r8a8_srgb +dEQP-VK.api.granularity.multi.a8b8g8r8_unorm_pack32 +dEQP-VK.api.granularity.multi.a8b8g8r8_snorm_pack32 +dEQP-VK.api.granularity.multi.a8b8g8r8_uscaled_pack32 +dEQP-VK.api.granularity.multi.a8b8g8r8_sscaled_pack32 +dEQP-VK.api.granularity.multi.a8b8g8r8_uint_pack32 +dEQP-VK.api.granularity.multi.a8b8g8r8_sint_pack32 +dEQP-VK.api.granularity.multi.a8b8g8r8_srgb_pack32 +dEQP-VK.api.granularity.multi.a2r10g10b10_unorm_pack32 +dEQP-VK.api.granularity.multi.a2r10g10b10_snorm_pack32 +dEQP-VK.api.granularity.multi.a2r10g10b10_uscaled_pack32 +dEQP-VK.api.granularity.multi.a2r10g10b10_sscaled_pack32 +dEQP-VK.api.granularity.multi.a2r10g10b10_uint_pack32 +dEQP-VK.api.granularity.multi.a2r10g10b10_sint_pack32 +dEQP-VK.api.granularity.multi.a2b10g10r10_unorm_pack32 +dEQP-VK.api.granularity.multi.a2b10g10r10_snorm_pack32 +dEQP-VK.api.granularity.multi.a2b10g10r10_uscaled_pack32 +dEQP-VK.api.granularity.multi.a2b10g10r10_sscaled_pack32 +dEQP-VK.api.granularity.multi.a2b10g10r10_uint_pack32 +dEQP-VK.api.granularity.multi.a2b10g10r10_sint_pack32 +dEQP-VK.api.granularity.multi.r16_unorm +dEQP-VK.api.granularity.multi.r16_snorm +dEQP-VK.api.granularity.multi.r16_uscaled +dEQP-VK.api.granularity.multi.r16_sscaled +dEQP-VK.api.granularity.multi.r16_uint +dEQP-VK.api.granularity.multi.r16_sint +dEQP-VK.api.granularity.multi.r16_sfloat +dEQP-VK.api.granularity.multi.r16g16_unorm +dEQP-VK.api.granularity.multi.r16g16_snorm +dEQP-VK.api.granularity.multi.r16g16_uscaled +dEQP-VK.api.granularity.multi.r16g16_sscaled +dEQP-VK.api.granularity.multi.r16g16_uint +dEQP-VK.api.granularity.multi.r16g16_sint +dEQP-VK.api.granularity.multi.r16g16_sfloat +dEQP-VK.api.granularity.multi.r16g16b16_unorm +dEQP-VK.api.granularity.multi.r16g16b16_snorm +dEQP-VK.api.granularity.multi.r16g16b16_uscaled +dEQP-VK.api.granularity.multi.r16g16b16_sscaled +dEQP-VK.api.granularity.multi.r16g16b16_uint +dEQP-VK.api.granularity.multi.r16g16b16_sint +dEQP-VK.api.granularity.multi.r16g16b16_sfloat +dEQP-VK.api.granularity.multi.r16g16b16a16_unorm +dEQP-VK.api.granularity.multi.r16g16b16a16_snorm +dEQP-VK.api.granularity.multi.r16g16b16a16_uscaled +dEQP-VK.api.granularity.multi.r16g16b16a16_sscaled +dEQP-VK.api.granularity.multi.r16g16b16a16_uint +dEQP-VK.api.granularity.multi.r16g16b16a16_sint +dEQP-VK.api.granularity.multi.r16g16b16a16_sfloat +dEQP-VK.api.granularity.multi.r32_uint +dEQP-VK.api.granularity.multi.r32_sint +dEQP-VK.api.granularity.multi.r32_sfloat +dEQP-VK.api.granularity.multi.r32g32_uint +dEQP-VK.api.granularity.multi.r32g32_sint +dEQP-VK.api.granularity.multi.r32g32_sfloat +dEQP-VK.api.granularity.multi.r32g32b32_uint +dEQP-VK.api.granularity.multi.r32g32b32_sint +dEQP-VK.api.granularity.multi.r32g32b32_sfloat +dEQP-VK.api.granularity.multi.r32g32b32a32_uint +dEQP-VK.api.granularity.multi.r32g32b32a32_sint +dEQP-VK.api.granularity.multi.r32g32b32a32_sfloat +dEQP-VK.api.granularity.multi.r64_uint +dEQP-VK.api.granularity.multi.r64_sint +dEQP-VK.api.granularity.multi.r64_sfloat +dEQP-VK.api.granularity.multi.r64g64_uint +dEQP-VK.api.granularity.multi.r64g64_sint +dEQP-VK.api.granularity.multi.r64g64_sfloat +dEQP-VK.api.granularity.multi.r64g64b64_uint +dEQP-VK.api.granularity.multi.r64g64b64_sint +dEQP-VK.api.granularity.multi.r64g64b64_sfloat +dEQP-VK.api.granularity.multi.r64g64b64a64_uint +dEQP-VK.api.granularity.multi.r64g64b64a64_sint +dEQP-VK.api.granularity.multi.r64g64b64a64_sfloat +dEQP-VK.api.granularity.multi.b10g11r11_ufloat_pack32 +dEQP-VK.api.granularity.multi.e5b9g9r9_ufloat_pack32 +dEQP-VK.api.granularity.multi.d16_unorm +dEQP-VK.api.granularity.multi.x8_d24_unorm_pack32 +dEQP-VK.api.granularity.multi.d32_sfloat +dEQP-VK.api.granularity.multi.s8_uint +dEQP-VK.api.granularity.multi.d16_unorm_s8_uint +dEQP-VK.api.granularity.multi.d24_unorm_s8_uint +dEQP-VK.api.granularity.multi.d32_sfloat_s8_uint +dEQP-VK.api.granularity.random.r4g4_unorm_pack8 +dEQP-VK.api.granularity.random.r4g4b4a4_unorm_pack16 +dEQP-VK.api.granularity.random.b4g4r4a4_unorm_pack16 +dEQP-VK.api.granularity.random.r5g6b5_unorm_pack16 +dEQP-VK.api.granularity.random.b5g6r5_unorm_pack16 +dEQP-VK.api.granularity.random.r5g5b5a1_unorm_pack16 +dEQP-VK.api.granularity.random.b5g5r5a1_unorm_pack16 +dEQP-VK.api.granularity.random.a1r5g5b5_unorm_pack16 +dEQP-VK.api.granularity.random.r8_unorm +dEQP-VK.api.granularity.random.r8_snorm +dEQP-VK.api.granularity.random.r8_uscaled +dEQP-VK.api.granularity.random.r8_sscaled +dEQP-VK.api.granularity.random.r8_uint +dEQP-VK.api.granularity.random.r8_sint +dEQP-VK.api.granularity.random.r8_srgb +dEQP-VK.api.granularity.random.r8g8_unorm +dEQP-VK.api.granularity.random.r8g8_snorm +dEQP-VK.api.granularity.random.r8g8_uscaled +dEQP-VK.api.granularity.random.r8g8_sscaled +dEQP-VK.api.granularity.random.r8g8_uint +dEQP-VK.api.granularity.random.r8g8_sint +dEQP-VK.api.granularity.random.r8g8_srgb +dEQP-VK.api.granularity.random.r8g8b8_unorm +dEQP-VK.api.granularity.random.r8g8b8_snorm +dEQP-VK.api.granularity.random.r8g8b8_uscaled +dEQP-VK.api.granularity.random.r8g8b8_sscaled +dEQP-VK.api.granularity.random.r8g8b8_uint +dEQP-VK.api.granularity.random.r8g8b8_sint +dEQP-VK.api.granularity.random.r8g8b8_srgb +dEQP-VK.api.granularity.random.b8g8r8_unorm +dEQP-VK.api.granularity.random.b8g8r8_snorm +dEQP-VK.api.granularity.random.b8g8r8_uscaled +dEQP-VK.api.granularity.random.b8g8r8_sscaled +dEQP-VK.api.granularity.random.b8g8r8_uint +dEQP-VK.api.granularity.random.b8g8r8_sint +dEQP-VK.api.granularity.random.b8g8r8_srgb +dEQP-VK.api.granularity.random.r8g8b8a8_unorm +dEQP-VK.api.granularity.random.r8g8b8a8_snorm +dEQP-VK.api.granularity.random.r8g8b8a8_uscaled +dEQP-VK.api.granularity.random.r8g8b8a8_sscaled +dEQP-VK.api.granularity.random.r8g8b8a8_uint +dEQP-VK.api.granularity.random.r8g8b8a8_sint +dEQP-VK.api.granularity.random.r8g8b8a8_srgb +dEQP-VK.api.granularity.random.b8g8r8a8_unorm +dEQP-VK.api.granularity.random.b8g8r8a8_snorm +dEQP-VK.api.granularity.random.b8g8r8a8_uscaled +dEQP-VK.api.granularity.random.b8g8r8a8_sscaled +dEQP-VK.api.granularity.random.b8g8r8a8_uint +dEQP-VK.api.granularity.random.b8g8r8a8_sint +dEQP-VK.api.granularity.random.b8g8r8a8_srgb +dEQP-VK.api.granularity.random.a8b8g8r8_unorm_pack32 +dEQP-VK.api.granularity.random.a8b8g8r8_snorm_pack32 +dEQP-VK.api.granularity.random.a8b8g8r8_uscaled_pack32 +dEQP-VK.api.granularity.random.a8b8g8r8_sscaled_pack32 +dEQP-VK.api.granularity.random.a8b8g8r8_uint_pack32 +dEQP-VK.api.granularity.random.a8b8g8r8_sint_pack32 +dEQP-VK.api.granularity.random.a8b8g8r8_srgb_pack32 +dEQP-VK.api.granularity.random.a2r10g10b10_unorm_pack32 +dEQP-VK.api.granularity.random.a2r10g10b10_snorm_pack32 +dEQP-VK.api.granularity.random.a2r10g10b10_uscaled_pack32 +dEQP-VK.api.granularity.random.a2r10g10b10_sscaled_pack32 +dEQP-VK.api.granularity.random.a2r10g10b10_uint_pack32 +dEQP-VK.api.granularity.random.a2r10g10b10_sint_pack32 +dEQP-VK.api.granularity.random.a2b10g10r10_unorm_pack32 +dEQP-VK.api.granularity.random.a2b10g10r10_snorm_pack32 +dEQP-VK.api.granularity.random.a2b10g10r10_uscaled_pack32 +dEQP-VK.api.granularity.random.a2b10g10r10_sscaled_pack32 +dEQP-VK.api.granularity.random.a2b10g10r10_uint_pack32 +dEQP-VK.api.granularity.random.a2b10g10r10_sint_pack32 +dEQP-VK.api.granularity.random.r16_unorm +dEQP-VK.api.granularity.random.r16_snorm +dEQP-VK.api.granularity.random.r16_uscaled +dEQP-VK.api.granularity.random.r16_sscaled +dEQP-VK.api.granularity.random.r16_uint +dEQP-VK.api.granularity.random.r16_sint +dEQP-VK.api.granularity.random.r16_sfloat +dEQP-VK.api.granularity.random.r16g16_unorm +dEQP-VK.api.granularity.random.r16g16_snorm +dEQP-VK.api.granularity.random.r16g16_uscaled +dEQP-VK.api.granularity.random.r16g16_sscaled +dEQP-VK.api.granularity.random.r16g16_uint +dEQP-VK.api.granularity.random.r16g16_sint +dEQP-VK.api.granularity.random.r16g16_sfloat +dEQP-VK.api.granularity.random.r16g16b16_unorm +dEQP-VK.api.granularity.random.r16g16b16_snorm +dEQP-VK.api.granularity.random.r16g16b16_uscaled +dEQP-VK.api.granularity.random.r16g16b16_sscaled +dEQP-VK.api.granularity.random.r16g16b16_uint +dEQP-VK.api.granularity.random.r16g16b16_sint +dEQP-VK.api.granularity.random.r16g16b16_sfloat +dEQP-VK.api.granularity.random.r16g16b16a16_unorm +dEQP-VK.api.granularity.random.r16g16b16a16_snorm +dEQP-VK.api.granularity.random.r16g16b16a16_uscaled +dEQP-VK.api.granularity.random.r16g16b16a16_sscaled +dEQP-VK.api.granularity.random.r16g16b16a16_uint +dEQP-VK.api.granularity.random.r16g16b16a16_sint +dEQP-VK.api.granularity.random.r16g16b16a16_sfloat +dEQP-VK.api.granularity.random.r32_uint +dEQP-VK.api.granularity.random.r32_sint +dEQP-VK.api.granularity.random.r32_sfloat +dEQP-VK.api.granularity.random.r32g32_uint +dEQP-VK.api.granularity.random.r32g32_sint +dEQP-VK.api.granularity.random.r32g32_sfloat +dEQP-VK.api.granularity.random.r32g32b32_uint +dEQP-VK.api.granularity.random.r32g32b32_sint +dEQP-VK.api.granularity.random.r32g32b32_sfloat +dEQP-VK.api.granularity.random.r32g32b32a32_uint +dEQP-VK.api.granularity.random.r32g32b32a32_sint +dEQP-VK.api.granularity.random.r32g32b32a32_sfloat +dEQP-VK.api.granularity.random.r64_uint +dEQP-VK.api.granularity.random.r64_sint +dEQP-VK.api.granularity.random.r64_sfloat +dEQP-VK.api.granularity.random.r64g64_uint +dEQP-VK.api.granularity.random.r64g64_sint +dEQP-VK.api.granularity.random.r64g64_sfloat +dEQP-VK.api.granularity.random.r64g64b64_uint +dEQP-VK.api.granularity.random.r64g64b64_sint +dEQP-VK.api.granularity.random.r64g64b64_sfloat +dEQP-VK.api.granularity.random.r64g64b64a64_uint +dEQP-VK.api.granularity.random.r64g64b64a64_sint +dEQP-VK.api.granularity.random.r64g64b64a64_sfloat +dEQP-VK.api.granularity.random.b10g11r11_ufloat_pack32 +dEQP-VK.api.granularity.random.e5b9g9r9_ufloat_pack32 +dEQP-VK.api.granularity.random.d16_unorm +dEQP-VK.api.granularity.random.x8_d24_unorm_pack32 +dEQP-VK.api.granularity.random.d32_sfloat +dEQP-VK.api.granularity.random.s8_uint +dEQP-VK.api.granularity.random.d16_unorm_s8_uint +dEQP-VK.api.granularity.random.d24_unorm_s8_uint +dEQP-VK.api.granularity.random.d32_sfloat_s8_uint +dEQP-VK.api.granularity.in_render_pass.r4g4_unorm_pack8 +dEQP-VK.api.granularity.in_render_pass.r4g4b4a4_unorm_pack16 +dEQP-VK.api.granularity.in_render_pass.b4g4r4a4_unorm_pack16 +dEQP-VK.api.granularity.in_render_pass.r5g6b5_unorm_pack16 +dEQP-VK.api.granularity.in_render_pass.b5g6r5_unorm_pack16 +dEQP-VK.api.granularity.in_render_pass.r5g5b5a1_unorm_pack16 +dEQP-VK.api.granularity.in_render_pass.b5g5r5a1_unorm_pack16 +dEQP-VK.api.granularity.in_render_pass.a1r5g5b5_unorm_pack16 +dEQP-VK.api.granularity.in_render_pass.r8_unorm +dEQP-VK.api.granularity.in_render_pass.r8_snorm +dEQP-VK.api.granularity.in_render_pass.r8_uscaled +dEQP-VK.api.granularity.in_render_pass.r8_sscaled +dEQP-VK.api.granularity.in_render_pass.r8_uint +dEQP-VK.api.granularity.in_render_pass.r8_sint +dEQP-VK.api.granularity.in_render_pass.r8_srgb +dEQP-VK.api.granularity.in_render_pass.r8g8_unorm +dEQP-VK.api.granularity.in_render_pass.r8g8_snorm +dEQP-VK.api.granularity.in_render_pass.r8g8_uscaled +dEQP-VK.api.granularity.in_render_pass.r8g8_sscaled +dEQP-VK.api.granularity.in_render_pass.r8g8_uint +dEQP-VK.api.granularity.in_render_pass.r8g8_sint +dEQP-VK.api.granularity.in_render_pass.r8g8_srgb +dEQP-VK.api.granularity.in_render_pass.r8g8b8_unorm +dEQP-VK.api.granularity.in_render_pass.r8g8b8_snorm +dEQP-VK.api.granularity.in_render_pass.r8g8b8_uscaled +dEQP-VK.api.granularity.in_render_pass.r8g8b8_sscaled +dEQP-VK.api.granularity.in_render_pass.r8g8b8_uint +dEQP-VK.api.granularity.in_render_pass.r8g8b8_sint +dEQP-VK.api.granularity.in_render_pass.r8g8b8_srgb +dEQP-VK.api.granularity.in_render_pass.b8g8r8_unorm +dEQP-VK.api.granularity.in_render_pass.b8g8r8_snorm +dEQP-VK.api.granularity.in_render_pass.b8g8r8_uscaled +dEQP-VK.api.granularity.in_render_pass.b8g8r8_sscaled +dEQP-VK.api.granularity.in_render_pass.b8g8r8_uint +dEQP-VK.api.granularity.in_render_pass.b8g8r8_sint +dEQP-VK.api.granularity.in_render_pass.b8g8r8_srgb +dEQP-VK.api.granularity.in_render_pass.r8g8b8a8_unorm +dEQP-VK.api.granularity.in_render_pass.r8g8b8a8_snorm +dEQP-VK.api.granularity.in_render_pass.r8g8b8a8_uscaled +dEQP-VK.api.granularity.in_render_pass.r8g8b8a8_sscaled +dEQP-VK.api.granularity.in_render_pass.r8g8b8a8_uint +dEQP-VK.api.granularity.in_render_pass.r8g8b8a8_sint +dEQP-VK.api.granularity.in_render_pass.r8g8b8a8_srgb +dEQP-VK.api.granularity.in_render_pass.b8g8r8a8_unorm +dEQP-VK.api.granularity.in_render_pass.b8g8r8a8_snorm +dEQP-VK.api.granularity.in_render_pass.b8g8r8a8_uscaled +dEQP-VK.api.granularity.in_render_pass.b8g8r8a8_sscaled +dEQP-VK.api.granularity.in_render_pass.b8g8r8a8_uint +dEQP-VK.api.granularity.in_render_pass.b8g8r8a8_sint +dEQP-VK.api.granularity.in_render_pass.b8g8r8a8_srgb +dEQP-VK.api.granularity.in_render_pass.a8b8g8r8_unorm_pack32 +dEQP-VK.api.granularity.in_render_pass.a8b8g8r8_snorm_pack32 +dEQP-VK.api.granularity.in_render_pass.a8b8g8r8_uscaled_pack32 +dEQP-VK.api.granularity.in_render_pass.a8b8g8r8_sscaled_pack32 +dEQP-VK.api.granularity.in_render_pass.a8b8g8r8_uint_pack32 +dEQP-VK.api.granularity.in_render_pass.a8b8g8r8_sint_pack32 +dEQP-VK.api.granularity.in_render_pass.a8b8g8r8_srgb_pack32 +dEQP-VK.api.granularity.in_render_pass.a2r10g10b10_unorm_pack32 +dEQP-VK.api.granularity.in_render_pass.a2r10g10b10_snorm_pack32 +dEQP-VK.api.granularity.in_render_pass.a2r10g10b10_uscaled_pack32 +dEQP-VK.api.granularity.in_render_pass.a2r10g10b10_sscaled_pack32 +dEQP-VK.api.granularity.in_render_pass.a2r10g10b10_uint_pack32 +dEQP-VK.api.granularity.in_render_pass.a2r10g10b10_sint_pack32 +dEQP-VK.api.granularity.in_render_pass.a2b10g10r10_unorm_pack32 +dEQP-VK.api.granularity.in_render_pass.a2b10g10r10_snorm_pack32 +dEQP-VK.api.granularity.in_render_pass.a2b10g10r10_uscaled_pack32 +dEQP-VK.api.granularity.in_render_pass.a2b10g10r10_sscaled_pack32 +dEQP-VK.api.granularity.in_render_pass.a2b10g10r10_uint_pack32 +dEQP-VK.api.granularity.in_render_pass.a2b10g10r10_sint_pack32 +dEQP-VK.api.granularity.in_render_pass.r16_unorm +dEQP-VK.api.granularity.in_render_pass.r16_snorm +dEQP-VK.api.granularity.in_render_pass.r16_uscaled +dEQP-VK.api.granularity.in_render_pass.r16_sscaled +dEQP-VK.api.granularity.in_render_pass.r16_uint +dEQP-VK.api.granularity.in_render_pass.r16_sint +dEQP-VK.api.granularity.in_render_pass.r16_sfloat +dEQP-VK.api.granularity.in_render_pass.r16g16_unorm +dEQP-VK.api.granularity.in_render_pass.r16g16_snorm +dEQP-VK.api.granularity.in_render_pass.r16g16_uscaled +dEQP-VK.api.granularity.in_render_pass.r16g16_sscaled +dEQP-VK.api.granularity.in_render_pass.r16g16_uint +dEQP-VK.api.granularity.in_render_pass.r16g16_sint +dEQP-VK.api.granularity.in_render_pass.r16g16_sfloat +dEQP-VK.api.granularity.in_render_pass.r16g16b16_unorm +dEQP-VK.api.granularity.in_render_pass.r16g16b16_snorm +dEQP-VK.api.granularity.in_render_pass.r16g16b16_uscaled +dEQP-VK.api.granularity.in_render_pass.r16g16b16_sscaled +dEQP-VK.api.granularity.in_render_pass.r16g16b16_uint +dEQP-VK.api.granularity.in_render_pass.r16g16b16_sint +dEQP-VK.api.granularity.in_render_pass.r16g16b16_sfloat +dEQP-VK.api.granularity.in_render_pass.r16g16b16a16_unorm +dEQP-VK.api.granularity.in_render_pass.r16g16b16a16_snorm +dEQP-VK.api.granularity.in_render_pass.r16g16b16a16_uscaled +dEQP-VK.api.granularity.in_render_pass.r16g16b16a16_sscaled +dEQP-VK.api.granularity.in_render_pass.r16g16b16a16_uint +dEQP-VK.api.granularity.in_render_pass.r16g16b16a16_sint +dEQP-VK.api.granularity.in_render_pass.r16g16b16a16_sfloat +dEQP-VK.api.granularity.in_render_pass.r32_uint +dEQP-VK.api.granularity.in_render_pass.r32_sint +dEQP-VK.api.granularity.in_render_pass.r32_sfloat +dEQP-VK.api.granularity.in_render_pass.r32g32_uint +dEQP-VK.api.granularity.in_render_pass.r32g32_sint +dEQP-VK.api.granularity.in_render_pass.r32g32_sfloat +dEQP-VK.api.granularity.in_render_pass.r32g32b32_uint +dEQP-VK.api.granularity.in_render_pass.r32g32b32_sint +dEQP-VK.api.granularity.in_render_pass.r32g32b32_sfloat +dEQP-VK.api.granularity.in_render_pass.r32g32b32a32_uint +dEQP-VK.api.granularity.in_render_pass.r32g32b32a32_sint +dEQP-VK.api.granularity.in_render_pass.r32g32b32a32_sfloat +dEQP-VK.api.granularity.in_render_pass.r64_uint +dEQP-VK.api.granularity.in_render_pass.r64_sint +dEQP-VK.api.granularity.in_render_pass.r64_sfloat +dEQP-VK.api.granularity.in_render_pass.r64g64_uint +dEQP-VK.api.granularity.in_render_pass.r64g64_sint +dEQP-VK.api.granularity.in_render_pass.r64g64_sfloat +dEQP-VK.api.granularity.in_render_pass.r64g64b64_uint +dEQP-VK.api.granularity.in_render_pass.r64g64b64_sint +dEQP-VK.api.granularity.in_render_pass.r64g64b64_sfloat +dEQP-VK.api.granularity.in_render_pass.r64g64b64a64_uint +dEQP-VK.api.granularity.in_render_pass.r64g64b64a64_sint +dEQP-VK.api.granularity.in_render_pass.r64g64b64a64_sfloat +dEQP-VK.api.granularity.in_render_pass.b10g11r11_ufloat_pack32 +dEQP-VK.api.granularity.in_render_pass.e5b9g9r9_ufloat_pack32 +dEQP-VK.api.granularity.in_render_pass.d16_unorm +dEQP-VK.api.granularity.in_render_pass.x8_d24_unorm_pack32 +dEQP-VK.api.granularity.in_render_pass.d32_sfloat +dEQP-VK.api.granularity.in_render_pass.s8_uint +dEQP-VK.api.granularity.in_render_pass.d16_unorm_s8_uint +dEQP-VK.api.granularity.in_render_pass.d24_unorm_s8_uint +dEQP-VK.api.granularity.in_render_pass.d32_sfloat_s8_uint dEQP-VK.memory.allocation.basic.size_64.forward.count_1 dEQP-VK.memory.allocation.basic.size_64.forward.count_10 dEQP-VK.memory.allocation.basic.size_64.forward.count_100 diff --git a/external/vulkancts/modules/vulkan/api/CMakeLists.txt b/external/vulkancts/modules/vulkan/api/CMakeLists.txt index 8bfda38..55a55c0 100644 --- a/external/vulkancts/modules/vulkan/api/CMakeLists.txt +++ b/external/vulkancts/modules/vulkan/api/CMakeLists.txt @@ -35,6 +35,8 @@ set(DEQP_VK_API_SRCS vktApiDescriptorPoolTests.hpp vktApiNullHandleTests.cpp vktApiNullHandleTests.hpp + vktApiGranularityTests.cpp + vktApiGranularityTests.hpp ) set(DEQP_VK_API_LIBS diff --git a/external/vulkancts/modules/vulkan/api/vktApiGranularityTests.cpp b/external/vulkancts/modules/vulkan/api/vktApiGranularityTests.cpp new file mode 100644 index 0000000..fa79bfb --- /dev/null +++ b/external/vulkancts/modules/vulkan/api/vktApiGranularityTests.cpp @@ -0,0 +1,537 @@ +/*------------------------------------------------------------------------ + * Vulkan Conformance Tests + * ------------------------ + * + * Copyright (c) 2015 The Khronos Group Inc. + * Copyright (c) 2015 Samsung Electronics Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + *//*! + * \file + * \brief Vulkan Get Render Area Granularity Tests + *//*--------------------------------------------------------------------*/ + +#include "vktApiGranularityTests.hpp" + +#include "deRandom.hpp" +#include "deSharedPtr.hpp" +#include "deStringUtil.hpp" +#include "deUniquePtr.hpp" + +#include "vkImageUtil.hpp" +#include "vkMemUtil.hpp" +#include "vkQueryUtil.hpp" +#include "vkRefUtil.hpp" +#include "vktTestCase.hpp" + +#include "tcuTestLog.hpp" +#include "tcuTextureUtil.hpp" + +#include + +namespace vkt +{ + +namespace api +{ + +using namespace vk; + +namespace +{ + +struct AttachmentInfo +{ + AttachmentInfo (const VkFormat vkFormat, + const deUint32 width, + const deUint32 height, + const deUint32 depth) + : format (vkFormat) + { + extent.width = width; + extent.height = height; + extent.depth = depth; + } + + ~AttachmentInfo (void) + {} + + VkFormat format; + VkExtent3D extent; +}; + +typedef de::SharedPtr AllocationSp; +typedef de::SharedPtr > VkImageSp; +typedef de::SharedPtr > VkImageViewSp; + +class GranularityInstance : public vkt::TestInstance +{ +public: + GranularityInstance (Context& context, + const std::vector& attachments, + const bool useRenderPass); + virtual ~GranularityInstance (void); + void checkFormatSupport (const VkFormat format); + void initAttachmentDescriptions (void); + void initImages (void); + void initRenderPass (void); + void beginRenderPass (void); + void endRenderPass (void); + virtual tcu::TestStatus iterate (void); +private: + const std::vector m_attachments; + const bool m_useRenderPass; + + Move m_renderPass; + Move m_frameBuffer; + Move m_cmdPool; + Move m_cmdBuffer; + std::vector m_attachmentDescriptions; + std::vector m_images; + std::vector m_imageAllocs; + std::vector m_imageViews; +}; + +GranularityInstance::GranularityInstance (Context& context, + const std::vector& attachments, + const bool useRenderPass) + : vkt::TestInstance (context) + , m_attachments (attachments) + , m_useRenderPass (useRenderPass) +{ + initAttachmentDescriptions(); +} + +GranularityInstance::~GranularityInstance (void) +{ +} + +void GranularityInstance::checkFormatSupport (const VkFormat format) +{ + VkImageFormatProperties properties; + + VkResult result = m_context.getInstanceInterface().getPhysicalDeviceImageFormatProperties(m_context.getPhysicalDevice(), + format, VK_IMAGE_TYPE_2D, + VK_IMAGE_TILING_OPTIMAL, + VK_IMAGE_USAGE_SAMPLED_BIT, + 0, + &properties); + + if (result == VK_ERROR_FORMAT_NOT_SUPPORTED) + TCU_THROW(NotSupportedError, "Format not supported"); +} + +void GranularityInstance::initAttachmentDescriptions (void) +{ + VkAttachmentDescription attachmentDescription = + { + 0u, // VkAttachmentDescriptionFlags flags; + VK_FORMAT_UNDEFINED, // VkFormat format; + VK_SAMPLE_COUNT_1_BIT, // VkSampleCountFlagBits samples; + VK_ATTACHMENT_LOAD_OP_DONT_CARE, // VkAttachmentLoadOp loadOp; + VK_ATTACHMENT_STORE_OP_DONT_CARE, // VkAttachmentStoreOp storeOp; + VK_ATTACHMENT_LOAD_OP_DONT_CARE, // VkAttachmentLoadOp stencilLoadOp; + VK_ATTACHMENT_STORE_OP_DONT_CARE, // VkAttachmentStoreOp stencilStoreOp; + VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout initialLayout; + VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout finalLayout; + }; + + for (std::vector::const_iterator it = m_attachments.begin(); it != m_attachments.end(); ++it) + { + checkFormatSupport(it->format); + attachmentDescription.format = it->format; + m_attachmentDescriptions.push_back(attachmentDescription); + } +} + +void GranularityInstance::initImages (void) +{ + const DeviceInterface& vk = m_context.getDeviceInterface(); + const VkDevice device = m_context.getDevice(); + const deUint32 queueFamilyIndex = m_context.getUniversalQueueFamilyIndex(); + SimpleAllocator memAlloc (vk, device, getPhysicalDeviceMemoryProperties(m_context.getInstanceInterface(), m_context.getPhysicalDevice())); + + for (std::vector::const_iterator it = m_attachments.begin(); it != m_attachments.end(); ++it) + { + const VkImageCreateInfo imageInfo = + { + VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO, // VkStructureType sType; + DE_NULL, // const void* pNext; + 0u, // VkImageCreateFlags flags; + VK_IMAGE_TYPE_2D, // VkImageType imageType; + it->format, // VkFormat format; + it->extent, // VkExtent3D extent; + 1u, // deUint32 mipLevels; + 1u, // deUint32 arrayLayers; + VK_SAMPLE_COUNT_1_BIT, // deUint32 samples; + VK_IMAGE_TILING_OPTIMAL, // VkImageTiling tiling; + VK_IMAGE_USAGE_SAMPLED_BIT, // VkImageUsageFlags usage; + VK_SHARING_MODE_EXCLUSIVE, // VkSharingMode sharingMode; + 1u, // deUint32 queueFamilyCount; + &queueFamilyIndex, // const deUint32* pQueueFamilyIndices; + VK_IMAGE_LAYOUT_UNDEFINED, // VkImageLayout initialLayout; + }; + + // Create the image + Move image = createImage(vk, device, &imageInfo); + de::MovePtr imageAlloc = memAlloc.allocate(getImageMemoryRequirements(vk, device, *image), MemoryRequirement::Any); + VK_CHECK(vk.bindImageMemory(device, *image, imageAlloc->getMemory(), imageAlloc->getOffset())); + + VkImageAspectFlags aspectFlags = 0; + const tcu::TextureFormat tcuFormat = mapVkFormat(it->format); + + if (tcu::hasDepthComponent(tcuFormat.order)) + aspectFlags |= VK_IMAGE_ASPECT_DEPTH_BIT; + + if (tcu::hasStencilComponent(tcuFormat.order)) + aspectFlags |= VK_IMAGE_ASPECT_STENCIL_BIT; + + if (!aspectFlags) + aspectFlags = VK_IMAGE_ASPECT_COLOR_BIT; + + const VkImageViewCreateInfo createInfo = + { + VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO, // VkStructureType sType; + DE_NULL, // const void* pNext; + 0, // VkImageViewCreateFlags flags; + *image, // VkImage image; + VK_IMAGE_VIEW_TYPE_2D, // VkImageViewType viewType; + it->format, // VkFormat format; + { + VK_COMPONENT_SWIZZLE_R, + VK_COMPONENT_SWIZZLE_G, + VK_COMPONENT_SWIZZLE_B, + VK_COMPONENT_SWIZZLE_A + }, // VkComponentMapping components; + { aspectFlags, 0u, 1u, 0u, 1u } // VkImageSubresourceRange subresourceRange; + }; + + // Create the Image View + Move imageView = createImageView(vk, device, &createInfo); + + // To prevent object free + m_images.push_back(VkImageSp(new Unique(image))); + m_imageAllocs.push_back(AllocationSp(imageAlloc.release())); + m_imageViews.push_back(VkImageViewSp(new Unique(imageView))); + } +} + +void GranularityInstance::initRenderPass (void) +{ + const DeviceInterface& vk = m_context.getDeviceInterface(); + const VkDevice device = m_context.getDevice(); + const deUint32 queueFamilyIndex = m_context.getUniversalQueueFamilyIndex(); + + { // Create RenderPass + const VkSubpassDescription subpassDesc = + { + (VkSubpassDescriptionFlags)0u, // VkSubpassDescriptionFlags flags; + VK_PIPELINE_BIND_POINT_GRAPHICS, // VkPipelineBindPoint pipelineBindPoint; + 0u, // deUint32 inputCount; + DE_NULL, // const VkAttachmentReference* pInputAttachments; + 0u, // deUint32 colorCount; + DE_NULL, // const VkAttachmentReference* pColorAttachments; + DE_NULL, // const VkAttachmentReference* pResolveAttachments; + DE_NULL, // VkAttachmentReference depthStencilAttachment; + 0u, // deUint32 preserveCount; + DE_NULL // const VkAttachmentReference* pPreserveAttachments; + }; + + const VkRenderPassCreateInfo renderPassParams = + { + VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO, // VkStructureType sType; + DE_NULL, // const void* pNext; + (VkRenderPassCreateFlags)0, // VkRenderPassCreateFlags flags; + (deUint32)m_attachmentDescriptions.size(), // deUint32 attachmentCount; + &m_attachmentDescriptions[0], // const VkAttachmentDescription* pAttachments; + 1u, // deUint32 subpassCount; + &subpassDesc, // const VkSubpassDescription* pSubpasses; + 0u, // deUint32 dependencyCount; + DE_NULL // const VkSubpassDependency* pDependencies; + }; + + m_renderPass = createRenderPass(vk, device, &renderPassParams); + } + + initImages(); + + { // Create Framebuffer + std::vector imageViews; + + for (std::vector::const_iterator it = m_imageViews.begin(); it != m_imageViews.end(); ++it) + imageViews.push_back(it->get()->get()); + + const VkFramebufferCreateInfo framebufferParams = + { + VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO, // VkStructureType sType; + DE_NULL, // const void* pNext; + (VkFramebufferCreateFlags)0, // VkFramebufferCreateFlags flags; + *m_renderPass, // VkRenderPass renderPass; + (deUint32)imageViews.size(), // deUint32 attachmentCount; + &imageViews[0], // const VkImageView* pAttachments; + 1, // deUint32 width; + 1, // deUint32 height; + 0 // deUint32 layers; + }; + + m_frameBuffer = createFramebuffer(vk, device, &framebufferParams); + } + + { // Create CommandPool + const VkCommandPoolCreateInfo cmdPoolParams = + { + VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO, // VkStructureType sType; + DE_NULL, // const void* pNext; + VK_COMMAND_POOL_CREATE_TRANSIENT_BIT, // VkCmdPoolCreateFlags flags; + queueFamilyIndex, // deUint32 queueFamilyIndex; + }; + + m_cmdPool = createCommandPool(vk, device, &cmdPoolParams); + } + + { // Create CommandBuffer + const VkCommandBufferAllocateInfo bufferAllocInfo = + { + VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO, // VkStructureType sType; + DE_NULL, // const void* pNext; + *m_cmdPool, // VkCmdPool cmdPool; + VK_COMMAND_BUFFER_LEVEL_PRIMARY, // VkCmdBufferLevel level; + 1u // deUint32 count; + }; + + m_cmdBuffer = allocateCommandBuffer(vk, device, &bufferAllocInfo); + } + + { // Begin CommandBuffer + const VkCommandBufferBeginInfo cmdBufferBeginInfo = + { + VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO, // VkStructureType sType; + DE_NULL, // const void* pNext; + 0u, // VkCmdBufferOptimizeFlags flags; + DE_NULL, // const VkCommandBufferInheritanceInfo* pInheritanceInfo; + }; + + VK_CHECK(vk.beginCommandBuffer(*m_cmdBuffer, &cmdBufferBeginInfo)); + } +} + +void GranularityInstance::beginRenderPass (void) +{ + const DeviceInterface& vk = m_context.getDeviceInterface(); + + const VkRect2D renderArea = + { + { 0, 0 }, // VkOffset2D offset; + { 1, 1 } // VkExtent2D extent; + }; + + const VkRenderPassBeginInfo renderPassBeginInfo = + { + VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO, // VkStructureType sType; + DE_NULL, // const void* pNext; + *m_renderPass, // VkRenderPass renderPass; + *m_frameBuffer, // VkFramebuffer framebuffer; + renderArea, // VkRect2D renderArea; + 0u, // uint32_t clearValueCount; + DE_NULL // const VkClearValue* pClearValues; + }; + + vk.cmdBeginRenderPass(*m_cmdBuffer, &renderPassBeginInfo, VK_SUBPASS_CONTENTS_INLINE); +} + +void GranularityInstance::endRenderPass (void) +{ + const DeviceInterface& vk = m_context.getDeviceInterface(); + + vk.cmdEndRenderPass(*m_cmdBuffer); + VK_CHECK(vk.endCommandBuffer(*m_cmdBuffer)); +} + +tcu::TestStatus GranularityInstance::iterate (void) +{ + const DeviceInterface& vk = m_context.getDeviceInterface(); + const VkDevice device = m_context.getDevice(); + tcu::TestLog& log = m_context.getTestContext().getLog(); + + initRenderPass(); + + VkExtent2D prePassGranularity = { ~0u, ~0u }; + vk.getRenderAreaGranularity(device, *m_renderPass, &prePassGranularity); + + if(m_useRenderPass) + beginRenderPass(); + + VkExtent2D granularity = { 0u, 0u }; + vk.getRenderAreaGranularity(device, *m_renderPass, &granularity); + TCU_CHECK(granularity.width >= 1 && granularity.height >= 1); + TCU_CHECK(prePassGranularity.width == granularity.width && prePassGranularity.height == granularity.height); + TCU_CHECK(granularity.width <= m_context.getDeviceProperties().limits.maxFramebufferWidth && granularity.height <= m_context.getDeviceProperties().limits.maxFramebufferHeight); + + if(m_useRenderPass) + endRenderPass(); + + log << tcu::TestLog::Message << "Horizontal granularity: " << granularity.width << " Vertical granularity: " << granularity.height << tcu::TestLog::EndMessage; + return tcu::TestStatus::pass("Granularity test"); +} + +class GranularityCase : public vkt::TestCase +{ +public: + GranularityCase (tcu::TestContext& testCtx, + const std::string& name, + const std::string& description, + const std::vector& attachments, + const bool useRenderPass); + virtual ~GranularityCase (void); + + virtual TestInstance* createInstance (Context& context) const; +private: + const std::vector m_attachments; + const bool m_useRenderPass; +}; + +GranularityCase::GranularityCase (tcu::TestContext& testCtx, + const std::string& name, + const std::string& description, + const std::vector& attachments, + const bool useRenderPass = false) + : vkt::TestCase (testCtx, name, description) + , m_attachments (attachments) + , m_useRenderPass (useRenderPass) +{ +} + +GranularityCase::~GranularityCase (void) +{ +} + +TestInstance* GranularityCase::createInstance (Context& context) const +{ + return new GranularityInstance(context, m_attachments, m_useRenderPass); +} + +} // anonymous + +tcu::TestCaseGroup* createGranularityQueryTests (tcu::TestContext& testCtx) +{ + de::MovePtr group (new tcu::TestCaseGroup(testCtx, "granularity", "Granularity query tests")); + // Subgroups + de::MovePtr single (new tcu::TestCaseGroup(testCtx, "single", "Single texture granularity tests.")); + de::MovePtr multi (new tcu::TestCaseGroup(testCtx, "multi", "Multiple textures with same format granularity tests.")); + de::MovePtr random (new tcu::TestCaseGroup(testCtx, "random", "Multiple textures with a guaranteed format occurence.")); + de::MovePtr inRenderPass (new tcu::TestCaseGroup(testCtx, "in_render_pass", "Single texture granularity tests, inside render pass")); + + de::Random rnd(215); + const char* description = "Granularity case."; + + const VkFormat mandatoryFormats[] = + { + VK_FORMAT_B4G4R4A4_UNORM_PACK16, + VK_FORMAT_R5G6B5_UNORM_PACK16, + VK_FORMAT_A1R5G5B5_UNORM_PACK16, + VK_FORMAT_R8_UNORM, + VK_FORMAT_R8_SNORM, + VK_FORMAT_R8_UINT, + VK_FORMAT_R8_SINT, + VK_FORMAT_R8G8_UNORM, + VK_FORMAT_R8G8_SNORM, + VK_FORMAT_R8G8_UINT, + VK_FORMAT_R8G8_SINT, + VK_FORMAT_R8G8B8A8_UNORM, + VK_FORMAT_R8G8B8A8_SNORM, + VK_FORMAT_R8G8B8A8_UINT, + VK_FORMAT_R8G8B8A8_SINT, + VK_FORMAT_R8G8B8A8_SRGB, + VK_FORMAT_B8G8R8A8_UNORM, + VK_FORMAT_B8G8R8A8_SRGB, + VK_FORMAT_A8B8G8R8_UNORM_PACK32, + VK_FORMAT_A8B8G8R8_SNORM_PACK32, + VK_FORMAT_A8B8G8R8_UINT_PACK32, + VK_FORMAT_A8B8G8R8_SINT_PACK32, + VK_FORMAT_A8B8G8R8_SRGB_PACK32, + VK_FORMAT_A2B10G10R10_UNORM_PACK32, + VK_FORMAT_A2B10G10R10_UINT_PACK32, + VK_FORMAT_R16_UINT, + VK_FORMAT_R16_SINT, + VK_FORMAT_R16_SFLOAT, + VK_FORMAT_R16G16_UINT, + VK_FORMAT_R16G16_SINT, + VK_FORMAT_R16G16_SFLOAT, + VK_FORMAT_R16G16B16A16_UINT, + VK_FORMAT_R16G16B16A16_SINT, + VK_FORMAT_R16G16B16A16_SFLOAT, + VK_FORMAT_R32_UINT, + VK_FORMAT_R32_SINT, + VK_FORMAT_R32_SFLOAT, + VK_FORMAT_R32G32_UINT, + VK_FORMAT_R32G32_SINT, + VK_FORMAT_R32G32_SFLOAT, + VK_FORMAT_R32G32B32A32_UINT, + VK_FORMAT_R32G32B32A32_SINT, + VK_FORMAT_R32G32B32A32_SFLOAT, + VK_FORMAT_B10G11R11_UFLOAT_PACK32, + VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, + VK_FORMAT_D16_UNORM, + VK_FORMAT_D32_SFLOAT, + }; + + const deUint32 maxDimension = 500; + const deUint32 minIteration = 2; + const deUint32 maxIteration = 10; + + for (deUint32 formatIdx = 1; formatIdx <= VK_FORMAT_D32_SFLOAT_S8_UINT; ++formatIdx) + { + VkFormat format = VkFormat(formatIdx); + std::string name = de::toLower(getFormatName(format)).substr(10); + + { + std::vector attachments; + attachments.push_back(AttachmentInfo(format, rnd.getInt(1, maxDimension), rnd.getInt(1, maxDimension), 1)); + single->addChild(new GranularityCase(testCtx, name.c_str(), description, attachments)); + } + + { + std::vector attachments; + deUint32 iterations = rnd.getInt(minIteration, maxIteration); + for (deUint32 idx = 0; idx < iterations; ++idx) + attachments.push_back(AttachmentInfo(VkFormat(formatIdx), rnd.getInt(1, maxDimension), rnd.getInt(1, maxDimension), 1)); + multi->addChild(new GranularityCase(testCtx, name.c_str(), description, attachments)); + } + + { + std::vector attachments; + deUint32 iterations = rnd.getInt(minIteration, maxIteration); + attachments.push_back(AttachmentInfo(VkFormat(formatIdx), rnd.getInt(1, maxDimension), rnd.getInt(1, maxDimension), 1)); + for (deUint32 idx = 0; idx < iterations; ++idx) + attachments.push_back(AttachmentInfo(mandatoryFormats[rnd.getInt(0, DE_LENGTH_OF_ARRAY(mandatoryFormats) - 1)], rnd.getInt(1, maxDimension), rnd.getInt(1, maxDimension), 1)); + random->addChild(new GranularityCase(testCtx, name.c_str(), description, attachments)); + } + + { + std::vector attachments; + attachments.push_back(AttachmentInfo(format, rnd.getInt(1, maxDimension), rnd.getInt(1, maxDimension), 1)); + inRenderPass->addChild(new GranularityCase(testCtx, name.c_str(), description, attachments, true)); + } + } + + group->addChild(single.release()); + group->addChild(multi.release()); + group->addChild(random.release()); + group->addChild(inRenderPass.release()); + + return group.release(); +} + +} // api +} // vkt diff --git a/external/vulkancts/modules/vulkan/api/vktApiGranularityTests.hpp b/external/vulkancts/modules/vulkan/api/vktApiGranularityTests.hpp new file mode 100644 index 0000000..e340320 --- /dev/null +++ b/external/vulkancts/modules/vulkan/api/vktApiGranularityTests.hpp @@ -0,0 +1,41 @@ +#ifndef _VKTAPIGRANULARITYTESTS_HPP +#define _VKTAPIGRANULARITYTESTS_HPP +/*------------------------------------------------------------------------ + * Vulkan Conformance Tests + * ------------------------ + * + * Copyright (c) 2015 The Khronos Group Inc. + * Copyright (c) 2015 Samsung Electronics Co., Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + *//*! + * \file + * \brief Vulkan Get Render Area Granularity Tests + *//*--------------------------------------------------------------------*/ + +#include "tcuDefs.hpp" +#include "tcuTestCase.hpp" + +namespace vkt +{ + +namespace api +{ + +tcu::TestCaseGroup* createGranularityQueryTests (tcu::TestContext& testCtx); + +} // api +} // vkt + +#endif // _VKTAPIGRANULARITYTESTS_HPP diff --git a/external/vulkancts/modules/vulkan/api/vktApiTests.cpp b/external/vulkancts/modules/vulkan/api/vktApiTests.cpp index a27cf1a..d1df659 100644 --- a/external/vulkancts/modules/vulkan/api/vktApiTests.cpp +++ b/external/vulkancts/modules/vulkan/api/vktApiTests.cpp @@ -37,6 +37,7 @@ #include "vktApiFillBufferTests.hpp" #include "vktApiDescriptorPoolTests.hpp" #include "vktApiNullHandleTests.hpp" +#include "vktApiGranularityTests.hpp" namespace vkt { @@ -70,6 +71,7 @@ void createApiTests (tcu::TestCaseGroup* apiTests) apiTests->addChild(createFillAndUpdateBufferTests (testCtx)); apiTests->addChild(createDescriptorPoolTests (testCtx)); apiTests->addChild(createNullHandleTests (testCtx)); + apiTests->addChild(createGranularityQueryTests (testCtx)); } } // anonymous diff --git a/external/vulkancts/mustpass/1.0.2/vk-default.txt b/external/vulkancts/mustpass/1.0.2/vk-default.txt index 7588751..ad9fe07 100644 --- a/external/vulkancts/mustpass/1.0.2/vk-default.txt +++ b/external/vulkancts/mustpass/1.0.2/vk-default.txt @@ -12650,6 +12650,526 @@ dEQP-VK.api.null_handle.destroy_shader_module dEQP-VK.api.null_handle.free_command_buffers dEQP-VK.api.null_handle.free_descriptor_sets dEQP-VK.api.null_handle.free_memory +dEQP-VK.api.granularity.single.r4g4_unorm_pack8 +dEQP-VK.api.granularity.single.r4g4b4a4_unorm_pack16 +dEQP-VK.api.granularity.single.b4g4r4a4_unorm_pack16 +dEQP-VK.api.granularity.single.r5g6b5_unorm_pack16 +dEQP-VK.api.granularity.single.b5g6r5_unorm_pack16 +dEQP-VK.api.granularity.single.r5g5b5a1_unorm_pack16 +dEQP-VK.api.granularity.single.b5g5r5a1_unorm_pack16 +dEQP-VK.api.granularity.single.a1r5g5b5_unorm_pack16 +dEQP-VK.api.granularity.single.r8_unorm +dEQP-VK.api.granularity.single.r8_snorm +dEQP-VK.api.granularity.single.r8_uscaled +dEQP-VK.api.granularity.single.r8_sscaled +dEQP-VK.api.granularity.single.r8_uint +dEQP-VK.api.granularity.single.r8_sint +dEQP-VK.api.granularity.single.r8_srgb +dEQP-VK.api.granularity.single.r8g8_unorm +dEQP-VK.api.granularity.single.r8g8_snorm +dEQP-VK.api.granularity.single.r8g8_uscaled +dEQP-VK.api.granularity.single.r8g8_sscaled +dEQP-VK.api.granularity.single.r8g8_uint +dEQP-VK.api.granularity.single.r8g8_sint +dEQP-VK.api.granularity.single.r8g8_srgb +dEQP-VK.api.granularity.single.r8g8b8_unorm +dEQP-VK.api.granularity.single.r8g8b8_snorm +dEQP-VK.api.granularity.single.r8g8b8_uscaled +dEQP-VK.api.granularity.single.r8g8b8_sscaled +dEQP-VK.api.granularity.single.r8g8b8_uint +dEQP-VK.api.granularity.single.r8g8b8_sint +dEQP-VK.api.granularity.single.r8g8b8_srgb +dEQP-VK.api.granularity.single.b8g8r8_unorm +dEQP-VK.api.granularity.single.b8g8r8_snorm +dEQP-VK.api.granularity.single.b8g8r8_uscaled +dEQP-VK.api.granularity.single.b8g8r8_sscaled +dEQP-VK.api.granularity.single.b8g8r8_uint +dEQP-VK.api.granularity.single.b8g8r8_sint +dEQP-VK.api.granularity.single.b8g8r8_srgb +dEQP-VK.api.granularity.single.r8g8b8a8_unorm +dEQP-VK.api.granularity.single.r8g8b8a8_snorm +dEQP-VK.api.granularity.single.r8g8b8a8_uscaled +dEQP-VK.api.granularity.single.r8g8b8a8_sscaled +dEQP-VK.api.granularity.single.r8g8b8a8_uint +dEQP-VK.api.granularity.single.r8g8b8a8_sint +dEQP-VK.api.granularity.single.r8g8b8a8_srgb +dEQP-VK.api.granularity.single.b8g8r8a8_unorm +dEQP-VK.api.granularity.single.b8g8r8a8_snorm +dEQP-VK.api.granularity.single.b8g8r8a8_uscaled +dEQP-VK.api.granularity.single.b8g8r8a8_sscaled +dEQP-VK.api.granularity.single.b8g8r8a8_uint +dEQP-VK.api.granularity.single.b8g8r8a8_sint +dEQP-VK.api.granularity.single.b8g8r8a8_srgb +dEQP-VK.api.granularity.single.a8b8g8r8_unorm_pack32 +dEQP-VK.api.granularity.single.a8b8g8r8_snorm_pack32 +dEQP-VK.api.granularity.single.a8b8g8r8_uscaled_pack32 +dEQP-VK.api.granularity.single.a8b8g8r8_sscaled_pack32 +dEQP-VK.api.granularity.single.a8b8g8r8_uint_pack32 +dEQP-VK.api.granularity.single.a8b8g8r8_sint_pack32 +dEQP-VK.api.granularity.single.a8b8g8r8_srgb_pack32 +dEQP-VK.api.granularity.single.a2r10g10b10_unorm_pack32 +dEQP-VK.api.granularity.single.a2r10g10b10_snorm_pack32 +dEQP-VK.api.granularity.single.a2r10g10b10_uscaled_pack32 +dEQP-VK.api.granularity.single.a2r10g10b10_sscaled_pack32 +dEQP-VK.api.granularity.single.a2r10g10b10_uint_pack32 +dEQP-VK.api.granularity.single.a2r10g10b10_sint_pack32 +dEQP-VK.api.granularity.single.a2b10g10r10_unorm_pack32 +dEQP-VK.api.granularity.single.a2b10g10r10_snorm_pack32 +dEQP-VK.api.granularity.single.a2b10g10r10_uscaled_pack32 +dEQP-VK.api.granularity.single.a2b10g10r10_sscaled_pack32 +dEQP-VK.api.granularity.single.a2b10g10r10_uint_pack32 +dEQP-VK.api.granularity.single.a2b10g10r10_sint_pack32 +dEQP-VK.api.granularity.single.r16_unorm +dEQP-VK.api.granularity.single.r16_snorm +dEQP-VK.api.granularity.single.r16_uscaled +dEQP-VK.api.granularity.single.r16_sscaled +dEQP-VK.api.granularity.single.r16_uint +dEQP-VK.api.granularity.single.r16_sint +dEQP-VK.api.granularity.single.r16_sfloat +dEQP-VK.api.granularity.single.r16g16_unorm +dEQP-VK.api.granularity.single.r16g16_snorm +dEQP-VK.api.granularity.single.r16g16_uscaled +dEQP-VK.api.granularity.single.r16g16_sscaled +dEQP-VK.api.granularity.single.r16g16_uint +dEQP-VK.api.granularity.single.r16g16_sint +dEQP-VK.api.granularity.single.r16g16_sfloat +dEQP-VK.api.granularity.single.r16g16b16_unorm +dEQP-VK.api.granularity.single.r16g16b16_snorm +dEQP-VK.api.granularity.single.r16g16b16_uscaled +dEQP-VK.api.granularity.single.r16g16b16_sscaled +dEQP-VK.api.granularity.single.r16g16b16_uint +dEQP-VK.api.granularity.single.r16g16b16_sint +dEQP-VK.api.granularity.single.r16g16b16_sfloat +dEQP-VK.api.granularity.single.r16g16b16a16_unorm +dEQP-VK.api.granularity.single.r16g16b16a16_snorm +dEQP-VK.api.granularity.single.r16g16b16a16_uscaled +dEQP-VK.api.granularity.single.r16g16b16a16_sscaled +dEQP-VK.api.granularity.single.r16g16b16a16_uint +dEQP-VK.api.granularity.single.r16g16b16a16_sint +dEQP-VK.api.granularity.single.r16g16b16a16_sfloat +dEQP-VK.api.granularity.single.r32_uint +dEQP-VK.api.granularity.single.r32_sint +dEQP-VK.api.granularity.single.r32_sfloat +dEQP-VK.api.granularity.single.r32g32_uint +dEQP-VK.api.granularity.single.r32g32_sint +dEQP-VK.api.granularity.single.r32g32_sfloat +dEQP-VK.api.granularity.single.r32g32b32_uint +dEQP-VK.api.granularity.single.r32g32b32_sint +dEQP-VK.api.granularity.single.r32g32b32_sfloat +dEQP-VK.api.granularity.single.r32g32b32a32_uint +dEQP-VK.api.granularity.single.r32g32b32a32_sint +dEQP-VK.api.granularity.single.r32g32b32a32_sfloat +dEQP-VK.api.granularity.single.r64_uint +dEQP-VK.api.granularity.single.r64_sint +dEQP-VK.api.granularity.single.r64_sfloat +dEQP-VK.api.granularity.single.r64g64_uint +dEQP-VK.api.granularity.single.r64g64_sint +dEQP-VK.api.granularity.single.r64g64_sfloat +dEQP-VK.api.granularity.single.r64g64b64_uint +dEQP-VK.api.granularity.single.r64g64b64_sint +dEQP-VK.api.granularity.single.r64g64b64_sfloat +dEQP-VK.api.granularity.single.r64g64b64a64_uint +dEQP-VK.api.granularity.single.r64g64b64a64_sint +dEQP-VK.api.granularity.single.r64g64b64a64_sfloat +dEQP-VK.api.granularity.single.b10g11r11_ufloat_pack32 +dEQP-VK.api.granularity.single.e5b9g9r9_ufloat_pack32 +dEQP-VK.api.granularity.single.d16_unorm +dEQP-VK.api.granularity.single.x8_d24_unorm_pack32 +dEQP-VK.api.granularity.single.d32_sfloat +dEQP-VK.api.granularity.single.s8_uint +dEQP-VK.api.granularity.single.d16_unorm_s8_uint +dEQP-VK.api.granularity.single.d24_unorm_s8_uint +dEQP-VK.api.granularity.single.d32_sfloat_s8_uint +dEQP-VK.api.granularity.multi.r4g4_unorm_pack8 +dEQP-VK.api.granularity.multi.r4g4b4a4_unorm_pack16 +dEQP-VK.api.granularity.multi.b4g4r4a4_unorm_pack16 +dEQP-VK.api.granularity.multi.r5g6b5_unorm_pack16 +dEQP-VK.api.granularity.multi.b5g6r5_unorm_pack16 +dEQP-VK.api.granularity.multi.r5g5b5a1_unorm_pack16 +dEQP-VK.api.granularity.multi.b5g5r5a1_unorm_pack16 +dEQP-VK.api.granularity.multi.a1r5g5b5_unorm_pack16 +dEQP-VK.api.granularity.multi.r8_unorm +dEQP-VK.api.granularity.multi.r8_snorm +dEQP-VK.api.granularity.multi.r8_uscaled +dEQP-VK.api.granularity.multi.r8_sscaled +dEQP-VK.api.granularity.multi.r8_uint +dEQP-VK.api.granularity.multi.r8_sint +dEQP-VK.api.granularity.multi.r8_srgb +dEQP-VK.api.granularity.multi.r8g8_unorm +dEQP-VK.api.granularity.multi.r8g8_snorm +dEQP-VK.api.granularity.multi.r8g8_uscaled +dEQP-VK.api.granularity.multi.r8g8_sscaled +dEQP-VK.api.granularity.multi.r8g8_uint +dEQP-VK.api.granularity.multi.r8g8_sint +dEQP-VK.api.granularity.multi.r8g8_srgb +dEQP-VK.api.granularity.multi.r8g8b8_unorm +dEQP-VK.api.granularity.multi.r8g8b8_snorm +dEQP-VK.api.granularity.multi.r8g8b8_uscaled +dEQP-VK.api.granularity.multi.r8g8b8_sscaled +dEQP-VK.api.granularity.multi.r8g8b8_uint +dEQP-VK.api.granularity.multi.r8g8b8_sint +dEQP-VK.api.granularity.multi.r8g8b8_srgb +dEQP-VK.api.granularity.multi.b8g8r8_unorm +dEQP-VK.api.granularity.multi.b8g8r8_snorm +dEQP-VK.api.granularity.multi.b8g8r8_uscaled +dEQP-VK.api.granularity.multi.b8g8r8_sscaled +dEQP-VK.api.granularity.multi.b8g8r8_uint +dEQP-VK.api.granularity.multi.b8g8r8_sint +dEQP-VK.api.granularity.multi.b8g8r8_srgb +dEQP-VK.api.granularity.multi.r8g8b8a8_unorm +dEQP-VK.api.granularity.multi.r8g8b8a8_snorm +dEQP-VK.api.granularity.multi.r8g8b8a8_uscaled +dEQP-VK.api.granularity.multi.r8g8b8a8_sscaled +dEQP-VK.api.granularity.multi.r8g8b8a8_uint +dEQP-VK.api.granularity.multi.r8g8b8a8_sint +dEQP-VK.api.granularity.multi.r8g8b8a8_srgb +dEQP-VK.api.granularity.multi.b8g8r8a8_unorm +dEQP-VK.api.granularity.multi.b8g8r8a8_snorm +dEQP-VK.api.granularity.multi.b8g8r8a8_uscaled +dEQP-VK.api.granularity.multi.b8g8r8a8_sscaled +dEQP-VK.api.granularity.multi.b8g8r8a8_uint +dEQP-VK.api.granularity.multi.b8g8r8a8_sint +dEQP-VK.api.granularity.multi.b8g8r8a8_srgb +dEQP-VK.api.granularity.multi.a8b8g8r8_unorm_pack32 +dEQP-VK.api.granularity.multi.a8b8g8r8_snorm_pack32 +dEQP-VK.api.granularity.multi.a8b8g8r8_uscaled_pack32 +dEQP-VK.api.granularity.multi.a8b8g8r8_sscaled_pack32 +dEQP-VK.api.granularity.multi.a8b8g8r8_uint_pack32 +dEQP-VK.api.granularity.multi.a8b8g8r8_sint_pack32 +dEQP-VK.api.granularity.multi.a8b8g8r8_srgb_pack32 +dEQP-VK.api.granularity.multi.a2r10g10b10_unorm_pack32 +dEQP-VK.api.granularity.multi.a2r10g10b10_snorm_pack32 +dEQP-VK.api.granularity.multi.a2r10g10b10_uscaled_pack32 +dEQP-VK.api.granularity.multi.a2r10g10b10_sscaled_pack32 +dEQP-VK.api.granularity.multi.a2r10g10b10_uint_pack32 +dEQP-VK.api.granularity.multi.a2r10g10b10_sint_pack32 +dEQP-VK.api.granularity.multi.a2b10g10r10_unorm_pack32 +dEQP-VK.api.granularity.multi.a2b10g10r10_snorm_pack32 +dEQP-VK.api.granularity.multi.a2b10g10r10_uscaled_pack32 +dEQP-VK.api.granularity.multi.a2b10g10r10_sscaled_pack32 +dEQP-VK.api.granularity.multi.a2b10g10r10_uint_pack32 +dEQP-VK.api.granularity.multi.a2b10g10r10_sint_pack32 +dEQP-VK.api.granularity.multi.r16_unorm +dEQP-VK.api.granularity.multi.r16_snorm +dEQP-VK.api.granularity.multi.r16_uscaled +dEQP-VK.api.granularity.multi.r16_sscaled +dEQP-VK.api.granularity.multi.r16_uint +dEQP-VK.api.granularity.multi.r16_sint +dEQP-VK.api.granularity.multi.r16_sfloat +dEQP-VK.api.granularity.multi.r16g16_unorm +dEQP-VK.api.granularity.multi.r16g16_snorm +dEQP-VK.api.granularity.multi.r16g16_uscaled +dEQP-VK.api.granularity.multi.r16g16_sscaled +dEQP-VK.api.granularity.multi.r16g16_uint +dEQP-VK.api.granularity.multi.r16g16_sint +dEQP-VK.api.granularity.multi.r16g16_sfloat +dEQP-VK.api.granularity.multi.r16g16b16_unorm +dEQP-VK.api.granularity.multi.r16g16b16_snorm +dEQP-VK.api.granularity.multi.r16g16b16_uscaled +dEQP-VK.api.granularity.multi.r16g16b16_sscaled +dEQP-VK.api.granularity.multi.r16g16b16_uint +dEQP-VK.api.granularity.multi.r16g16b16_sint +dEQP-VK.api.granularity.multi.r16g16b16_sfloat +dEQP-VK.api.granularity.multi.r16g16b16a16_unorm +dEQP-VK.api.granularity.multi.r16g16b16a16_snorm +dEQP-VK.api.granularity.multi.r16g16b16a16_uscaled +dEQP-VK.api.granularity.multi.r16g16b16a16_sscaled +dEQP-VK.api.granularity.multi.r16g16b16a16_uint +dEQP-VK.api.granularity.multi.r16g16b16a16_sint +dEQP-VK.api.granularity.multi.r16g16b16a16_sfloat +dEQP-VK.api.granularity.multi.r32_uint +dEQP-VK.api.granularity.multi.r32_sint +dEQP-VK.api.granularity.multi.r32_sfloat +dEQP-VK.api.granularity.multi.r32g32_uint +dEQP-VK.api.granularity.multi.r32g32_sint +dEQP-VK.api.granularity.multi.r32g32_sfloat +dEQP-VK.api.granularity.multi.r32g32b32_uint +dEQP-VK.api.granularity.multi.r32g32b32_sint +dEQP-VK.api.granularity.multi.r32g32b32_sfloat +dEQP-VK.api.granularity.multi.r32g32b32a32_uint +dEQP-VK.api.granularity.multi.r32g32b32a32_sint +dEQP-VK.api.granularity.multi.r32g32b32a32_sfloat +dEQP-VK.api.granularity.multi.r64_uint +dEQP-VK.api.granularity.multi.r64_sint +dEQP-VK.api.granularity.multi.r64_sfloat +dEQP-VK.api.granularity.multi.r64g64_uint +dEQP-VK.api.granularity.multi.r64g64_sint +dEQP-VK.api.granularity.multi.r64g64_sfloat +dEQP-VK.api.granularity.multi.r64g64b64_uint +dEQP-VK.api.granularity.multi.r64g64b64_sint +dEQP-VK.api.granularity.multi.r64g64b64_sfloat +dEQP-VK.api.granularity.multi.r64g64b64a64_uint +dEQP-VK.api.granularity.multi.r64g64b64a64_sint +dEQP-VK.api.granularity.multi.r64g64b64a64_sfloat +dEQP-VK.api.granularity.multi.b10g11r11_ufloat_pack32 +dEQP-VK.api.granularity.multi.e5b9g9r9_ufloat_pack32 +dEQP-VK.api.granularity.multi.d16_unorm +dEQP-VK.api.granularity.multi.x8_d24_unorm_pack32 +dEQP-VK.api.granularity.multi.d32_sfloat +dEQP-VK.api.granularity.multi.s8_uint +dEQP-VK.api.granularity.multi.d16_unorm_s8_uint +dEQP-VK.api.granularity.multi.d24_unorm_s8_uint +dEQP-VK.api.granularity.multi.d32_sfloat_s8_uint +dEQP-VK.api.granularity.random.r4g4_unorm_pack8 +dEQP-VK.api.granularity.random.r4g4b4a4_unorm_pack16 +dEQP-VK.api.granularity.random.b4g4r4a4_unorm_pack16 +dEQP-VK.api.granularity.random.r5g6b5_unorm_pack16 +dEQP-VK.api.granularity.random.b5g6r5_unorm_pack16 +dEQP-VK.api.granularity.random.r5g5b5a1_unorm_pack16 +dEQP-VK.api.granularity.random.b5g5r5a1_unorm_pack16 +dEQP-VK.api.granularity.random.a1r5g5b5_unorm_pack16 +dEQP-VK.api.granularity.random.r8_unorm +dEQP-VK.api.granularity.random.r8_snorm +dEQP-VK.api.granularity.random.r8_uscaled +dEQP-VK.api.granularity.random.r8_sscaled +dEQP-VK.api.granularity.random.r8_uint +dEQP-VK.api.granularity.random.r8_sint +dEQP-VK.api.granularity.random.r8_srgb +dEQP-VK.api.granularity.random.r8g8_unorm +dEQP-VK.api.granularity.random.r8g8_snorm +dEQP-VK.api.granularity.random.r8g8_uscaled +dEQP-VK.api.granularity.random.r8g8_sscaled +dEQP-VK.api.granularity.random.r8g8_uint +dEQP-VK.api.granularity.random.r8g8_sint +dEQP-VK.api.granularity.random.r8g8_srgb +dEQP-VK.api.granularity.random.r8g8b8_unorm +dEQP-VK.api.granularity.random.r8g8b8_snorm +dEQP-VK.api.granularity.random.r8g8b8_uscaled +dEQP-VK.api.granularity.random.r8g8b8_sscaled +dEQP-VK.api.granularity.random.r8g8b8_uint +dEQP-VK.api.granularity.random.r8g8b8_sint +dEQP-VK.api.granularity.random.r8g8b8_srgb +dEQP-VK.api.granularity.random.b8g8r8_unorm +dEQP-VK.api.granularity.random.b8g8r8_snorm +dEQP-VK.api.granularity.random.b8g8r8_uscaled +dEQP-VK.api.granularity.random.b8g8r8_sscaled +dEQP-VK.api.granularity.random.b8g8r8_uint +dEQP-VK.api.granularity.random.b8g8r8_sint +dEQP-VK.api.granularity.random.b8g8r8_srgb +dEQP-VK.api.granularity.random.r8g8b8a8_unorm +dEQP-VK.api.granularity.random.r8g8b8a8_snorm +dEQP-VK.api.granularity.random.r8g8b8a8_uscaled +dEQP-VK.api.granularity.random.r8g8b8a8_sscaled +dEQP-VK.api.granularity.random.r8g8b8a8_uint +dEQP-VK.api.granularity.random.r8g8b8a8_sint +dEQP-VK.api.granularity.random.r8g8b8a8_srgb +dEQP-VK.api.granularity.random.b8g8r8a8_unorm +dEQP-VK.api.granularity.random.b8g8r8a8_snorm +dEQP-VK.api.granularity.random.b8g8r8a8_uscaled +dEQP-VK.api.granularity.random.b8g8r8a8_sscaled +dEQP-VK.api.granularity.random.b8g8r8a8_uint +dEQP-VK.api.granularity.random.b8g8r8a8_sint +dEQP-VK.api.granularity.random.b8g8r8a8_srgb +dEQP-VK.api.granularity.random.a8b8g8r8_unorm_pack32 +dEQP-VK.api.granularity.random.a8b8g8r8_snorm_pack32 +dEQP-VK.api.granularity.random.a8b8g8r8_uscaled_pack32 +dEQP-VK.api.granularity.random.a8b8g8r8_sscaled_pack32 +dEQP-VK.api.granularity.random.a8b8g8r8_uint_pack32 +dEQP-VK.api.granularity.random.a8b8g8r8_sint_pack32 +dEQP-VK.api.granularity.random.a8b8g8r8_srgb_pack32 +dEQP-VK.api.granularity.random.a2r10g10b10_unorm_pack32 +dEQP-VK.api.granularity.random.a2r10g10b10_snorm_pack32 +dEQP-VK.api.granularity.random.a2r10g10b10_uscaled_pack32 +dEQP-VK.api.granularity.random.a2r10g10b10_sscaled_pack32 +dEQP-VK.api.granularity.random.a2r10g10b10_uint_pack32 +dEQP-VK.api.granularity.random.a2r10g10b10_sint_pack32 +dEQP-VK.api.granularity.random.a2b10g10r10_unorm_pack32 +dEQP-VK.api.granularity.random.a2b10g10r10_snorm_pack32 +dEQP-VK.api.granularity.random.a2b10g10r10_uscaled_pack32 +dEQP-VK.api.granularity.random.a2b10g10r10_sscaled_pack32 +dEQP-VK.api.granularity.random.a2b10g10r10_uint_pack32 +dEQP-VK.api.granularity.random.a2b10g10r10_sint_pack32 +dEQP-VK.api.granularity.random.r16_unorm +dEQP-VK.api.granularity.random.r16_snorm +dEQP-VK.api.granularity.random.r16_uscaled +dEQP-VK.api.granularity.random.r16_sscaled +dEQP-VK.api.granularity.random.r16_uint +dEQP-VK.api.granularity.random.r16_sint +dEQP-VK.api.granularity.random.r16_sfloat +dEQP-VK.api.granularity.random.r16g16_unorm +dEQP-VK.api.granularity.random.r16g16_snorm +dEQP-VK.api.granularity.random.r16g16_uscaled +dEQP-VK.api.granularity.random.r16g16_sscaled +dEQP-VK.api.granularity.random.r16g16_uint +dEQP-VK.api.granularity.random.r16g16_sint +dEQP-VK.api.granularity.random.r16g16_sfloat +dEQP-VK.api.granularity.random.r16g16b16_unorm +dEQP-VK.api.granularity.random.r16g16b16_snorm +dEQP-VK.api.granularity.random.r16g16b16_uscaled +dEQP-VK.api.granularity.random.r16g16b16_sscaled +dEQP-VK.api.granularity.random.r16g16b16_uint +dEQP-VK.api.granularity.random.r16g16b16_sint +dEQP-VK.api.granularity.random.r16g16b16_sfloat +dEQP-VK.api.granularity.random.r16g16b16a16_unorm +dEQP-VK.api.granularity.random.r16g16b16a16_snorm +dEQP-VK.api.granularity.random.r16g16b16a16_uscaled +dEQP-VK.api.granularity.random.r16g16b16a16_sscaled +dEQP-VK.api.granularity.random.r16g16b16a16_uint +dEQP-VK.api.granularity.random.r16g16b16a16_sint +dEQP-VK.api.granularity.random.r16g16b16a16_sfloat +dEQP-VK.api.granularity.random.r32_uint +dEQP-VK.api.granularity.random.r32_sint +dEQP-VK.api.granularity.random.r32_sfloat +dEQP-VK.api.granularity.random.r32g32_uint +dEQP-VK.api.granularity.random.r32g32_sint +dEQP-VK.api.granularity.random.r32g32_sfloat +dEQP-VK.api.granularity.random.r32g32b32_uint +dEQP-VK.api.granularity.random.r32g32b32_sint +dEQP-VK.api.granularity.random.r32g32b32_sfloat +dEQP-VK.api.granularity.random.r32g32b32a32_uint +dEQP-VK.api.granularity.random.r32g32b32a32_sint +dEQP-VK.api.granularity.random.r32g32b32a32_sfloat +dEQP-VK.api.granularity.random.r64_uint +dEQP-VK.api.granularity.random.r64_sint +dEQP-VK.api.granularity.random.r64_sfloat +dEQP-VK.api.granularity.random.r64g64_uint +dEQP-VK.api.granularity.random.r64g64_sint +dEQP-VK.api.granularity.random.r64g64_sfloat +dEQP-VK.api.granularity.random.r64g64b64_uint +dEQP-VK.api.granularity.random.r64g64b64_sint +dEQP-VK.api.granularity.random.r64g64b64_sfloat +dEQP-VK.api.granularity.random.r64g64b64a64_uint +dEQP-VK.api.granularity.random.r64g64b64a64_sint +dEQP-VK.api.granularity.random.r64g64b64a64_sfloat +dEQP-VK.api.granularity.random.b10g11r11_ufloat_pack32 +dEQP-VK.api.granularity.random.e5b9g9r9_ufloat_pack32 +dEQP-VK.api.granularity.random.d16_unorm +dEQP-VK.api.granularity.random.x8_d24_unorm_pack32 +dEQP-VK.api.granularity.random.d32_sfloat +dEQP-VK.api.granularity.random.s8_uint +dEQP-VK.api.granularity.random.d16_unorm_s8_uint +dEQP-VK.api.granularity.random.d24_unorm_s8_uint +dEQP-VK.api.granularity.random.d32_sfloat_s8_uint +dEQP-VK.api.granularity.in_render_pass.r4g4_unorm_pack8 +dEQP-VK.api.granularity.in_render_pass.r4g4b4a4_unorm_pack16 +dEQP-VK.api.granularity.in_render_pass.b4g4r4a4_unorm_pack16 +dEQP-VK.api.granularity.in_render_pass.r5g6b5_unorm_pack16 +dEQP-VK.api.granularity.in_render_pass.b5g6r5_unorm_pack16 +dEQP-VK.api.granularity.in_render_pass.r5g5b5a1_unorm_pack16 +dEQP-VK.api.granularity.in_render_pass.b5g5r5a1_unorm_pack16 +dEQP-VK.api.granularity.in_render_pass.a1r5g5b5_unorm_pack16 +dEQP-VK.api.granularity.in_render_pass.r8_unorm +dEQP-VK.api.granularity.in_render_pass.r8_snorm +dEQP-VK.api.granularity.in_render_pass.r8_uscaled +dEQP-VK.api.granularity.in_render_pass.r8_sscaled +dEQP-VK.api.granularity.in_render_pass.r8_uint +dEQP-VK.api.granularity.in_render_pass.r8_sint +dEQP-VK.api.granularity.in_render_pass.r8_srgb +dEQP-VK.api.granularity.in_render_pass.r8g8_unorm +dEQP-VK.api.granularity.in_render_pass.r8g8_snorm +dEQP-VK.api.granularity.in_render_pass.r8g8_uscaled +dEQP-VK.api.granularity.in_render_pass.r8g8_sscaled +dEQP-VK.api.granularity.in_render_pass.r8g8_uint +dEQP-VK.api.granularity.in_render_pass.r8g8_sint +dEQP-VK.api.granularity.in_render_pass.r8g8_srgb +dEQP-VK.api.granularity.in_render_pass.r8g8b8_unorm +dEQP-VK.api.granularity.in_render_pass.r8g8b8_snorm +dEQP-VK.api.granularity.in_render_pass.r8g8b8_uscaled +dEQP-VK.api.granularity.in_render_pass.r8g8b8_sscaled +dEQP-VK.api.granularity.in_render_pass.r8g8b8_uint +dEQP-VK.api.granularity.in_render_pass.r8g8b8_sint +dEQP-VK.api.granularity.in_render_pass.r8g8b8_srgb +dEQP-VK.api.granularity.in_render_pass.b8g8r8_unorm +dEQP-VK.api.granularity.in_render_pass.b8g8r8_snorm +dEQP-VK.api.granularity.in_render_pass.b8g8r8_uscaled +dEQP-VK.api.granularity.in_render_pass.b8g8r8_sscaled +dEQP-VK.api.granularity.in_render_pass.b8g8r8_uint +dEQP-VK.api.granularity.in_render_pass.b8g8r8_sint +dEQP-VK.api.granularity.in_render_pass.b8g8r8_srgb +dEQP-VK.api.granularity.in_render_pass.r8g8b8a8_unorm +dEQP-VK.api.granularity.in_render_pass.r8g8b8a8_snorm +dEQP-VK.api.granularity.in_render_pass.r8g8b8a8_uscaled +dEQP-VK.api.granularity.in_render_pass.r8g8b8a8_sscaled +dEQP-VK.api.granularity.in_render_pass.r8g8b8a8_uint +dEQP-VK.api.granularity.in_render_pass.r8g8b8a8_sint +dEQP-VK.api.granularity.in_render_pass.r8g8b8a8_srgb +dEQP-VK.api.granularity.in_render_pass.b8g8r8a8_unorm +dEQP-VK.api.granularity.in_render_pass.b8g8r8a8_snorm +dEQP-VK.api.granularity.in_render_pass.b8g8r8a8_uscaled +dEQP-VK.api.granularity.in_render_pass.b8g8r8a8_sscaled +dEQP-VK.api.granularity.in_render_pass.b8g8r8a8_uint +dEQP-VK.api.granularity.in_render_pass.b8g8r8a8_sint +dEQP-VK.api.granularity.in_render_pass.b8g8r8a8_srgb +dEQP-VK.api.granularity.in_render_pass.a8b8g8r8_unorm_pack32 +dEQP-VK.api.granularity.in_render_pass.a8b8g8r8_snorm_pack32 +dEQP-VK.api.granularity.in_render_pass.a8b8g8r8_uscaled_pack32 +dEQP-VK.api.granularity.in_render_pass.a8b8g8r8_sscaled_pack32 +dEQP-VK.api.granularity.in_render_pass.a8b8g8r8_uint_pack32 +dEQP-VK.api.granularity.in_render_pass.a8b8g8r8_sint_pack32 +dEQP-VK.api.granularity.in_render_pass.a8b8g8r8_srgb_pack32 +dEQP-VK.api.granularity.in_render_pass.a2r10g10b10_unorm_pack32 +dEQP-VK.api.granularity.in_render_pass.a2r10g10b10_snorm_pack32 +dEQP-VK.api.granularity.in_render_pass.a2r10g10b10_uscaled_pack32 +dEQP-VK.api.granularity.in_render_pass.a2r10g10b10_sscaled_pack32 +dEQP-VK.api.granularity.in_render_pass.a2r10g10b10_uint_pack32 +dEQP-VK.api.granularity.in_render_pass.a2r10g10b10_sint_pack32 +dEQP-VK.api.granularity.in_render_pass.a2b10g10r10_unorm_pack32 +dEQP-VK.api.granularity.in_render_pass.a2b10g10r10_snorm_pack32 +dEQP-VK.api.granularity.in_render_pass.a2b10g10r10_uscaled_pack32 +dEQP-VK.api.granularity.in_render_pass.a2b10g10r10_sscaled_pack32 +dEQP-VK.api.granularity.in_render_pass.a2b10g10r10_uint_pack32 +dEQP-VK.api.granularity.in_render_pass.a2b10g10r10_sint_pack32 +dEQP-VK.api.granularity.in_render_pass.r16_unorm +dEQP-VK.api.granularity.in_render_pass.r16_snorm +dEQP-VK.api.granularity.in_render_pass.r16_uscaled +dEQP-VK.api.granularity.in_render_pass.r16_sscaled +dEQP-VK.api.granularity.in_render_pass.r16_uint +dEQP-VK.api.granularity.in_render_pass.r16_sint +dEQP-VK.api.granularity.in_render_pass.r16_sfloat +dEQP-VK.api.granularity.in_render_pass.r16g16_unorm +dEQP-VK.api.granularity.in_render_pass.r16g16_snorm +dEQP-VK.api.granularity.in_render_pass.r16g16_uscaled +dEQP-VK.api.granularity.in_render_pass.r16g16_sscaled +dEQP-VK.api.granularity.in_render_pass.r16g16_uint +dEQP-VK.api.granularity.in_render_pass.r16g16_sint +dEQP-VK.api.granularity.in_render_pass.r16g16_sfloat +dEQP-VK.api.granularity.in_render_pass.r16g16b16_unorm +dEQP-VK.api.granularity.in_render_pass.r16g16b16_snorm +dEQP-VK.api.granularity.in_render_pass.r16g16b16_uscaled +dEQP-VK.api.granularity.in_render_pass.r16g16b16_sscaled +dEQP-VK.api.granularity.in_render_pass.r16g16b16_uint +dEQP-VK.api.granularity.in_render_pass.r16g16b16_sint +dEQP-VK.api.granularity.in_render_pass.r16g16b16_sfloat +dEQP-VK.api.granularity.in_render_pass.r16g16b16a16_unorm +dEQP-VK.api.granularity.in_render_pass.r16g16b16a16_snorm +dEQP-VK.api.granularity.in_render_pass.r16g16b16a16_uscaled +dEQP-VK.api.granularity.in_render_pass.r16g16b16a16_sscaled +dEQP-VK.api.granularity.in_render_pass.r16g16b16a16_uint +dEQP-VK.api.granularity.in_render_pass.r16g16b16a16_sint +dEQP-VK.api.granularity.in_render_pass.r16g16b16a16_sfloat +dEQP-VK.api.granularity.in_render_pass.r32_uint +dEQP-VK.api.granularity.in_render_pass.r32_sint +dEQP-VK.api.granularity.in_render_pass.r32_sfloat +dEQP-VK.api.granularity.in_render_pass.r32g32_uint +dEQP-VK.api.granularity.in_render_pass.r32g32_sint +dEQP-VK.api.granularity.in_render_pass.r32g32_sfloat +dEQP-VK.api.granularity.in_render_pass.r32g32b32_uint +dEQP-VK.api.granularity.in_render_pass.r32g32b32_sint +dEQP-VK.api.granularity.in_render_pass.r32g32b32_sfloat +dEQP-VK.api.granularity.in_render_pass.r32g32b32a32_uint +dEQP-VK.api.granularity.in_render_pass.r32g32b32a32_sint +dEQP-VK.api.granularity.in_render_pass.r32g32b32a32_sfloat +dEQP-VK.api.granularity.in_render_pass.r64_uint +dEQP-VK.api.granularity.in_render_pass.r64_sint +dEQP-VK.api.granularity.in_render_pass.r64_sfloat +dEQP-VK.api.granularity.in_render_pass.r64g64_uint +dEQP-VK.api.granularity.in_render_pass.r64g64_sint +dEQP-VK.api.granularity.in_render_pass.r64g64_sfloat +dEQP-VK.api.granularity.in_render_pass.r64g64b64_uint +dEQP-VK.api.granularity.in_render_pass.r64g64b64_sint +dEQP-VK.api.granularity.in_render_pass.r64g64b64_sfloat +dEQP-VK.api.granularity.in_render_pass.r64g64b64a64_uint +dEQP-VK.api.granularity.in_render_pass.r64g64b64a64_sint +dEQP-VK.api.granularity.in_render_pass.r64g64b64a64_sfloat +dEQP-VK.api.granularity.in_render_pass.b10g11r11_ufloat_pack32 +dEQP-VK.api.granularity.in_render_pass.e5b9g9r9_ufloat_pack32 +dEQP-VK.api.granularity.in_render_pass.d16_unorm +dEQP-VK.api.granularity.in_render_pass.x8_d24_unorm_pack32 +dEQP-VK.api.granularity.in_render_pass.d32_sfloat +dEQP-VK.api.granularity.in_render_pass.s8_uint +dEQP-VK.api.granularity.in_render_pass.d16_unorm_s8_uint +dEQP-VK.api.granularity.in_render_pass.d24_unorm_s8_uint +dEQP-VK.api.granularity.in_render_pass.d32_sfloat_s8_uint dEQP-VK.memory.allocation.basic.size_64.forward.count_1 dEQP-VK.memory.allocation.basic.size_64.forward.count_10 dEQP-VK.memory.allocation.basic.size_64.forward.count_100 -- 2.7.4