mirror of
https://github.com/status-im/Vulkan-Docs.git
synced 2025-02-14 23:37:21 +00:00
* Update release number to 98. Public Issues: * Fix missing markup in flink:vkDestroyPipelineLayout valid usage statement (pull request 882). * Add missing contributors for `<<VK_EXT_buffer_device_address>>` (public pull request 891). Internal Issues: * Detect nested bullet points in valid usage blocks and warn about them during VUID assignment (internal issue 1382). * Update the style guide to document the process for reserving new bits in bitmask types (internal issue 1411). * Clarify for slink:VkApplicationInfo::pname:apiVersion and in the <<fundamentals-validusage-versions, Valid Usage for Newer Core Versions>> section when it is valid for an application to use a certain version of Vulkan API functionality (for an instance and for a device/physical device); and when the validation layers must generate an error (internal issue 1412). * Add optional <<memory-model-availability-visibility, transitive availability/visibility operations to the memory model, including a new pname:vulkanMemoryModelAvailabilityVisibilityChains feature for slink:VkPhysicalDeviceVulkanMemoryModelFeaturesKHR (internal issue 1460). * Add the code:StorageBuffer storage class to those in the <<interfaces-resources-descset, Descriptor Set Interface>> (internal issue 1480). * Add missing `returnedonly` tags for a number of returned extension structures that can be passed in pname:pNext chains (internal issue 1515). * Clean up and rearrange some spec language for slink:VkRenderPassCreateInfo and slink:VkAttachmentReference.txt (internal issue 1522). * Correctly round the code:OpVectorTimesScalar and code:OpMatrixTimesScalar SPIR-V operations in the <<Precision of core SPIR-V Instructions>> table (internal merge request 2996). * Work around cases in flink:vkCmdBeginTransformFeedbackEXT, flink:vkCmdEndTransformFeedbackEXT, and slink:VkPipelineCoverageModulationStateCreateInfoNV where an array parameter is `optional` but the length is not in `vk.xml`. This is an interim fix using `noautovalidity` + handcoded VU replacing those that should be autogenerated (internal issue 2944 and https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/480). * Remove redundant capability validation of the code:float16 and code:int8 SPIR-V capabilities from the <<spirvenv-capabilities, Capabilities>> section, since they are already covered in the preceding table. * Update check_spec_links script, including validation for reference page open blocks. Fix errors identified by the script.
109 lines
4.2 KiB
YAML
109 lines
4.2 KiB
YAML
# Gitlab CI file for vulkan spec and header generation
|
|
|
|
# Build the vulkan specification and generate any associated files (such as vulkan.h)
|
|
spec-generate:
|
|
stage: build
|
|
before_script:
|
|
- apt-get update -qq
|
|
- apt-get install -y -qq gcc git python3 python3-termcolor python3-pytest ruby
|
|
- apt-get install -y -qq cmake bison flex libffi-dev libxml2-dev libgdk-pixbuf2.0-dev libcairo2-dev libpango1.0-dev ttf-lyx
|
|
- gem install asciidoctor asciidoctor-mathematical coderay json-schema
|
|
script:
|
|
- ./makeAllExts QUIET= -j${nproc} -Otarget html styleguide registry manhtmlpages checkinc checklinks validusage
|
|
# Internal self-test of the script
|
|
- ( cd xml && py.test-3 )
|
|
- xml/check_spec_links.py --html=out/checks/problems.html > /dev/null || true
|
|
# Breaking the build if # of errors increases. We should manually ratchet ignore_count down as errors get fixed.
|
|
# If there are unfixable errors, add '--ignore_count #' where '#' is the
|
|
# number of them. This is a slightly crude way of enforcing "don't add
|
|
# errors" but simpler than the alternatives (running against master,
|
|
# diff, etc)
|
|
- xml/check_spec_links.py -Werror --ignore_count 0
|
|
artifacts:
|
|
when: always
|
|
paths:
|
|
- include/
|
|
- src/
|
|
- out/
|
|
expire_in: 1 month
|
|
|
|
# Generate the vulkan C++ header (vulkan.hpp)
|
|
hpp-generate:
|
|
stage: build
|
|
image: ubuntu:16.04
|
|
before_script:
|
|
- SPEC_DIR="${PWD}"
|
|
- apt-get update -qq
|
|
- apt-get install -y -qq cmake git g++
|
|
- cd /tmp
|
|
- rm -rf Vulkan-Hpp
|
|
- git clone https://github.com/KhronosGroup/Vulkan-Hpp.git
|
|
- cd Vulkan-Hpp
|
|
- git submodule update --init --recursive -- tinyxml2
|
|
- rm -rf Vulkan-Docs
|
|
- cp -r "${SPEC_DIR}" Vulkan-Docs
|
|
script:
|
|
- cd /tmp/Vulkan-Hpp
|
|
- cmake -H. -Bbuild
|
|
- make -C build
|
|
- cd build
|
|
- ./VulkanHppGenerator
|
|
after_script:
|
|
- mkdir -p Vulkan-Hpp/vulkan/
|
|
- cp /tmp/Vulkan-Hpp/vulkan/vulkan.hpp Vulkan-Hpp/vulkan/
|
|
artifacts:
|
|
paths:
|
|
- Vulkan-Hpp/vulkan/
|
|
expire_in: 1 month
|
|
allow_failure: true
|
|
|
|
# Compile a simple test program that uses vulkan.h
|
|
h-compile:
|
|
stage: test
|
|
dependencies:
|
|
- spec-generate
|
|
before_script:
|
|
- apt-get update -qq
|
|
- apt-get install -y -qq gcc clang
|
|
- echo "#include <vulkan/vulkan.h>" > /tmp/htest.c
|
|
- echo "int main()" >> /tmp/htest.c
|
|
- echo "{" >> /tmp/htest.c
|
|
- echo " const VkInstanceCreateInfo instance_info = {" >> /tmp/htest.c
|
|
- echo " .sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO," >> /tmp/htest.c
|
|
- echo " .pNext = NULL," >> /tmp/htest.c
|
|
- echo " .flags = 0," >> /tmp/htest.c
|
|
- echo " .pApplicationInfo = NULL," >> /tmp/htest.c
|
|
- echo " .enabledLayerCount = 0," >> /tmp/htest.c
|
|
- echo " .ppEnabledLayerNames = NULL," >> /tmp/htest.c
|
|
- echo " .enabledExtensionCount = 0," >> /tmp/htest.c
|
|
- echo " .ppEnabledExtensionNames = NULL," >> /tmp/htest.c
|
|
- echo " };" >> /tmp/htest.c
|
|
- echo " VkInstance instance;" >> /tmp/htest.c
|
|
- echo " vkCreateInstance(&instance_info, NULL, &instance);" >> /tmp/htest.c
|
|
- echo " vkDestroyInstance(instance, NULL);" >>/tmp/htest.c
|
|
- echo "}" >> /tmp/htest.c
|
|
script:
|
|
- gcc -c -std=c11 -Iinclude -Wall -Wextra -Werror /tmp/htest.c
|
|
- clang -c -std=c11 -Iinclude -Wall -Wextra -Werror /tmp/htest.c
|
|
|
|
# Compile a simple test program that uses vulkan.hpp
|
|
hpp-compile:
|
|
stage: test
|
|
dependencies:
|
|
- spec-generate
|
|
- hpp-generate
|
|
before_script:
|
|
- apt-get update -qq
|
|
- apt-get install -y -qq g++ clang
|
|
- echo "#include <vulkan/vulkan.hpp>" > /tmp/hpptest.cpp
|
|
- echo "int main()" >> /tmp/hpptest.cpp
|
|
- echo "{" >> /tmp/hpptest.cpp
|
|
- echo " auto const instance_info = vk::InstanceCreateInfo();" >> /tmp/hpptest.cpp
|
|
- echo " vk::Instance instance;" >> /tmp/hpptest.cpp
|
|
- echo " vk::createInstance(&instance_info, nullptr, &instance);" >> /tmp/hpptest.cpp
|
|
- echo "}" >> /tmp/hpptest.cpp
|
|
script:
|
|
- g++ -c -std=c++11 -Iinclude -IVulkan-Hpp -Wall -Wextra -Werror /tmp/hpptest.cpp
|
|
- clang++ -c -std=c++11 -Iinclude -IVulkan-Hpp -Wall -Wextra -Werror /tmp/hpptest.cpp
|
|
allow_failure: true
|