Skip to content

Commit

Permalink
Add experimental support of Apple's Metal Shader Converter instead of…
Browse files Browse the repository at this point in the history
… SPIRV-Cross
  • Loading branch information
egorodet committed Jan 3, 2024
1 parent 30c869f commit bf09848
Show file tree
Hide file tree
Showing 6 changed files with 141 additions and 38 deletions.
47 changes: 24 additions & 23 deletions Build/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -191,29 +191,30 @@ Build options listed in table below can be used in cmake generator command line:
cmake -G [Generator] ... -D[BUILD_OPTION_NAME]:BOOL=[ON|OFF]
```

| Build Option Name | Initial Value | Default Preset | Profiling Preset | Description |
|-------------------------------------------------|-----------------------------------|-----------------------------------|----------------------------------|-------------------------------------------------------------------------------------|
| <sub>METHANE_GFX_VULKAN_ENABLED</sub> | <sub><b>OFF</b></sub> | <sub><b>...</b></sub> | <sub><b>...</b></sub> | <sub>Enable Vulkan graphics API instead of platform native API</sub> |
| <sub>METHANE_APPS_BUILD_ENABLED</sub> | <sub><b>ON</b></sub> | <sub><b>ON</b></sub> | <sub><b>ON</b></sub> | <sub>Enable applications build</sub> |
| <sub>METHANE_TESTS_BUILD_ENABLED</sub> | <sub><b>ON</b></sub> | <sub><b>ON</b></sub> | <sub><b>OFF</b></sub> | <sub>Enable tests build</sub> |
| <sub>METHANE_RHI_PIMPL_INLINE_ENABLED</sub> | <sub><b>ON (in Release)</b></sub> | <sub><b>ON (in Release)</b></sub> | <sub><b>ON</b></sub> | <sub>Enable RHI PIMPL implementation inlining</sub> |
| <sub>METHANE_PRECOMPILED_HEADERS_ENABLED</sub> | <sub><b>ON (not Apple)</b></sub> | <sub><b>ON (not Apple)</b></sub> | <sub><b>ON (not Apple)</b></sub> | <sub>Enable precompiled headers</sub> |
| <sub>METHANE_CHECKS_ENABLED</sub> | <sub><b>ON</b></sub> | <sub><b>ON</b></sub> | <sub><b>ON</b></sub> | <sub>Enable runtime checks of input arguments</sub> |
| <sub>METHANE_RUN_TESTS_DURING_BUILD</sub> | <sub><b>ON</b></sub> | <sub><em>OFF</em></sub> | <sub><em>OFF</em></sub> | <sub>Enable test auto-run after module build</sub> |
| <sub>METHANE_UNITY_BUILD_ENABLED</sub> | <sub><b>ON</b></sub> | <sub><b>ON</b></sub> | <sub><b>ON</b></sub> | <sub>Enable unity build speedup for some modules</sub> |
| <sub>METHANE_CODE_COVERAGE_ENABLED</sub> | <sub><em>OFF</em></sub> | <sub><em>OFF</em></sub> | <sub><em>OFF</em></sub> | <sub>Enable code coverage data collection with GCC and Clang</sub> |
| <sub>METHANE_SHADERS_CODEVIEW_ENABLED</sub> | <sub><em>OFF</em></sub> | <sub><b>ON</b></sub> | <sub><b>ON</b></sub> | <sub>Enable shaders code symbols viewing in debug tools</sub> |
| <sub>METHANE_OPEN_IMAGE_IO_ENABLED</sub> | <sub><em>OFF</em></sub> | <sub><em>OFF</em></sub> | <sub><em>OFF</em></sub> | <sub>Enable using OpenImageIO library for images loading</sub> |
| <sub>METHANE_COMMAND_DEBUG_GROUPS_ENABLED</sub> | <sub><em>OFF</em></sub> | <sub><b>ON</b></sub> | <sub><b>ON</b></sub> | <sub>Enable command list debug groups with frame markup</sub> |
| <sub>METHANE_LOGGING_ENABLED</sub> | <sub><em>OFF</em></sub> | <sub><em>OFF</em></sub> | <sub><em>OFF</em></sub> | <sub>Enable debug logging</sub> |
| <sub>METHANE_SCOPE_TIMERS_ENABLED</sub> | <sub><em>OFF</em></sub> | <sub><em>OFF</em></sub> | <sub><b>ON</b></sub> | <sub>Enable low-overhead profiling with scope-timers</sub> |
| <sub>METHANE_ITT_INSTRUMENTATION_ENABLED</sub> | <sub><em>OFF</em></sub> | <sub><b>ON</b></sub> | <sub><b>ON</b></sub> | <sub>Enable ITT instrumentation for trace capture with Intel GPA or VTune</sub> |
| <sub>METHANE_ITT_METADATA_ENABLED</sub> | <sub><em>OFF</em></sub> | <sub><em>OFF</em></sub> | <sub><b>ON</b></sub> | <sub>Enable ITT metadata for tasks and events like function source locations</sub> |
| <sub>METHANE_GPU_INSTRUMENTATION_ENABLED</sub> | <sub><em>OFF</em></sub> | <sub><em>OFF</em></sub> | <sub><b>ON</b></sub> | <sub>Enable GPU instrumentation to collect command list execution timings</sub> |
| <sub>METHANE_TRACY_PROFILING_ENABLED</sub> | <sub><em>OFF</em></sub> | <sub><em>OFF</em></sub> | <sub><b>ON</b></sub> | <sub>Enable realtime profiling with Tracy</sub> |
| <sub>METHANE_TRACY_PROFILING_ON_DEMAND</sub> | <sub><em>OFF</em></sub> | <sub><em>OFF</em></sub> | <sub><b>ON</b></sub> | <sub>Enable Tracy data collection on demand, after client connection</sub> |
| <sub>METHANE_MEMORY_SANITIZER_ENABLED</sub> | <sub><em>OFF</em></sub> | <sub><em>OFF</em></sub> | <sub><b>OFF</b></sub> | <sub>Enable memory address sanitizer in compiler and linker</sub> |
| <sub>METHANE_APPLE_CODE_SIGNING_ENABLED</sub> | <sub><em>OFF</em></sub> | <sub><em>OFF</em></sub> | <sub><b>OFF</b></sub> | <sub>Enable code signing on Apple platforms (requires APPLE_DEVELOPMENT_TEAM)</sub> |
| Build Option Name | Initial Value | Default Preset | Profiling Preset | Description |
|---------------------------------------------------|-----------------------------------|-----------------------------------|----------------------------------|-------------------------------------------------------------------------------------|
| <sub>METHANE_GFX_VULKAN_ENABLED</sub> | <sub><b>OFF</b></sub> | <sub><b>...</b></sub> | <sub><b>...</b></sub> | <sub>Enable Vulkan graphics API instead of platform native API</sub> |
| <sub>METHANE_APPS_BUILD_ENABLED</sub> | <sub><b>ON</b></sub> | <sub><b>ON</b></sub> | <sub><b>ON</b></sub> | <sub>Enable applications build</sub> |
| <sub>METHANE_TESTS_BUILD_ENABLED</sub> | <sub><b>ON</b></sub> | <sub><b>ON</b></sub> | <sub><b>OFF</b></sub> | <sub>Enable tests build</sub> |
| <sub>METHANE_RHI_PIMPL_INLINE_ENABLED</sub> | <sub><b>ON (in Release)</b></sub> | <sub><b>ON (in Release)</b></sub> | <sub><b>ON</b></sub> | <sub>Enable RHI PIMPL implementation inlining</sub> |
| <sub>METHANE_PRECOMPILED_HEADERS_ENABLED</sub> | <sub><b>ON (not Apple)</b></sub> | <sub><b>ON (not Apple)</b></sub> | <sub><b>ON (not Apple)</b></sub> | <sub>Enable precompiled headers</sub> |
| <sub>METHANE_CHECKS_ENABLED</sub> | <sub><b>ON</b></sub> | <sub><b>ON</b></sub> | <sub><b>ON</b></sub> | <sub>Enable runtime checks of input arguments</sub> |
| <sub>METHANE_RUN_TESTS_DURING_BUILD</sub> | <sub><b>ON</b></sub> | <sub><em>OFF</em></sub> | <sub><em>OFF</em></sub> | <sub>Enable test auto-run after module build</sub> |
| <sub>METHANE_UNITY_BUILD_ENABLED</sub> | <sub><b>ON</b></sub> | <sub><b>ON</b></sub> | <sub><b>ON</b></sub> | <sub>Enable unity build speedup for some modules</sub> |
| <sub>METHANE_CODE_COVERAGE_ENABLED</sub> | <sub><em>OFF</em></sub> | <sub><em>OFF</em></sub> | <sub><em>OFF</em></sub> | <sub>Enable code coverage data collection with GCC and Clang</sub> |
| <sub>METHANE_SHADERS_CODEVIEW_ENABLED</sub> | <sub><em>OFF</em></sub> | <sub><b>ON</b></sub> | <sub><b>ON</b></sub> | <sub>Enable shaders code symbols viewing in debug tools</sub> |
| <sub>METHANE_OPEN_IMAGE_IO_ENABLED</sub> | <sub><em>OFF</em></sub> | <sub><em>OFF</em></sub> | <sub><em>OFF</em></sub> | <sub>Enable using OpenImageIO library for images loading</sub> |
| <sub>METHANE_COMMAND_DEBUG_GROUPS_ENABLED</sub> | <sub><em>OFF</em></sub> | <sub><b>ON</b></sub> | <sub><b>ON</b></sub> | <sub>Enable command list debug groups with frame markup</sub> |
| <sub>METHANE_LOGGING_ENABLED</sub> | <sub><em>OFF</em></sub> | <sub><em>OFF</em></sub> | <sub><em>OFF</em></sub> | <sub>Enable debug logging</sub> |
| <sub>METHANE_SCOPE_TIMERS_ENABLED</sub> | <sub><em>OFF</em></sub> | <sub><em>OFF</em></sub> | <sub><b>ON</b></sub> | <sub>Enable low-overhead profiling with scope-timers</sub> |
| <sub>METHANE_ITT_INSTRUMENTATION_ENABLED</sub> | <sub><em>OFF</em></sub> | <sub><b>ON</b></sub> | <sub><b>ON</b></sub> | <sub>Enable ITT instrumentation for trace capture with Intel GPA or VTune</sub> |
| <sub>METHANE_ITT_METADATA_ENABLED</sub> | <sub><em>OFF</em></sub> | <sub><em>OFF</em></sub> | <sub><b>ON</b></sub> | <sub>Enable ITT metadata for tasks and events like function source locations</sub> |
| <sub>METHANE_GPU_INSTRUMENTATION_ENABLED</sub> | <sub><em>OFF</em></sub> | <sub><em>OFF</em></sub> | <sub><b>ON</b></sub> | <sub>Enable GPU instrumentation to collect command list execution timings</sub> |
| <sub>METHANE_TRACY_PROFILING_ENABLED</sub> | <sub><em>OFF</em></sub> | <sub><em>OFF</em></sub> | <sub><b>ON</b></sub> | <sub>Enable realtime profiling with Tracy</sub> |
| <sub>METHANE_TRACY_PROFILING_ON_DEMAND</sub> | <sub><em>OFF</em></sub> | <sub><em>OFF</em></sub> | <sub><b>ON</b></sub> | <sub>Enable Tracy data collection on demand, after client connection</sub> |
| <sub>METHANE_MEMORY_SANITIZER_ENABLED</sub> | <sub><em>OFF</em></sub> | <sub><em>OFF</em></sub> | <sub><b>OFF</b></sub> | <sub>Enable memory address sanitizer in compiler and linker</sub> |
| <sub>METHANE_APPLE_CODE_SIGNING_ENABLED</sub> | <sub><em>OFF</em></sub> | <sub><em>OFF</em></sub> | <sub><b>OFF</b></sub> | <sub>Enable code signing on Apple platforms (requires APPLE_DEVELOPMENT_TEAM)</sub> |
| <sub>METHANE_METAL_SHADER_CONVERTER_ENABLED</sub> | <sub><em>OFF</em></sub> | <sub><em>OFF</em></sub> | <sub><em>OFF</em></sub> | <sub>Enable Metal Shader Converter instead of SPIRV-Cross on Apple platforms</sub> |

### CMake Presets

Expand Down
64 changes: 56 additions & 8 deletions CMake/MethaneShaders.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -73,9 +73,13 @@ endfunction()

function(get_generated_shader_extension OUT_SHADER_EXT)
if(METHANE_GFX_API EQUAL METHANE_GFX_DIRECTX)
set(${OUT_SHADER_EXT} "obj" PARENT_SCOPE)
set(${OUT_SHADER_EXT} "dxil" PARENT_SCOPE)
elseif(METHANE_GFX_API EQUAL METHANE_GFX_METAL)
set(${OUT_SHADER_EXT} "metal" PARENT_SCOPE)
if (METHANE_METAL_SHADER_CONVERTER_ENABLED)
set(${OUT_SHADER_EXT} "dxil" PARENT_SCOPE)
else()
set(${OUT_SHADER_EXT} "metal" PARENT_SCOPE)
endif()
elseif(METHANE_GFX_API EQUAL METHANE_GFX_VULKAN)
set(${OUT_SHADER_EXT} "spirv" PARENT_SCOPE)
endif()
Expand All @@ -86,7 +90,6 @@ function(generate_metal_shaders_from_hlsl FOR_TARGET SHADERS_HLSL PROFILE_VER SH
get_file_name(${SHADERS_HLSL} SHADERS_NAME)

set(DXC_EXE "${DXC_BINARY_DIR}/dxc")
#set(SPIRV_GEN_EXE "${SPIRV_BINARY_DIR}/glslangValidator")
set(SPIRV_CROSS_EXE "${SPIRV_BINARY_DIR}/spirv-cross")

foreach(KEY_VALUE_STRING ${SHADER_TYPES})
Expand Down Expand Up @@ -118,7 +121,6 @@ function(generate_metal_shaders_from_hlsl FOR_TARGET SHADERS_HLSL PROFILE_VER SH
DEPENDS "${SHADERS_HLSL}"
COMMAND ${CMAKE_COMMAND} -E make_directory "${TARGET_SHADERS_DIR}"
COMMAND ${DXC_EXE} -spirv -T ${SHADER_PROFILE} -E ${OLD_ENTRY_POINT} ${SHADER_DEFINITION_ARGUMENTS} "${SHADERS_HLSL}" -Fo "${SHADER_SPIRV_PATH}"
#COMMAND ${SPIRV_GEN_EXE} --hlsl-iomap -S ${SHADER_TYPE} -e ${OLD_ENTRY_POINT} ${SHADER_DEFINITION_ARGUMENTS} -o "${SHADER_SPIRV_PATH}" -V -D "${SHADERS_HLSL}"
COMMAND ${SPIRV_CROSS_EXE} --msl --msl-version 020101 --msl-decoration-binding --rename-entry-point ${OLD_ENTRY_POINT} ${NEW_ENTRY_POINT} ${SHADER_TYPE} --output "${SHADER_METAL_PATH}" "${SHADER_SPIRV_PATH}"
)

Expand Down Expand Up @@ -196,6 +198,43 @@ function(compile_metal_shaders_to_library FOR_TARGET SDK METAL_SHADERS METAL_LIB
add_dependencies(${FOR_TARGET} ${METAL_LIB_TARGET})
endfunction()

function(compile_dxil_to_metal_library FOR_TARGET COMPILE_SHADER_TARGETS COMPILED_SHADER_BINARIES LIBRARY_NAME OUT_METAL_LIBRARIES)

foreach(DXIL_SHADER_BINARY ${COMPILED_SHADER_BINARIES})
if (METAL_SHADER_CONV_COMMAND)
list(APPEND METAL_SHADER_CONV_COMMAND "&&")
endif()
get_target_shaders_dir(${FOR_TARGET} TARGET_SHADERS_DIR)
get_file_name(${DXIL_SHADER_BINARY} SHADER_METAL_LIBRARY_NAME)
set(SHADER_METAL_LIBRARY "${TARGET_SHADERS_DIR}/${SHADER_METAL_LIBRARY_NAME}.metallib")
list(APPEND METAL_SHADER_CONV_COMMAND "metal-shaderconverter" -o "${SHADER_METAL_LIBRARY}" "${DXIL_SHADER_BINARY}")
list(APPEND SHADER_METAL_LIBRARIES "${SHADER_METAL_LIBRARY}")
endforeach ()

set(METAL_LIB_TARGET ${FOR_TARGET}_CompileMetalLibrary_${LIBRARY_NAME})
add_custom_target(${METAL_LIB_TARGET}
COMMENT "Convert compiled DXIL to Metal libraries for application " ${TARGET}
BYPRODUCTS "${SHADER_METAL_LIBRARIES}"
DEPENDS "${COMPILED_SHADER_BINARIES}"
COMMAND ${METAL_SHADER_CONV_COMMAND}
)

set_target_properties(${METAL_LIB_TARGET}
PROPERTIES
FOLDER "Build/${FOR_TARGET}/Shaders"
)

set_target_properties(${FOR_TARGET}
PROPERTIES
METAL_LIB_TARGET ${METAL_LIB_TARGET}
)

add_dependencies(${METAL_LIB_TARGET} ${COMPILE_SHADER_TARGETS})
add_dependencies(${FOR_TARGET} ${METAL_LIB_TARGET})

set(${OUT_METAL_LIBRARIES} "${SHADER_METAL_LIBRARIES}" PARENT_SCOPE)
endfunction()

function(compile_hlsl_shaders FOR_TARGET SHADERS_HLSL PROFILE_VER SHADER_TYPES OUT_COMPILED_SHADER_BINARIES OUT_COMPILE_SHADER_TARGETS)
get_target_shaders_dir(${FOR_TARGET} TARGET_SHADERS_DIR)
get_file_name(${SHADERS_HLSL} SHADERS_NAME)
Expand Down Expand Up @@ -311,15 +350,24 @@ function(add_methane_shaders_source)
set_property(TARGET ${SHADERS_TARGET} APPEND PROPERTY COMPILED_SHADER_BINARIES ${COMPILED_SHADER_BINARIES})
set_property(TARGET ${SHADERS_TARGET} APPEND PROPERTY COMPILE_SHADER_TARGETS ${COMPILE_SHADER_TARGETS})

elseif(METHANE_GFX_API EQUAL METHANE_GFX_METAL)
elseif (METHANE_GFX_API EQUAL METHANE_GFX_METAL)

set(SHADERS_METAL) # init with empty list
get_metal_library(${SHADERS_TARGET} ${SHADERS_SOURCE_PATH} METAL_LIBRARY)
get_apple_sdk(SDK_NAME)
generate_metal_shaders_from_hlsl(${SHADERS_TARGET} "${SHADERS_SOURCE_PATH}" "${SHADERS_VERSION}" "${SHADERS_TYPES}" SHADERS_METAL GENERATE_METAL_TARGETS)
compile_metal_shaders_to_library(${SHADERS_TARGET} "${SDK_NAME}" "${SHADERS_METAL}" "${METAL_LIBRARY}")
if (METHANE_METAL_SHADER_CONVERTER_ENABLED)
# Use Apple's Metal Shader Converter to compile from DXIL directly to Metal library
get_file_name(${METAL_LIBRARY} LIBRARY_NAME)
compile_hlsl_shaders(${SHADERS_TARGET} "${SHADERS_SOURCE_PATH}" "${SHADERS_VERSION}" "${SHADERS_TYPES}" COMPILED_SHADER_BINARIES COMPILE_SHADER_TARGETS)
compile_dxil_to_metal_library(${SHADERS_TARGET} "${COMPILE_SHADER_TARGETS}" "${COMPILED_SHADER_BINARIES}" "${LIBRARY_NAME}" METAL_LIBRARIES)
set_property(TARGET ${SHADERS_TARGET} APPEND PROPERTY METAL_LIBRARIES ${METAL_LIBRARIES})
else()
# Use SPIRV-Cross to convert compiled HLSL as SPIRV to Metal shader sources and then compile to Metal library
generate_metal_shaders_from_hlsl(${SHADERS_TARGET} "${SHADERS_SOURCE_PATH}" "${SHADERS_VERSION}" "${SHADERS_TYPES}" SHADERS_METAL GENERATE_METAL_TARGETS)
compile_metal_shaders_to_library(${SHADERS_TARGET} "${SDK_NAME}" "${SHADERS_METAL}" "${METAL_LIBRARY}")
set_property(TARGET ${SHADERS_TARGET} APPEND PROPERTY METAL_LIBRARIES ${METAL_LIBRARY})
endif()
set_property(TARGET ${SHADERS_TARGET} APPEND PROPERTY METAL_SOURCES ${SHADERS_METAL})
set_property(TARGET ${SHADERS_TARGET} APPEND PROPERTY METAL_LIBRARIES ${METAL_LIBRARY})
set_property(TARGET ${SHADERS_TARGET} APPEND PROPERTY GENERATE_METAL_TARGETS ${GENERATE_METAL_TARGETS})

endif()
Expand Down
4 changes: 4 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,10 @@ option(METHANE_CODE_COVERAGE_ENABLED "Enable code coverage data collectio
option(METHANE_SHADERS_CODEVIEW_ENABLED "Enable shaders code symbols viewing in debug tools" OFF)
option(METHANE_OPEN_IMAGE_IO_ENABLED "Enable using OpenImageIO library for images loading" OFF)

if(APPLE)
option(METHANE_METAL_SHADER_CONVERTER_ENABLED "Enable Apple Metal Shader Converter instead of SPIRV-Cross" OFF)
endif()

# Profiling and instrumentation configuration
option(METHANE_COMMAND_DEBUG_GROUPS_ENABLED "Enable command list debug groups with frame markup" OFF)
option(METHANE_LOGGING_ENABLED "Enable debug logging" OFF)
Expand Down
8 changes: 8 additions & 0 deletions Modules/Graphics/RHI/Metal/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -115,3 +115,11 @@ set_source_files_properties(
SKIP_PRECOMPILE_HEADERS ON
SKIP_UNITY_BUILD_INCLUSION ON
)

if (METHANE_METAL_SHADER_CONVERTER_ENABLED)
set_source_files_properties(
${SOURCES_DIR}/Shader.mm
PROPERTIES
COMPILE_FLAGS "-DMETAL_LIBRARY_SPLIT_BY_SHADER_ENTRY_FUNCTION"
)
endif()
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,8 @@ public:
private:
const IContext& GetMetalContext() const noexcept;

static id<MTLFunction> GetMetalLibraryFunction(const IContext& context, const Rhi::ShaderSettings& settings);

id<MTLFunction> m_mtl_function;
NSArray<id<MTLBinding>>* m_mtl_bindings = nil;
};
Expand Down
Loading

10 comments on commit bf09848

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

MacOS_VK_Release Test Results

  • ✅ 3167 tests passed
  • ❌ 0 tests failed
  • ⚠️ 0 tests skipped
  • ⏱️ 952 ms. run duration

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ubuntu_VK_Release Test Results

  • ✅ 3168 tests passed
  • ❌ 0 tests failed
  • ⚠️ 0 tests skipped
  • ⏱️ 11617 ms. run duration

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Win32_DX_Release Test Results

  • ✅ 3167 tests passed
  • ❌ 0 tests failed
  • ⚠️ 0 tests skipped
  • ⏱️ 918 ms. run duration

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

MacOS_MTL_Release Test Results

  • ✅ 3167 tests passed
  • ❌ 0 tests failed
  • ⚠️ 0 tests skipped
  • ⏱️ 990 ms. run duration

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Win32_VK_Release Test Results

  • ✅ 3167 tests passed
  • ❌ 0 tests failed
  • ⚠️ 0 tests skipped
  • ⏱️ 909 ms. run duration

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Win64_VK_Release Test Results

  • ✅ 3167 tests passed
  • ❌ 0 tests failed
  • ⚠️ 0 tests skipped
  • ⏱️ 919 ms. run duration

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Win64_DX_Release Test Results

  • ✅ 3167 tests passed
  • ❌ 0 tests failed
  • ⚠️ 0 tests skipped
  • ⏱️ 914 ms. run duration

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Win64_DX_SonarScan Tests Code Coverage

Code Coverage

Package Line Rate Branch Rate Health
D:\a\MethaneKit\MethaneKit\Build\Output\Ninja-Win-DX-Scan\Install\Tests\MethaneDataEventsTest.exe 95% 100%
D:\a\MethaneKit\MethaneKit\Build\Output\Ninja-Win-DX-Scan\Install\Tests\MethaneDataRangeSetTest.exe 91% 100%
D:\a\MethaneKit\MethaneKit\Build\Output\Ninja-Win-DX-Scan\Install\Tests\MethaneDataTypesTest.exe 98% 100%
D:\a\MethaneKit\MethaneKit\Build\Output\Ninja-Win-DX-Scan\Install\Tests\MethaneGraphicsCameraTest.exe 61% 100%
D:\a\MethaneKit\MethaneKit\Build\Output\Ninja-Win-DX-Scan\Install\Tests\MethaneGraphicsRhiTest.exe 48% 100%
D:\a\MethaneKit\MethaneKit\Build\Output\Ninja-Win-DX-Scan\Install\Tests\MethaneGraphicsTypesTest.exe 98% 100%
D:\a\MethaneKit\MethaneKit\Build\Output\Ninja-Win-DX-Scan\Install\Tests\MethanePlatformInputTest.exe 43% 100%
D:\a\MethaneKit\MethaneKit\Build\Output\Ninja-Win-DX-Scan\Install\Tests\MethaneUserInterfaceTypesTest.exe 9% 100%
Summary 36% (4834 / 13382) 100% (0 / 0)

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

MacOS_MTL_SonarScan Tests Code Coverage

Code Coverage

Package Line Rate Branch Rate Health
Default 50% 22%
Summary 50% (12267 / 24651) 22% (3223 / 14968)

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ubuntu_VK_SonarScan Tests Code Coverage

Code Coverage

Package Line Rate Branch Rate Health
Default 40% 100%
Summary 40% (8247 / 20599) 100% (0 / 0)

Please sign in to comment.