MVKPipeline: Force extra checks for stores after fragment discard.
Update SPIRV-Cross to pull in multiple CTS fixes. Handle the new `check_discarded_frag_stores` and `manual_helper_invocation_updates` options.
This commit is contained in:
parent
417d27da72
commit
03ce25da20
@ -1 +1 @@
|
||||
57639196694a8b5c572c9358f5d9cb443dd341e5
|
||||
c77b09b57c27837dc2d41aa371ed3d236ce9ce47
|
||||
|
@ -1149,6 +1149,7 @@ bool MVKGraphicsPipeline::addFragmentShaderToPipeline(MTLRenderPipelineDescripto
|
||||
shaderConfig.options.entryPointName = _pFragmentSS->pName;
|
||||
shaderConfig.options.mslOptions.capture_output_to_buffer = false;
|
||||
shaderConfig.options.mslOptions.fixed_subgroup_size = mvkIsAnyFlagEnabled(_pFragmentSS->flags, VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT) ? 0 : _device->_pMetalFeatures->maxSubgroupSize;
|
||||
shaderConfig.options.mslOptions.check_discarded_frag_stores = true;
|
||||
if (_isRasterizing && pCreateInfo->pMultisampleState) { // Must ignore allowed bad pMultisampleState pointer if rasterization disabled
|
||||
if (pCreateInfo->pMultisampleState->pSampleMask && pCreateInfo->pMultisampleState->pSampleMask[0] != 0xffffffff) {
|
||||
shaderConfig.options.mslOptions.additional_fixed_sample_mask = pCreateInfo->pMultisampleState->pSampleMask[0];
|
||||
@ -2240,13 +2241,15 @@ namespace SPIRV_CROSS_NAMESPACE {
|
||||
opt.force_native_arrays,
|
||||
opt.enable_clip_distance_user_varying,
|
||||
opt.multi_patch_workgroup,
|
||||
opt.raw_buffer_tese_input,
|
||||
opt.vertex_for_tessellation,
|
||||
opt.arrayed_subpass_input,
|
||||
opt.ios_use_simdgroup_functions,
|
||||
opt.emulate_subgroups,
|
||||
opt.vertex_index_type,
|
||||
opt.force_sample_rate_shading,
|
||||
opt.raw_buffer_tese_input);
|
||||
opt.manual_helper_invocation_updates,
|
||||
opt.check_discarded_frag_stores);
|
||||
}
|
||||
|
||||
template<class Archive>
|
||||
|
Loading…
x
Reference in New Issue
Block a user