KhronosGroup / Vulkan-ValidationLayers

Vulkan Validation Layers (VVL)
https://vulkan.lunarg.com/doc/sdk/latest/linux/khronos_validation_layer.html
Other
770 stars 406 forks source link

external_revision_generator.py - Permission denied #371

Closed Metalhead33 closed 5 years ago

Metalhead33 commented 6 years ago
[  2%] Generating vk_enum_string_helper.h
[  5%] Generating vk_safe_struct.h
/home/legacy/porttmp/portage/media-libs/vulkan-layers-9999/temp/python3.4/bin/python /home/legacy/porttmp/portage/media-libs/vulkan-layers-9999/work/vulkan-layers-9999/scripts/lvl_genvk.py -registry /usr/share/vulkan/registry/vk.xml -scripts /usr/share/vulkan/registry vk_enum_string_helper.h
/home/legacy/porttmp/portage/media-libs/vulkan-layers-9999/temp/python3.4/bin/python /home/legacy/porttmp/portage/media-libs/vulkan-layers-9999/work/vulkan-layers-9999/scripts/lvl_genvk.py -registry /usr/share/vulkan/registry/vk.xml -scripts /usr/share/vulkan/registry vk_safe_struct.h
[  8%] Generating vk_safe_struct.cpp
/home/legacy/porttmp/portage/media-libs/vulkan-layers-9999/temp/python3.4/bin/python /home/legacy/porttmp/portage/media-libs/vulkan-layers-9999/work/vulkan-layers-9999/scripts/lvl_genvk.py -registry /usr/share/vulkan/registry/vk.xml -scripts /usr/share/vulkan/registry vk_safe_struct.cpp
[ 11%] Generating spirv_tools_commit_id.h
cd /home/legacy/porttmp/portage/media-libs/vulkan-layers-9999/work/vulkan-layers-9999-abi_x86_32.x86/layers && /home/legacy/porttmp/portage/media-libs/vulkan-layers-9999/work/vulkan-layers-9999/scripts/external_revision_generator.py --rev_file /usr/include/spirv-tools/spirv-tools-commit.h -s SPIRV_TOOLS_COMMIT_ID -o spirv_tools_commit_id.h
[ 14%] Generating vk_object_types.h
make[2]: Leaving directory '/home/legacy/porttmp/portage/media-libs/vulkan-layers-9999/work/vulkan-layers-9999-abi_x86_32.x86'
/home/legacy/porttmp/portage/media-libs/vulkan-layers-9999/temp/python3.4/bin/python /home/legacy/porttmp/portage/media-libs/vulkan-layers-9999/work/vulkan-layers-9999/scripts/lvl_genvk.py -registry /usr/share/vulkan/registry/vk.xml -scripts /usr/share/vulkan/registry vk_object_types.h
/bin/sh: /home/legacy/porttmp/portage/media-libs/vulkan-layers-9999/work/vulkan-layers-9999/scripts/external_revision_generator.py: Permission denied
make[2]: *** [layers/CMakeFiles/spirv_tools_revision_file.dir/build.make:62: layers/spirv_tools_commit_id.h] Error 126
make[2]: Leaving directory '/home/legacy/porttmp/portage/media-libs/vulkan-layers-9999/work/vulkan-layers-9999-abi_x86_32.x86'
make[1]: *** [CMakeFiles/Makefile2:463: layers/CMakeFiles/spirv_tools_revision_file.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 14%] Built target VkLayer_standard_validation-staging-json
[ 17%] Generating vk_dispatch_table_helper.h
[ 20%] Generating vk_layer_dispatch_table.h
/home/legacy/porttmp/portage/media-libs/vulkan-layers-9999/temp/python3.4/bin/python /home/legacy/porttmp/portage/media-libs/vulkan-layers-9999/work/vulkan-layers-9999/scripts/lvl_genvk.py -registry /usr/share/vulkan/registry/vk.xml -scripts /usr/share/vulkan/registry vk_layer_dispatch_table.h
/home/legacy/porttmp/portage/media-libs/vulkan-layers-9999/temp/python3.4/bin/python /home/legacy/porttmp/portage/media-libs/vulkan-layers-9999/work/vulkan-layers-9999/scripts/lvl_genvk.py -registry /usr/share/vulkan/registry/vk.xml -scripts /usr/share/vulkan/registry vk_dispatch_table_helper.h
[ 23%] Generating vk_extension_helper.h
/home/legacy/porttmp/portage/media-libs/vulkan-layers-9999/temp/python3.4/bin/python /home/legacy/porttmp/portage/media-libs/vulkan-layers-9999/work/vulkan-layers-9999/scripts/lvl_genvk.py -registry /usr/share/vulkan/registry/vk.xml -scripts /usr/share/vulkan/registry vk_extension_helper.h
[ 26%] Generating vk_typemap_helper.h
/home/legacy/porttmp/portage/media-libs/vulkan-layers-9999/temp/python3.4/bin/python /home/legacy/porttmp/portage/media-libs/vulkan-layers-9999/work/vulkan-layers-9999/scripts/lvl_genvk.py -registry /usr/share/vulkan/registry/vk.xml -scripts /usr/share/vulkan/registry vk_typemap_helper.h
make[2]: Leaving directory '/home/legacy/porttmp/portage/media-libs/vulkan-layers-9999/work/vulkan-layers-9999-abi_x86_32.x86'
[ 26%] Built target generate_helper_files
make[1]: Leaving directory '/home/legacy/porttmp/portage/media-libs/vulkan-layers-9999/work/vulkan-layers-9999-abi_x86_32.x86'
make: *** [Makefile:130: all] Error 2
shannon-lunarg commented 6 years ago

