Vulkan-Docs/.gitlab-ci.yml
Jon Leech b557dd2167 Change log for December 16, 2018 Vulkan 1.1.96 spec update:
* Update release number to 96.

Public Issues:

  * Fix typo in `vk.xml` for `structextends` attribute of
    slink:VkPhysicalDeviceShadingRateImagePropertiesNV (public PR 870).
  * Fix links in optimized PDF output (public PR 879).

Internal Issues:

  * Add a link to GitHub contributors in the <<credits, Other Credits>>
    section (internal issue 808).
  * Clarify the behavior of command aliases described in the <<versions,Core
    Revisions>> and <<initialization-functionpointers, Command Function
    Pointers>> sections and the registry schema document with respect to
    whether they are or are not the same entry point, and what the behaviour
    of the ftext:vkGet*ProcAddr commands is for each alias (internal issue
    1462).
  * Update slink:VkPipelineShaderStageCreateInfo valid usage statements for
    writing to code:Layer and code:viewportIndex to apply to any vertex
    processing stage (internal issue 1475).
  * Make sparse image creation optional for Y'C~B~C~R~ formats in the
    <<features-required-format-support, Required Format Support>> section
    and the <<features-formats-requiring-sampler-ycbcr-conversion, Formats
    requiring sampler Y'C~B~C~R~ conversion for
    ename:VK_IMAGE_ASPECT_COLOR_BIT image views>> table (internal issue
    1476).
  * Modify the valid usage statement for
    flink:vkCmdDrawIndirectByteCountEXT::pname:vertexStride to use the
    pname:maxTransformFeedbackBufferDataStride limit rather than the
    pname:maxVertexInputBindingStride limit, which is a better match for
    transform feedback related operations (internal issue 1487).
  * Changed all members of slink:VkPhysicalDevicePCIBusInfoPropertiesEXT to
    have the `uint32_t` type. This is an imcompatible change to an EXT
    that's very recently released; although this is against usual Vulkan WG
    policy, we discussed and consider this an acceptable risk, but have
    polled the mesa-dev list in case there are use cases we missed (internal
    issue 1492).
  * Set spec vetsion to 1 for `VK_GOOGLE_hlsl_functionality1` and
    `VK_GOOGLE_decorate_string` in `vk.xml` (internal MR 2948).
  * Remove redundant valid usage statement `VkImageCreateInfo-pNext-02395`
    (internal MR 2950).
  * Add `check_spec_links.py` script, use it in Gitlab CI, and fix many
    minor markup issues discovered by the script (internal MR 2955).
  * Update `BUILD.md` to the current Ruby version (2.5.3), and make some
    corresponding updates to per-platform build instructions (internal MR
    2956).
  * Fix binding numbers and other details in
    flink:vkUpdateDescriptorSetWithTemplate.txt example code blocks
    (internal MR 2960).
  * Remove some nautovalidity="true" in `vk.xml` for NV extensions where
    it's clearly wrong (internal MR 2970).
2018-12-16 22:22:53 -08:00

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
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