ccc6442d6f
u_format has always had its format table in CSV. This is kind of nice for some things, but is a serious pain to extend, especially with optional fields. In going through our many (many, many) duplicated tables of format mappings, it would've been nice to add some descriptions to our central u_format table, such as mapping to DRM FourCC, to EGLImage mappings, and to GL internalformats for EGLImage imports. Unfortunately, doing so with more additional fields would just make the CSV totally unreadable. Move the CSV table to a YAML-based table and adjust the Python parsers to suit. The resulting generated files are identical before and after the transition. The new parser also has a significant amount of format validation to make it easier to catch common errors. Signed-off-by: Daniel Stone <daniels@collabora.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29649> |
||
---|---|---|
.. | ||
deqp_runner_run.ps1 | ||
Dockerfile_build | ||
Dockerfile_msvc | ||
Dockerfile_test | ||
mesa_build.ps1 | ||
mesa_container.ps1 | ||
mesa_deps_build.ps1 | ||
mesa_deps_choco.ps1 | ||
mesa_deps_d3d.ps1 | ||
mesa_deps_libva.ps1 | ||
mesa_deps_msvc.ps1 | ||
mesa_deps_rust.ps1 | ||
mesa_deps_test_deqp.ps1 | ||
mesa_deps_test_piglit.ps1 | ||
mesa_deps_test.ps1 | ||
mesa_deps_vulkan_sdk.ps1 | ||
mesa_init_msvc.ps1 | ||
piglit_run.ps1 | ||
README.md | ||
spirv2dxil_check.ps1 | ||
spirv2dxil_run.ps1 | ||
vainfo_run.ps1 |
Native Windows GitLab CI builds
Unlike Linux, Windows cannot reuse the freedesktop ci-templates as they exist as we do not have Podman, Skopeo, or even Docker-in-Docker builds available under Windows.
We still reuse the same model: build a base container with the core operating system and infrequently-changed build dependencies, then execute Mesa builds only inside that base container. This is open-coded in PowerShell scripts.
Base container build
The base container build job executes the mesa_container.ps1
script which
reproduces the ci-templates behaviour. It looks for the registry image in
the user's namespace, and exits if found. If not found, it tries to copy
the same image tag from the upstream Mesa repository. If that is not found,
the image is rebuilt inside the user's namespace.
The rebuild executes docker build
which calls mesa_deps.ps1
inside the
container to fetch and install all build dependencies. This includes Visual
Studio Community Edition (downloaded from Microsoft, under the license which
allows use by open-source projects), other build tools from Chocolatey, and
finally Meson and Python dependencies from PyPI.
This job is executed inside a Windows shell environment directly inside the host, without Docker.
Mesa build
The Mesa build runs inside the base container, executing mesa_build.ps1
.
This simply compiles Mesa using Meson and Ninja, executing the build and
unit tests. Currently, no build artifacts are captured.
Using build scripts locally
*.ps1
scripts for building dockers are using PowerShell 7 to run