Hello. I cannnot reproduce these errors based off the information you provided so could you tell me a little bit more about the command(s) you used to produce this output? What kind of environment/platform are you using? Any additional information you can provide that I might need to reproduce these errors would be appreciated. Thanks!

karl-lunarg commented 6 years ago

This looks to me that a really old version of layers/CMakeLists.txt was being used here.

The above log shows use of the --rev-file option to the external_revision_generator. This was changed in commit 52913ec007a73cea5e916df949563f97f0166b5a to use the --from_uuid option instead.

Another issue, which has since been fixed, is that the PYTHON_CMD CMake variable probably wasn't being set properly back in the time of this commit, which explains why the path of the python executable doesn't show up in the log in front of the path of the external_revision_generator. Note that the path of the python executable shows up correctly in the previous three invocations of python scripts. This also explains the 126 error code, since the COMMAND interpreter was trying to invoke the python script directly and it does not have executable attributes set.

Looks like a stale file or stale set of CMake-generated makefiles to me.

Metalhead33 commented 6 years ago

Hello. I cannnot reproduce these errors based off the information you provided so could you tell me a little bit more about the command(s) you used to produce this output? What kind of environment/platform are you using? Any additional information you can provide that I might need to reproduce these errors would be appreciated. Thanks!

@shannon-lunarg I am on Gentoo, Linux and what I did was simply sudo emerge -1 "=media-libs/vulkan-layers-9999". To be specific, uname -a returns Linux localhost 4.15.0-gentoo #1 SMP Fri Feb 2 15:57:42 CET 2018 x86_64 Intel(R) Core(TM) i3-6100 CPU @ 3.70GHz GenuineIntel GNU/Linux .

Metalhead33 commented 6 years ago

@karl-lunarg Turns out, that following the instructions on BUILD.mk means a nearly-succesful compile, so the problem is with the ebuild. Here is vulkan-layers-9999.ebuild

# Copyright 1999-2018 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=6
PYTHON_COMPAT=( python3_{4,5,6} )

if [[ "${PV}" == "9999" ]]; then
        EGIT_REPO_URI="https://github.com/KhronosGroup/Vulkan-ValidationLayers.git"
        EGIT_SUBMODULES=()
        inherit git-r3
else
        EGIT_COMMIT="89bbac497742d48c3d483f78b1bba99101784746"
        KEYWORDS="~amd64"
        SRC_URI="https://github.com/KhronosGroup/Vulkan-ValidationLayers/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz"
        S="${WORKDIR}/Vulkan-ValidationLayers-${EGIT_COMMIT}"
fi

inherit python-any-r1 cmake-multilib

DESCRIPTION="Vulkan Validation Layers"
HOMEPAGE="https://github.com/KhronosGroup/Vulkan-ValidationLayers"

LICENSE="Apache-2.0"
SLOT="0"
IUSE="X wayland"

# Old packaging will cause file collisions
RDEPEND="!<=media-libs/vulkan-loader-1.1.70.0-r999"
DEPEND="${PYTHON_DEPS}
                >=dev-util/glslang-7.9.2888:=[${MULTILIB_USEDEP}]
                >=dev-util/spirv-tools-2018.2-r1:=[${MULTILIB_USEDEP}]
                >=dev-util/vulkan-headers-1.1.82.0
                wayland? ( dev-libs/wayland:=[${MULTILIB_USEDEP}] )
                X? (
                   x11-libs/libX11:=[${MULTILIB_USEDEP}]
                   x11-libs/libXrandr:=[${MULTILIB_USEDEP}]
                   )"

PATCHES=(
        "${FILESDIR}/${PN}-Use-a-file-to-get-the-spirv-tools-commit-ID.patch"
         )

multilib_src_configure() {
        local mycmakeargs=(
                -DCMAKE_SKIP_RPATH=True
                -DBUILD_WSI_MIR_SUPPORT=False
                -DBUILD_WSI_WAYLAND_SUPPORT=$(usex wayland)
                -DBUILD_WSI_XCB_SUPPORT=$(usex X)
                -DBUILD_WSI_XLIB_SUPPORT=$(usex X)
                -DBUILD_TESTS=False
                -DGLSLANG_INSTALL_DIR="/usr"
                -DVULKAN_HEADERS_INSTALL_DIR="/usr"
        )
        cmake-utils_src_configure
}

Trying to compile it by checking out the source and following the steps at BUILD.mk, doing a cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DBUILD_WSI_MIR_SUPPORT=False -DBUILD_WSI_WAYLAND_SUPPORT=no -DBUILD_WSI_XCB_SUPPORT=yes -DBUILD_WSI_XLIB_SUPPORT=yes -DBUILD_TESTS=False -DGLSLANG_INSTALL_DIR=/usr -DVULKAN_HEADERS_INSTALL_DIR=/usr myself means that it can get to 94%.

Then I end up with this very different error:

/tmp/Vulkan-ValidationLayers/layers/shader_validation.cpp: In member function ‘void shader_module::BuildDefIndex()’:
/tmp/Vulkan-ValidationLayers/layers/shader_validation.cpp:94:23: error: ‘OpTypeAccelerationStructureNVX’ is not a member of ‘spv’
             case spv::OpTypeAccelerationStructureNVX:
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/Vulkan-ValidationLayers/layers/shader_validation.cpp: In function ‘unsigned int ExecutionModelToShaderStageFlagBits(unsigned int)’:
/tmp/Vulkan-ValidationLayers/layers/shader_validation.cpp:148:19: error: ‘ExecutionModelRayGenerationNVX’ is not a member of ‘spv’
         case spv::ExecutionModelRayGenerationNVX:
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/Vulkan-ValidationLayers/layers/shader_validation.cpp:148:19: note: suggested alternative: ‘ExecutionModeContractionOff’
         case spv::ExecutionModelRayGenerationNVX:
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   ExecutionModeContractionOff
/tmp/Vulkan-ValidationLayers/layers/shader_validation.cpp:150:19: error: ‘ExecutionModelAnyHitNVX’ is not a member of ‘spv’
         case spv::ExecutionModelAnyHitNVX:
                   ^~~~~~~~~~~~~~~~~~~~~~~
/tmp/Vulkan-ValidationLayers/layers/shader_validation.cpp:150:19: note: suggested alternative: ‘ExecutionModeFinalizer’
         case spv::ExecutionModelAnyHitNVX:
                   ^~~~~~~~~~~~~~~~~~~~~~~
                   ExecutionModeFinalizer
/tmp/Vulkan-ValidationLayers/layers/shader_validation.cpp:152:19: error: ‘ExecutionModelClosestHitNVX’ is not a member of ‘spv’
         case spv::ExecutionModelClosestHitNVX:
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/Vulkan-ValidationLayers/layers/shader_validation.cpp:152:19: note: suggested alternative: ‘ExecutionModelGeometry’
         case spv::ExecutionModelClosestHitNVX:
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~
                   ExecutionModelGeometry
