Methane Kit v0.8.0 #148
egorodet
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
Summary
In Methane Kit v0.8.0, several significant enhancements have been introduced:
Tutorials
Graphics libraries
META_ARG_CONSTANT,META_ARG_FRAME_CONSTANT,META_ARG_MUTABLE), to replace shader arguments configurationRhi::ProgramArgumentAccessorsinProgramSettings. RHI shader arguments reflection uses these register space definitions to add default argument accessors configuration, so that it is not necessary to be defined in user code ofProgramSettings.Rhi::RootConstantclass was added as a storage of constant data (derived fromData::Chunk), which can be set to buffer argument bindings, defined withProgramArgumentValueType::RootConstantBufferinRhi::ProgramArgumentAccessors.Rhi::IProgramBindings::SetRootConstantallows to set root constant data for such argument bindings. Internally managedRhi::RootConstantBufferobjects significantly simplify user code by eliminating the need in creating separate uniform buffers. Support ofRoot32BitConstantsin DirectX andPushConstantsin Vulkan andSetBytesin Metal was added viaRhi::ProgramArgumentValueType::RootConstantValue(close Extend Program Bindings with support of "Push Constants" native API #140).Metal::ProgramBindingsin Metal RHI were extended with Metal Argument Buffers API support for more efficient shader argument bindings, similar to descriptor tables in DirectX 12 and descriptor sets in Vulkan. CMake optionMETHANE_METAL_ARGUMENT_BUFFERS_ENABLEDwas added to allow switching between direct resource binding and argument buffers (enabled by default). Metal argument buffers are created independently for groups of shader arguments with different argument access types. (close Metal RHI improvement: Add support of MTLArgumentBuffer in program bindings #138)Metal::ProgramBindingswere refactored to reduce code duplication with help of templates.ProgramArgumentandProgramArgumentAccessortypes were moved fromIProgram.hheader toProgramArgument.h/cpp.ProgramArgumentAccessModifierenum was renamed toProgramArgumentValueType.ProgramArgument.hto simplify program argument accessors setup:META_PROGRAM_ARG_*(ROOT_CONSTANT,ROOT_FRAME_CONSTANT,ROOT_MUTABLE,RESOURCE_CONSTANT,RESOURCE_FRAME_CONSTANT,RESOURCE_MUTABLE, etc.).CommandListDebugGroupsub-group names now usestd::string_viewScreenQuadwas migrated to root constants instead of uniform buffer.Data libraries
priorityargument of methodEmitter<ICallback>::Connect(Receiver<ICallback>& receiver, uint32_t priority).Common changes
META_CHECK_ARG_*by removal of ARG suffix toMETA_CHECK_*.User Interface libraries
Tests
ViewStatetest was addedFencetest was extendedBufferSettest was addedCommandKittest was addedCommandListDebugGrouptest was addedProgramBindingstest was extended with root constant bindings.Data::EventsTestwas extended to check prioritizing of connected receivers.External libraries
v1.7.2308v1.3.296.0v1.1v0.40.5v0.11.2.1v1.3.296v1.3.296.0v2.0.6(oct 2024)v2.13.3v11.0.210.12.2024v3.25.3v3.7.1v0.9.7v5.0.0v1.87.0v3.5.3v3.8.0Build
METHANE_METAL_SHADER_CONVERTER_ENABLED.CMakeModules/FindWindowsSDK.cmakewith fix for ARM64 architecture detection with VS2022 and Ninja and detection of the latest Windows SDK version 10.0.22621./usr/local/libwas added to findlibvulkan.1.libMETHANE_METAL_FRAMES_SYNC_WITH_DISPATCH_SEMAPHOREBuild\Windows\Build.batwas extended with more build options.Continuous Integration
macos-13hosted runners to use Intel h/w, instead of M1/ARM, which is not supported yet.Documentation
CubeMapArrayandParallelRenderingtutorials.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:
🎄 🎄 🎄 ⛄ 🎅 Happy New Year! 🎅 ⛄ 🎄 🎄 🎄
This discussion was created from the release Methane Kit v0.8.0.
Beta Was this translation helpful? Give feedback.
All reactions