Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
675 commits
Select commit Hold shift + click to select a range
278e809
merge: author original ordinary DrawingImage bounds captures [skip ci]
wieslawsoltes Oct 3, 2026
3ef76d8
docs: distinguish ordinary and shader source reference inventories [s…
wieslawsoltes Oct 3, 2026
e49a472
test: retain original WPF masked-source input semantics [skip ci]
wieslawsoltes Oct 3, 2026
3020d03
merge: retain DrawingImage sampler predecessor [skip ci]
wieslawsoltes Oct 3, 2026
ec94bf3
merge: pair original visual mask input controls [skip ci]
wieslawsoltes Oct 3, 2026
e387333
feat: connect owned VisualBrush shader sampler captures [skip ci]
wieslawsoltes Oct 3, 2026
4ee5c9f
fix(direct2d): honor shared bitmap query failures [skip ci]
wieslawsoltes Oct 3, 2026
ff68ee7
test: author retained VisualBrush sampler provider frames [skip ci]
wieslawsoltes Oct 3, 2026
e68de58
test: retain original VisualBrush shader sampler sources [skip ci]
wieslawsoltes Oct 3, 2026
8247916
test: retain complete VisualBrush sampler graph ownership [skip ci]
wieslawsoltes Oct 3, 2026
d535bea
merge: pair original VisualBrush shader sampler controls [skip ci]
wieslawsoltes Oct 3, 2026
c35fd31
feat: retain explicit null VisualBrush source snapshots [skip ci]
wieslawsoltes Oct 3, 2026
c44145c
feat: retain explicit empty Visual source bounds across native transp…
wieslawsoltes Oct 3, 2026
6caed64
merge: preserve genuine nullable VisualBrush source identity [skip ci]
wieslawsoltes Oct 3, 2026
416892f
merge: retain VisualBrush sampler source parent [skip ci]
wieslawsoltes Oct 3, 2026
d63da6f
feat: connect owned BitmapCacheBrush shader captures [skip ci]
wieslawsoltes Oct 3, 2026
7a0f2d1
test: author owned cache sampler provider pixels [skip ci]
wieslawsoltes Oct 3, 2026
cd88f75
test: author original BitmapCacheBrush sampler references [skip ci]
wieslawsoltes Oct 3, 2026
febf523
test: retain cache sampler ownership and atomic rejection [skip ci]
wieslawsoltes Oct 3, 2026
347b98c
docs: retain cache sampler contract and generated ledger [skip ci]
wieslawsoltes Oct 3, 2026
247eda8
merge: retain original BitmapCacheBrush sampler companion [skip ci]
wieslawsoltes Oct 3, 2026
f9006da
test: retain original empty cache sampler owners through refill [skip…
wieslawsoltes Oct 3, 2026
df58a49
feat: retain explicit empty cache sampler sources [skip ci]
wieslawsoltes Oct 3, 2026
bfc5f86
test: author empty cache ownership and same-source refill [skip ci]
wieslawsoltes Oct 3, 2026
804a5e8
chore: regenerate empty sampler decoder ledger [skip ci]
wieslawsoltes Oct 3, 2026
d60613b
merge: retain original attached-empty cache sampler controls [skip ci]
wieslawsoltes Oct 3, 2026
8790606
feat: retain explicit cache raster source policy [skip ci]
wieslawsoltes Oct 3, 2026
54fc7d6
feat: define owned cache sampler raster policy contracts [skip ci]
wieslawsoltes Oct 3, 2026
bcb4478
feat: expose owned device cache raster limits [skip ci]
wieslawsoltes Oct 3, 2026
580b316
merge: retain neutral source cache raster policy [skip ci]
wieslawsoltes Oct 3, 2026
f5ff2b2
feat: query exact live device limits for cache rasters [skip ci]
wieslawsoltes Oct 3, 2026
0b82aaf
merge: retain actual managed cache raster limits [skip ci]
wieslawsoltes Oct 3, 2026
25207ff
feat(browser): bind texture limits to the live runtime device [skip ci]
wieslawsoltes Oct 3, 2026
541c9e7
merge: retain actual owned cache raster policy and limits [skip ci]
wieslawsoltes Oct 3, 2026
648f25d
Merge actual device texture-limit contract [skip ci]
wieslawsoltes Oct 3, 2026
2c0ab30
fix: capture owned raw cache textures for shader samplers [skip ci]
wieslawsoltes Oct 3, 2026
6195a06
feat(scene): own independent raw cache shader rasters [skip ci]
wieslawsoltes Oct 3, 2026
5e44a9d
Correct original raw cache shader sampler expectations [skip ci]
wieslawsoltes Oct 3, 2026
5ac4392
Cover original root and descendant cache sampler scroll clips [skip ci]
wieslawsoltes Oct 3, 2026
853d2a5
Document raw cache sampler ownership and policy boundaries [skip ci]
wieslawsoltes Oct 3, 2026
a863116
merge: retain original raw cache sampler contract controls [skip ci]
wieslawsoltes Oct 3, 2026
c005cbe
merge: retain actual browser device texture limits [skip ci]
wieslawsoltes Oct 3, 2026
9ddd7d6
test: retain raw cache source frames ownership and pixel contracts [s…
wieslawsoltes Oct 3, 2026
88b70a0
test(scene): retain raw cache sampler pixel controls [skip ci]
wieslawsoltes Oct 3, 2026
16ebbd5
merge: retain authored managed cache sampler pixels [skip ci]
wieslawsoltes Oct 3, 2026
3211cce
fix(scene): lease exact cache rasters through shader generations [ski…
wieslawsoltes Oct 3, 2026
5672b10
merge: retain original raw cache sampler source contract [skip ci]
wieslawsoltes Oct 3, 2026
39ba91b
Merge owned cache sampler lease contract [skip ci]
wieslawsoltes Oct 3, 2026
4aa1f2d
test(scene): retain cache sampler leases through recorded replay [ski…
wieslawsoltes Oct 3, 2026
720c995
fix: retain explicit empty cache source ownership edges [skip ci]
wieslawsoltes Oct 3, 2026
0765658
test: retain nested empty cache graph and package ownership controls …
wieslawsoltes Oct 3, 2026
4887081
test: retain hidden cache source closure before zero-scale omission […
wieslawsoltes Oct 3, 2026
6d82395
fix(scene): retire owned raster generations before context shutdown […
wieslawsoltes Oct 3, 2026
ae90c7e
merge: retain owned raster generation lifetime controls [skip ci]
wieslawsoltes Oct 3, 2026
151d519
fix(scene): retire every owned raster before surfacing shutdown failu…
wieslawsoltes Oct 3, 2026
1998b3e
test(scene): retain explicit cache raster shutdown and lease controls…
wieslawsoltes Oct 3, 2026
30ae200
merge: retain native raw cache raster and real empty-source ownership…
wieslawsoltes Oct 3, 2026
1f82ebf
fix(scene): serialize terminal raster retirement with context shutdow…
wieslawsoltes Oct 3, 2026
c0c2a5b
fix(scene): avoid rooting abandoned source keys through retirement tr…
wieslawsoltes Oct 3, 2026
bedc513
fix(scene): retain uncertain raster retirement independently of final…
wieslawsoltes Oct 3, 2026
d4f2b30
fix(scene): separate finalizer transfer from source callback render l…
wieslawsoltes Oct 3, 2026
997a1ca
fix(scene): retain exact failed picture payload with pending raster o…
wieslawsoltes Oct 3, 2026
c7782a2
refactor(scene): expose the owned retirement coordinator for isolated…
wieslawsoltes Oct 3, 2026
f897549
test(scene): author owned sampler finalizer retirement controls [skip…
wieslawsoltes Oct 3, 2026
77490a3
Merge scoped cache retirement coordinator [skip ci]
wieslawsoltes Oct 3, 2026
36c7ca0
fix(scene): recheck actual raster retirement before publishing a new …
wieslawsoltes Oct 3, 2026
1f5eed6
test(scene): author retirement failure retention and shutdown handsha…
wieslawsoltes Oct 3, 2026
9c2771b
test(scene): merge owned cache sampler retirement controls [skip ci]
wieslawsoltes Oct 3, 2026
7c6696f
docs(scene): record authored retirement ownership boundaries [skip ci]
wieslawsoltes Oct 3, 2026
5641865
feat(mil): retain known-empty DrawingImage source ownership [skip ci]
wieslawsoltes Oct 3, 2026
c665e3f
Cover retained empty DrawingImage dependencies in original cache samp…
wieslawsoltes Oct 3, 2026
af8f0b9
test(native): retain empty DrawingImage package ownership controls [s…
wieslawsoltes Oct 3, 2026
9701617
merge: pair empty DrawingImage consumers with owned native API [skip ci]
wieslawsoltes Oct 3, 2026
7f76f1d
Document retained empty DrawingImage ownership boundaries [skip ci]
wieslawsoltes Oct 3, 2026
b9ec08d
test(mil): retain nested empty image owners through cache refill [ski…
wieslawsoltes Oct 3, 2026
8a657e0
Merge original empty DrawingImage source companion [skip ci]
wieslawsoltes Oct 3, 2026
dd2f141
Merge paired DrawingImage ownership package controls [skip ci]
wieslawsoltes Oct 3, 2026
3794474
fix(wpf): preserve original shader padding metadata [skip ci]
wieslawsoltes Oct 3, 2026
bf1b02e
Preserve portable draw resource query errors and ownership [skip ci]
wieslawsoltes Oct 3, 2026
45bbcf6
docs(wpf): distinguish source padding preflight from transport [skip ci]
wieslawsoltes Oct 3, 2026
b9138d3
Author portable draw query failure and recovery controls [skip ci]
wieslawsoltes Oct 3, 2026
97d452b
Merge shader padding source contract parent [skip ci]
wieslawsoltes Oct 3, 2026
a8c0736
Document portable draw resource query admission [skip ci]
wieslawsoltes Oct 3, 2026
2bfe7ec
feat(scene): retain four-edge source effect capture frames [skip ci]
wieslawsoltes Oct 3, 2026
5c8615c
Author asymmetric source shader padding pixel controls [skip ci]
wieslawsoltes Oct 3, 2026
430565c
feat(scene): expose source capture metadata preflight [skip ci]
wieslawsoltes Oct 3, 2026
a4f321d
test(scene): author asymmetric source frame identity controls [skip ci]
wieslawsoltes Oct 3, 2026
8a06736
Merge source shader padding pixel controls and query parent [skip ci]
wieslawsoltes Oct 3, 2026
4b0ee09
docs(scene): define source capture ownership and remaining image gate…
wieslawsoltes Oct 3, 2026
9a5d36a
test(scene): define source raster lattice and viewport controls [skip…
wieslawsoltes Oct 3, 2026
e9f7f05
Retain source effect physical lattice and per-axis target mapping [sk…
wieslawsoltes Oct 3, 2026
9cce5ef
test(scene): retain actual viewport axes and projection limits [skip ci]
wieslawsoltes Oct 3, 2026
5bad55e
test(scene): preserve source effect pixels across viewport changes [s…
wieslawsoltes Oct 3, 2026
e2f7fac
test(scene): reject outward spans before integer float rounding [skip…
wieslawsoltes Oct 3, 2026
c7619fa
Connect source capture lattice to compositor projection and final sha…
wieslawsoltes Oct 3, 2026
a2d788f
test(scene): retain independently narrowed effect output edges [skip ci]
wieslawsoltes Oct 3, 2026
c99ff3d
Keep source output endpoints and physical span admission exact [skip ci]
wieslawsoltes Oct 3, 2026
7cf484b
Merge source raster frame controls [skip ci]
wieslawsoltes Oct 3, 2026
dda0082
test(scene): exercise noninteger source projection in render controls…
wieslawsoltes Oct 3, 2026
af4a4cc
Document actual source raster mapping and deferred controls [skip ci]
wieslawsoltes Oct 3, 2026
a835c7e
Merge fractional projection render controls [skip ci]
wieslawsoltes Oct 3, 2026
aab5d53
Define owned ordered shader source preparation and parameter generati…
wieslawsoltes Oct 3, 2026
a780109
Prepare owned shader records at actual targets with isolated cached g…
wieslawsoltes Oct 3, 2026
94fcea1
feat(scene): retain immutable owned shader sampler generations [skip ci]
wieslawsoltes Oct 3, 2026
4d669a6
Retain owned preparation cleanup across failed candidate construction…
wieslawsoltes Oct 3, 2026
ad4cde8
Merge owned shader sampler texture lifetime [skip ci]
wieslawsoltes Oct 3, 2026
6757c79
Roll back nested shader candidate generations without masking origina…
wieslawsoltes Oct 3, 2026
307c8ff
test(scene): retain owned shader sampler lifetime and snapshots [skip…
wieslawsoltes Oct 3, 2026
564ae05
Document owned nested effect preparation and reject foreign-device sa…
wieslawsoltes Oct 3, 2026
93f99cc
Reject repeated transfer of an owned shader parameter generation [ski…
wieslawsoltes Oct 3, 2026
3a9813c
Merge authored owned sampler lifetime controls [skip ci]
wieslawsoltes Oct 3, 2026
efd6711
test(scene): preserve owned effect recording order and lifetime [skip…
wieslawsoltes Oct 3, 2026
2ed5c90
test(scene): isolate one owned shader recording across actual targets…
wieslawsoltes Oct 3, 2026
d2ff163
test(scene): preserve prior target after rejected shader generation r…
wieslawsoltes Oct 3, 2026
54a7c53
Merge owned shader ordering and target isolation controls [skip ci]
wieslawsoltes Oct 3, 2026
87ccd17
Record authored owned shader lifetime and target isolation coverage […
wieslawsoltes Oct 3, 2026
f3bf86e
fix(hmi): avoid uninitialized toolbar button captures [skip ci]
wieslawsoltes Oct 3, 2026
46cdbc6
test(hmi): cover viewer-owned toolbar button state [skip ci]
wieslawsoltes Oct 3, 2026
bdf12bb
test(direct2d): author solid rectangle stroke contracts [skip ci]
wieslawsoltes Oct 3, 2026
282f6d9
fix(direct2d): reuse solid path strokes for rectangle geometry [skip ci]
wieslawsoltes Oct 3, 2026
6666a95
merge: author shared rectangle solid-stroke controls [skip ci]
wieslawsoltes Oct 3, 2026
927865c
fix(direct2d): pair Windows solid rectangle stroke queries [skip ci]
wieslawsoltes Oct 3, 2026
23ec6f0
docs(direct2d): clarify intrinsic stroke width ordering [skip ci]
wieslawsoltes Oct 3, 2026
fc4d78b
test(direct2d): author paired solid rectangle stroke contracts [skip ci]
wieslawsoltes Oct 3, 2026
86e07b1
fix(direct2d): share default transformed rectangle stroke materializa…
wieslawsoltes Oct 3, 2026
128db7e
fix(direct2d): preserve default transformed rectangle stroke frames […
wieslawsoltes Oct 3, 2026
87aeca4
docs(direct2d): retain default transformed stroke ordering contract […
wieslawsoltes Oct 3, 2026
3b38430
test(direct2d): retain default transformed stroke receipts [skip ci]
wieslawsoltes Oct 3, 2026
672dd80
merge: author default transformed stroke reference controls [skip ci]
wieslawsoltes Oct 3, 2026
6fa6c44
test(direct2d): pair default transformed stroke source receipts [skip…
wieslawsoltes Oct 3, 2026
d9c6eb3
Retain miter-or-bevel policy through device and triangle joins [skip ci]
wieslawsoltes Oct 3, 2026
5dc026d
feat(native): retain explicit miter-or-bevel stroke semantics [skip ci]
wieslawsoltes Oct 3, 2026
654a3c4
Retain explicit miter-or-bevel through managed stroke paths [skip ci]
wieslawsoltes Oct 3, 2026
d60e289
Document explicit retained join policy and qualification boundary [sk…
wieslawsoltes Oct 3, 2026
38bbdbf
fix(scene): reject undefined device stroke joins [skip ci]
wieslawsoltes Oct 3, 2026
f5337e7
Author optional Microsoft Drawing miter join comparisons [skip ci]
wieslawsoltes Oct 3, 2026
48d009d
test: author retained miter-or-bevel join controls [skip ci]
wieslawsoltes Oct 3, 2026
8528f80
Merge authored retained-join controls [skip ci]
wieslawsoltes Oct 3, 2026
bc995ec
merge: retain shared miter-or-bevel product for controls [skip ci]
wieslawsoltes Oct 3, 2026
7179fa4
Record authored join and original Drawing control boundaries [skip ci]
wieslawsoltes Oct 3, 2026
96a807c
Author Canvas and Drawing retained miter join controls [skip ci]
wieslawsoltes Oct 3, 2026
04cd779
test: pair native miter-or-bevel resources and queries [skip ci]
wieslawsoltes Oct 3, 2026
b321d88
Merge authored source and native miter-or-bevel controls [skip ci]
wieslawsoltes Oct 3, 2026
e2b6d4c
Register retained join native resource and query controls [skip ci]
wieslawsoltes Oct 3, 2026
c36e1e3
Finalize authored retained join control inventory [skip ci]
wieslawsoltes Oct 3, 2026
deaaa1a
Retain source-qualified clipped miter policy through managed strokes …
wieslawsoltes Oct 3, 2026
8f47967
Retain analytic device clipped-miter policy [skip ci]
wieslawsoltes Oct 3, 2026
d4c2d60
Document retained clipped miter source and archive policy [skip ci]
wieslawsoltes Oct 3, 2026
d2c61e2
Retain clipped miter policy in native Direct2D and stroke lowering [s…
wieslawsoltes Oct 3, 2026
0210f57
Preserve legacy generic miter bounds outside source policy [skip ci]
wieslawsoltes Oct 3, 2026
40917e7
Author original Direct2D clipped-miter pixel comparator [skip ci]
wieslawsoltes Oct 3, 2026
e15f0ab
Preserve clipped default Canvas stroke policy without an explicit sty…
wieslawsoltes Oct 3, 2026
a0a078d
Preserve clipped miter intent in retained material pen copies [skip ci]
wieslawsoltes Oct 3, 2026
ba2f0c5
Retain native clipped miter policy in comparison pens [skip ci]
wieslawsoltes Oct 3, 2026
d2d4f80
test: author clipped-miter retained geometry and pixel controls [skip…
wieslawsoltes Oct 3, 2026
904e8bb
test: connect clipped-miter query and provider pixel controls [skip ci]
wieslawsoltes Oct 3, 2026
5c8ff89
Author clipped Canvas source cache and archive controls [skip ci]
wieslawsoltes Oct 3, 2026
288b6c0
test: clarify independent clipped corner query plane [skip ci]
wieslawsoltes Oct 3, 2026
4e90ba5
Keep archive and materialized dash controls independent of borrowed s…
wieslawsoltes Oct 3, 2026
2fd956e
Record clipped source producer and authored control inventory [skip ci]
wieslawsoltes Oct 3, 2026
b5234f6
fix(mil): retain WPF policy in semantic path joins [skip ci]
wieslawsoltes Oct 3, 2026
f20f92e
Retain full WPF path join policy in native geometry and input [skip ci]
wieslawsoltes Oct 3, 2026
e1f77c2
docs: define source WPF path join policy and smooth behavior [skip ci]
wieslawsoltes Oct 3, 2026
fdf6c58
test(native): author WPF path join transport controls [skip ci]
wieslawsoltes Oct 3, 2026
aea17e4
docs: distinguish authored WPF join transport coverage [skip ci]
wieslawsoltes Oct 3, 2026
b61d95d
Author retained WPF PathJoin policy controls [skip ci]
wieslawsoltes Oct 3, 2026
d85332c
test(mil): cover source path joins and owned tiled paint [skip ci]
wieslawsoltes Oct 3, 2026
b85a86e
Author original WPF curved and tiled path-join captures [skip ci]
wieslawsoltes Oct 3, 2026
9681914
Retain exact owned PathJoin coverage bounds [skip ci]
wieslawsoltes Oct 3, 2026
8ba58f8
test(native): preserve exact source join coverage bounds [skip ci]
wieslawsoltes Oct 3, 2026
e4ac640
fix(mil): bound actual WPF path join coverage [skip ci]
wieslawsoltes Oct 3, 2026
6b1aa9c
Document WPF path allocation and authored comparison gates [skip ci]
wieslawsoltes Oct 3, 2026
89b828e
Retain source WPF join policy in managed stroke painting [skip ci]
wieslawsoltes Oct 3, 2026
5eb3497
Retain source WPF join policy in caches copies and archive v8 [skip ci]
wieslawsoltes Oct 3, 2026
526c046
fix(wpf): retain source join policy in shim pens [skip ci]
wieslawsoltes Oct 3, 2026
2ef2dc9
Preserve retained WPF join policy in native scene compilation [skip ci]
wieslawsoltes Oct 3, 2026
9ca5926
Share exact source join directions and author managed paint controls …
wieslawsoltes Oct 3, 2026
03caa59
Add source WPF join policy retention and archive controls [skip ci]
wieslawsoltes Oct 3, 2026
cd08d04
test(wpf): author shim source join snapshots [skip ci]
wieslawsoltes Oct 3, 2026
0207fcc
Route source primitive strokes through retained WPF joins [skip ci]
wieslawsoltes Oct 3, 2026
07ce31a
Retain explicit source joins in hit bodies and material bounds [skip ci]
wieslawsoltes Oct 3, 2026
c09aef4
Share source join transform selection with input capture [skip ci]
wieslawsoltes Oct 3, 2026
c9a40c8
Retain WPF smooth joins through source stroke runs and seams [skip ci]
wieslawsoltes Oct 3, 2026
ca7153d
Match source hit frames and author join transport controls [skip ci]
wieslawsoltes Oct 3, 2026
62f87e6
Keep source input control transform in its exact 2D plane [skip ci]
wieslawsoltes Oct 3, 2026
28b35e3
Record source join integration and deferred qualification handoff [sk…
wieslawsoltes Oct 3, 2026
2c5f327
Fix native and managed regression fixture compilation
wieslawsoltes Oct 8, 2026
7dd6ed2
Expose retained source cluster ranges from text point hits
wieslawsoltes Sep 30, 2026
08bbdac
Add internal managed default Unicode line-break resolver
wieslawsoltes Sep 30, 2026
532ea9c
Validate retained text work with an actual ligature fixture
wieslawsoltes Oct 8, 2026
e7b24ed
Restore Build workflow validation and preserve unset reference transf…
wieslawsoltes Oct 8, 2026
371225c
Repair integrated native builds and stale source guards
wieslawsoltes Oct 8, 2026
0c46caa
Align aliased stroke coverage and retained input joins
wieslawsoltes Oct 8, 2026
5024aa0
Verify emitted aliasing and original SDK arithmetic backends
wieslawsoltes Oct 8, 2026
d08ed1e
Repair native compiler contracts and independent fixture metadata
wieslawsoltes Oct 8, 2026
a489bb8
Retain tiled stroke input and protect recorded drawing dependencies
wieslawsoltes Oct 8, 2026
40d26c0
Observe original sampler clocks and require complete arithmetic receipts
wieslawsoltes Oct 8, 2026
363e6ad
Validate original VVAR directories and align independent fixture cont…
wieslawsoltes Oct 8, 2026
7e559d5
Start original offscreen clocks and publish newly attached animation …
wieslawsoltes Oct 8, 2026
034e1b4
Repair physical path rasterization and retain terminal dash caps
wieslawsoltes Oct 8, 2026
8739ff0
Measure original WPF clip and cache brush property contracts
wieslawsoltes Oct 8, 2026
d468e07
Preserve original nonzero sideways BOOL values at COM boundaries
wieslawsoltes Oct 8, 2026
35fc251
Prepare MotionMark group owners before animation growth
wieslawsoltes Oct 8, 2026
466de9c
Validate round rectangle bounds against their requested geometric error
wieslawsoltes Oct 8, 2026
73f0f23
Compare original RGB font descriptors with explicit wire types
wieslawsoltes Oct 8, 2026
90f4480
Preserve physical sampler and opacity brush frames through retained r…
wieslawsoltes Oct 8, 2026
8c36515
Retain opaque transient targets in mapped RGB glyph scenes
wieslawsoltes Oct 8, 2026
2a211a1
Avoid redundant vector fragment wrapper rejected by FXC
wieslawsoltes Oct 8, 2026
afa3554
Preserve original Direct2D clip and stored layer pixel semantics
wieslawsoltes Oct 8, 2026
914d7e6
Separate source layer byte opacity and preserve cache gradient frames
wieslawsoltes Oct 8, 2026
0b38565
Preserve physical path coverage and original source composition bounds
wieslawsoltes Oct 8, 2026
07d6705
Complete retained Canvas test target DPI contract
wieslawsoltes Oct 8, 2026
c0e58a9
Keep source coverage and byte opacity consistent across native backends
wieslawsoltes Oct 8, 2026
088dd9b
Name target Clear pipelines for Windows FXC and add focused diagnostics
wieslawsoltes Oct 8, 2026
8e3eae4
Keep authored COM font fixtures alive through retained teardown
wieslawsoltes Oct 8, 2026
4fa3377
Name native RGB pipelines and isolate the original GPU diagnostic family
wieslawsoltes Oct 8, 2026
5ec42aa
Distinguish original ClearType and command-list source observations
wieslawsoltes Oct 8, 2026
1eb07c4
Report exact original prepared-glyph pixel mismatches
wieslawsoltes Oct 8, 2026
b63506c
Add focused sampled-opacity qualification diagnostics
wieslawsoltes Oct 8, 2026
82a385d
Reuse independent sampled-opacity engine lanes across source families
wieslawsoltes Oct 8, 2026
7a79f01
Preserve source byte opacity in private shader input captures
wieslawsoltes Oct 8, 2026
9ed39b5
Diagnose retained mask normalization and blending independently
wieslawsoltes Oct 8, 2026
4e10a37
Preserve original design width for positioned RTL glyph outlines
wieslawsoltes Oct 8, 2026
abe396f
Separate final UNORM conversion from source mask arithmetic
wieslawsoltes Oct 8, 2026
07d771e
Preserve original DirectWrite compact HVAR source advances
wieslawsoltes Oct 8, 2026
0b7c542
Measure retained WebScene provider test phases
wieslawsoltes Oct 8, 2026
9eb1120
Match original DirectWrite CFF translation ink admission
wieslawsoltes Oct 8, 2026
96c4a33
Collect the complete original Windows glyph comparison inventory
wieslawsoltes Oct 9, 2026
80ddf4a
Compose RGB glyphs against owned destination bytes
wieslawsoltes Oct 9, 2026
e3182e1
Match original DirectWrite CFF vertical origins
wieslawsoltes Oct 9, 2026
a66cec9
Use original WPF software cache sampling phase in references
wieslawsoltes Oct 9, 2026
28d9c52
Qualify original WPF software cache re-entry behavior
wieslawsoltes Oct 9, 2026
fbed150
Prepare owned original glyph coverage meshes without changing recorde…
wieslawsoltes Oct 9, 2026
940da4f
Remove legacy third-party ShaderToy presets
wieslawsoltes Oct 10, 2026
bd29396
Preserve original physical glyph and bounded source-path coverage
wieslawsoltes Oct 10, 2026
68643ec
Align runtime and Avalonia packages for preview.66
wieslawsoltes Oct 11, 2026
49d63d3
Repair GCC coverage build and diagnose remaining native CI failures
wieslawsoltes Oct 11, 2026
db0cc70
Build unaligned source validation fixtures without size overflow
wieslawsoltes Oct 11, 2026
9f3ca56
Distinguish original source coverage from UNORM blend conversion fail…
wieslawsoltes Oct 11, 2026
06e2db5
Preserve the failed native sample process exit code
wieslawsoltes Oct 11, 2026
950d764
Retain the native sample failure marker alongside its exit code
wieslawsoltes Oct 11, 2026
ac25d7c
Select an exact native sample adapter and retain Windows fault records
wieslawsoltes Oct 11, 2026
8b9802b
Specialize proven linear signed GPU batches and preserve Nonzero sums
wieslawsoltes Oct 11, 2026
c4dfa4e
Bound approved Intel UNORM exception to original scenes and GPU evidence
wieslawsoltes Oct 11, 2026
a880ccf
Report complete original glyph mismatches before failing the corpus
wieslawsoltes Oct 11, 2026
c162cd7
Guard the original recorder form of the approved sheared conversion
wieslawsoltes Oct 11, 2026
2f006c1
Provide original shader frame in DrawingImage ownership consumer
wieslawsoltes Oct 11, 2026
6a957ed
Build release runtimes with the verified native text dependencies
wieslawsoltes Oct 11, 2026
c99539a
Preserve the verified ICU archive during CMake SDK installation
wieslawsoltes Oct 11, 2026
3a95a19
Preserve exact line coverage without ARM64 DX12 admission branches
wieslawsoltes Oct 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
27 changes: 25 additions & 2 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ jobs:
if (Test-Path -LiteralPath $evidence) { throw 'Evidence directory already exists.' }
New-Item -ItemType Directory -Path $evidence | Out-Null
$dll = Join-Path $env:GITHUB_WORKSPACE 'tests/ProGPU.PathRasterization.Conformance/bin/Release/net10.0/${{ matrix.rid }}/ProGPU.PathRasterization.Conformance.dll'
$cases = @('coverage', 'simple-first', 'boolean-first', 'linear-coverage', 'linear-first', 'curve-first')
$cases = @('coverage', 'simple-first', 'boolean-first', 'linear-coverage', 'linear-first', 'curve-first', 'linear-winding')
$completed = @()
foreach ($case in $cases) {
$stdout = Join-Path $evidence "$case-stdout.log"
Expand All @@ -106,7 +106,7 @@ jobs:
Get-Content -LiteralPath $stderr
}
}
if ($completed.Count -ne 6) { throw 'All six regression bodies, including the three original cases, must execute and pass.' }
if ($completed.Count -ne 7) { throw 'All seven regression bodies, including the six original cases, must execute and pass.' }
@{ executed = $completed; skipped = 0; processDeadlineSeconds = 120 } | ConvertTo-Json | Set-Content -LiteralPath (Join-Path $evidence 'summary.json')
- name: Retain source GPU coverage and pipeline acquisition evidence
if: always()
Expand Down Expand Up @@ -521,6 +521,14 @@ jobs:
path: artifacts/progpu-native/diagnostics/managed-picture
if-no-files-found: warn

- name: Retain original Direct2D RGB glyph parameter receipts
if: always() && runner.os == 'Windows'
uses: actions/upload-artifact@v7
with:
name: progpu-direct2d-rgb-reference-${{ matrix.rid }}
path: '**/direct2d-rgb-reference-*/'
if-no-files-found: ${{ job.status == 'success' && 'error' || 'warn' }}

- name: Upload native MIL ImageBrush frames
if: matrix.rid == 'linux-x64' || matrix.rid == 'osx-arm64' || matrix.rid == 'win-x64'
uses: actions/upload-artifact@v7
Expand Down Expand Up @@ -1564,6 +1572,7 @@ jobs:
timeout-minutes: 10
run: |
./eng/progpu-install-linux-packages.sh \
libc++1 \
libvulkan1 \
mesa-vulkan-drivers \
libx11-xcb1 \
Expand Down Expand Up @@ -1612,6 +1621,20 @@ jobs:
dotnet build src/ProGPU.Tests/ProGPU.Tests.csproj --configuration Release --runtime ${{ matrix.rid }} --no-restore -p:ContinuousIntegrationBuild=true
dotnet build src/ProGPU.Tests.Headless/ProGPU.Tests.Headless.csproj --configuration Release --runtime ${{ matrix.rid }} --no-restore -p:ContinuousIntegrationBuild=true

# The package-consumer preflight above builds Backend.Native but not Text.
# Reuse the actual library outputs from Build tests, without rebuilding
# their graph or executing the probe against an unqualified native runtime.
- name: Compile source Display comparison probe
if: runner.os == 'Linux'
shell: bash
run: |
set -euo pipefail
test -s src/ProGPU.Backend.Native/bin/Release/net10.0/ProGPU.Backend.Native.dll
test -s src/ProGPU.Text/bin/Release/net10.0/ProGPU.Text.dll
dotnet build eng/SourceDisplayPolicyProbe/SourceDisplayPolicyProbe.csproj \
--configuration Release --runtime '${{ matrix.rid }}' \
-p:BuildProjectReferences=false -p:ContinuousIntegrationBuild=true

- name: Run owned Cocoa popup lifecycle contracts
run: >-
dotnet test src/ProGPU.Tests/ProGPU.Tests.csproj
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/native-contract-generation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ jobs:
./eng/progpu-generate-native-contract.sh
git rev-parse HEAD > src/ProGPU.Backend.Native/Generated/generator-head.txt
sha256sum src/ProGPU.Native/include/progpu_native_text_hinting.h > src/ProGPU.Backend.Native/Generated/hinting-header.sha256
sha256sum src/ProGPU.Native/include/progpu_native_text_source.h src/ProGPU.Native/include/progpu_native_text_source_resource.h > src/ProGPU.Backend.Native/Generated/source-headers.sha256
- name: Verify bounded inline-array generation and atomic rejection
shell: bash
run: python3 eng/tests/test_native_contract_inline_arrays.py
Expand Down
77 changes: 73 additions & 4 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ on:
version:
description: NuGet package version to build.
required: true
default: 0.1.0-preview.63
default: 0.1.0-preview.66
publish:
description: Push packages to NuGet.org after validation.
required: true
Expand Down Expand Up @@ -89,6 +89,8 @@ jobs:
clang-tools \
cmake \
ninja-build \
gnupg \
fonts-dejavu-core \
libvulkan1 \
mesa-vulkan-drivers \
libx11-xcb1 \
Expand All @@ -103,22 +105,87 @@ jobs:

- name: Install macOS native build tools
if: runner.os == 'macOS'
run: brew install ninja
run: brew install ninja gnupg

- name: Verify generated C# native contract
if: matrix.rid == 'linux-x64'
shell: bash
run: ./eng/progpu-verify-native-contract.sh

- name: Build signed isolated font dependency
if: runner.os != 'Windows'
shell: bash
run: |
font_workspace="$(mktemp -d "${RUNNER_TEMP}/progpu-freetype.XXXXXXXX")"
font_workspace="$(cd "$font_workspace" && pwd -P)"
echo "PROGPU_FREETYPE_WORKSPACE=$font_workspace" >> "$GITHUB_ENV"
if [[ '${{ runner.os }}' == 'macOS' ]]; then
test_font='/System/Library/Fonts/Supplemental/Arial.ttf'
else
test_font='/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf'
fi
python3 ./eng/progpu-prepare-freetype.py \
--workspace "$font_workspace" --rid '${{ matrix.rid }}' --cc clang --cxx clang++ \
--test-font "$test_font"

- name: Build signed isolated font dependency on Windows
if: runner.os == 'Windows'
shell: pwsh
run: |
$fontWorkspace = Join-Path $env:RUNNER_TEMP ('progpu-freetype.' + [Guid]::NewGuid().ToString('N'))
"PROGPU_FREETYPE_WORKSPACE=$fontWorkspace" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding utf8
./eng/progpu-prepare-freetype-windows.ps1 -Rid '${{ matrix.rid }}' -Workspace $fontWorkspace

- name: Upload verified font dependency and original notices
uses: actions/upload-artifact@v7
with:
name: progpu-freetype-${{ matrix.rid }}
path: ${{ env.PROGPU_FREETYPE_WORKSPACE }}/install
if-no-files-found: error

- name: Fetch exact owned EDIT dictionary source
if: runner.os != 'Windows'
shell: bash
run: |
python3 - <<'PY'
import hashlib, json, os, pathlib, tempfile, urllib.request
pin = json.loads(pathlib.Path('eng/native-edit-word-icu.json').read_text())
workspace = pathlib.Path(tempfile.mkdtemp(prefix='progpu-edit-icu.', dir=os.environ['RUNNER_TEMP'])).resolve()
archive = workspace / 'icu-sources.tgz'
with urllib.request.urlopen(pin['sourceUrl']) as source, archive.open('xb') as output:
while chunk := source.read(1024 * 1024):
output.write(chunk)
with archive.open('rb') as source:
actual = hashlib.file_digest(source, 'sha256').hexdigest()
if actual != pin['sourceSha256']:
raise SystemExit('Owned EDIT dictionary source differs from the reviewed pin')
with open(os.environ['GITHUB_ENV'], 'a') as output:
output.write(f'PROGPU_EDIT_WORD_ICU_ARCHIVE={archive}\n')
PY

- name: Fetch exact owned EDIT dictionary source on Windows
if: runner.os == 'Windows'
shell: pwsh
run: |
$pin = Get-Content -Raw eng/native-edit-word-icu.json | ConvertFrom-Json
$workspace = Join-Path $env:RUNNER_TEMP ('progpu-edit-icu.' + [Guid]::NewGuid().ToString('N'))
New-Item -ItemType Directory -Path $workspace | Out-Null
$archive = Join-Path $workspace 'icu-sources.tgz'
Invoke-WebRequest -Uri $pin.sourceUrl -OutFile $archive
if ((Get-FileHash -LiteralPath $archive -Algorithm SHA256).Hash.ToLowerInvariant() -cne $pin.sourceSha256) {
throw 'Owned EDIT dictionary source differs from the reviewed pin.'
}
"PROGPU_EDIT_WORD_ICU_ARCHIVE=$archive" | Out-File -FilePath $env:GITHUB_ENV -Append -Encoding utf8

- name: Build and integration-test native renderer
if: runner.os != 'Windows'
shell: bash
env:
PROGPU_NATIVE_RUN_DAWN_HEADER_CONTRACT: 1
PROGPU_NATIVE_ENABLE_CPP_MODULES: ${{ matrix.rid == 'linux-x64' && 'ON' || '' }}
run: |
./eng/build-progpu-native.sh
./eng/progpu-stage-native-runtime.sh
./eng/build-progpu-native.sh --font-manifest "$PROGPU_FREETYPE_WORKSPACE/install/progpu-freetype.json" --edit-word-icu-archive "$PROGPU_EDIT_WORD_ICU_ARCHIVE"
./eng/progpu-stage-native-runtime.sh --font-manifest "$PROGPU_FREETYPE_WORKSPACE/install/progpu-freetype.json" --edit-word-icu-archive "$PROGPU_EDIT_WORD_ICU_ARCHIVE"

- name: Build and integration-test native renderer on Windows
if: runner.os == 'Windows'
Expand All @@ -127,6 +194,8 @@ jobs:
./eng/build-progpu-native-windows.ps1
-Rid "${{ matrix.rid }}"
-BenchmarkProfile Smoke
-FontManifest "${{ env.PROGPU_FREETYPE_WORKSPACE }}/install/progpu-freetype.json"
-EditWordIcuArchive "${{ env.PROGPU_EDIT_WORD_ICU_ARCHIVE }}"

- name: Verify exact WebScene provider on Metal
if: matrix.rid == 'osx-arm64'
Expand Down
35 changes: 35 additions & 0 deletions .github/workflows/wpf-display-text-reference.yml
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,41 @@ jobs:
Get-Content -LiteralPath $stderr
}
}
- name: Capture independent original source request metrics
shell: pwsh
run: |
$evidence = Join-Path $env:GITHUB_WORKSPACE 'artifacts/wpf-display-reference'
$dll = Join-Path $env:GITHUB_WORKSPACE 'eng/WpfDisplayTextReference/bin/Release/net10.0-windows/WpfDisplayTextReference.dll'
$font = Join-Path $env:GITHUB_WORKSPACE 'src/ProGPU.Fonts.Inter/Fonts/Inter-Regular.ttf'
foreach ($family in @('original', 'midpoint-rtl-positioned-v3')) {
$name = if ($family -eq 'original') { 'source-inputs' } else { 'source-midpoint-inputs' }
$receipt = Join-Path $evidence "$name.json"
$stdout = Join-Path $evidence "$name-stdout.log"
$stderr = Join-Path $evidence "$name-stderr.log"
$values = @($dll, '--source-inputs', $font, $receipt, '${{ matrix.arch }}', $env:REFERENCE_COMMIT)
if ($family -ne 'original') { $values += @($family, (Join-Path $evidence 'rtl-font')) }
$arguments = $values | ForEach-Object { '"' + $_ + '"' }
$child = Start-Process (Get-Command dotnet).Source -ArgumentList $arguments -PassThru -NoNewWindow -RedirectStandardOutput $stdout -RedirectStandardError $stderr
try {
if (!$child.WaitForExit(90000)) { throw 'Original source-input reference process exceeded 90 seconds.' }
if ($child.ExitCode -ne 0) { throw "Original source-input reference exited $($child.ExitCode)." }
$value = Get-Content -LiteralPath $receipt -Raw | ConvertFrom-Json
$count = if ($family -eq 'original') { 192 } else { 288 }
$schema = if ($family -eq 'original') { 2 } else { 4 }
if ($value.Schema -ne $schema -or $value.SourceCommit -ne $env:REFERENCE_COMMIT -or $value.CaseCount -ne $count -or $value.Cases.Count -ne $count -or $value.Architecture -ne '${{ matrix.arch }}') { throw 'Incomplete independent source-input receipt.' }
foreach ($case in $value.Cases) {
$original = if ($family -eq 'original') { $case } else { $case.Original }
$metrics = $original.IndependentSourceMetrics
if ($metrics.Version -ne 1 -or $metrics.Mode -cne $original.Mode -or $metrics.Em -ne $original.Em -or $metrics.Dpi -ne $original.Dpi -or $metrics.ToReal -ne 1 -or $metrics.TypefaceIdentity -cne $value.PresentationIdentity -or $metrics.TypefaceAssembly.Sha256 -cne $value.PresentationCore.Sha256) { throw 'Independent source metric identity mismatch.' }
}
Get-FileHash -Algorithm SHA256 -LiteralPath $receipt | Format-List
} finally {
if (!$child.HasExited) { $child.Kill($true); $child.WaitForExit(5000) | Out-Null }
$child.Dispose()
Get-Content -LiteralPath $stdout
Get-Content -LiteralPath $stderr
}
}
- uses: actions/upload-artifact@v7
if: always()
with:
Expand Down
Loading
Loading