/tmp/Vulkan-ValidationLayers/layers/shader_validation.cpp:154:19: error: ‘ExecutionModelMissNVX’ is not a member of ‘spv’
         case spv::ExecutionModelMissNVX:
                   ^~~~~~~~~~~~~~~~~~~~~
/tmp/Vulkan-ValidationLayers/layers/shader_validation.cpp:154:19: note: suggested alternative: ‘ExecutionModelMax’
         case spv::ExecutionModelMissNVX:
                   ^~~~~~~~~~~~~~~~~~~~~
                   ExecutionModelMax
/tmp/Vulkan-ValidationLayers/layers/shader_validation.cpp:156:19: error: ‘ExecutionModelIntersectionNVX’ is not a member of ‘spv’
         case spv::ExecutionModelIntersectionNVX:
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/Vulkan-ValidationLayers/layers/shader_validation.cpp:156:19: note: suggested alternative: ‘ExecutionModeContractionOff’
         case spv::ExecutionModelIntersectionNVX:
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                   ExecutionModeContractionOff
/tmp/Vulkan-ValidationLayers/layers/shader_validation.cpp:158:19: error: ‘ExecutionModelCallableNVX’ is not a member of ‘spv’
         case spv::ExecutionModelCallableNVX:
                   ^~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/Vulkan-ValidationLayers/layers/shader_validation.cpp:158:19: note: suggested alternative: ‘ExecutionModelFragment’
         case spv::ExecutionModelCallableNVX:
                   ^~~~~~~~~~~~~~~~~~~~~~~~~
                   ExecutionModelFragment
/tmp/Vulkan-ValidationLayers/layers/shader_validation.cpp:160:19: error: ‘ExecutionModelTaskNV’ is not a member of ‘spv’
         case spv::ExecutionModelTaskNV:
                   ^~~~~~~~~~~~~~~~~~~~
/tmp/Vulkan-ValidationLayers/layers/shader_validation.cpp:160:19: note: suggested alternative: ‘ExecutionModelMax’
         case spv::ExecutionModelTaskNV:
                   ^~~~~~~~~~~~~~~~~~~~
                   ExecutionModelMax
/tmp/Vulkan-ValidationLayers/layers/shader_validation.cpp:162:19: error: ‘ExecutionModelMeshNV’ is not a member of ‘spv’
         case spv::ExecutionModelMeshNV:
                   ^~~~~~~~~~~~~~~~~~~~
/tmp/Vulkan-ValidationLayers/layers/shader_validation.cpp:162:19: note: suggested alternative: ‘ExecutionModelMax’
         case spv::ExecutionModelMeshNV:
                   ^~~~~~~~~~~~~~~~~~~~
                   ExecutionModelMax
/tmp/Vulkan-ValidationLayers/layers/shader_validation.cpp: In function ‘void DescribeTypeInner(std::ostringstream&, const shader_module*, unsigned int)’:
/tmp/Vulkan-ValidationLayers/layers/shader_validation.cpp:288:19: error: ‘OpTypeAccelerationStructureNVX’ is not a member of ‘spv’
         case spv::OpTypeAccelerationStructureNVX:
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/Vulkan-ValidationLayers/layers/shader_validation.cpp: In function ‘std::set<unsigned int> TypeToDescriptorTypeSet(const shader_module*, uint32_t, unsigned int&)’:
/tmp/Vulkan-ValidationLayers/layers/shader_validation.cpp:1316:19: error: ‘OpTypeAccelerationStructureNVX’ is not a member of ‘spv’
         case spv::OpTypeAccelerationStructureNVX:
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/Vulkan-ValidationLayers/layers/shader_validation.cpp: In function ‘bool ValidateShaderCapabilities(core_validation::layer_data*, const shader_module*, VkShaderStageFlagBits, bool)’:
/tmp/Vulkan-ValidationLayers/layers/shader_validation.cpp:1455:40: error: ‘VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME’ was not declared in this scope
         {spv::CapabilityInt64Atomics, {VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME, nullptr, &DeviceExtensions::vk_khr_shader_atomic_int64 }},
                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/Vulkan-ValidationLayers/layers/shader_validation.cpp:1455:40: note: suggested alternative: ‘VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME’
         {spv::CapabilityInt64Atomics, {VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME, nullptr, &DeviceExtensions::vk_khr_shader_atomic_int64 }},
                                        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                        VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME
