Commit graph

31 commits

Author SHA1 Message Date
Mel Henning
b5973bed78 zink: Add zink_check_requirements
This is a new tool that checks a driver against the vulkan profile and
complains about any missing features.

Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36061>
2025-08-22 16:08:11 -04:00
Faith Ekstrand
291ccffd3d subprojects: Stop calling add_languages() in paste-1-rs/meson.build
Reviewed-by: Mel Henning <mhenning@darkrefraction.com>
Cc: mesa-stable
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36849>
2025-08-20 17:06:47 +00:00
Paolo Bonzini
8ea232a9ae meson: rename Rust subprojects to NAME-SEMVER-rs
Use the convention for Rust subprojects that was adopted by Meson 1.5.0
and newer.

Distros would prefer to avoid vendored crate sources, and instead use
local sources from e.g. /usr/share/cargo/registry.  While Meson does not
support a local registry, it can be emulated with MESON_PACKAGE_CACHE_DIR.

However, because the distro might not be using the exact version of the
package, but only one that has the same semver, packagers need to add
some hacks to rewrite the wrap files.  For example, in Fedora:

    export MESON_PACKAGE_CACHE_DIR="%{cargo_registry}/"
    # So... Meson can't actually find them without tweaks
    %define inst_crate_nameversion() %(basename %{cargo_registry}/%{1}-*)
    %define rewrite_wrap_file() sed -e "/source.*/d" -e "s/%{1}-.*/%{inst_crate_nameversion %{1}}/" -i subprojects/%{1}.wrap
    %rewrite_wrap_file proc-macro2
    %rewrite_wrap_file quote
    %rewrite_wrap_file syn
    %rewrite_wrap_file unicode-ident
    %rewrite_wrap_file paste

Having a common convention for the name of Rust wraps makes it possible
to perform this transformation with a script without listing
the wraps one by one, and to share the script across multiple packages
(which will be useful when QEMU starts using Rust in a similar way to Mesa).

For an example of such a script, see
https://lore.kernel.org/r/20250722083507.678542-1-pbonzini@redhat.com/.

Acked-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Reviewed-by: Gurchetan Singh <gurchetansingh@chromium.org>
Tested-by: Gurchetan Singh <gurchetansingh@chromium.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36284>
2025-07-24 17:52:34 +00:00
Gurchetan Singh
d978cbf944 mesa: subprojects: remove linux-raw-sys backend and use libc
This is because Android prefers it -- the project likes to make
changes to bionic that have a global effect, and using raw-syscalls
potentially complicates that.  This is a backport of:

https://github.com/bytecodealliance/rustix/pull/1478

In addition, nothing in Mesa3D needs the added functionality provided
by raw syscalls.

Test:

meson setup gfxstream-build -Dvulkan-drivers="gfxstream" -Dgallium-drivers="" -Dvirtgpu_kumquat=true -Dopengl=false -Drust_std=2021

still compiles.

Reviewed-by: @LingMan
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/36116>
2025-07-14 10:23:47 -07:00
Vinson Lee
406066c6f6 subprojects: Update linux-raw-sys to 0.7.0
Fix build error with rustix-1.0.7.

error[E0425]: cannot find value `MAP_DROPPABLE` in module `linux_raw_sys::general`
   --> ../subprojects/rustix-1.0.7/src/backend/linux_raw/mm/types.rs:109:51
    |
109 |         const DROPPABLE = linux_raw_sys::general::MAP_DROPPABLE;
    |                                                   ^^^^^^^^^^^^^ not found in `linux_raw_sys::general`

Fixes: 8a2f43c9bd ("util: rust: update to rustix 1.0.7")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13460
Signed-off-by: Vinson Lee <vlee@freedesktop.org>
Reviewed-by: Gurchetan Singh <gurchetansingh@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35930>
2025-07-09 06:16:43 +00:00
Gurchetan Singh
8a2f43c9bd util: rust: update to rustix 1.0.7
Latest tagged release.  Fedora uses it, and for it to
work on Android we'll need to latest release so a pure
libc backend can be used.

