-
-
Notifications
You must be signed in to change notification settings - Fork 54
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
Methane Kit v0.8.0: enhance program bindings configuration, performance and simplified shader buffer arguments setup with root constants #147
Conversation
Codecov ReportAttention: Patch coverage is
✅ All tests successful. No failed tests found. Additional details and impacted files@@ Coverage Diff @@
## master #147 +/- ##
===========================================
+ Coverage 25.19% 36.20% +11.02%
===========================================
Files 367 381 +14
Lines 14372 19490 +5118
Branches 0 1786 +1786
===========================================
+ Hits 3619 7055 +3436
- Misses 10753 12257 +1504
- Partials 0 178 +178
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
Win64_DX_SonarScan Test Results 8 files ± 0 8 suites ±0 5s ⏱️ ±0s Results for commit b5222a5. ± Comparison against base commit 4c66c85. This pull request removes 1 and adds 477 tests. Note that renamed tests count towards both.
♻️ This comment has been updated with latest results. |
Ubuntu_VK_SonarScan Test Results 8 files ± 0 8 suites ±0 1s ⏱️ ±0s Results for commit b5222a5. ± Comparison against base commit 4c66c85. This pull request removes 1 and adds 477 tests. Note that renamed tests count towards both.
♻️ This comment has been updated with latest results. |
MacOS_MTL_SonarScan Test Results 8 files ± 0 8 suites ±0 1s ⏱️ ±0s Results for commit b5222a5. ± Comparison against base commit 4c66c85. This pull request removes 1 and adds 477 tests. Note that renamed tests count towards both.
♻️ This comment has been updated with latest results. |
Win64_VK_Release Test Results 8 files ± 0 8 suites ±0 0s ⏱️ ±0s Results for commit b5222a5. ± Comparison against base commit 4c66c85. This pull request removes 1 and adds 477 tests. Note that renamed tests count towards both.
♻️ This comment has been updated with latest results. |
Win32_DX_Release Test Results 8 files ± 0 8 suites ±0 0s ⏱️ ±0s Results for commit b5222a5. ± Comparison against base commit 4c66c85. This pull request removes 1 and adds 477 tests. Note that renamed tests count towards both.
♻️ This comment has been updated with latest results. |
MacOS_VK_Release Test Results 8 files ± 0 8 suites ±0 1s ⏱️ ±0s Results for commit b5222a5. ± Comparison against base commit 4c66c85. This pull request removes 1 and adds 477 tests. Note that renamed tests count towards both.
♻️ This comment has been updated with latest results. |
Win32_VK_Release Test Results 8 files ± 0 8 suites ±0 0s ⏱️ ±0s Results for commit b5222a5. ± Comparison against base commit 4c66c85. This pull request removes 1 and adds 477 tests. Note that renamed tests count towards both.
♻️ This comment has been updated with latest results. |
MacOS_MTL_Release Test Results 8 files ± 0 8 suites ±0 0s ⏱️ ±0s Results for commit b5222a5. ± Comparison against base commit 4c66c85. This pull request removes 1 and adds 477 tests. Note that renamed tests count towards both.
♻️ This comment has been updated with latest results. |
Ubuntu_VK_Release Test Results 8 files ± 0 8 suites ±0 11s ⏱️ ±0s Results for commit b5222a5. ± Comparison against base commit 4c66c85. This pull request removes 1 and adds 477 tests. Note that renamed tests count towards both.
♻️ This comment has been updated with latest results. |
Win64_DX_Release Test Results 8 files ± 0 8 suites ±0 0s ⏱️ ±0s Results for commit b5222a5. ± Comparison against base commit 4c66c85. This pull request removes 1 and adds 477 tests. Note that renamed tests count towards both.
♻️ This comment has been updated with latest results. |
Modules/Graphics/RHI/Base/Include/Methane/Graphics/Base/ProgramArgumentBinding.h
Dismissed
Show dismissed
Hide dismissed
Modules/Graphics/RHI/Vulkan/Sources/Methane/Graphics/Vulkan/ProgramBindings.cpp
Dismissed
Show dismissed
Hide dismissed
Modules/Graphics/RHI/Interface/Sources/Methane/Graphics/RHI/ProgramArgument.cpp
Dismissed
Show dismissed
Hide dismissed
Quality Gate passedIssues Measures |
Quality Gate passedIssues Measures |
Quality Gate passedIssues Measures |
Summary
In Methane Kit v0.8.0, several significant enhancements have been introduced:
Tutorial applications
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
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.