/tmp/Vulkan-ValidationLayers/layers/shader_validation.cpp:1455:111: error: ‘vk_khr_shader_atomic_int64’ is not a member of ‘DeviceExtensions’
         {spv::CapabilityInt64Atomics, {VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME, nullptr, &DeviceExtensions::vk_khr_shader_atomic_int64 }},
                                                                                                               ^~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/Vulkan-ValidationLayers/layers/shader_validation.cpp:1457:15: error: ‘CapabilityStorageBuffer8BitAccess’ is not a member of ‘spv’
         {spv::CapabilityStorageBuffer8BitAccess , {"VkPhysicalDevice8BitStorageFeaturesKHR::storageBuffer8BitAccess", &VkPhysicalDevice8BitStorageFeaturesKHR::storageBuffer8BitAccess, &DeviceExtensions::vk_khr_8bit_storage}},
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/Vulkan-ValidationLayers/layers/shader_validation.cpp:1457:15: note: suggested alternative: ‘CapabilityStorageBuffer16BitAccess’
         {spv::CapabilityStorageBuffer8BitAccess , {"VkPhysicalDevice8BitStorageFeaturesKHR::storageBuffer8BitAccess", &VkPhysicalDevice8BitStorageFeaturesKHR::storageBuffer8BitAccess, &DeviceExtensions::vk_khr_8bit_storage}},
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
               CapabilityStorageBuffer16BitAccess
/tmp/Vulkan-ValidationLayers/layers/shader_validation.cpp:1458:15: error: ‘CapabilityUniformAndStorageBuffer8BitAccess’ is not a member of ‘spv’
         {spv::CapabilityUniformAndStorageBuffer8BitAccess , {"VkPhysicalDevice8BitStorageFeaturesKHR::uniformAndStorageBuffer8BitAccess", &VkPhysicalDevice8BitStorageFeaturesKHR::uniformAndStorageBuffer8BitAccess, &DeviceExtensions::vk_khr_8bit_storage}},
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/Vulkan-ValidationLayers/layers/shader_validation.cpp:1458:15: note: suggested alternative: ‘CapabilityUniformAndStorageBuffer16BitAccess’
         {spv::CapabilityUniformAndStorageBuffer8BitAccess , {"VkPhysicalDevice8BitStorageFeaturesKHR::uniformAndStorageBuffer8BitAccess", &VkPhysicalDevice8BitStorageFeaturesKHR::uniformAndStorageBuffer8BitAccess, &DeviceExtensions::vk_khr_8bit_storage}},
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
               CapabilityUniformAndStorageBuffer16BitAccess
/tmp/Vulkan-ValidationLayers/layers/shader_validation.cpp:1459:15: error: ‘CapabilityStoragePushConstant8’ is not a member of ‘spv’
         {spv::CapabilityStoragePushConstant8 , {"VkPhysicalDevice8BitStorageFeaturesKHR::storagePushConstant8", &VkPhysicalDevice8BitStorageFeaturesKHR::storagePushConstant8, &DeviceExtensions::vk_khr_8bit_storage}},
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/Vulkan-ValidationLayers/layers/shader_validation.cpp:1459:15: note: suggested alternative: ‘CapabilityStoragePushConstant16’
         {spv::CapabilityStoragePushConstant8 , {"VkPhysicalDevice8BitStorageFeaturesKHR::storagePushConstant8", &VkPhysicalDevice8BitStorageFeaturesKHR::storagePushConstant8, &DeviceExtensions::vk_khr_8bit_storage}},
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
               CapabilityStoragePushConstant16
