Vulkan-Docs/.gitlab-ci.yml

99 lines
3.6 KiB
YAML
Raw Normal View History

Change log for May 16, 2018 Vulkan 1.1.75 spec update: * Update release number to 75. Github Issues: * Use Github handles (e.g. @handle) for contact information in vk.xml, when available (partial fix for public issue 630). * Add size invariance guarantee to slink:VkMemoryRequirements for buffer/image memory requirements (public issue 661). * Correct scope (conditional constructs) in valid usage statement for slink:VkBindImageMemoryInfo (public pull request 684). * Clean up minor markup issues and typos in the `VK_ANDROID_external_memory_android_hardware_buffer` extension appendix (public pull request 698). * Modify registry processing script to avoid irrelevant warnings of benign enumerant redefinitions (public pull request 705). * Fix some duplicate words and some misspelled "`stagess`" (public pull request 712) Internal Issues: * Enable continuous integration tests on the internal Khronos gitlab server by adding a .gitlab-ci.yml file. Note: this does not implement CI on the public Github repository (internal issue 408). * Add link from description of depth clamping in the <<fragops-depth, depth test>> section to the slink:VkPipelineRasterizationStateCreateInfo::pname:depthClampEnable parameter which enables it, making it easily searchable / findable (internal issue 1125). * Clarify that arrays of arrays of descriptors are not allowed in the <<interfaces-resources-descset, Descriptor Set Interface>> and <<interfaces-resources-setandbinding, DescriptorSet and Binding Assignment>> sections (internal issue 1192). * Comment out some redundant nested asciidoctor conditionals in the slink:VkImageViewCreateInfo valid usage block, and explain in all cases why the redundant conditional exist and are commented out (internal issue 1231). * Move a valid usage statement from slink:VkCommandPoolCreateInfo to the parent flink:vkCreateCommandPool, where the device queue is known (internal issue 1233). * Add new slink:VkBaseInStructure and slink:VkBaseOutStructure types which can be used by extensions and implementations for handling Vulkan sType/pNext style structures in a more generic way (internal issue 1265). * Clarify that slink:VkAndroidHardwareBufferFormatPropertiesANDROID::pname:formatFeatures only applies to external-format images. Add references to this in valid usage statements that previously only referred to slink:VkFormatProperties (internal issue 1244). * Fix the description of elink:VkPipelineCreateFlagBits enumerant ename:VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT to match the name (internal issue 1279). * Add a NOTE to the <<interfaces-resources-setandbinding, DescriptorSet and Binding Assignment>> section making it clear that variables sharing a storage class may use identical descriptor set and bindings. Specifically state the sometimes misunderstood ability to have one or more differently typed image descriptors sharing a descriptor set and binding (internal SPIR-V issue 264). * Make DynamicIndexing features and capabilities also control the uniformity of the descriptor used in memory access instructions in the <<interfaces-resources-descset, Descriptor Set Interface>> section. This makes them also apply to variable_pointer usage, which can bypass the array indexing operation (internal SPIR-V issue 289). Other Issues: * Correct flink:vkCmdBlitImage limitations on cubic blits to be 2D only, not 3D. * Update valid usage statements for slink:VkRenderPassCreateInfo and slink:VkInputAttachmentAspectReference. * Move YCbCr-related VU statements from slink:VkDescriptorImageInfo to slink:VkWriteDescriptorSet, where all needed information is known, and remove redundant statements. * Move SPIR-V restriction that images be of either sampled or storage types from the <<interfaces-resources-descset, Descriptor Set Interface>> section to the <<spirvenv-module-validation, Validation Rules within a Module>> section of the SPIR-V appendix.
2018-05-17 09:38:41 +00:00
# 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 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 -j${nproc} -Otarget html styleguide registry manhtml manhtmlpages checkinc checklinks validusage
artifacts:
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