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