Reviewed-by: Marcin Radomski <dextero@google.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35768>
2025-06-26 17:11:41 +00:00
Gurchetan Singh
68c70c3eff subprojects: add zerocopy
Version 0.8.13 supported in:

     - AOSP
     - Fedora (https://src.fedoraproject.org/rpms/rust-zerocopy)

Acked-by: Aaron Ruby <aruby@qnx.com>
Reviewed-by: @LingMan
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35210>
2025-06-17 22:28:54 +00:00
Gurchetan Singh
15b100770b subprojects: add remain
Version 0.2.12 or greater supported in:

  - AOSP
  - Fedora (https://src.fedoraproject.org/rpms/rust-remain)

Acked-by: Aaron Ruby <aruby@qnx.com>
Reviewed-by: @LingMan
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35210>
2025-06-17 22:28:54 +00:00
Gurchetan Singh
85f620cabc subprojects: add thiserror
Version 2.0.11 or greater supported in:

  - Android
  - Fedora (https://src.fedoraproject.org/rpms/rust-thiserror)
  - Debian

Acked-by: Aaron Ruby <aruby@qnx.com>
Reviewed-by: @LingMan
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35210>
2025-06-17 22:28:54 +00:00
Gurchetan Singh
92d7504de3 subprojects: add log
Version 0.4.27 available in:

- AOSP
- Fedora (https://src.fedoraproject.org/rpms/rust-log)

Acked-by: Aaron Ruby <aruby@qnx.com>
Reviewed-by: @LingMan
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35210>
2025-06-17 22:28:54 +00:00
Gurchetan Singh
043d503f9d subprojects: add rustix
Version 0.38.31 available:

   - AOSP
   - Fedora (https://bodhi.fedoraproject.org/updates/?packages=rust-rustix)
   - Debian (https://tracker.debian.org/pkg/rust-rustix)

Acked-by: Aaron Ruby <aruby@qnx.com>
Reviewed-by: @LingMan
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35210>
2025-06-17 22:28:54 +00:00
Gurchetan Singh
e04026adde subprojects: add linux-raw-sys
Version 0.4.14 or above supported in:

    - AOSP
    - Fedora
      (https://bodhi.fedoraproject.org/updates/?packages=rust-linux-raw-sys)
    - Debian

Acked-by: Aaron Ruby <aruby@qnx.com>
Reviewed-by: @LingMan
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35210>
2025-06-17 22:28:54 +00:00
Gurchetan Singh
f02e60409b subprojects: add errno
Version 0.3.12 in:

     - Fedora
       (https://packages.fedoraproject.org/pkgs/rust-errno/rust-errno+default-devel/)
     - AOSP (0.3.8, but should still work)

Acked-by: Aaron Ruby <aruby@qnx.com>
Reviewed-by: @LingMan
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35210>
2025-06-17 22:28:54 +00:00
Gurchetan Singh
59e2d1e549 subprojects: add libc
Version 0.2.168 supported in:

     - Android
     - Fedora
       (https://bodhi.fedoraproject.org/updates/?packages=rust-libc)
     - Debian (https://tracker.debian.org/pkg/rust-libc)

Acked-by: Aaron Ruby <aruby@qnx.com>
Reviewed-by: @LingMan
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35210>
2025-06-17 22:28:54 +00:00
Gurchetan Singh
734dd83494 subprojects: add bitflags
Version 2.9.1 supported in:

    - Android
    - Fedora (https://src.fedoraproject.org/rpms/rust-bitflags)

Acked-by: Aaron Ruby <aruby@qnx.com>
Reviewed-by: @LingMan
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35210>
2025-06-17 22:28:54 +00:00
Gurchetan Singh
f20d43d654 subprojects: add cfg-if
Version 1.0.0 supported in:

    - AOSP
    - Fedora
      (https://bodhi.fedoraproject.org/updates/?packages=rust-cfg-if)
    - Debian (https://tracker.debian.org/pkg/rust-cfg-if)

Acked-by: Aaron Ruby <aruby@qnx.com>
Reviewed-by: @LingMan
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35210>
2025-06-17 22:28:54 +00:00
Gurchetan Singh
35894b5c87 subprojects: add more syn features
This is needed by the zerocopy crate.

Acked-by: Aaron Ruby <aruby@qnx.com>
Reviewed-by: @LingMan
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35210>
2025-06-17 22:28:54 +00:00
Gurchetan Singh
71ff4ab788 subprojects: update syn to 2.0.87
Fedora is at 2.0.90 now.

https://src.fedoraproject.org/rpms/rust-syn

Acked-by: Aaron Ruby <aruby@qnx.com>
Reviewed-by: @LingMan
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35210>
2025-06-17 22:28:54 +00:00
Gurchetan Singh
62e36aeb95 subprojects: update quote to 1.0.35
Debian is at 1.0.37

https://tracker.debian.org/pkg/rust-quote

Acked-by: Aaron Ruby <aruby@qnx.com>
Reviewed-by: @LingMan
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35210>
2025-06-17 22:28:54 +00:00
Gurchetan Singh
c9c3a1f869 subprojects: fix missing space between colon and license string
Essentially:

find ./ -type f -exec sed -i -e "s/license :'/license : '/g" {} \;

Suggested-by: @LingMan
Reviewed-by: @LingMan
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35210>
2025-06-17 22:28:54 +00:00
Echo J
586ad02b9c subprojects: Don't use native option for rustc-hash dependency
Some checks are pending
macOS-CI / macOS-CI (dri) (push) Waiting to run
macOS-CI / macOS-CI (xlib) (push) Waiting to run
This should fix the 32-bit NVK build

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35037>
2025-05-18 13:56:34 +00:00
Mel Henning
c1f979d84a nak: Add a dependency on rustc-hash
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34865>
2025-05-16 01:40:04 +00:00
LingMan
9ddc160012 meson: Sync subproject version numbers in packagefiles with their .wrap equivalents
These tell meson which version the `.wrap` file downloads and should therefore always stay in sync.
No dependency is actually being updated here.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34368>
2025-04-04 21:22:27 +00:00
LingMan
83bf45b0ce meson: Update pest subproject family
Starting with Rust 1.83 this benign warning is show when compiling the pest dependency:

```
warning: elided lifetime has a name
   --> pest/src/iterators/pairs.rs:330:70
    |
89  | impl<'i, R: RuleType> Pairs<'i, R> {
    |      -- lifetime `'i` declared here
...
330 |     ) -> Filter<FlatPairs<'i, R>, impl FnMut(&Pair<'i, R>) -> bool + '_> {
    |                                                                      ^^ this elided lifetime gets resolved as `'i`
    |
    = note: `#[warn(elided_named_lifetimes)]` on by default
```

Meson, at least as of version 1.7.0, unfortunately does not suppress warnings originating in dependencies.
Upstream has resolved the warning in 2.8.0, so update to that.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34368>
2025-04-04 21:22:27 +00:00
Christian Gmeiner
9e3e12e6a9 meson: Add indexmap rust dependencies
Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com>
Reviewed-by: @LingMan
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28869>
2024-07-03 00:07:54 +00:00
Christian Gmeiner
02bc51f477 meson: Add roxmltree rust dependency
Will be used for a simple isaspec implementation in rust.

Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com>
Reviewed-by: @LingMan
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28869>
2024-07-03 00:07:54 +00:00
Christian Gmeiner
e28ff81869 meson: Add pest rust dependencies
Including its dependency ucd-trie.

Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com>
Reviewed-by: @LingMan
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28869>
2024-07-03 00:07:54 +00:00
José Expósito
18c5315731 meson: Update proc_macro2 meson.build patch
Update the proc-macro2/meson.build to include the changes from v1.0.81.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/11071
Signed-off-by: José Expósito <jexposit@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28923>
2024-05-10 20:07:01 +00:00
Daniel Almeida
dde95fc039 meson,ci: Add the paste crate
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/27397>
2024-04-08 20:28:43 +00:00
Faith Ekstrand
a2a0cef9f4 meson: Update our rust dependencies
These are the package versions currently shipped by Fedora. This allows
using system packages by setting

    export MESON_PACKAGE_CACHE_DIR=/usr/share/cargo/registry/

Of course, other distros may place it somewhere else.

Ubuntu matches versions on syn and unicode-ident but is a tiny bit off
on quote and proc-macro2. However, given how far I was able to bump the
versions with only a tiny meson tweak to syn, I think it should work
with the Ubuntu versions as well.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/26726>
2023-12-18 18:33:53 +00:00
Faith Ekstrand
5a80c2e89a meson: Pull in syn from crates.io
We don't have real crates.io support yet so this uses a hack where it
pulls wraps from my personal github.

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24998>
2023-11-14 00:48:07 +00:00