Skip to content

Methane Kit v0.7.2

Compare
Choose a tag to compare
@egorodet egorodet released this 30 May 19:54
· 88 commits to master since this release
4299e05

Methane Console Compute DirectX Windows This release adds initial support of compute pipeline in Methane Kit for app Graphics RHI backends (DirectX 12, Vulkan and Metal). "Console Compute" tutorial was added to demonstrate it on example of Conway's Game of Life implemented in compute shader used from pure-console application. Graphics RHI was partially covered with initial set of unit-tests implemented using "Null RHI" backend for testing of the Base RHI logic.

Tutorial applications

  • Console Compute tutorial was added to demonstrate GPU compute pipeline on Conway's Game of Life example implemented in pure-console application with FTXUI library.

Graphics libraries

  • New Graphics RHI classes were added to support compute pipeline (close #8):
    • ComputeContext
    • ComputeCommandList
    • ComputeState
  • Added ShaderType::Compute shader type support.
  • Added CommandListType::Compute support in CommandQueue.
  • Added DeviceCaps::compute_queues_count.
  • Added Unordered Access View support in ProgramBindings for reading and writing texture data from compute shader.
  • Added Texture and Buffer read-back support via GetData methods.
  • Removed common GetData and SetData methods from base interface IResource in favour of separate methods added in the derived IBuffer and ITexture interfaces to differentiate argument types and get rid of unwanted methods in ISampler interface.
  • IResource methods GetSubresourceCount and GetSubresourceDataSize methods were moved to ITexture interface.
  • Fixed some DirectX and Vulkan validation warnings.

User Interface

  • Fix rare crash on text mesh update.

Data libraries

  • FpsCounter interface and implementation was moved from Graphics/RHI to Data/Primitives to allow using it independently from RHI RenderContext.
  • Enable Chunk copy and move constructors and operators.

Tests

  • Initial unit-tests were added for "Graphics RHI" layer, implemented using "Null RHI" backend (continue #122):
    • Shader Test
    • Sampler Test
    • Fence Test
    • CommandQueue Test
    • ComputeState Test
    • Texture Test
    • ProgramBindings Test
    • TransferCommandList Test
    • Program Test
    • ComputeContext Test
    • Buffer Test
    • ComputeCommandList Test
  • Overall code coverage has reached 30% for Modules directory.

External libraries

Build

  • Cleaned up root CMakeLists.txt
  • Build with new Xcode 14.3 was supported by cleaning up the code from removed deprecated functions.
  • Apple deployment target versions were bumped to use new shader reflections API:
    • MacOS 10.15 -> 13.0
    • iOS 15.0 -> 16.0

Continuous Integration

  • Fixed reporting of failed unit tests: previously builds were terminating on any test failure, now builds are still failing by unit-tests but they perform all reporting operations.
  • Sonar-scan build is now automatically finding all test result xml files.
  • Added CodeCove components and excluded Tests and Apps directories from code coverage results.

Documentation

  • ReadMe documentation was added for "Console Compute" tutorial.
  • Update code in other tutorials documentation to reflect changes in Resource, Buffer and Texture methods.

Note

For MacOS users: In case of error "App Is Damaged and Can't Be Opened" on attempt to run bundled application, try removing application from quarantine using the following command:

sudo xattr -d com.apple.quarantine MethaneHelloTriangle.app
open MethaneHelloTriangle.app