Skip to content

Conversation

@ProbablePrime
Copy link
Member

We wanted to test quality to evaluate what we should set our defaults to be.

This PR makes the changes required to achieve that.

  1. Tests the marshaling of CMP_Texture
  2. Add helper methods to copy commonly cloned details from one mip set to another, or from one texture to another
  3. Tweak some of the marshaled pointers for easier Debug stepping
  4. Expose CMP_MipSetToTexture from compressonator native
  5. Expose/Hook up CMP_SaveTextureEx which takes a CMP_texture, this is different from CMP_SaveTexture that takes a mipset.
  6. Using new functionality hookup decompression based tests
  7. Introduce quality scoring tests, these, Load, Compress, Decompress, Save and then Score by comparing to the original. using Ssimulacra2.net
  8. Introduce additional Snapshot tests that output PNGs. These are designed for human readable evaluation of formats/qualities.

WIP. Want more data.

You wouldn't believe how many times this is manually done in the native code.
This makes debugger stepping easier, trust me :)
…CMP_Texture

Needs new natives will update soon.
This proves decompression!
Enables us to disable/enable certain tests: dotnet test --filter "TestProperty.CI=true"
@ProbablePrime ProbablePrime marked this pull request as ready for review July 21, 2025 12:05
@ProbablePrime
Copy link
Member Author

Ok so Windows on my machine, GH Actions and Ubuntu generate all our test images, they all come out identically, they all come out with the same and expected quality scores.

This drastically improves our confidence in the library because... ITS REALLY WELL TESTED now.

@ProbablePrime ProbablePrime merged commit 60a7517 into main Jul 21, 2025
2 checks passed
@ProbablePrime ProbablePrime deleted the prime/feat/decompress-i-guess branch July 21, 2025 12:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants