Commit Graph
100 Commits
Author SHA1 Message Date
Dennis Kobert 187fec20d7 Seed the u64 fx hasher and guard against zero-word absorption 2026-07-31 12:43:43 +00:00
Dennis Kobert deea1089bb Delete the dead OwnedContextImpl 2026-07-31 12:03:01 +00:00
Dennis Kobert 46ea7a7043 Fix the clippy lints introduced by the refactor 2026-07-31 10:55:29 +00:00
Dennis Kobert 1dc9c14ed0 Delete the dead introspect_node helper 2026-07-31 10:28:57 +00:00
Dennis Kobert a1c014db2c Pin cache key and source id hashing to u64 fx state 2026-07-31 10:28:57 +00:00
Dennis Kobert d9c8532e71 Test retain filter placement, source set divergence, and excluding keying 2026-07-31 10:28:57 +00:00
Dennis Kobert c925f4ec39 Migrate short-arity async source document nodes to the hidden inputs 2026-07-31 10:28:57 +00:00
Dennis Kobert 4556e320df Cleanup 2026-07-30 20:48:30 +00:00
Dennis Kobert 07b95ba59b Remove vestigial async from the execution path 2026-07-30 20:16:04 +00:00
Dennis Kobert 9e248cf90c Wire up async runtimes 2026-07-30 19:12:29 +00:00
Dennis Kobert 93aa99433f Add wasm send / sync 2026-07-30 17:41:31 +00:00
Dennis Kobert 41fc175088 Share one graph runtime between the editor api scope and the executor 2026-07-30 17:26:39 +00:00
Dennis Kobert f13806efcd Fmt 2026-07-30 19:11:22 +02:00
Dennis Kobert e2a8420fee Fix ExtractFootprint annotations causing cache invalidation 2026-07-30 19:09:49 +02:00
Dennis Kobert f4247986f0 Wire source ids through flattening, the nullification pass, and slot keying 2026-07-30 15:46:10 +00:00
Dennis Kobert c7fef30cf1 Delete the old erased node machinery 2026-07-30 11:51:13 +00:00
Dennis Kobert b079ec9c2c Migrate legacy document call arguments to the context call convention 2026-07-30 11:26:12 +00:00
Dennis Kobert 9cdf9cec6b Share scope values as owned Arc handles 2026-07-30 11:26:12 +00:00
Dennis Kobert 9bdf4541d0 Replace borrowed scope injections with arcs 2026-07-30 10:58:51 +00:00
Dennis Kobert 382ad9d15c Add missing send / sync impls and make rasterize node async 2026-07-30 10:28:50 +00:00
Dennis Kobert b70b28bbe3 Restore serialize-based introspection through the typed edges 2026-07-30 10:15:51 +00:00
Dennis Kobert bb736002cf Add the async convert trait and restore the GPU texture download 2026-07-30 09:54:20 +00:00
Dennis Kobert 149a39faac Convert values to typed edges and flip the interpreted executor 2026-07-30 09:54:19 +00:00
Dennis Kobert b74c64ebcd Retarget typing and row consumers onto the registry entries 2026-07-30 09:54:19 +00:00
Dennis Kobert bb67b47301 Carry full function types in the registry rows 2026-07-30 09:54:19 +00:00
Dennis Kobert 683ca34fac Add the graph runtime with the completion epilogue 2026-07-30 09:54:19 +00:00
Dennis Kobert db796be8e8 Make every edge a shared payload pointer with an owning Arc 2026-07-27 18:23:42 +00:00
Dennis Kobert 88d9c637e7 Merge the wiring surface into the registry and express the memo nodes as macro kernels 2026-07-27 16:06:42 +00:00
Dennis Kobert c3fdc97f81 Convert create_context to a sync derivation kernel over the bare-root contract 2026-07-27 11:40:16 +00:00
Dennis Kobert 3d17fa0f0c Make the arena unwind safe and the slot locks poison tolerant 2026-07-27 11:40:16 +00:00
Dennis Kobert 9e83632647 Make the GPU render and dispatch pipelines synchronous 2026-07-27 10:47:44 +00:00
Dennis Kobert 6392c02dee Add the sync-prologue async source form 2026-07-27 10:47:44 +00:00
Dennis Kobert 470ffdab43 Add vararg slot cloning and snapshot vararg capture 2026-07-27 10:47:44 +00:00
Dennis Kobert 28d9e3cbe3 Convert the remaining nodes and mark genuine async sources 2026-07-26 22:58:40 +00:00
Dennis Kobert 28d37d30d0 Store the wgpu executor as an Arc and restore the upload texture node 2026-07-26 22:58:40 +00:00
Dennis Kobert cf66f8396b Emit the async source tier from the node macro 2026-07-26 22:58:40 +00:00
Dennis Kobert be5c78421a Add the async source runtime vocabulary and context snapshot 2026-07-26 22:58:40 +00:00
Dennis Kobert f0f7d6a5d7 Start adapting nodes to new version 2026-07-26 20:59:12 +00:00
Dennis Kobert 44277c9636 Update node macro to new syntax 2026-07-26 20:58:11 +00:00
Dennis Kobert 99f94503c3 Reshape ContextImpl into the borrowed graphene context 2026-07-25 19:33:41 +00:00
Dennis Kobert 925075337b Add the generation-scoped arena and the FrameTable frame memo store 2026-07-25 17:05:40 +00:00
Dennis Kobert df70222d61 Add the GNode trait with the spec-loop batch default; give InjectIndex its method 2026-07-25 17:05:01 +00:00
Dennis Kobert 1f9e0cc37b Add the GPoll evaluation vocabulary and an inert Type::Ref variant 2026-07-25 17:03:32 +00:00
Dennis Kobert 0f0f62c2e9 Enforce unwind safety on all public executor entry points (#4356) 2026-07-24 09:34:40 +00:00
Dennis KobertandTimon 540a4ff273 Integrate document-format storage into the editor (#4265)
* Integrate document-format storage into the editor

* Address review feedback: drop redundant clones and dedupe metadata traversal

* Extract DocumentHistory and move storage-metadata tests to their own file

* Extract storage diffing/IO, gate validation and .gdd save behind preferences, restructure tests

* Address PR review: save-format/path consistency, autosave persistence, and view-settings/diff fixes

* Skip storage remount on .gdd open and split value/timestamp drift in attribute diff

* Rename storage tests module and surface .gdd open failures with per-resource diff detail

* Add debug-menu toggle to hide the storage preferences section

* Hopefully fix async tests

* Shorten comments

* Fix tests

* Review

* Review

* Review

* Block on future mesages in tests

* Review

* Shorten comments

---------

Co-authored-by: Timon <me@timon.zip>
2026-07-04 19:27:00 +00:00
Dennis Kobert a979ccd5bd Add document-format RFC draft (#4264)
* Add document-format RFC draft

* Align document-format RFC with graph-storage implementation

* Update writing style

* Recharacterize resource source chain as LWW-element-set, not add-wins OR-set

* Add Rev identity rationale framed against Git, plus patch-id future item

* Correct RFC inaccuracies found in implementation audit

* Mark unimplemented retirement coarsening and leader election as future; fix resurrection mechanism

* Add hot-log to the on-disk payload list in the architecture diagram
2026-06-28 19:05:30 +00:00
Dennis Kobert 03c33dc784 Fix error from running cargo check with a system global Cargo config.toml rustflags override (#4277)
Fix error caused by running cargo check in the workspace
2026-06-23 09:09:19 +00:00
Dennis Kobert b45cc312dd Add support for opening GDD documents from the CLI (#4262)
* Wire document-format into graphene-cli

* Support loading both legacy and new graphite files in the cli

* Address PR review: propagate CLI errors and use dyn resolver

* Fix CLI network wrap + preprocessor ordering

* Cleanup preprocessor

* Remove unused import
2026-06-21 18:17:01 +02:00
Dennis Kobert de11d29d8e Add document-format crate (#4234)
* Add document-format crate

* Adapt document-format to merged graph-storage and consolidate errors

* Fix resource write ordering, codec error masking, and export docs

* Remove document-format RFC; tracked in a dedicated PR

* Restructure document-format into gdd/persist/export/resource modules

Split the 963-line lib.rs by responsibility: persist path into persist.rs, resource I/O into resource.rs, export engine into export.rs. Rename the GddV1 layout struct to GddV1Layout and add a GddV1 = Gdd<GddV1Layout> alias.

* Feature-split document-format and graph-storage for minimal builds

* Address PR review: O(1) history-delta lookup and no-default-features test build

* Address PR review: propagate apply_hot_op persist error and assert resource hash

* Make decompression from archive streaming

* Share archive export body between export and export_to_bytes

* Review cleanup

* Export documents with un-retired hot ops losslessly

* Persist last_broadcast_rev in session.json, drop unused last_retired_at

* Move peer_id from manifest to session.json

* Rename gesture to interaction in document-format storage layer
2026-06-21 12:35:47 +00:00
Dennis Kobert b1d8ac0e64 Add History type and merge-commit model to graph-storage (#4238)
* Add History type and merge-commit model to graph-storage

* Add History::merge with canonical-sort convergence to graph-storage

* Append merge delta without re-sorting the whole history

* Resurrect across merges by searching all ancestors, not the primary chain
2026-06-16 15:02:48 +02:00
Dennis KobertandTimon b56af15e5e Add graph-storage crate (#4198)
* Add graph-storage crate

* Split graph-storage lib.rs into smaller modules

* Make graph_craft/core_types dependency optional

* Fix CRDT correctness issues flagged in graph-storage PR review

* Treat trailing empty export slots as value-equal in Network::value_equal

* Address graph-storage review: parameterize CrdtError, reject hot-log corruption, drop LamportClock Default

* Address graph-storage review: fix root-delta history walk, validate cross-network refs, make compute_deltas deterministic, harden Priority, index nodes by network

* Address graph-storage review: sort sources on deserialize, treat inputs_attributes length as structural, dedupe demo-artwork loader

* Add opt-in Delta rev validation, dedup resource sources on deserialize, fix doc grammar

* Persist scope injections through storage; harden gesture-end and embedded-source checks

* Review

* Review

* Review

* Use new types for NodeId and NetworkId

* Adress minor review comments

---------

Co-authored-by: Timon <me@timon.zip>
2026-06-13 16:47:04 +00:00
Dennis Kobert d5c67eeb55 Drop MemoHash's std Hash impl and route cache-identity hashing through CacheHash (#4209) 2026-06-07 17:49:56 +00:00
Dennis KobertandTimon 6fe1af3afe Add document-container crate (#4191)
* Add document-container crate: container backends and archive codecs

* Address PR review: path/prefix split, safe size casts, OPFS stream aborts

* Address PR review round 2: mmap read check, UTF8 entry names, prefix normalization

* Make MmappedBytes::new fallible so mmap reads can't silently degrade

* Address PR review round 3: backend contract uniformity (symlinks, remove, list)

* Apply symlink-component check to FolderBackend listing paths

* Address PR review: idempotent OPFS delete logging, tar default-features, shared entry-size cap

* Fix validate_path doc: dotfiles pass, CurDir/ParentDir rejected

* Omit symlink entries from FolderBackend listings for consistency with resolve

* Preserve zip I/O errors and reject non-canonical paths in validate_path

* Extend archive apis to return the archive writer

* Rename document/document-container directory to document/container

* Add archive format sniffing and deserialize_auto

* Drop temporal hedge from checked_entry_size comment

* Tighten verbose doc comments in document-container

* Coalesce consecutive same-path OPFS appends to avoid O(n^2) file copies

* Review

* Update document-container for the deserialize/store_non_blocking renames

---------

Co-authored-by: Timon <me@timon.zip>
2026-06-05 13:28:02 -04:00
Dennis Kobert 7b9c480a8d Make ResourceStorage trait &self-based and remove 'static requirement (#4188)
* Make ResourceStorage trait &self-based with elided-lifetime ResourceFuture

* Adress review comments
2026-06-01 10:37:05 +00:00
Dennis KobertandTimon 78679a5ba2 Implement editor level future message handler (#4182)
* Implement proper editor level async message handler

* Take application_io and wake callback as Editor::new arguments

* Rename AsyncMessage -> FutureMessage

* add DesktopWrapperMessage::Wake

---------

Co-authored-by: Timon <me@timon.zip>
2026-05-31 21:26:29 +00:00
Dennis Kobert e0368435b9 Add the "memoize" attribute to the node macro (#4065)
* Add memoization attribute to node macro

* Fix memoization insertion for networks without conversion nodes
2026-04-28 11:55:38 +00:00
Dennis KobertandKeavon Chambers 3d84e63ef9 Migrate usage of the Hash trait for cache invalidation to the dedicated CacheHash trait (#4051)
* WIP start migrating usages of hash for cache invalidadion to dedicated trait

* Finish migrating usages

* Code review

* Add comments clearifying the reasoning for using random ids in the VectorModification cach hash impl

* Fix some remaining hash violations

* Finish migration and fix compilation

* Fix import ordering

* Cleanup

* Fix code review stuff

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2026-04-27 05:18:47 +00:00
Dennis Kobert 19aaeb374b Remove sample based image hashing to avoid false equalities (#3980)
* Remove sample based image hashing to avoid false equalities

This was originally introduced to improve the performance of working with
image data, but since the memo hash wrapper got introduced this should no
longer be really necessary.

* Fix todo comment
2026-04-04 11:46:08 +00:00
Dennis KobertandKeavon Chambers b0cc8a9243 Update Vite to version 8 (#3900)
* Update vite to version 8

* Fix breakage from the upgrade

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2026-03-22 02:12:28 +00:00
Dennis Kobert eb30ee78bc Fix Grapene CLI compilation (#3892)
* Fix grapene-cli compilation

* Improve cargo features to reduce recompiles
2026-03-13 11:28:34 +01:00
Dennis Kobert 116a4106c4 Add texture pool to render cache node (#3804)
* Add texture pool to render cache node

* Use direct texture copy instead of bitter and fix graphene_cli

* Remove warnings

* Fix wgpu import path

* Code review fixes
2026-03-11 09:44:21 +00:00
Dennis Kobert 90533e656f Remove the path-bool library (#3882) 2026-03-11 08:55:03 +01:00
Dennis KobertandTimon f06983d072 Fix texture cache region size and broken rendering when tilting the viewport (#3867)
* Fix rotation for render cache

* Simplify code and fix zoom not invalidating cache

* Add constant for quantization amount

* fix region size

* print error when splitting oversized region fails

---------

Co-authored-by: Timon <me@timon.zip>
2026-03-09 23:42:38 +00:00
Dennis Kobert 3d1491ce92 Add animated GIF file export to Graphene CLI (#3846)
* Add gif file export via graphene cli

* Add check for negative fps numbers
2026-03-08 10:33:40 +00:00
Dennis Kobert 50ef6e15cb Use glob syntax for Cargo.toml (#3489)
* Use glob syntax for Cargo.toml

* Readd nested crates to workspace members and reduce the list of default members
2026-03-05 10:20:41 +00:00
Dennis KobertandTimon 7250b091d5 Fix the UI scaling factor invalidating the render cache (#3818)
* Fix ui scaling messing up render cache

* Review

---------

Co-authored-by: Timon <me@timon.zip>
2026-02-24 12:41:42 +00:00
Dennis KobertandKeavon Chambers 65ca8610eb Split CI job to run on dedicated runners for web and native build (#3812)
* Split ci job to run on dedicated runners for web and native build

* Trigger CI

* Update labels

* Update comment text

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2026-02-24 09:37:00 +00:00
Dennis Kobert a1c1039ea1 Fix path tool overlays (#3810)
* Add vector data to merge function

Use destructuring to avoid issues like this in the future

* Remove unnecessary explict copying
2026-02-23 09:17:00 +00:00
Dennis KobertandKeavon Chambers 0531769c41 Cache Vello render output as stitchable textures (#3722)
* WIP render caching

* Hook up render cache to render pipeline

* Fixed offsets

* Initial cleanup

* Integrate cache with context invalidation

* Cleanup

* Improve rounding and reduce tile size to fix vello not rendering

* Include pointer position in cache key

* Avoid unwraps and zero sized textures

* Destroy textures after blitting to surface

* Fix context dependencies

* Exclude footprint from render params

* Batch animation frame messages

* Add vello max render size to preference dialogue

* Remove unused import

* Reorder vello preference

* Clean up preferences dialog

* Apply review suggestions

* Cap max render region size

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2026-02-22 10:12:50 +00:00
Dennis KobertandKeavon Chambers ba177c4c5d Generalize the 'Map Vector' node as 'Map' with support for all graphical types (#3793)
* Rename Map Vector to Map

* Fix compilation errors

* Move to the Graphic module and add Read {Graphic, Raster, Color} nodes

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2026-02-20 21:33:02 +00:00
Dennis Kobert e1357c5c34 Improve CI times and make merge queue only trigger one CI run (#3755)
* Split ci job into multiple jobs running on github runners

* Add permission to build steps

* Try running rust build on selfhosted runner

* Disable nix setup for self hosted runner

* Revert build and only run lint + web build + rust fmt on gh runners

* Only build rust tests and ignore branding for frontend lint

* Provide stub ts types for running linter without building wasm bundle

* Manually install wasm-opt + use cargo-binstall

* Only build with shaders for master builds

* Revert splitting of lint job

* Attempt to build with shaders

* Explicitly install linux target

* Move frontend build back to self hosted runner

* Remove whitespace changes

* Remove explicit build step
2026-02-18 22:22:47 +00:00
Dennis Kobert 5efa81df85 Store click targets in Arc (#3726) 2026-02-06 12:35:32 +00:00
Dennis Kobert 1a9f0a543c Fix pointer position node (#3725)
Fix PointerPosition traits
2026-02-05 23:43:58 +01:00
Dennis KobertandKeavon Chambers 46989438c1 Add merge_group trigger to CI to enable merge queues (#3716)
* Add merge_group trigger to ci to enable merge queues

* Update .github/workflows/build-dev-and-ci.yml

Co-authored-by: Keavon Chambers <keavon@keavon.com>

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2026-02-04 06:07:16 +00:00
Dennis Kobert 3f97ae4c57 Add JSON get node (#3708)
* Add JSON get node

* Return "" on error and print to console
2026-02-03 22:07:46 +00:00
Dennis KobertandTimon f36d455d03 Desktop: Only rerender the UI if it has changed (#3688)
* Only rerender ui if it has changed

* Don't immedeatly request new frame at the end of the event loop

* Request redraw after ui update

* Always request redraw after timeout

* Fix setting control flow in all cases

* Remove comment

---------

Co-authored-by: Timon <me@timon.zip>
2026-02-03 13:04:44 +00:00
Dennis Kobert 8e8428a572 Add headers input to http nodes (#3709) 2026-02-03 11:47:53 +00:00
Dennis Kobert e88db022af Exclude node registry functions from desktop frontend builds (#3584)
* Exclude node registry functions from desktop frontend builds

This reduces compile times and file sizes

* Use early return

* Fix branch name in build-linux pipeline
2026-01-06 12:34:15 +00:00
Dennis KobertandKeavon Chambers fafc687d84 Migrate memo nodes to node macro and make implementing other persistent nodes easier (#3552)
* Add #[data] and #[serialize] attributes to node macro

- Add #[data] attribute for struct fields that aren't node parameters
  - Data fields are initialized with Default::default()
  - Passed as references to the underlying function
  - Excluded from registry metadata (internal state)
  - Generic types in data fields allowed without #[implementations]

- Add #[serialize] attribute for custom Node::serialize() implementation
  - Receives references to all data fields
  - Generates serialize() method in Node trait impl

- Conditional derives based on data field presence
  - With data fields: Debug, Clone only
  - Without data fields: Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash

* Refactor Memo and Monitor Node to use node macro

* Move Complex type into type alias

* Fix format

* Update node-graph/nodes/gcore/src/memo.rs

Co-authored-by: Keavon Chambers <keavon@keavon.com>

* Update node-graph/nodes/gcore/src/memo.rs

Co-authored-by: Keavon Chambers <keavon@keavon.com>

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2026-01-05 22:28:02 +01:00
Dennis Kobert 532dc30028 Fix checkboxes by using deterministic widget IDs instead of random ones to make the diffing easier (#3457)
* Move diffing to trait

* Add deterministic widget ids

* Cleanup
2025-12-08 12:30:29 +00:00
Dennis Kobert a6f83291b4 We now use normal blending instead of using Mix::Clip / the clip_layer (#3454)
* We now use normal blending instead of using Mix::Clip / the clip_layer

* Revert the revert for the clip using SrcOver
2025-12-07 10:26:24 +00:00
Dennis Kobert 406f3d93f3 Add tool for visualizing crate hierarchy (#3315)
* Add tool for visualizing crate hierarchy

* Update crate structure

* Restructure crate viz and integrate crate into workspace

* Remove transitive dependency edges

* Move png / svg creation into the rust binary
2025-11-28 15:34:45 +00:00
Dennis Kobert a932eaedcf Render artwork at correct resolution when using vello on wasm (#3416)
* Work on fixing rendering for wasm+vello

* Render vello canvas in wasm at the correct resolution

* Cleanup unused surface rendering code

* Remove vector to raster conversion

* Remove desktop changes

* Revert window.rs changes

* Don't round logical coordinates

* Fix desktop compilation + don't round logical coordinates for svg rendering

* Further cleanup

* Compute logical size from acutal physical sizes
2025-11-24 14:23:27 +00:00
Dennis Kobert 788e82a7d0 Add export command to Graphene CLI (#3400)
* Add export command to cli

* Fix format
2025-11-19 17:39:48 +01:00
Dennis Kobert f61aebb777 Add a command to Graphene CLI for listing protonode identifiers (#3399)
* Add proto node name printing

* Add subcommand for printing proto node identifiers

* Address review comments

* Cargo fmt
2025-11-19 11:59:27 +01:00
Dennis KobertandKeavon Chambers 57b0b9c7ed Restructure node crates (#3384)
* Restructure node-graph folder

* Fix wasm compilation

* Move node definitions out of *-types crates

* Cleanup

* Fix warnings

* Fix warnings

* Start adding migrations

* Add migrations and move memo nodes to gcore

* Move nodes/gsvg-render -> rendering

* Replace some hard coded identifiers and fix automatic conversion

* Fix Vec2Value node migration

* Fix formatting

* Add more migrations

* Cleanup features

* Fix core_types::raster import

* Update demo artwork (to make profile ci work)

* Move *-types to node-graph/libraries folder

* Add missing node migrations

* Migrate more nodes

* Remove impure memo node

* More fixes and remove warning

* Migrate context and add a few missing migrations

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-11-18 10:21:54 +00:00
Dennis Kobert 181c30bc0a Fix assorted Clippy lints (#3390) 2025-11-17 07:58:31 +00:00
Dennis Kobert 72a291d808 Improve web frontend performance during zooming and panning (#3337)
* WIP debounce frontend ui updates

* Reduce the number of frontend updates performed

* Improve menu bar diffing

* Cleanup in dispatcher

* Fix comment
2025-11-08 14:01:11 +01:00
Dennis Kobert 7254c470ef Exclude procedural-string-lights from cached execution CI benchmarks (#3351)
Exclude procedural-string-lights from cached execution benchmarks

This benchmark seem to have been really flaky in our CI so we remove it
2025-11-08 10:44:22 +01:00
Dennis Kobert 68e67055d8 Update Linebender-related dependencies (#3349)
* Updates crates from linebender ecosystem

* Remove usages of decprecated Clip mix mode
2025-11-08 08:59:00 +01:00
Dennis KobertandKeavon Chambers e5f40a3316 Add 'Instance Map' and 'Instance Vector' nodes (#3229)
* Add map instance and extract vector nodes

* Cleanup

* Inject index in map node

* Code review

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2025-10-27 15:56:08 +01:00
Dennis Kobert f102801059 Fix incorrect implementations of the Hash and PartialEq traits on Table<T> (#3306)
Fix incorrect implementations of the Hash and PartialEq traits on Table
2025-10-27 15:55:36 +01:00
Dennis Kobert 557df6917d Reduce variability noise of the profiling comment CI action (#3303)
* Only consider changes significant if they exceed an absolute ir diff

* Node graph folder change to trigger ci

* Use extra step for detecting significant perf degradations

* Reenable expanding of sections with significant changes

* Remove temp file
2025-10-23 11:39:27 +02:00
Dennis Kobert 37bf2ade11 Improve profiling CI (#3296)
* Imporve profiling CI

* Disable optimizations for graphene core in dev builds
2025-10-21 13:01:41 +00:00
Dennis Kobert e8f18b0ac0 Cache calculation of bounding boxes with transforms (#3287)
* Cache calculation of bounding boxes with transforms

* Reuse bounding boxes across for the same rotation

* Cleanup code and add documentation

* Add tests
2025-10-17 10:20:55 +00:00
Dennis Kobert c697b61a7e Clean up execution context for skipped node graph submissions (#3233) 2025-10-01 10:13:59 +00:00
Dennis Kobert bc66148d2b Reset the overlay context for each draw request and use global font cache (#3231) 2025-09-28 15:36:08 +00:00
Dennis Kobert 84e44810d2 Run preprocessing on benchmarks and fix deadlock (#3230) 2025-09-27 12:36:29 +02:00
Dennis KobertandTimon Schelling ffc74273cc Implement Convert trait to convert between CPU and GPU images (#3194)
* Add upload texture trait

* Make convert trait use explicit converter

* Add gpu texture download implementation

* Add footprint to convert trait

* Cleanup texture upload / download

* Download wgpu textures aligned

* abstract texture download into converter helper

* rename module

not only doing uploads anymore
conversion looks like a ok name

* Remove into_iter call and intermediate vector allocation

---------

Co-authored-by: Timon Schelling <me@timon.zip>
2025-09-26 14:30:01 +02:00
Dennis Kobert 4e47b5db93 Restructure gcore/text module and fix memory leak (#3221)
* Restructure gcore/text module and fix memory leak

* Remove unused import

* Fix default font fallback causing wrong caching and rename to TextContext

* Upgrade demo art
2025-09-25 15:29:07 +02:00