Repository navigation
fix(ecs): harden filter rasters and resource caches with regression coverage - #386
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Filtered multiline gradient text could disappear because each line clipped the previous line, and a 50% fill could become 25% opaque. Render-cache keys could also change when callers edited sampler descriptors, while failed LUT uploads leaked the newly allocated texture.
This change builds one complete text mask before clipping, applies text opacity once, and stacks CSS gradients with the first layer on top. Filter rasters now use the configured canvas adapter. Resource caches snapshot sampler descriptors, distinguish the volume-texture W address mode, normalize pipeline/layout keys before lookup without modifying caller-owned input, and release LUT textures on upload failure.
Adds 69 behavioral unit tests and a small Chromium pixel regression for native Path2D, conic gradients, and multiline text. Canvas pixel tests use real Cairo; GPU cache tests use allocation/upload doubles to assert resource identity and ownership. New coverage gates protect the three tested modules. The full ECS source collection remains unchanged.
Validation:
git diff --checkpassed.Baseline is merged master
00deb2bf. Coverage numbers are from local full-package reports; Coveralls updates after merge and CI. Seedocs/ecs-test-coverage.mdfor scope, counts, gates, reproduction commands, and the next atlas/image/batch lifecycle priorities. Includes patch changesets for ECS and device-api; no package publication.