Merge pull request #976 from cdavis5e/pipeline-sample-mask

MVKPipeline: Pass the pipeline sample mask, if present, to SPIRV-Cross.
This commit is contained in:
Bill Hollings 2020-07-27 10:31:44 -04:00 committed by GitHub
commit 6b25c816b5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 7 additions and 1 deletions

View File

@ -38,6 +38,7 @@ Released TBD
- Add `MVKPhysicalDeviceMetalFeatures::vertexStrideAlignment` to track Metal vertex binding stride alignment.
- Add `MVKPhysicalDeviceMetalFeatures::indirectTessellationDrawing` to track if indirect tessellation drawing is supported.
- Remove use of `@available()` directive as it was causing issues in some build environments.
- Pass pipeline sample mask, if present, to SPIRV-Cross.
- Refactor **MoltenVK** *Xcode* build architectures.
- Demo `API-Samples generateSPIRVShaders` no longer builds `MoltenVKShaderController` tool.
- Update `VK_MVK_MOLTENVK_SPEC_VERSION` to `27`.

View File

@ -1 +1 @@
3b366db7f1eed21c31b275f9f7b119d7b00c1b2a
0376576d2dc0721edfb2c5a0257fdc275f6f39dc

View File

@ -930,6 +930,9 @@ bool MVKGraphicsPipeline::addFragmentShaderToPipeline(MTLRenderPipelineDescripto
shaderContext.options.mslOptions.buffer_size_buffer_index = _bufferSizeBufferIndex.stages[kMVKShaderStageFragment];
shaderContext.options.entryPointName = _pFragmentSS->pName;
shaderContext.options.mslOptions.capture_output_to_buffer = false;
if (pCreateInfo->pMultisampleState && pCreateInfo->pMultisampleState->pSampleMask && pCreateInfo->pMultisampleState->pSampleMask[0] != 0xffffffff) {
shaderContext.options.mslOptions.additional_fixed_sample_mask = pCreateInfo->pMultisampleState->pSampleMask[0];
}
addPrevStageOutputToShaderConverterContext(shaderContext, shaderOutputs);
MVKMTLFunction func = ((MVKShaderModule*)_pFragmentSS->module)->getMTLFunction(&shaderContext, _pFragmentSS->pSpecializationInfo, _pipelineCache);
@ -1700,6 +1703,7 @@ namespace SPIRV_CROSS_NAMESPACE {
opt.dynamic_offsets_buffer_index,
opt.shader_input_wg_index,
opt.device_index,
opt.additional_fixed_sample_mask,
opt.enable_frag_output_mask,
opt.enable_point_size_builtin,
opt.enable_frag_depth_builtin,

View File

@ -56,6 +56,7 @@ MVK_PUBLIC_SYMBOL bool SPIRVToMSLConversionOptions::matches(const SPIRVToMSLConv
if (mslOptions.buffer_size_buffer_index != other.mslOptions.buffer_size_buffer_index) { return false; }
if (mslOptions.shader_input_wg_index != other.mslOptions.shader_input_wg_index) { return false; }
if (mslOptions.enable_frag_output_mask != other.mslOptions.enable_frag_output_mask) { return false; }
if (mslOptions.additional_fixed_sample_mask != other.mslOptions.additional_fixed_sample_mask) { return false; }
if (!!mslOptions.enable_point_size_builtin != !!other.mslOptions.enable_point_size_builtin) { return false; }
if (!!mslOptions.enable_frag_depth_builtin != !!other.mslOptions.enable_frag_depth_builtin) { return false; }
if (!!mslOptions.enable_frag_stencil_ref_builtin != !!other.mslOptions.enable_frag_stencil_ref_builtin) { return false; }