It is inefficient to download Wine and build `widl` at each run of the `build-mac` job. And while for `widl` itself that's not a big deal, in the future I'd like to build MoltenVK on the CI, so we don't depend on the version available on the CI runner, which would make each CI run quite heavier.
So I came up with an `image` CI job that, similarly to Linux, collect together the required dependencies for running the pipeline. macOS doens't support a real Docker image, so this "image" is just a `.tar.gz` file hosted in the GitLab package registry.
There is a little problem with that: in GitLab uploading a new file in the package registry doesn't overwrite a file with the same name already available, even if the latest file is returned anyway. So the old versions basically pile up and have to be manually remove every now and then. Hopefully the environment is only seldom recreated, so the storage usage is not a concern.
As usual, pipelines for MRs that change the pipeline image itself are bound to fail. A demo pipeline is https://gitlab.winehq.org/giomasce/vkd3d/-/pipelines/20433.
--
v2: ci: Prepare the macOS build environment in a dedicated CI job.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/538
Capability Geometry allows to use the Layer builtin in geometry shaders.
For vertex shaders ShaderLayer should be used, but it's only available
starting from SPIR-V 1.5. ShaderViewportIndexLayerEXT can be used instead
with extension SPV_EXT_shader_viewport_index_layer.
--
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/546
--
v16: tests: Mark a strip cut test as buggy in MoltenVK.
tests: Mark a depth sampling test as buggy on MoltenVK.
tests: Mark the tessellation pipeline as buggy on MoltenVK.
tests: Mark geometry shaders as buggy on MoltenVK.
tests: Mark ReadFromSubresource() and WriteToSubresource() as todo on MoltenVK.
tests: Mark a test related to instanced draws as buggy on MoltenVK.
tests: Mark count buffers as buggy on MoltenVK.
tests: Mark a timestamp query test as buggy on MoltenVK.
tests: Mark clip distance as unsupported on MoltenVK.
tests: Mark cull distance as buggy on MoltenVK.
tests: Mark unbounded descriptor ranges as buggy on MoltenVK.
tests: Mark loading from stencil as buggy on MoltenVK.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/531