Skip to content

Commit 31a398b

Browse files
authored
Framework for adding refpages to docs.vulkan.org (#2553)
* Framework for adding refpages to docs.vulkan.org Runs the same refpage extraction step, but sourced from the rewritten spec sources in the Antora spec component, and output to a new refpages component. Still need to: * Generate refpages nav.adoc from refpage list (ideally with some structure) * Set attributes in refpages antora.yml to refer to the spec component for partials and images * Rewrite xrefs relative to the spec component, instead of as links into the registry HTML spec (changes to genRef.py needed) * Add partials / images directories for refpages module and add cross-file-links attribute when building it * Setup document attributes in refpages module so custom macros know to link to other refpages, not to the specification. * checkpoit * Add module prefix (if specified) during Antora markup conversion * Refactor parameter passing to collect needed global variables for xref rewrites, since they need to be passed several levels deep. Move importFileModule to reflib.py for reuse by several scripts. Consistently pass around the full path to pageMap.py and xrefMap.py, not just the directory they're located in. * Rewrite links correctly for Antora in scripts/genRef.py. Use more consistent option / variable naming and capitalization when referring to maps. Pass spec module name correctly when building Antora refpage sources. * Generate Antora nav.adoc as part of refpages. This is incomplete - aliases are not included because they are part of the same page as the API they alias. Also, extension refpages are not included yet. * Improve nav.adoc generation. Remove old apispec.adoc generated file and corresponding Makefile targets 'manhtml' and 'manpdf', and use a different proxy target when generating the refpage .adoc markup. * Remove single page (apispec.adoc) target completely from genRef.py. Improve refpage nav.adoc generation. Still needs to handle pages in refpage_other_types and perhaps aliases need to be handled differently, but much closer. * Rename the array holding refpage details to 'refpageMap' to distinguish it from the 'pageMap' of asciidoc anchors to specification filenames. Use more consistent f'' style for strings with imbedded variables. * Update Antora nav generation in genRef.py, and remove old HTML TOC generation, which was never published. Now includes nav links for aliases which link to the aliased page. Minor fixes to refpage block markup. Split diagnostics from warnings in refpage generation log. Still problematic: * Generated interface files (e.g. refpage.<extensionname>.adoc) for promoted extensions are not resolving e.g. slink: markup for APIs which are aliased to promoted APIs. * nav index is very long (3100 lines!) and while it does collapse at the level of first letters, it does not collapse at the level of refpage types (e.g. 'Structures', 'API Core Versions', etc.) Otherwise this is looking much better. * Fix typo. * Minor markup cleanup to proposals to properly link to the specification, reducing complaints from Antora about unresolved xrefs, and otherwise improve markup consistency. * Improve handling of aliases in refpage generation and minor markup fixes. * Minor markup cleanup
1 parent 72cd1f5 commit 31a398b

23 files changed

+4423
-535
lines changed

Makefile

Lines changed: 68 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
# Copyright 2014-2025 The Khronos Group Inc.
2-
#
32
# SPDX-License-Identifier: Apache-2.0
43

54
# Vulkan Specification makefile
@@ -410,7 +409,7 @@ $(VUDIR)/validusage.json: $(SPECSRC) $(COMMONDOCS) $(PYXREFMAP) $(PYPAGEMAP)
410409
$(QUIET)$(ASCIIDOC) $(ADOCOPTS) $(ADOCVUOPTS) --trace \
411410
-a json_output=$@ -o $@ $(SPECSRC)
412411
$(QUIET)$(PYTHON) $(SCRIPTS)/add_validusage_pages.py \
413-
-xrefmap $(PYXREFMAP) -pagemap $(PYPAGEMAP) -validusage $@
412+
-xrefMap $(PYXREFMAP) -pageMap $(PYPAGEMAP) -validusage $@
414413

415414
# Vulkan Documentation and Extensions, a.k.a. "Style Guide" documentation
416415

@@ -597,7 +596,7 @@ check-xrefs: $(HTMLDIR)/vkspec.html
597596
$(PYTHON) $(SCRIPTS)/check_html_xrefs.py $(HTMLDIR)/vkspec.html
598597

599598
# Generated refpage sources. For now, always build all refpages.
600-
MANSOURCES = $(filter-out $(REFPATH)/apispec.adoc, $(wildcard $(REFPATH)/*.adoc))
599+
MANSOURCES = $(wildcard $(REFPATH)/*.adoc)
601600

602601
# Generation of refpage asciidoctor sources by extraction from the
603602
# specification(s).
@@ -609,25 +608,30 @@ MANSOURCES = $(filter-out $(REFPATH)/apispec.adoc, $(wildcard $(REFPATH)/*.ado
609608
# Should pass in $(EXTOPTIONS) to determine which pages to generate.
610609
# For now, all core and extension refpages are extracted by genRef.py.
611610
GENREF = $(SCRIPTS)/genRef.py
612-
LOGFILE = $(REFPATH)/refpage.log
613-
refpages: $(REFPATH)/apispec.adoc
614-
$(REFPATH)/apispec.adoc: $(SPECFILES) $(GENREF) $(SCRIPTS)/reflib.py $(PYAPIMAP)
611+
LOGPATH = $(REFPATH)/
612+
# Proxy target for the entire set of generated refpages.
613+
# This page will always be generated.
614+
REFPAGEPROXY = $(REFPATH)/VkResult.adoc
615+
refpages: $(REFPAGEPROXY)
616+
$(REFPAGEPROXY): $(SPECFILES) $(GENREF) $(SCRIPTS)/reflib.py $(PYAPIMAP)
615617
$(QUIET)$(MKDIR) $(REFPATH)
616618
$(PYTHON) $(GENREF) -genpath $(GENERATED) -basedir $(REFPATH) \
617-
-log $(LOGFILE) -extpath $(SPECDIR)/appendices \
619+
-diag $(LOGPATH)/refpage.diag \
620+
-warn $(LOGPATH)/refpage.warn \
621+
-extpath $(SPECDIR)/appendices \
618622
$(EXTOPTIONS) $(SPECFILES)
619623

620624
# These targets are HTML5 refpages
621625
#
622-
# The recursive $(MAKE) is an apparently unavoidable hack, since the
623-
# actual list of man page sources is not known until after
624-
# $(REFPATH)/apispec.adoc is generated. $(GENDEPENDS) is generated before
625-
# running the recursive make, so it does not trigger twice
626+
# The recursive $(MAKE) is an apparently unavoidable hack, since the list
627+
# of refpage sources is not known until $(REFPAGEPROXY) is generated.
628+
# $(GENDEPENDS) is generated before the recursive make, so it does not
629+
# trigger twice.
626630
# $(SUBMAKEOPTIONS) suppresses the redundant "Entering / leaving"
627631
# messages make normally prints out, similarly to suppressing make
628632
# command output logging in the individual refpage actions below.
629633
SUBMAKEOPTIONS = --no-print-directory
630-
manhtmlpages: $(REFPATH)/apispec.adoc $(GENDEPENDS)
634+
manhtmlpages: $(REFPAGEPROXY) $(GENDEPENDS)
631635
$(QUIET) echo "manhtmlpages: building HTML refpages with these options:"
632636
$(QUIET) echo $(ASCIIDOC) -b html5 $(ADOCOPTS) $(ADOCHTMLOPTS) \
633637
$(ADOCREFOPTS) -d manpage -o REFPAGE.html REFPAGE.adoc
@@ -665,32 +669,6 @@ $(MANHTMLDIR)/%.html: $(REFPATH)/%.adoc $(GENDEPENDS) $(KATEXINSTDIR)
665669
$(TRANSLATEMATH) $@ ; \
666670
fi
667671

668-
# The 'manhtml' and 'manpdf' targets are NO LONGER SUPPORTED by Khronos.
669-
# They generate HTML5 and PDF single-file versions of the refpages.
670-
# The generated refpage sources are included by $(REFPATH)/apispec.adoc,
671-
# and are always generated along with that file. Therefore there is no
672-
# need for a recursive $(MAKE) or a $(MANHTML) dependency, unlike the
673-
# manhtmlpages target.
674-
675-
manpdf: $(OUTDIR)/apispec.pdf
676-
677-
$(OUTDIR)/apispec.pdf: $(SPECVERSION) $(REFPATH)/apispec.adoc $(SVGFILES) $(GENDEPENDS)
678-
$(QUIET)$(MKDIR) $(OUTDIR)
679-
$(QUIET)$(MKDIR) $(PDFMATHDIR)
680-
$(QUIET)$(ASCIIDOC) -b pdf -a html_spec_relative='html/vkspec.html' \
681-
$(ADOCOPTS) $(ADOCPDFOPTS) -o $@ $(REFPATH)/apispec.adoc
682-
$(QUIET)$(OPTIMIZEPDF) $@ $@.out.pdf && mv $@.out.pdf $@
683-
684-
manhtml: $(OUTDIR)/apispec.html
685-
686-
$(OUTDIR)/apispec.html: KATEXDIR = katex
687-
$(OUTDIR)/apispec.html: ADOCMISCOPTS =
688-
$(OUTDIR)/apispec.html: $(SPECVERSION) $(REFPATH)/apispec.adoc $(SVGFILES) $(GENDEPENDS) $(KATEXINSTDIR)
689-
$(QUIET)$(MKDIR) $(OUTDIR)
690-
$(QUIET)$(ASCIIDOC) -b html5 -a html_spec_relative='html/vkspec.html' \
691-
$(ADOCOPTS) $(ADOCHTMLOPTS) -o $@ $(REFPATH)/apispec.adoc
692-
$(QUIET)$(TRANSLATEMATH) $@
693-
694672
# Create links for refpage aliases
695673

696674
MAKEMANALIASES = $(SCRIPTS)/makemanaliases.py
@@ -741,7 +719,7 @@ rubyapi $(RBAPIMAP): $(VKXML) $(GENVK)
741719
# Cross-references of anchors to spec chapters they lie within
742720
# Used both by Antora and validusage_page targets
743721

744-
xrefmaps: $(PYXREFMAP) $(JSXREFMAP)
722+
xrefMap: $(PYXREFMAP) $(JSXREFMAP)
745723

746724
$(PYXREFMAP) $(JSXREFMAP): $(HTMLDIR)/vkspec.html
747725
$(QUIET)$(PYTHON) $(SCRIPTS)/map_html_anchors.py \
@@ -811,17 +789,17 @@ $(SYNCDEPEND): $(VKXML) $(GENVK)
811789
# After the targets are built, the $(JSXREFMAP) and $(JSPAGEMAP) files
812790
# used by spec macros in the Antora build must be copied into the Antora
813791
# project build tree, which is in a different repository.
814-
setup_antora: xrefmaps .WAIT setup_spec_antora setup_features_antora
792+
setup_antora: xrefMap .WAIT setup_spec_antora setup_features_antora setup_refpages_antora
815793

816794
# Generate Antora spec module content by rewriting spec sources
817795
# Individual files must be specified last
818-
# This target is also used to generate the pagemap, which is combined
819-
# with the xrefmaps above to map VUID anchors into the Antora pages they
796+
# This target is also used to generate the pageMap, which is combined
797+
# with the xrefMap above to map VUID anchors into the Antora pages they
820798
# are found within.
821799

822800
ANTORA_SPECMODULE = antora/spec/modules/ROOT
823801

824-
# The list of files is long enough to exceed system limits on arguments
802+
# The list of files is long enough to exceed system limits on argument
825803
# lists, so instead of passing them on the command line they are stored
826804
# in a separate file.
827805
ANTORA_FILELIST = $(GENERATED)/antoraFileList.txt
@@ -835,15 +813,16 @@ ANTORA_EXTRAFILES = \
835813
$(JSXREFMAP) \
836814
$(JSAPIMAP)
837815

838-
# The pagemap is copied, separately since the rewrite script creates it.
839-
setup_spec_antora pagemap $(JSPAGEMAP) $(PYPAGEMAP): xrefmaps $(JSAPIMAP)
816+
# The pageMap is copied, separately since antora-prep.py creates it.
817+
setup_spec_antora pageMap $(JSPAGEMAP) $(PYPAGEMAP): xrefMap $(JSAPIMAP)
840818
$(QUIET)find $(GENERATED) ./chapters ./appendices -name '[A-Za-z]*.adoc' | \
841819
grep -v /vulkanscdeviations.adoc > $(ANTORA_FILELIST)
842820
$(QUIET)ls -1 $(ANTORA_EXTRAFILES) >> $(ANTORA_FILELIST)
843821
$(QUIET)$(PYTHON) $(SCRIPTS)/antora-prep.py \
844822
-root . \
845823
-component $(shell realpath antora/spec/modules/ROOT) \
846-
-xrefpath $(GENERATED) \
824+
-xrefMap $(PYXREFMAP) \
825+
-module 'spec::' \
847826
-pageHeaders antora/pageHeaders-spec.adoc \
848827
-jspagemap $(JSPAGEMAP) \
849828
-pypagemap $(PYPAGEMAP) \
@@ -852,11 +831,11 @@ setup_spec_antora pagemap $(JSPAGEMAP) $(PYPAGEMAP): xrefmaps $(JSAPIMAP)
852831

853832
# Generate Antora features module content by rewriting feature sources
854833
# No additional pageHeaders required.
855-
setup_features_antora: xrefmaps features_nav_antora
834+
setup_features_antora: xrefMap features_nav_antora
856835
$(QUIET)$(PYTHON) $(SCRIPTS)/antora-prep.py \
857836
-root . \
858837
-component $(shell realpath antora/features/modules/features) \
859-
-xrefpath $(GENERATED) \
838+
-xrefMap $(PYXREFMAP) \
860839
`find ./images/proposals -type f` \
861840
`find ./proposals -name '[A-Za-z]*.adoc'`
862841

@@ -875,6 +854,37 @@ features_nav_antora:
875854
-roadmappath proposals/Roadmap.adoc \
876855
`find ./proposals -name 'VK_*.adoc'`
877856

857+
# Generate Antora refpages module content by extraction from rewritten
858+
# spec sources.
859+
# The sources in the spec component partials/ directory are used since
860+
# that has all source files, and some of the files not in pages/ have
861+
# refpage content.
862+
# At present, this is done by symlinking spec module directories into
863+
# the corresponding refpages module directories.
864+
# The pageMap and xrefMap created by setup_spec_antora are used here.
865+
866+
ANTORA_REFMODULE = antora/refpages/modules/refpages
867+
# Where to create the extracted refpage files
868+
ANTORA_EXTRACT_PAGES = $(ANTORA_REFMODULE)/pages/source
869+
ANTORA_LOGPATH = antora/refpages/
870+
# Same as SPECFILES but pointing to rewritten partials
871+
ANTORA_SPECFILES = $(wildcard $(ANTORA_SPECMODULE)/partials/chapters/[A-Za-z]*.adoc $(ANTORA_SPECMODULE)/partials/chapters/*/[A-Za-z]*.adoc $(ANTORA_SPECMODULE)/partials/appendices/[A-Za-z]*.adoc)
872+
873+
setup_refpages_antora: setup_spec_antora xrefMap pageMap $(GENREF) $(SCRIPTS)/reflib.py $(PYAPIMAP)
874+
$(QUIET)$(MKDIR) $(ANTORA_EXTRACT_PAGES)
875+
$(PYTHON) $(GENREF) -basedir $(ANTORA_EXTRACT_PAGES) \
876+
-diag $(ANTORA_LOGPATH)/refpage.diag \
877+
-warn $(ANTORA_LOGPATH)/refpage.warn \
878+
-extpath $(ANTORA_SPECMODULE)/partials/appendices \
879+
-antora \
880+
-xrefMap $(PYXREFMAP) \
881+
-pageMap $(PYPAGEMAP) \
882+
-module 'spec::' \
883+
-nav $(ANTORA_REFMODULE)/nav.adoc \
884+
$(EXTOPTIONS) $(ANTORA_SPECFILES)
885+
$(QUIET)$(RM) $(ANTORA_REFMODULE)/partials && ln -s $(shell realpath $(ANTORA_SPECMODULE)/partials) $(ANTORA_REFMODULE)/partials
886+
$(QUIET)$(RM) $(ANTORA_REFMODULE)/images && ln -s $(shell realpath $(ANTORA_SPECMODULE)/images) $(ANTORA_REFMODULE)/images
887+
878888
# This generates a single file containing asciidoc attributes for each
879889
# core version and extension in the spec being built.
880890
# For use with Antora, it also includes a couple of document attributes
@@ -903,11 +913,10 @@ clean: clean_html clean_pdf clean_man clean_generated clean_antora clean_validus
903913

904914
clean_html:
905915
$(QUIET)$(RMRF) $(HTMLDIR) $(OUTDIR)/katex
906-
$(QUIET)$(RM) $(OUTDIR)/apispec.html $(OUTDIR)/styleguide.html \
907-
$(OUTDIR)/registry.html
916+
$(QUIET)$(RM) $(OUTDIR)/styleguide.html $(OUTDIR)/registry.html
908917

909918
clean_pdf:
910-
$(QUIET)$(RMRF) $(PDFDIR) $(OUTDIR)/apispec.pdf
919+
$(QUIET)$(RMRF) $(PDFDIR)
911920

912921
clean_man:
913922
$(QUIET)$(RMRF) $(MANHTMLDIR)
@@ -936,7 +945,10 @@ clean_generated:
936945
$(QUIET)$(RMRF) $(CLEAN_GEN_PATHS)
937946

938947
# Files generated by 'setup_antora' target
939-
# Omit antora/features/modules/features/nav.adoc which is generated, but
948+
# Omit
949+
# antora/<module>/modules/<module>/nav.adoc
950+
# and
951+
# antora/<module>/modules/<module>/pages/index.adoc
940952
# also checked in.
941953
CLEAN_ANTORA_PATHS = \
942954
$(ANTORA_FILELIST) \
@@ -949,6 +961,10 @@ CLEAN_ANTORA_PATHS = \
949961
antora/features/modules/features/pages/proposals \
950962
antora/features/modules/features/partials \
951963
antora/features/modules/features/images \
964+
antora/refpages/modules/refpages/pages/source \
965+
antora/refpages/modules/refpages/partials \
966+
antora/refpages/modules/refpages/images \
967+
antora/refpages/refpage.log \
952968
$(JSXREFMAP) \
953969
$(PYXREFMAP) \
954970
$(JSPAGEMAP) \
@@ -959,5 +975,3 @@ clean_antora:
959975

960976
clean_validusage:
961977
$(QUIET)$(RM) $(VUDIR)/validusage.json
962-
963-

antora/features/modules/features/nav.adoc

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,14 @@
99
* xref:index.adoc[Vulkan Roadmap and Feature Descriptions]
1010
* xref:proposals/Roadmap.adoc[Vulkan Roadmap]
1111
* Feature Descriptions
12+
** xref:proposals/VK_AMDX_dense_geometry_format.adoc[]
1213
** xref:proposals/VK_AMDX_shader_enqueue.adoc[]
1314
** xref:proposals/VK_AMD_anti_lag.adoc[]
1415
** xref:proposals/VK_AMD_shader_early_and_late_fragment_tests.adoc[]
1516
** xref:proposals/VK_ANDROID_external_format_resolve.adoc[]
17+
** xref:proposals/VK_ARM_pipeline_opacity_micromap.adoc[]
1618
** xref:proposals/VK_ARM_render_pass_striped.adoc[]
19+
** xref:proposals/VK_ARM_tensors.adoc[]
1720
** xref:proposals/VK_EXT_attachment_feedback_loop_dynamic_state.adoc[]
1821
** xref:proposals/VK_EXT_attachment_feedback_loop_layout.adoc[]
1922
** xref:proposals/VK_EXT_calibrated_timestamps.adoc[]
@@ -25,6 +28,8 @@
2528
** xref:proposals/VK_EXT_dynamic_rendering_unused_attachments.adoc[]
2629
** xref:proposals/VK_EXT_extended_dynamic_state3.adoc[]
2730
** xref:proposals/VK_EXT_external_memory_acquire_unmodified.adoc[]
31+
** xref:proposals/VK_EXT_external_memory_metal.adoc[]
32+
** xref:proposals/VK_EXT_fragment_density_map_offset.adoc[]
2833
** xref:proposals/VK_EXT_frame_boundary.adoc[]
2934
** xref:proposals/VK_EXT_graphics_pipeline_library.adoc[]
3035
** xref:proposals/VK_EXT_host_image_copy.adoc[]
@@ -46,13 +51,15 @@
4651
** xref:proposals/VK_EXT_present_mode_fifo_latest_ready.adoc[]
4752
** xref:proposals/VK_EXT_primitives_generated_query.adoc[]
4853
** xref:proposals/VK_EXT_rasterization_order_attachment_access.adoc[]
54+
** xref:proposals/VK_EXT_shader_float8.adoc[]
4955
** xref:proposals/VK_EXT_shader_module_identifier.adoc[]
5056
** xref:proposals/VK_EXT_shader_object.adoc[]
5157
** xref:proposals/VK_EXT_shader_replicated_composites.adoc[]
5258
** xref:proposals/VK_EXT_shader_tile_image.adoc[]
5359
** xref:proposals/VK_EXT_subpass_merge_feedback.adoc[]
5460
** xref:proposals/VK_EXT_surface_maintenance1.adoc[]
5561
** xref:proposals/VK_EXT_swapchain_maintenance1.adoc[]
62+
** xref:proposals/VK_EXT_zero_initialize_device_memory.adoc[]
5663
** xref:proposals/VK_GOOGLE_surfaceless_query.adoc[]
5764
** xref:proposals/VK_HUAWEI_cluster_culling_shader.adoc[]
5865
** xref:proposals/VK_HUAWEI_invocation_mask.adoc[]
@@ -66,33 +73,53 @@
6673
** xref:proposals/VK_KHR_maintenance5.adoc[]
6774
** xref:proposals/VK_KHR_maintenance6.adoc[]
6875
** xref:proposals/VK_KHR_maintenance7.adoc[]
76+
** xref:proposals/VK_KHR_maintenance8.adoc[]
77+
** xref:proposals/VK_KHR_maintenance9.adoc[]
6978
** xref:proposals/VK_KHR_map_memory2.adoc[]
7079
** xref:proposals/VK_KHR_pipeline_binary.adoc[]
80+
** xref:proposals/VK_KHR_present_id2.adoc[]
81+
** xref:proposals/VK_KHR_present_mode_fifo_latest_ready.adoc[]
82+
** xref:proposals/VK_KHR_present_wait2.adoc[]
7183
** xref:proposals/VK_KHR_ray_tracing_position_fetch.adoc[]
84+
** xref:proposals/VK_KHR_shader_bfloat16.adoc[]
7285
** xref:proposals/VK_KHR_shader_expect_assume.adoc[]
7386
** xref:proposals/VK_KHR_shader_float_controls2.adoc[]
7487
** xref:proposals/VK_KHR_shader_integer_dot_product.adoc[]
7588
** xref:proposals/VK_KHR_shader_maximal_reconvergence.adoc[]
7689
** xref:proposals/VK_KHR_shader_quad_control.adoc[]
7790
** xref:proposals/VK_KHR_shader_relaxed_extended_instruction.adoc[]
7891
** xref:proposals/VK_KHR_shader_subgroup_rotate.adoc[]
92+
** xref:proposals/VK_KHR_shader_untyped_pointers.adoc[]
93+
** xref:proposals/VK_KHR_surface_maintenance1.adoc[]
94+
** xref:proposals/VK_KHR_swapchain_maintenance1.adoc[]
95+
** xref:proposals/VK_KHR_unified_image_layouts.adoc[]
7996
** xref:proposals/VK_KHR_vertex_attribute_divisor.adoc[]
8097
** xref:proposals/VK_KHR_video_decode_av1.adoc[]
8198
** xref:proposals/VK_KHR_video_decode_h264.adoc[]
8299
** xref:proposals/VK_KHR_video_decode_h265.adoc[]
83100
** xref:proposals/VK_KHR_video_decode_queue.adoc[]
101+
** xref:proposals/VK_KHR_video_decode_vp9.adoc[]
84102
** xref:proposals/VK_KHR_video_encode_av1.adoc[]
85103
** xref:proposals/VK_KHR_video_encode_h264.adoc[]
86104
** xref:proposals/VK_KHR_video_encode_h265.adoc[]
105+
** xref:proposals/VK_KHR_video_encode_intra_refresh.adoc[]
87106
** xref:proposals/VK_KHR_video_encode_quantization_map.adoc[]
88107
** xref:proposals/VK_KHR_video_encode_queue.adoc[]
89108
** xref:proposals/VK_KHR_video_maintenance1.adoc[]
109+
** xref:proposals/VK_KHR_video_maintenance2.adoc[]
90110
** xref:proposals/VK_KHR_video_queue.adoc[]
91111
** xref:proposals/VK_LUNARG_direct_driver_loading.adoc[]
92112
** xref:proposals/VK_MSFT_layered_driver.adoc[]
113+
** xref:proposals/VK_NV_cluster_acceleration_structure.adoc[]
93114
** xref:proposals/VK_NV_cooperative_matrix2.adoc[]
115+
** xref:proposals/VK_NV_cooperative_vector.adoc[]
94116
** xref:proposals/VK_NV_display_stereo.adoc[]
117+
** xref:proposals/VK_NV_external_compute_queue.adoc[]
118+
** xref:proposals/VK_NV_partitioned_acceleration_structure.adoc[]
119+
** xref:proposals/VK_NV_ray_tracing_linear_swept_spheres.adoc[]
95120
** xref:proposals/VK_NV_ray_tracing_validation.adoc[]
96121
** xref:proposals/VK_QCOM_image_processing.adoc[]
122+
** xref:proposals/VK_QCOM_tile_memory_heap.adoc[]
97123
** xref:proposals/VK_QCOM_tile_properties.adoc[]
124+
** xref:proposals/VK_QCOM_tile_shading.adoc[]
98125
** xref:proposals/VK_VERSION_1_4.adoc[]

antora/refpages/antora.yml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# Copyright 2022-2025 The Khronos Group Inc.
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
name: refpages
5+
title: Vulkan API Reference Pages
6+
version: latest
7+
start_page: refpages:index.adoc
8+
# stem (latexmath) support is provided by the @djencks/asciidoctor-mathjax
9+
# extension, loaded in the playbook.
10+
asciidoc:
11+
attributes:
12+
stem: latexmath
13+
config: partial$config
14+
chapters: partial$chapters
15+
appendices: partial$appendices
16+
generated: partial$gen
17+
images: image$
18+
# Not supported for SVG yet - see https://gitlab.com/antora/antora/-/issues/1001
19+
# imageopts: inline
20+
imageopts: ''
21+
refprefix: ''
22+
# This causes custom link macros (flink:, slink:, etc.) to link to another
23+
# refpage, instead of to the specification itself.
24+
cross-file-links: true
25+
# This includes some content not in the spec itself
26+
isrefpage: true
27+
nav:
28+
- modules/refpages/nav.adoc

0 commit comments

Comments
 (0)