Apple Silicon support for texture compression - #284
Conversation
|
Curious about pulling this PR into my forked version of Ortho4XP. Does anyone happen to know why nvcompress is used instead of DDSTool? I suspect there was a reason since it's been around since 2019. |
Maybe because it used to be faster back in the days (due to CUDA support) and accepts JPG as an input format? But that's just a guess. |
Ah, good point - looking at the readme for DDSTool, I see a note with the latest version 1.4 from 5/07/24 mentioning it can accept any format (png, tif, jpg, bmp). I wonder if prior to that it didn't accept jpg which would make sense. As for CUDA support, also makes sense. However, someone just made a PR in my forked version to add a newer version of nvcompress for CUDA support so I'm wondering if it's broken in this older version. Anyways, I think I may just switch to DDSTool for macOS since CUDA support is not applicable and use the newer version of nvcompress for Windows. I need to figure out if there's a way to get an updated version of nvcompress for Linux users to take advantage of CUDA. |
…ension User ruling (2026-06-10): the 1.5% cap applies along the taxi CENTERLINE; cross-axis diagonal chords are unregulated (ICAO Annex 14 / EASA CS-ADR-DSN.D.265/.280) and inside-of-curve edges legitimately exceed the cap. All-pair/visibility chords had pinned high-speed exit junctions flat (HECA oscarpilote#282 could not rise toward A4). Built: - _PER_AXIS_JUNCTIONS=True + the per-axis rule applied where junction constraints are actually built (_build_shape_constraints visibility path; the flag previously only touched the unused _build_edges path): along-axis pairs cap at the ARC between projections, cross-axis diagonals drop, ring-adjacent pairs survive. - Curve-aware corridor distances: _junc_axis_arc supersedes shorter geodesics in _junc_geo_dist (hard bands, twist clamps, ties). - RUNWAY-EXIT EXTENSION: chain termini at runway-touching junctions get a virtual HARD station at the runway contact; contact = the qualifying centerline's nearest runway intersection (extending ingest-cut ends straight) or the fan's THROAT vertex by in-junction geodesic when the apt.dat line cuts the corner (A4's line: 40 m in-junction where the fan flow runs ~190 m); value = runway edge interpolation; the virtual gap is recorded as a twist line source so the junction interior is painted; singletons survive when extended; extended singletons skip the anchor relax (it crushed A5 flat and left 3.9 m at the oscarpilote#284 seam). MEASURED (HECA): junction oscarpilote#282 now carries the climb (59.4 throat -> 62.6 at A4's mouth, the user-specified behaviour); A4 7% -> 1.4%. NOT shippable yet: A5/oscarpilote#283 unchanged (its far-mouth nodes were already relief-crushed to 60.5 pre-corridor - different mechanism), oscarpilote#284 3.9 m, new oscarpilote#302 3.7 m / oscarpilote#192 1.2 m, and the 05C dip regressed 107.9 -> 110.4 (virtual anchors changed the demand measurement). Parked for tuning. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…8.7) Diagnosed with full demand instrumentation (the 'regression' was three separable bugs, not a design flaw): 1. THROAT fallback gated to SINGLETON exit stubs: HECA's diagonal runways made T4+U read tangential and the 216 m throat budget dissolved its runway-flex demand (05C 107.9 -> 110.4). Multi-rect through-corridors keep the axis contact. 2. Virtual-blocker demands carry the CONTACT need to nearby runway vertices (<=60 m) instead of adding the contact->vertex leg, which diluted depth (109.6 -> 108.7; matches the user-validated p9 semantics: the dip centres at the contact). 3. Route-reach bands relax to the chain's own curve-aware distance at stations of virtual-anchored chains (the reach graph cuts the same curve corners as the exit centerlines and re-clamped the climb the virtual granted). 4. Extended-singleton far termini try to anchor at the far junction's uncarved side (max, chain-feasibility-clamped) - NOT yet effective for A5: its entire far junction reads carved (~60.5), so the 64.4 uncarved level lives on a different shape; next probe = map A5's far juncs-index to the shape that holds 64.4 and anchor against it. State: 05C 108.7 (user ~108), 05L untouched 57.9-60.7, A4 1.1% with oscarpilote#282 carrying the climb. Open: A5/oscarpilote#284 3.7 m, #350 1.9 m, #317 1.6 m. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…root cause) The oscarpilote#284/oscarpilote#232 A-complex cliff was NOT unmerged same-ref chains: the two A chains are 1.86 km apart with apron oscarpilote#190 carrying the route between them. The high chain's SW terminus is an APRON MOUTH (junc=None, ring nodes shared with the apron) anchored at the apron edge's DEM-settled value (64.67) at station construction; nothing downstream could move it (ties form chain-to-chain only, anchor self-consistency is intra-chain, the freeze-veto's only escape requires a runway blocker) so it froze out the A5-complex consensus tie (61.76, route ceiling 62.4 at the junction side) and held the 63.3-vs-60.7 junction cliff. Fix: in the tie freeze, when every blocking anchor is a non-hard UNTIED terminus whose mouth opens into a free apron, project it MINIMALLY into the tie's cap reach and accept the tie. Projection, NOT un-anchoring: dropping the anchor let HECA J's tail (0.33 m infeasible) fall 4.7 m to the flat extension - a manufactured 5.3 m wall against G2's legitimate writes in the same apron. Measured (HECA, new apt.dat): oscarpilote#232/oscarpilote#233/oscarpilote#228 A-complex cliffs cleared, A profile 62.5..61.8..63.4 with the tie landed, 05C 108.7 / 05L 57.9-60.7 / A4 climb / A5 flat all held. CYXY relax never fires (10 pre-existing exit-junction viol unchanged), SPJC untouched (R1/R2 residual), suite 305p/4f = branch baseline. Remaining: apron band-noise residue (free apron vertices pinned at route-band floors ~0.6-1.7 m above moved corridor writes - the p4/p7 band-pinning class, needs the junction band_exempt treatment extended to aprons near corridor writes). Also: chain-ends debug print (head/tail junc+mid per multi-rect chain). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Remove dependency because:
Usage:
Flags: