SPIR-V validation understands VK_EXT_scalar_block_layout
authorDavid Neto <dneto@google.com>
Wed, 10 Oct 2018 20:37:38 +0000 (16:37 -0400)
committerAlexander Galazin <alexander.galazin@arm.com>
Fri, 23 Nov 2018 11:04:34 +0000 (12:04 +0100)
commit8bd655f7b948efd3e11e8077ce0772ff677fae21
tree50dbc303656d06814eadcef0bd4c787d65991d13
parentbd5df3fb6d20e5d30e6d8ad78a966ea30049618b
SPIR-V validation understands VK_EXT_scalar_block_layout

Refactor SPIR-V validator options into own struct and header

Shader build options now record scalar layout flag.

Shader build options can yield a validator options object.

Update SSBO and UBO layout tests to tell validation when they are
using scalar layout.

Update fetch_sources.py to include GitLab SPIRV-Tools supporting
validation of scalar block layout.

Remaining validation failures:
- FPRoundingMode checks are not sensitive to capabilities in
  SPV_KHR_float_controls

Components: Vulkan
Affects:
dEQP-VK.ssbo.*
dEQP-VK.ubo.*

Change-Id: I4449b58f8c33c82eea8965847059fdeb22806876
(cherry picked from commit 3adebf1717d09fa7403f05325f4e8c5038b49a3c)

Add tests for VK_EXT_scalar_block_layout

Components: Vulkan, Framework

Affects:
dEQP-VK.ubo.*
dEQP-VK.ssbo.*

Change-Id: I373b9aed610d714b22e89910c98ce50ac882c513
(cherry picked from commit 71e336126ac2959418f9c39a9507e91e4dc61951)
31 files changed:
android/cts/master/vk-master.txt
external/fetch_sources.py [changed mode: 0644->0755]
external/vulkancts/framework/vulkan/CMakeLists.txt
external/vulkancts/framework/vulkan/vkBasicTypes.inl
external/vulkancts/framework/vulkan/vkGetStructureTypeImpl.inl
external/vulkancts/framework/vulkan/vkPrograms.cpp
external/vulkancts/framework/vulkan/vkPrograms.hpp
external/vulkancts/framework/vulkan/vkShaderProgram.hpp
external/vulkancts/framework/vulkan/vkSpirVAsm.cpp
external/vulkancts/framework/vulkan/vkSpirVAsm.hpp
external/vulkancts/framework/vulkan/vkSpirVProgram.hpp
external/vulkancts/framework/vulkan/vkStrUtil.inl
external/vulkancts/framework/vulkan/vkStrUtilImpl.inl
external/vulkancts/framework/vulkan/vkStructTypes.inl
external/vulkancts/framework/vulkan/vkValidatorOptions.hpp [new file with mode: 0644]
external/vulkancts/modules/vulkan/api/vktApiFeatureInfo.cpp
external/vulkancts/modules/vulkan/ssbo/vktSSBOLayoutCase.cpp
external/vulkancts/modules/vulkan/ssbo/vktSSBOLayoutCase.hpp
external/vulkancts/modules/vulkan/ssbo/vktSSBOLayoutTests.cpp
external/vulkancts/modules/vulkan/ubo/vktRandomUniformBlockCase.cpp
external/vulkancts/modules/vulkan/ubo/vktRandomUniformBlockCase.hpp
external/vulkancts/modules/vulkan/ubo/vktUniformBlockCase.cpp
external/vulkancts/modules/vulkan/ubo/vktUniformBlockCase.hpp
external/vulkancts/modules/vulkan/ubo/vktUniformBlockTests.cpp
external/vulkancts/modules/vulkan/vktBuildPrograms.cpp
external/vulkancts/modules/vulkan/vktTestCase.cpp
external/vulkancts/modules/vulkan/vktTestCase.hpp
external/vulkancts/mustpass/1.1.3/vk-default-no-waivers.txt
external/vulkancts/mustpass/1.1.3/vk-default.txt
external/vulkancts/scripts/src/vulkan.h.in
framework/delibs/debase/deInt32.h