distutils.dir_util.mkpath will not re-create a directory if it has been
removed with shutil.rmtree because it caches the filesystem under the
hood. This was causing the clone retry to fail on the second iteration
every time.
Switch to using os.makedirs for equivalent functionality without the
cache.
- Update known-good
- Generate source
- Fix version parsing in FindVulkanHeaders.cmake
- Add to VK_ENABLE_BETA_EXTENSIONS to GN build to pick up beta
VkObjectType values
Change-Id: Ied4e4e71017e48d344b1c9cacf037ae989aceec9
Changes:
- Updated `known_good.json`
- Generated new source files
- Added `VK_USE_PLATFORM_SCREEN_QNX` to platform list in
`common_codegen.py`
Change-Id: I2ef49799434ff31ff81680413a8700caea46593c
There was a subtle bug in the original change; "git fetch"
would retry correctly, but "git clone" failed because the
destination directory was missing (after having been removed,
to ensure a clean clone operation).
The test case that was used (hundreds of times) happened to
provoke an error on the "git fetch" path; I was unaware that
the "git clone" failure path had never been exercised.
Duplicate change from b636386a7824eb4e6a0d99962e1491ac68d3a295
on KhronosGroup/Vulkan-ValidationLayers, to keep update_deps.py
in sync across all repos. Original commit message is:
We see spurious failures to connect to github when trying to
run update_deps.py (up to 7% of runs, depending on the machine).
This is an annoyance when running by hand, but a headache and
a serious resource waste when running in automation (as a single
broken "git clone" or "git fetch" can cause the whole run to fail).
These changes allow update_deps.py to automatically retry
"git fetch" and "git clone" operations on failure.
These changes will be duplicated in follow-on PRs to the
other repositories that include "update_deps.py", to keep
them all in sync. These are KhronosGroup/Vulkan-Tools,
KhronosGroup/Vulkan-Loader, LunarG/VulkanSamples, and
LunarG/VulkanTools.
I'm also including a "technical debt" update here, because
VulkanTools/scripts/update_deps.py had diverged from the other
"update_deps.py" versions, to add a way to avoid building a
dependency if that dependency is not supported on the current
build platform. This should be harmless to the other
repositories (though potentially useful in the future). The
original commit was aaabc9df034f1fdf9a976a6293d0983b079143ee
with description:
In update deps, this will check that a dependency is actually supported
on the platform being built. This is needed because the loader is a
dependency on all platforms other than Windows.
When calling in the vulkan header python generator the options have
changed in 1.2.142 which causes the options passed by the loader to be
off by one. This ends up setting the emitExtensions to the value of the
sortProcedure and eventually causes the script to fail.
This CL updates the loader to used named parameters for the generator so
that the addition of the genpath does not throw off the parameter
positioning.
Change-Id: I14fda7e90be985216c5243457a22fdcb01b5c82b
A modification to one line of code was missed when updating the loader
genvk file for the 1.2.140 header update and when the change was
incorporated it exposed the newly added `logDiag` function which can be
found in `reflib.py` in Vulkan-Docs. Instead of adding another script to
the Loader repo, `write` functionality was reinstated in
`loader_genvk.py`.
Change-Id: Idf792b24c86120a8c278f46ac8a47013c4c37f16
Changes:
- Updated `known_good.json`
- Propagated `loader_genvk.py` changes
- Generated new source files
- Modified `.gitattributes` to ensure generated source files should
always have LF line endings because that is how it will be generated on
all platforms going forward. Upstream change in Vulkan-Docs explicitly
generates code with LF line endings.
- Removed automatic CRLF to LF conversion git setting in `.appveyor.yml`
Change-Id: I1ca36b80dfabe83fa16e36116d1ad43c0a65ff78
Generated functions stubs had either a return type of void or
VkResult. Recent vulkan extensions had functions which returned
uint32_t, uint64_t, and VkDeviceAddress. The
dispatch_table_helper_generator didn't account for this and GCC would
complain about mismatching types. While likely not an issue, it did
create very noisy builds.
Modified files:
loader/generated/vk_dispatch_table_helper.h
scripts/dispatch_table_helper_generator.py
Change-Id: Iba229093461b75fd6ccd195cf60e200a22b8678f
Updated `CMakeLists.txt` and `common_codegen.py` to allow access to beta
types and commands when including `vulkan.h`. Generated new loader
header files.
Change-Id: I7241ff08cf9d70cd22472735f53d8f6d72fb8a46