/tmp/Vulkan-ValidationLayers/layers/shader_validation.cpp:1460:5: error: could not convert ‘{{CapabilityMatrix, {nullptr}}, {CapabilityShader, {nullptr}}, {CapabilityInputAttachment, {nullptr}}, {CapabilitySampled1D, {nullptr}}, {CapabilityImage1D, {nullptr}}, {CapabilitySampledBuffer, {nullptr}}, {CapabilityImageQuery, {nullptr}}, {CapabilityDerivativeControl, {nullptr}}, {CapabilityGeometry, {"VkPhysicalDeviceFeatures::geometryShader", &VkPhysicalDeviceFeatures::geometryShader}}, {CapabilityTessellation, {"VkPhysicalDeviceFeatures::tessellationShader", &VkPhysicalDeviceFeatures::tessellationShader}}, {CapabilityFloat64, {"VkPhysicalDeviceFeatures::shaderFloat64", &VkPhysicalDeviceFeatures::shaderFloat64}}, {CapabilityInt64, {"VkPhysicalDeviceFeatures::shaderInt64", &VkPhysicalDeviceFeatures::shaderInt64}}, {CapabilityTessellationPointSize, {"VkPhysicalDeviceFeatures::shaderTessellationAndGeometryPointSize", &VkPhysicalDeviceFeatures::shaderTessellationAndGeometryPointSize}}, {CapabilityGeometryPointSize, {"VkPhysicalDeviceFeatures::shaderTessellationAndGeometryPointSize", &VkPhysicalDeviceFeatures::shaderTessellationAndGeometryPointSize}}, {CapabilityImageGatherExtended, {"VkPhysicalDeviceFeatures::shaderImageGatherExtended", &VkPhysicalDeviceFeatures::shaderImageGatherExtended}}, {CapabilityStorageImageMultisample, {"VkPhysicalDeviceFeatures::shaderStorageImageMultisample", &VkPhysicalDeviceFeatures::shaderStorageImageMultisample}}, {CapabilityUniformBufferArrayDynamicIndexing, {"VkPhysicalDeviceFeatures::shaderUniformBufferArrayDynamicIndexing", &VkPhysicalDeviceFeatures::shaderUniformBufferArrayDynamicIndexing}}, {CapabilitySampledImageArrayDynamicIndexing, {"VkPhysicalDeviceFeatures::shaderSampledImageArrayDynamicIndexing", &VkPhysicalDeviceFeatures::shaderSampledImageArrayDynamicIndexing}}, {CapabilityStorageBufferArrayDynamicIndexing, {"VkPhysicalDeviceFeatures::shaderStorageBufferArrayDynamicIndexing", &VkPhysicalDeviceFeatures::shaderStorageBufferArrayDynamicIndexing}}, {CapabilityStorageImageArrayDynamicIndexing, {"VkPhysicalDeviceFeatures::shaderStorageImageArrayDynamicIndexing", &VkPhysicalDeviceFeatures::shaderStorageBufferArrayDynamicIndexing}}, {CapabilityClipDistance, {"VkPhysicalDeviceFeatures::shaderClipDistance", &VkPhysicalDeviceFeatures::shaderClipDistance}}, {CapabilityCullDistance, {"VkPhysicalDeviceFeatures::shaderCullDistance", &VkPhysicalDeviceFeatures::shaderCullDistance}}, {CapabilityImageCubeArray, {"VkPhysicalDeviceFeatures::imageCubeArray", &VkPhysicalDeviceFeatures::imageCubeArray}}, {CapabilitySampleRateShading, {"VkPhysicalDeviceFeatures::sampleRateShading", &VkPhysicalDeviceFeatures::sampleRateShading}}, {CapabilitySparseResidency, {"VkPhysicalDeviceFeatures::shaderResourceResidency", &VkPhysicalDeviceFeatures::shaderResourceResidency}}, {CapabilityMinLod, {"VkPhysicalDeviceFeatures::shaderResourceMinLod", &VkPhysicalDeviceFeatures::shaderResourceMinLod}}, {CapabilitySampledCubeArray, {"VkPhysicalDeviceFeatures::imageCubeArray", &VkPhysicalDeviceFeatures::imageCubeArray}}, {CapabilityImageMSArray, {"VkPhysicalDeviceFeatures::shaderStorageImageMultisample", &VkPhysicalDeviceFeatures::shaderStorageImageMultisample}}, {CapabilityStorageImageExtendedFormats, {"VkPhysicalDeviceFeatures::shaderStorageImageExtendedFormats", &VkPhysicalDeviceFeatures::shaderStorageImageExtendedFormats}}, {CapabilityInterpolationFunction, {"VkPhysicalDeviceFeatures::sampleRateShading", &VkPhysicalDeviceFeatures::sampleRateShading}}, {CapabilityStorageImageReadWithoutFormat, {"VkPhysicalDeviceFeatures::shaderStorageImageReadWithoutFormat", &VkPhysicalDeviceFeatures::shaderStorageImageReadWithoutFormat}}, {CapabilityStorageImageWriteWithoutFormat, {"VkPhysicalDeviceFeatures::shaderStorageImageWriteWithoutFormat", &VkPhysicalDeviceFeatures::shaderStorageImageWriteWithoutFormat}}, {CapabilityMultiViewport, {"VkPhysicalDeviceFeatures::multiViewport", &VkPhysicalDeviceFeatures::multiViewport}}, {CapabilityShaderNonUniformEXT, {"VK_EXT_descriptor_indexing", nullptr, &DeviceExtensions::vk_ext_descriptor_indexing}}, {CapabilityRuntimeDescriptorArrayEXT, {"VkPhysicalDeviceDescriptorIndexingFeaturesEXT::runtimeDescriptorArray", &VkPhysicalDeviceDescriptorIndexingFeaturesEXT::runtimeDescriptorArray}}, {CapabilityInputAttachmentArrayDynamicIndexingEXT, {"VkPhysicalDeviceDescriptorIndexingFeaturesEXT::shaderInputAttachmentArrayDynamicIndexing", &VkPhysicalDeviceDescriptorIndexingFeaturesEXT::shaderInputAttachmentArrayDynamicIndexing}}, {CapabilityUniformTexelBufferArrayDynamicIndexingEXT, {"VkPhysicalDeviceDescriptorIndexingFeaturesEXT::shaderUniformTexelBufferArrayDynamicIndexing", &VkPhysicalDeviceDescriptorIndexingFeaturesEXT::shaderUniformTexelBufferArrayDynamicIndexing}}, {CapabilityStorageTexelBufferArrayDynamicIndexingEXT, {"VkPhysicalDeviceDescriptorIndexingFeaturesEXT::shaderStorageTexelBufferArrayDynamicIndexing", &VkPhysicalDeviceDescriptorIndexingFeaturesEXT::shaderStorageTexelBufferArrayDynamicIndexing}}, {CapabilityUniformBufferArrayNonUniformIndexingEXT, {"VkPhysicalDeviceDescriptorIndexingFeaturesEXT::shaderUniformBufferArrayNonUniformIndexing", &VkPhysicalDeviceDescriptorIndexingFeaturesEXT::shaderUniformBufferArrayNonUniformIndexing}}, {CapabilitySampledImageArrayNonUniformIndexingEXT, {"VkPhysicalDeviceDescriptorIndexingFeaturesEXT::shaderSampledImageArrayNonUniformIndexing", &VkPhysicalDeviceDescriptorIndexingFeaturesEXT::shaderSampledImageArrayNonUniformIndexing}}, {CapabilityStorageBufferArrayNonUniformIndexingEXT, {"VkPhysicalDeviceDescriptorIndexingFeaturesEXT::shaderStorageBufferArrayNonUniformIndexing", &VkPhysicalDeviceDescriptorIndexingFeaturesEXT::shaderStorageBufferArrayNonUniformIndexing}}, {CapabilityStorageImageArrayNonUniformIndexingEXT, {"VkPhysicalDeviceDescriptorIndexingFeaturesEXT::shaderStorageImageArrayNonUniformIndexing", &VkPhysicalDeviceDescriptorIndexingFeaturesEXT::shaderStorageImageArrayNonUniformIndexing}}, {CapabilityInputAttachmentArrayNonUniformIndexingEXT, {"VkPhysicalDeviceDescriptorIndexingFeaturesEXT::shaderInputAttachmentArrayNonUniformIndexing", &VkPhysicalDeviceDescriptorIndexingFeaturesEXT::shaderInputAttachmentArrayNonUniformIndexing}}, {CapabilityUniformTexelBufferArrayNonUniformIndexingEXT, {"VkPhysicalDeviceDescriptorIndexingFeaturesEXT::shaderUniformTexelBufferArrayNonUniformIndexing", &VkPhysicalDeviceDescriptorIndexingFeaturesEXT::shaderUniformTexelBufferArrayNonUniformIndexing}}, {CapabilityStorageTexelBufferArrayNonUniformIndexingEXT, {"VkPhysicalDeviceDescriptorIndexingFeaturesEXT::shaderStorageTexelBufferArrayNonUniformIndexing", &VkPhysicalDeviceDescriptorIndexingFeaturesEXT::shaderStorageTexelBufferArrayNonUniformIndexing}}, {CapabilityDrawParameters, {"VK_KHR_shader_draw_parameters", nullptr, &DeviceExtensions::vk_khr_shader_draw_parameters}}, {CapabilityGeometryShaderPassthroughNV, {"VK_NV_geometry_shader_passthrough", nullptr, &DeviceExtensions::vk_nv_geometry_shader_passthrough}}, {CapabilitySampleMaskOverrideCoverageNV, {"VK_NV_sample_mask_override_coverage", nullptr, &DeviceExtensions::vk_nv_sample_mask_override_coverage}}, {CapabilityShaderViewportIndexLayerEXT, {"VK_EXT_shader_viewport_index_layer", nullptr, &DeviceExtensions::vk_ext_shader_viewport_index_layer}}, {CapabilityShaderViewportIndexLayerNV, {"VK_NV_viewport_array2", nullptr, &DeviceExtensions::vk_nv_viewport_array2}}, {CapabilityShaderViewportMaskNV, {"VK_NV_viewport_array2", nullptr, &DeviceExtensions::vk_nv_viewport_array2}}, {CapabilitySubgroupBallotKHR, {"VK_EXT_shader_subgroup_ballot", nullptr, &DeviceExtensions::vk_ext_shader_subgroup_ballot}}, {CapabilitySubgroupVoteKHR, {"VK_EXT_shader_subgroup_vote", nullptr, &DeviceExtensions::vk_ext_shader_subgroup_vote}}, {CapabilityInt64Atomics, {<expression error>, nullptr, <expression error>}}, {<expression error>, {"VkPhysicalDevice8BitStorageFeaturesKHR::storageBuffer8BitAccess", &VkPhysicalDevice8BitStorageFeaturesKHR::storageBuffer8BitAccess, &DeviceExtensions::vk_khr_8bit_storage}}, {<expression error>, {"VkPhysicalDevice8BitStorageFeaturesKHR::uniformAndStorageBuffer8BitAccess", &VkPhysicalDevice8BitStorageFeaturesKHR::uniformAndStorageBuffer8BitAccess, &DeviceExtensions::vk_khr_8bit_storage}}, {<expression error>, {"VkPhysicalDevice8BitStorageFeaturesKHR::storagePushConstant8", &VkPhysicalDevice8BitStorageFeaturesKHR::storagePushConstant8, &DeviceExtensions::vk_khr_8bit_storage}}}’ from ‘<brace-enclosed initializer list>’ to ‘const std::unordered_multimap<unsigned int, ValidateShaderCapabilities(core_validation::layer_data*, const shader_module*, VkShaderStageFlagBits, bool)::CapabilityInfo>’
     };
     ^
