Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Version 0.5.5: Replace CML math library with HLSL++, Expand test coverage #82

Merged
merged 99 commits into from
Feb 26, 2021

Conversation

egorodet
Copy link
Member

@egorodet egorodet commented Feb 23, 2021

Methane Kit v0.5 Pre-Release Update 5

  • Common libraries:
    • Replaced CML math library with HLSL++ to improve math performance with SSE/AVX/NEON vector-instructions (close Replace math library with vector instructions implementation #78).
    • Replaced UnexpectedEnumArgumentException with UnexpectedArgumentException applicable to different types. Check macros was renamed accordingly from META_UNEXPECTED_ENUM_ARG_* to META_UNEXPECTED_ARG_*.
    • Removed const modifiers from exception members to enable generation of move constructors.
  • Data libraries:
    • RawVector template class was added as a replacement of cml::vector for dense-packed components storage used in vertex attributes.
    • Point template class now use underlying HLSL++ vector; multiplication/division operators were fixed.
    • Rect and RectSize, Volume and VolumeSize classes were refactored. Made class fields private, available through accessors.
    • Constants template class was added with math constants.
  • Graphics libraries:
    • Color template class was rewritten from scratch and now can use both integer and floating point components via underlying HLSL++ vector storage.
    • ArcBallCamera issues were found by improved unit-tests and fixed.
    • SphereMesh generation was simplified with matrix-free implementation.
    • Fixed missing debug names of graphics resources (regression of previous refactoring).
    • Fixed mip-levels count in depth texture descriptor for DirectX12.
    • Fixed limited rendering FPS with VSync turned OFF on Nvidia GPUs with latest drivers (Jan 2021).
    • Enabled naming of Tracy GPU contexts (unforturnately, now it works only when TRACY_ON_DEMAN is disabled).
  • Unit-tests coverage was expanded from 5.7% to 13%:
    • RawVector, Point new template classes were covered with unit-tests.
    • Rect and RectSize, Volume and VolumeSize existing template classes were covered with unit-tests.
    • Color template class was covered with unit-tests.
    • UnitType template class was covered with unit tests.
    • UserInterface::Context class unit convertors were covered with unit tests.
    • FakeRenderContext class was added to UI unit-testing infrastructure.
    • Replace deprecated ParseAndAddCatchTests CMake function with catch_discover_tests to fix Catch warnings.
  • External libraries:
    • HLSL++ library was added
    • CML library was removed
    • Catch2 was updated to v2.13.4
    • Tracy was updated to v0.7.6
    • CLI11 library was updated to v1.9.1
    • CMRC library was updated to latest version.
    • FMT library was updated to v7.1.3
    • Taskflow library was updated to v3.0.0
  • Samples and tutorials:
    • Migrated tutorials and samples to using HLSL++ vector math, used instead of CML.
    • Removed explicit alignment of uniform structure fields, which is not required anymore for HLSL++ types, since they already use 16-bytes aligned data storage.
    • Updated tutorials documentation to reflect code changes.
  • Build Infrastructure:
    • Do not fail build when some unit tests fail or Sonar Scanner jobs fail with error.
    • Publish Sonar Scanner error reproducer to build artifacts in case of scan failure.
    • Fix Sonar Scanner cache invalidation by adding plugin version to cache key.

…mparison of vectors; Found and fixed Arc-ball camera issues
…e replace CML vector with HLSL++ in Point wrapper
…tors generation; Try to workaround Clang error in Sonar Scanner.
… (minimum available cores count on Azure workers)
…is on Windows, use NUMBER_OF_PROCESSORS threads on Mac and Linux
@egorodet egorodet added the refactoring Code refactoring without adding new functionality label Feb 23, 2021
@egorodet egorodet added this to the v0.5 milestone Feb 23, 2021
@egorodet egorodet self-assigned this Feb 23, 2021
@egorodet egorodet changed the title Version 0.5.5: Replace CML math library with HLSL++ Version 0.5.5: Replace CML math library with HLSL++, Expand test coverage Feb 23, 2021
@egorodet egorodet added the testing Tests automation label Feb 23, 2021
@sonarcloud
Copy link

sonarcloud bot commented Feb 25, 2021

Kudos, SonarCloud Quality Gate passed!

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

63.3% 63.3% Coverage
0.0% 0.0% Duplication

@sonarcloud
Copy link

sonarcloud bot commented Feb 25, 2021

Kudos, SonarCloud Quality Gate passed!

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

74.0% 74.0% Coverage
0.0% 0.0% Duplication

@sonarcloud
Copy link

sonarcloud bot commented Feb 25, 2021

Kudos, SonarCloud Quality Gate passed!

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

59.0% 59.0% Coverage
0.0% 0.0% Duplication

@egorodet egorodet merged commit c98934e into master Feb 26, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
refactoring Code refactoring without adding new functionality testing Tests automation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Replace math library with vector instructions implementation
1 participant