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
-
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::ProgramArgumentAccessors
inProgramSettings
. 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::RootConstant
class was added as a storage of constant data (derived fromData::Chunk
), which can be set to buffer argument bindings, defined withProgramArgumentValueType::RootConstantBuffer
inRhi::ProgramArgumentAccessors
.Rhi::IProgramBindings::SetRootConstant
allows to set root constant data for such argument bindings. Internally managedRhi::RootConstantBuffer
objects significantly simplify user code by eliminating the need in creating separate uniform buffers. Support ofRoot32BitConstants
in DirectX andPushConstants
in Vulkan andSetBytes
in Metal was added viaRhi::ProgramArgumentValueType::RootConstantValue
(close Extend Program Bindings with support of "Push Constants" native API #140).Metal::ProgramBindings
in 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_ENABLED
was 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::ProgramBindings
were refactored to reduce code duplication with help of templates.ProgramArgument
andProgramArgumentAccessor
types were moved fromIProgram.h
header toProgramArgument.h/cpp
.ProgramArgumentAccessModifier
enum was renamed toProgramArgumentValueType
.ProgramArgument.h
to simplify program argument accessors setup:META_PROGRAM_ARG_*
(ROOT_CONSTANT
,ROOT_FRAME_CONSTANT
,ROOT_MUTABLE
,RESOURCE_CONSTANT
,RESOURCE_FRAME_CONSTANT
,RESOURCE_MUTABLE
, etc.).CommandListDebugGroup
sub-group names now usestd::string_view
ScreenQuad
was migrated to root constants instead of uniform buffer.Data libraries
priority
argument 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
ViewState
test was addedFence
test was extendedBufferSet
test was addedCommandKit
test was addedCommandListDebugGroup
test was addedProgramBindings
test was extended with root constant bindings.Data::EventsTest
was extended to check prioritizing of connected receivers.External libraries
v1.7.2308
v1.3.296.0
v1.1
v0.40.5
v0.11.2.1
v1.3.296
v1.3.296.0
v2.0.6
(oct 2024)v2.13.3
v11.0.2
10.12.2024
v3.25.3
v3.7.1
v0.9.7
v5.0.0
v1.87.0
v3.5.3
v3.8.0
Build
METHANE_METAL_SHADER_CONVERTER_ENABLED
.CMakeModules/FindWindowsSDK.cmake
with fix for ARM64 architecture detection with VS2022 and Ninja and detection of the latest Windows SDK version 10.0.22621./usr/local/lib
was added to findlibvulkan.1.lib
METHANE_METAL_FRAMES_SYNC_WITH_DISPATCH_SEMAPHORE
Build\Windows\Build.bat
was extended with more build options.Continuous Integration
macos-13
hosted runners to use Intel h/w, instead of M1/ARM, which is not supported yet.Documentation
CubeMapArray
andParallelRendering
tutorials.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