/tmp/Vulkan-ValidationLayers/layers/shader_validation.cpp: In function ‘bool PreCallValidateCreateShaderModule(core_validation::layer_data*, const VkShaderModuleCreateInfo*, bool*)’:
/tmp/Vulkan-ValidationLayers/layers/shader_validation.cpp:2003:13: error: ‘spvValidatorOptionsSetRelaxBlockLayout’ was not declared in this scope
             spvValidatorOptionsSetRelaxBlockLayout(options, true);
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/Vulkan-ValidationLayers/layers/shader_validation.cpp:2003:13: note: suggested alternative: ‘spvValidatorOptionsSetRelaxStoreStruct’
             spvValidatorOptionsSetRelaxBlockLayout(options, true);
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
             spvValidatorOptionsSetRelaxStoreStruct
make[2]: *** [layers/CMakeFiles/VkLayer_core_validation.dir/build.make:102: layers/CMakeFiles/VkLayer_core_validation.dir/shader_validation.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:836: layers/CMakeFiles/VkLayer_core_validation.dir/all] Error 2
make: *** [Makefile:130: all] Error 2
karl-lunarg commented 6 years ago

You'll need a newer revision of glslang (and the spirv-tools it fetches) to resolve these problems.

jzulauf-lunarg commented 6 years ago

@Metalhead33 -- does @karl-lunarg suggestion resolve the issue for you?

jzulauf-lunarg commented 5 years ago

@Metalhead33 -- this is resolved at this point, yes?