Commit Graph
4226 Commits
Author SHA1 Message Date
aiongg a461614d56 Integration: cargo fmt 2026-10-31 02:21:18 +00:00
aiongg 3f68029b4b Integration: #2639 pass the develop settings to brush_tool (port to panels/detail/masks.rs) 2026-10-31 02:21:14 +00:00
aiongg c524a2d12c Merge PR #3419: Issue #1764: running out of device memory falls back without stopping the GPU 2026-10-31 02:11:06 +00:00
aiongg 799beaf5e4 Merge PR #2989: GPU-TESTS: every WGSL kernel parses and validates in the test run, without a GPU 2026-10-31 02:11:06 +00:00
aiongg c2155326d6 Merge PR #2942: Issue #2936: build the GPU kernels on parallel threads 2026-10-31 02:11:04 +00:00
aiongg 76a03de507 Integration: #2421 adapt the window-surface test to choose(files, compose_window) 2026-10-31 02:11:04 +00:00
aiongg c9c69ddd4c Merge PR #2919: PERF-WINDOW: the window queues one frame, not two (eframe's low-latency surface)
# Conflicts:
#	docs/whats-new.md
2026-10-31 02:11:01 +00:00
aiongg f12012bc9f Merge PR #2844: GPU: black pixels take the colour tools and a light vignette as on the CPU 2026-10-31 02:10:48 +00:00
aiongg 4a50aacb8a Merge PR #2731: Brush dabs: build only as far as the caller will look (#1520)
crates/pipeline/src/masks.rs: main moved the tests to masks/tests.rs; the PR's test ported there
2026-10-31 02:10:46 +00:00
aiongg 5d08f8632f Merge PR #2631: LR-EDIT-DETAIL-DENOISE: GPU denoise doesn't hang when its tiles in flight fail (#2577) 2026-10-31 02:10:23 +00:00
aiongg 78e70ab8f8 Merge PR #2545: Issue #136: applying the GPU setting never waits for the device on the UI thread 2026-10-31 02:10:21 +00:00
aiongg 5062acc601 Merge PR #2421: fix(windows): add opt-in DirectComposition workaround for VRR flicker
apps/lightcraft/src/main.rs: kept main's split; hunks ported (clear_color, compose_window, with_transparent); test moved to tests.rs
crates/ui-egui/src/panels/settings.rs: deleted on main; checkbox ported to dialogs/settings/performance.rs
crates/ui-egui/src/state.rs: compose_window field and default ported to state/settings.rs
crates/ui-egui/locales/*.json: main's file plus the new key
docs/gaps.md, docs/parity-checklist.md: main's header and rows plus the PR's additions; duplicated header line and blank lines dropped
2026-10-31 02:10:21 +00:00
aiongg 866ed3846c Merge PR #3385: Never crash: a mask id at the u32 limit doesn't overflow the next mask's id
# Conflicts:
#	docs/whats-new.md
2026-10-31 02:09:14 +00:00
aiongg ac36428e6d Merge PR #3384: LR-MASK-OBJECTS: a SAM 3 checkpoint in Meta's original format is named as such, not as an unsupported dtype (#3378)
# Conflicts:
#	docs/parity-checklist.md
#	docs/whats-new.md
2026-10-31 02:09:05 +00:00
aiongg 9b748af445 Merge PR #3379: LR-MASK-COLORRANGE: a colour-range mask keeps at most 64 samples however it is loaded (#2556)
# Conflicts:
#	docs/parity-checklist.md
#	docs/whats-new.md
2026-10-31 02:08:39 +00:00
aiongg 856b3c46fc Merge PR #3323: LR-MASK-PINS: Object and Describe masks show a pin that selects them (#3049)
# Conflicts:
#	docs/whats-new.md
2026-10-31 02:08:24 +00:00
aiongg 737c6867f0 Integration: #3298 put the noisy_scene doc comment back on noisy_scene 2026-10-31 02:08:13 +00:00
aiongg 9e732c2233 Merge PR #3298: Issue #3272: AI masks are enlarged along the photo's edges, no outline under a raised Exposure
# Conflicts:
#	docs/gaps.md
#	docs/parity-checklist.md
2026-10-31 02:08:02 +00:00
aiongg 30bbbc7570 Integration: #3182 keep the Colour Range regression comment on its own test 2026-10-31 02:07:51 +00:00
aiongg a7fcefdaa3 Merge PR #3182: Disarm color picking when adding mask components 2026-10-31 02:07:42 +00:00
aiongg 27c4692dcd Merge PR #2639: LR-MASK-BRUSH: with the mask overlay hidden, the stroke being painted no longer tints the photo (#2549)
crates/ui-egui/src/panels/detail.rs: kept main's split; hunk ported to panels/detail/masks.rs
docs/parity-checklist.md: header and LR-MASK-BRUSH row carry both sides
2026-10-31 02:07:39 +00:00
aiongg 1c1730eec3 Merge PR #2246: Reference app catalog import: turn masks into the photo's upright frame 2026-10-31 02:06:53 +00:00
aiongg 01c0b1e274 Merge PR #1654: Bound interpolation for extreme brush segments
# Conflicts:
#	docs/gaps.md
#	docs/parity-checklist.md
2026-10-31 02:06:52 +00:00
Antonio Sokic 35c7abb7cc Issue #1764: keep a failed upload out of the shared source
Record the out-of-memory failure when the staging buffer can't be allocated, and don't publish the zeroed buffer to SHARED_SOURCE when the render has failed, so a concurrent render can't reuse it.
2026-10-31 02:01:05 +01:00
Antonio Sokic 003ab49b5c Release shared source after out-of-memory fallback
Clear SHARED_SOURCE in the OutOfMemory branch so the next render does not reuse a zeroed buffer, and keep the OOM test's allocations within the device's max_buffer_size, failing on unexpected validation errors.
2026-10-31 01:31:12 +01:00
Dylan M. Taylor c9808c2291 fix(flatpak): allow reading launcher version pins (#3420)
* fix(flatpak): allow reading launcher version pins

* fix(flatpak): allow reading launcher version pins
2026-10-30 20:06:01 -04:00
Antonio Sokic 99d4de32c7 Issue #1764: running out of device memory falls back without stopping the GPU
An upload whose buffer couldn't be allocated tried again through create_buffer_init, which maps the new buffer and panics inside wgpu when that allocation fails too ("Failed to get mapped range for buffer created with mapped_at_creation"). The panic stopped GPU use for the session. Uploads and kernel parameters now go through the queue into an unmapped buffer, and a failed upload is not retried, so out of memory stays an out-of-memory fallback to the CPU for that render.

Claude-Session: https://claude.ai/code/session_01SF8KiKFYZpuGzdTuzsm3cr
2026-10-30 21:43:50 +01:00
Brandon Thomas 8aabf61449 Merge PR: integration batch 45 (17 community PRs)
Integration batch 45 (17 community PRs)
2026-10-30 15:57:58 -04:00
Brandon Thomas c7d7d3c0fd Merge PR #2540 (maintainer follow-up) 2026-10-30 15:26:31 -04:00
Brandon ThomasandClaude Opus 5.5 831d724b87 Reject .cube data lines that start with nan or inf
A data line such as `nan 0 0` starts with a letter and was skipped as an
unknown keyword, so a file with enough other entries still parsed.
(CodeRabbit review on #2540.)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 15:26:29 -04:00
Brandon Thomas b854bbb94e Merge PR #2835 2026-10-30 15:24:59 -04:00
Brandon Thomas ac4a98bc2d Merge PR #3147 2026-10-30 15:24:59 -04:00
Brandon Thomas cfdf63c6e4 Merge PR #2917
# Conflicts:
#	docs/parity-checklist.md
#	docs/whats-new.md
2026-10-30 15:24:59 -04:00
Brandon Thomas 13711ace2b Merge PR #2155 2026-10-30 15:24:41 -04:00
Brandon Thomas 7e8bf5cd9e Merge PR #2831 2026-10-30 15:24:41 -04:00
Brandon Thomas ddbc218ad1 Merge PR #3213
# Conflicts:
#	docs/parity-checklist.md
2026-10-30 15:24:40 -04:00
Brandon Thomas c1fb95dfc0 Merge PR #3225 2026-10-30 15:24:30 -04:00
Brandon Thomas a0133db92e Merge PR #3038 2026-10-30 15:24:30 -04:00
Brandon Thomas 273e9078de Merge PR #2969 2026-10-30 15:24:30 -04:00
Brandon Thomas 5693a3aeaa Merge PR #2540 2026-10-30 15:24:30 -04:00
Brandon Thomas bdb146be43 Merge PR #2833 2026-10-30 15:24:30 -04:00
Brandon Thomas ef83f30327 Merge PR #2834 2026-10-30 15:24:30 -04:00
Brandon Thomas 19eb08dc25 Merge PR #2909 2026-10-30 15:24:30 -04:00
Brandon Thomas b7c52c5032 Merge PR #2918 2026-10-30 15:24:30 -04:00
Brandon Thomas 181a580579 Merge PR #3366 2026-10-30 15:24:30 -04:00
Brandon Thomas 9140e8cd38 Merge PR #3267 2026-10-30 15:24:30 -04:00
Brandon Thomas a5721dedfd Merge PR #3314 2026-10-30 15:24:30 -04:00
Bruno-Alumn 5bcdc439f6 Build the used mask ids once in next_mask_id's fallback
Scanning every mask for every candidate id made a dense run of ids
quadratic. Collect them into a set first.
2026-10-30 15:21:57 +01:00
Dylan M. Taylor 5194cc20de UPD.1: honor pretend versions and track the updater icon in CI (#3365) 2026-10-30 09:02:24 -04:00
Bruno-Alumn bc12ec8e40 Never crash: a mask id at the u32 limit doesn't overflow the next mask's id
Mask ids come unchecked from develop.merge, sidecars (lc:settings) and
pastes. With a mask id of u32::MAX, next_mask_id() and Preset::apply
added 1 to it: debug builds panicked, release builds wrapped to 0, so
the second new mask got the same id as the first.

next_mask_id() now falls back to the lowest id no mask uses when the
highest is at the limit, and Preset::apply takes each preset mask's id
from it instead of counting on its own, so mask.add, mask.brushStroke,
mask.duplicate and presets with masks all get unused ids.
2026-10-30 13:31:01 +01:00