Faith Ekstrand
6aa2c152b8
nak,nir: Add an image_load_raw_nv intrinsic
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34336 >
2025-04-08 04:06:45 +00:00
Faith Ekstrand
c05565ce7b
compiler/rust: Add more NIR intrinsic getters
...
Reviewed-by: Mel Henning <mhenning@darkrefraction.com >
Reviewed-by: Benjamin Lee <benjamin.lee@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34126 >
2025-03-29 03:02:17 +00:00
Faith Ekstrand
1355c71943
compiler/rust: Add a nir_alu_type wrapper
...
Reviewed-by: Mel Henning <mhenning@darkrefraction.com >
Reviewed-by: Benjamin Lee <benjamin.lee@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34126 >
2025-03-29 03:02:17 +00:00
Faith Ekstrand
61108eb1b5
compiler/rust: Add u_printf_info to the rust bindings
...
This both adds it to the compiler allowlist and adds it to the user
denylist. This gets rid of a Rust compiler warning in NAK.
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33402 >
2025-03-01 08:44:15 +00:00
Mel Henning
c273ada502
compiler/rust/bitset: Test next_unset()
...
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32812 >
2025-01-02 20:52:48 +00:00
Mel Henning
2bcb950865
compiler/rust/bitset: Don't expose words
...
This encapsulates the bitset's word size and word count, which means
consumers no longer need to be careful about word count. Users of the old
apis for writing expressions on bit sets should migrate to the new expression
API.
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32812 >
2025-01-02 20:52:48 +00:00
Mel Henning
86e5cb7c2d
compiler/rust/bitset: Take a stream in union_with
...
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32812 >
2025-01-02 20:52:48 +00:00
Mel Henning
47da213e19
compiler/rust/bitset: Add a lazy expression API
...
The new api doesn't require allocations for intermediate values in
expressions. It also has tests, which is nice because eg. the previous
implementation of the `&` operator was broken.
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32812 >
2025-01-02 20:52:48 +00:00
Mel Henning
e52b2ee4b9
compiler/rust/bitset: Remove impl Not
...
This is extremely difficult to use correctly for bitsets of
different sizes. Also, nobody uses it. Remove the footgun.
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32812 >
2025-01-02 20:52:48 +00:00
Mel Henning
8ec885da1d
compiler/rust/bitset: impl FromIterator
...
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32812 >
2025-01-02 20:52:48 +00:00
Mel Henning
de47702dde
compiler/rust/bitset: Make BitSetIter private
...
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32812 >
2025-01-02 20:52:47 +00:00
Mel Henning
06cd3c7fa3
compiler/rust/bitset: Removed unused start param
...
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32812 >
2025-01-02 20:52:47 +00:00
Mel Henning
6ba317bd8c
compiler/rust/bitset: Add a basic test
...
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32812 >
2025-01-02 20:52:47 +00:00
Mel Henning
3b341366a6
compiler/rust: Fix running tests
...
`ninja test` wasn't actually running these tests, I guess because the
target name was duplicated in meson. Fix this so the tests actually run.
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32812 >
2025-01-02 20:52:47 +00:00
Mel Henning
639211dea8
compiler/rust/bitset: Fix the bitset iterator
...
Reviewed-by: Mary Guillemard <mary.guillemard@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32812 >
2025-01-02 20:52:47 +00:00
LingMan
0ff3e2a0f9
compiler/rust: Use std::mem::offset_of!()
...
It got stabilized with Rust 1.77.
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Reviewed-by: Karol Herbst <kherbst@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31510 >
2024-11-18 22:29:13 +00:00
David Heidelberg
1368ee5e1a
compiler/rust: drop duplicated bindgen check
...
The same check is present in meson file in root directory.
Cc: mesa-stable # 24.3
Reviewed-by: Eric Engestrom <eric@igalia.com >
Signed-off-by: David Heidelberg <david@ixit.cz >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32101 >
2024-11-14 20:12:31 +00:00
Christian Gmeiner
5fa4c1a191
compiler/rust: Copy NirInstrPrinter from NAK
...
Switch NAK to it.
Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com >
Reviewed-by: M Henning <drawoc@darkrefraction.com >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31706 >
2024-10-18 12:43:52 +00:00
Faith Ekstrand
4cc9730307
compiler/rust: Fix a bad cast in the memstream abstraction
...
If you just do ref.cast(), it will cast the thing it's a reference to.
If you want to turn a reference into a pointer, you need to explicitly
use "as".
Fixes: 279f38918f ("nak: memstream: move into common code")
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31718 >
2024-10-17 18:59:02 +00:00
Faith Ekstrand
212e07a70e
compiler/rust: Add a unit test for the memstream abstraction
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31718 >
2024-10-17 18:59:02 +00:00
Faith Ekstrand
ec24156b31
compiler/rust: Enable unit tests
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31718 >
2024-10-17 18:59:01 +00:00
Daniel Almeida
279f38918f
nak: memstream: move into common code
...
Move the memstream code into common code. Other Rust code interfacing
with FILE pointers will find the memstream abstraction useful.
Most notably, pinning is actually enforced this time with PhantomPinned.
Add a .clang-format from a sibling dir (i.e.: compiler/nir) while we're
at it to keep things tidy.
Signed-off-by: Daniel Almeida <daniel.almeida@collabora.com >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30594 >
2024-10-17 02:50:21 +00:00
Christian Gmeiner
1421319dcf
compiler/rust: Copy MappedInstrs from NAK
...
Rename it to SmallVec, make it more generic and switch NAK
to it.
Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31409 >
2024-10-01 11:33:35 +00:00
Echo J
ec79f0c3cc
compiler/rust: Force native build for the compiler_proc library
...
This should fix the 32-bit build of NVK (with NAK included)
Fixes: ab72be6c5e ("nak,compiler: Move AsSlice to common code")
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30561 >
2024-08-08 14:41:52 +00:00
Faith Ekstrand
ab72be6c5e
nak,compiler: Move AsSlice to common code
...
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30443 >
2024-08-07 21:08:19 +00:00
Faith Ekstrand
2cb77cc0dc
compiler/rust/nir: Add explicit lifetimes
...
This adds explicit lifetimes to any function which looks at a NIR
object, fishes a pointer out of it, and returns a reference. The theory
of operation for these NIR wrappers is that everything holds an implicit
shared reference to the whole shader and so this is safe to do as long
as no one ever has a mut reference to anything. However, since these
methods are turning pointers into references, it's a lot more obvious
what's going on if we have explicit lifetimes.
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30443 >
2024-08-07 21:08:18 +00:00
Faith Ekstrand
3ebeee9166
compiler/rust/nir: Implement NIR types directly
...
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30443 >
2024-08-07 21:08:18 +00:00
Faith Ekstrand
d723ae9814
compiler/rust: Copy the Rust NIR wrappers from NAK
...
Reviewed-by: Christian Gmeiner <cgmeiner@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30443 >
2024-08-07 21:08:18 +00:00
Christian Gmeiner
ad4a7e32f3
nak: Move cfg to compiler crate
...
Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30443 >
2024-08-07 21:08:18 +00:00
Christian Gmeiner
05bf03c3db
nak: Move bitset to compiler crate
...
This commit intorduces src/compiler/rust crate, which will have
different modules that help to write a backend compiler in Rust.
Signed-off-by: Christian Gmeiner <cgmeiner@igalia.com >
Reviewed-by: Faith Ekstrand <faith.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30443 >
2024-08-07 21:08:18 +00:00