138 Commits

Author SHA1 Message Date
f6d9bb529f meson: Bump xxHash wrap 2026-01-05 00:09:15 -07:00
df6fa71b5d meson: Bump curl to 8.12.1 2026-01-05 00:09:15 -07:00
3cc2989a98 meson: Update imgui
Integrates the macOS retina fixes.
2026-01-04 23:45:30 -07:00
d7b3af14f6 meson: Bump glslang to 16.1.0 2025-12-09 21:20:07 -07:00
5c30af2923 meson: Bump SPIRV-Reflect to vulkan-sdk-1.4.328.1 2025-10-15 19:20:54 -04:00
93b16e5ccd meson: Bump glslang to 16.0.0 2025-09-28 23:42:09 -07:00
e817cd5920 meson: Bump SPIRV-Reflect to vulkan-sdk-1.4.321.0 2025-07-21 00:18:54 -07:00
83a41c6105 meson: Bump glslang to 15.4.0 2025-06-29 23:18:28 -07:00
c9cdd76102 meson: Bump VulkanMemoryAllocator to v3.3.0 2025-05-19 22:34:54 -07:00
f7e40b2b80 meson: Bump SPIRV-Reflect to vulkan-sdk-1.4.313.0 2025-05-15 07:14:36 -07:00
4dfbe29cbd meson: Bump SPIRV-Reflect to vulkan-sdk-1.4.309.0 2025-04-26 16:23:43 -07:00
a3dc079706 meson: Bump glslang to 15.3.0 2025-04-26 16:23:12 -07:00
668017518a meson: Bump tomlplusplus to v3.4.0 2025-04-26 16:20:59 -07:00
c4b554fd80 meson: Add tag regex for subproject wrap auto-updater 2025-04-26 16:13:13 -07:00
1e1ef6fbb9 meson: Bump volk to 1.4.304 2025-04-26 16:04:34 -07:00
c035ff9f5d meson: Bump VulkanMemoryAllocator to v3.2.1 2025-04-26 16:04:16 -07:00
0d06ce8603 meson: Bump glslang 2025-03-27 17:25:59 -07:00
cc857adb6c meson: Bump SPIRV-Reflect 2025-03-27 17:25:59 -07:00
355228913c meson: Update imgui,implot 2025-03-08 04:00:18 -07:00
1d662cb49e meson: Replace in-tree nlohmann_json with a subproject wrap 2025-03-08 02:36:24 -07:00
5428760104 meson: Drop cpp-httplib dep 2025-03-07 22:12:49 -07:00
3decda5614 meson: Add libcurl subproject fallback 2025-03-07 22:12:49 -07:00
906d085d66 meson: Update xxHash wrap 2025-02-15 16:56:30 -07:00
65844f02e3 meson: Update VulkanMemoryAllocator wrap 2025-02-15 16:56:30 -07:00
66dbd9273c meson: Bump glslang 2025-01-26 03:48:38 -07:00
e0345bae3e meson: Bump SPIRV-Reflect 2025-01-26 03:48:38 -07:00
572f6161bf meson: Bump volk 2025-01-26 03:48:38 -07:00
fb8d47f9ba meson: Bump nv2a_vsh_cpu subproject version 2025-01-07 01:08:20 -07:00
21a3ee89ba meson: Migrate genconfig submodule to subproject 2025-01-06 23:05:53 -07:00
fcf5eb84a1 meson: Migrate implot submodule to subproject 2025-01-06 23:05:53 -07:00
09f7787fa9 meson: Migrate imgui submodule to subproject 2025-01-06 23:05:53 -07:00
ec974f1c7c Merge tag 'v9.2.0'
v9.2.0 release
2025-01-03 22:30:04 -07:00
f96f2754cc meson: Migrate xxhash submodule to a subproject 2025-01-02 19:07:25 -07:00
084b40fc53 meson: Migrate cpp-httplib submodule to a subproject 2025-01-02 19:07:25 -07:00
55118b4260 meson: Migrate tomlplusplus submodule to a subproject 2025-01-02 19:07:25 -07:00
824af3978f meson: Migrate nv2a_vsh_cpu submodule to a subproject 2025-01-02 19:07:25 -07:00
08ce952441 meson: Add subprojects .gitignore 2024-12-31 01:37:05 -07:00
209c0991a1 meson: Convert VulkanMemoryAllocator submodule to a subproject 2024-12-31 01:37:05 -07:00
615748fe4b meson: Convert SPIRV-Reflect submodule to a subproject 2024-12-31 01:37:05 -07:00
c54964a44a meson: Convert volk submodule to a subproject 2024-12-31 01:37:05 -07:00
1524486e73 meson: Bump glslang subproject version 2024-12-31 01:37:05 -07:00
ff5f2768b6 meson: Vendor glslang 2024-12-31 01:37:05 -07:00
700784bfc6 rust: add meson_version to all subprojects
Otherwise, newer releases of meson complain.

Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2024-11-07 16:54:02 +01:00
f351840088 rust: introduce alternative implementation of offset_of!
offset_of! was stabilized in Rust 1.77.0.  Use an alternative implemenation
that was found on the Rust forums, and whose author agreed to license as
MIT for use in QEMU.

