Fix regression error in argument buffer runtime arrays.

- Update to latest SPIRV-Cross contining the fix.
- Modify CTS options in runcts script to avoid outputting full CTS log,
  and use less file caching, all to reduce memory and filespace consumption,
  and possibly improve performance (unrelated).
- Update MoltenVKShaderConverter tool to include Metal 3.1 support
  and improved argument buffer settings (unrelated).
- Force Github CI to use Python 3.11, to avoid crash in
  glslang::update_glslang_sources.py due to use of distutils,
  removed in Python 3.12 (unrelated).
- Small unrelated non-functional edits.
This commit is contained in:
Bill Hollings 2023-11-06 16:56:06 -05:00
parent bb914faa53
commit 40baeaa965
7 changed files with 22 additions and 4 deletions

View File

@ -39,6 +39,11 @@ jobs:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v3 - uses: actions/checkout@v3
# Python 3.12 removed distutils, which is used by glslang::update_glslang_sources.py called from fetchDependencies
- uses: actions/setup-python@v4
with:
python-version: '3.11'
- name: Select Xcode version - name: Select Xcode version
run: sudo xcode-select -switch "${XCODE_DEV_PATH}" run: sudo xcode-select -switch "${XCODE_DEV_PATH}"

View File

@ -19,6 +19,8 @@ MoltenVK 1.2.7
Released TBD Released TBD
- Reduce disk space consumed after running `fetchDependencies` script by removing intermediate file caches. - Reduce disk space consumed after running `fetchDependencies` script by removing intermediate file caches.
- Update to latest SPIRV-Cross:
- MSL: Fix regression error in argument buffer runtime arrays.
@ -61,6 +63,7 @@ MoltenVK 1.2.5
Released 2023/08/15 Released 2023/08/15
- Add support for extensions: - Add support for extensions:
- `VK_KHR_deferred_host_operations`
- `VK_KHR_incremental_present` - `VK_KHR_incremental_present`
- `VK_KHR_shader_non_semantic_info` - `VK_KHR_shader_non_semantic_info`
- `VK_EXT_4444_formats` - `VK_EXT_4444_formats`

View File

@ -1 +1 @@
2de1265fca722929785d9acdec4ab728c47a0254 4818f7e7ef7b7078a3a7a5a52c4a338e0dda22f4

View File

@ -2208,6 +2208,8 @@ void MVKPhysicalDevice::initMetalFeatures() {
if ([_mtlDevice respondsToSelector: @selector(argumentBuffersSupport)]) { if ([_mtlDevice respondsToSelector: @selector(argumentBuffersSupport)]) {
_metalFeatures.argumentBuffersTier = _mtlDevice.argumentBuffersSupport; _metalFeatures.argumentBuffersTier = _mtlDevice.argumentBuffersSupport;
} else {
_metalFeatures.argumentBuffersTier = MTLArgumentBuffersTier1;
} }
#define checkSupportsMTLCounterSamplingPoint(mtlSP, mvkSP) \ #define checkSupportsMTLCounterSamplingPoint(mtlSP, mvkSP) \

View File

@ -97,7 +97,7 @@
isEnabled = "NO"> isEnabled = "NO">
</CommandLineArgument> </CommandLineArgument>
<CommandLineArgument <CommandLineArgument
argument = "2.4" argument = "3.1"
isEnabled = "NO"> isEnabled = "NO">
</CommandLineArgument> </CommandLineArgument>
<CommandLineArgument <CommandLineArgument

View File

@ -220,7 +220,8 @@ bool MoltenVKShaderConverterTool::convertSPIRV(const vector<uint32_t>& spv,
mslContext.options.shouldFlipVertexY = _shouldFlipVertexY; mslContext.options.shouldFlipVertexY = _shouldFlipVertexY;
mslContext.options.mslOptions.argument_buffers = _useMetalArgumentBuffers; mslContext.options.mslOptions.argument_buffers = _useMetalArgumentBuffers;
mslContext.options.mslOptions.force_active_argument_buffer_resources = _useMetalArgumentBuffers; mslContext.options.mslOptions.force_active_argument_buffer_resources = _useMetalArgumentBuffers;
mslContext.options.mslOptions.pad_argument_buffer_resources = _useMetalArgumentBuffers; mslContext.options.mslOptions.pad_argument_buffer_resources = false;
mslContext.options.mslOptions.argument_buffers_tier = SPIRV_CROSS_NAMESPACE::CompilerMSL::Options::ArgumentBuffersTier::Tier2;
mslContext.options.mslOptions.replace_recursive_inputs = mvkOSVersionIsAtLeast(14.0, 17.0, 1.0); mslContext.options.mslOptions.replace_recursive_inputs = mvkOSVersionIsAtLeast(14.0, 17.0, 1.0);
SPIRVToMSLConverter spvConverter; SPIRVToMSLConverter spvConverter;
@ -425,7 +426,10 @@ MoltenVKShaderConverterTool::MoltenVKShaderConverterTool(int argc, const char* a
_quietMode = false; _quietMode = false;
_useMetalArgumentBuffers = false; _useMetalArgumentBuffers = false;
if (mvkOSVersionIsAtLeast(13.0)) { if (mvkOSVersionIsAtLeast(14.0)) {
_mslVersionMajor = 3;
_mslVersionMinor = 1;
} else if (mvkOSVersionIsAtLeast(13.0)) {
_mslVersionMajor = 3; _mslVersionMajor = 3;
_mslVersionMinor = 0; _mslVersionMinor = 0;
} else if (mvkOSVersionIsAtLeast(12.0)) { } else if (mvkOSVersionIsAtLeast(12.0)) {

View File

@ -122,8 +122,12 @@ start_time=${SECONDS}
"${cts_vk_dir}/deqp-vk" \ "${cts_vk_dir}/deqp-vk" \
--deqp-archive-dir="${cts_vk_dir}/.." \ --deqp-archive-dir="${cts_vk_dir}/.." \
--deqp-log-filename="/dev/null" \
--deqp-log-images=disable \ --deqp-log-images=disable \
--deqp-log-shader-sources=disable \ --deqp-log-shader-sources=disable \
--deqp-shadercache=disable \
--deqp-log-decompiled-spirv=disable \
--deqp-log-flush=disable \
--deqp-caselist-file="${caselist_file}" \ --deqp-caselist-file="${caselist_file}" \
&> "${results_file}" &> "${results_file}"