PR for automatic paired functions cross-referencing #615
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Originally defined in issue #608
Short description:
doc/specs/vulkan/config/vulkan-api-tuples.txt
anddoc/specs/vulkan/config/vulkan-api-sorting.txt
.vulkan-api-tuples.txt
defines paired functions, pairs delimiter is empty string.vulkan-api-sorting.txt
defines the order how prefixes appear in the cross-references list,*
(meaning "any other function) denotes place where functions that didn't match any prefix go; function keep case-sensitive alphabetical order within the prefix, as it was prior to this change.doc/specs/vulkan/genRef.py
is modified to read, process and apply data supplied by the two config files mentioned.doc/specs/vulkan/Makefile
modified to have the config files as dependencies, to facilitate rebuild when config files changeddoc/specs/vulkan/chapters/pipelines.txt
modified to have explicit cross references, due to the way paired functions are named: (vkCreateComputePipelines, vkCreateGraphicsPipelines) vs vkDestroyPipeline.The idea behind this way of implementing the cross-references is in this comment.
There is a problem with pairing functions, provided by extensions (e.g.
vkCreateSwapchainKHR
vsvkDestroySwapchainKHR
) - they are NOT automatically generated. Manual cross-referencing won't work too, becausedoc/specs/vulkan/vkapi.py
simply doesn't have anything but the core functions, hence auto-cross-reference validation will fail and functions won't appear on the reference list. Manual referencing via addingxref
- won't work either, becausemacroPrefix
function indoc/specs/vulkan/genRef.py
will not recognize the reference properly and return "UNKNOWN" prefix. Hence, in this revision paired extension functions do not get cross-references.