The alternative allows only one level of field access, but apart
from this can be used just by replacing core::mem::offset_of! with
qemu_api::offset_of!.

The actual implementation of offset_of! is done in a declarative macro,
but for simplicity and to avoid introducing an extra level of indentation,
the trigger is a procedural macro #[derive(offsets)].

The procedural macro is perhaps a bit overengineered, but it helps
introducing some idioms that will be useful in the future as well.

Signed-off-by: Junjie Mao <junjie.mao@hotmail.com>
Co-developed-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2024-11-05 14:18:16 +01:00
646b5378e0 rust: fix cfgs of proc-macro2 for 1.63.0
Replay the configuration that would be computed by build.rs when compiling
on a 1.63.0 compiler.

Reviewed-by: Junjie Mao <junjie.mao@hotmail.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2024-11-05 14:18:16 +01:00
64644bc4ea rust: patch bilge-impl to allow compilation with 1.63.0
Apply a patch that removes "let ... else" constructs, replacing them with
"if let ... else" or "let ... = match ...".  "let ... else" was stabilized in
Rust 1.65.0.

Reviewed-by: Junjie Mao <junjie.mao@hotmail.com>
Reviewed-by: Zhao Liu <zhao1.liu@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2024-11-05 14:18:16 +01:00
37fdb2f56a rust: add PL011 device model
This commit adds a re-implementation of hw/char/pl011.c in Rust.

How to build:

1. Configure a QEMU build with:
   --enable-system --target-list=aarch64-softmmu --enable-rust
2. Launching a VM with qemu-system-aarch64 should use the Rust version
   of the pl011 device

Co-authored-by: Junjie Mao <junjie.mao@intel.com>
Co-authored-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Junjie Mao <junjie.mao@intel.com>
Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Link: https://lore.kernel.org/r/20241024-rust-round-2-v1-2-051e7a25b978@linaro.org
2024-11-05 14:18:15 +01:00
ca5aa28e24 Revert "rust: add PL011 device model"
Patch was applied with invalid authorship by accident, which confuses
git tooling that look at git blame for contributors etc.

Patch will be re-applied with correct authorship right after this
commit.

This reverts commit d0f0cd5b1f.

Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Link: https://lore.kernel.org/r/20241024-rust-round-2-v1-1-051e7a25b978@linaro.org
2024-11-05 14:18:15 +01:00
d0f0cd5b1f rust: add PL011 device model
This commit adds a re-implementation of hw/char/pl011.c in Rust.

How to build:

1. Configure a QEMU build with:
   --enable-system --target-list=aarch64-softmmu --enable-rust
2. Launching a VM with qemu-system-aarch64 should use the Rust version
   of the pl011 device

Co-authored-by: Junjie Mao <junjie.mao@intel.com>
Co-authored-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Junjie Mao <junjie.mao@intel.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
Link: https://lore.kernel.org/r/6ec1d4fb8db2a1d7ba94c73e65d9770371b7857d.1727961605.git.manos.pitsidianakis@linaro.org
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2024-10-11 12:32:17 +02:00
2b74dd9180 rust: add utility procedural macro crate
This commit adds a helper crate library, qemu-api-macros for derive (and
other procedural) macros to be used along qemu-api.

It needs to be a separate library because in Rust, procedural macros, or
macros that can generate arbitrary code, need to be special separate
compilation units.

Only one macro is introduced in this patch, #[derive(Object)]. It
generates a constructor to register a QOM TypeInfo on init and it must
be used on types that implement qemu_api::definitions::ObjectImpl trait.

Reviewed-by: Junjie Mao <junjie.mao@hotmail.com>
Signed-off-by: Manos Pitsidianakis <manos.pitsidianakis@linaro.org>
Link: https://lore.kernel.org/r/dd645642406a6dc2060c6f3f17db2bc77ed67b59.1727961605.git.manos.pitsidianakis@linaro.org
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2024-10-11 12:32:17 +02:00