Merge pull request #1783 from cdavis5e/discarded-frag-checks
MVKPipeline: Force extra checks for stores after fragment discard.
This commit is contained in:
commit
13535d0f35
@ -1 +1 @@
|
|||||||
57639196694a8b5c572c9358f5d9cb443dd341e5
|
c77b09b57c27837dc2d41aa371ed3d236ce9ce47
|
||||||
|
@ -1149,6 +1149,7 @@ bool MVKGraphicsPipeline::addFragmentShaderToPipeline(MTLRenderPipelineDescripto
|
|||||||
shaderConfig.options.entryPointName = _pFragmentSS->pName;
|
shaderConfig.options.entryPointName = _pFragmentSS->pName;
|
||||||
shaderConfig.options.mslOptions.capture_output_to_buffer = false;
|
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.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 (_isRasterizing && pCreateInfo->pMultisampleState) { // Must ignore allowed bad pMultisampleState pointer if rasterization disabled
|
||||||
if (pCreateInfo->pMultisampleState->pSampleMask && pCreateInfo->pMultisampleState->pSampleMask[0] != 0xffffffff) {
|
if (pCreateInfo->pMultisampleState->pSampleMask && pCreateInfo->pMultisampleState->pSampleMask[0] != 0xffffffff) {
|
||||||
shaderConfig.options.mslOptions.additional_fixed_sample_mask = pCreateInfo->pMultisampleState->pSampleMask[0];
|
shaderConfig.options.mslOptions.additional_fixed_sample_mask = pCreateInfo->pMultisampleState->pSampleMask[0];
|
||||||
@ -2240,13 +2241,15 @@ namespace SPIRV_CROSS_NAMESPACE {
|
|||||||
opt.force_native_arrays,
|
opt.force_native_arrays,
|
||||||
opt.enable_clip_distance_user_varying,
|
opt.enable_clip_distance_user_varying,
|
||||||
opt.multi_patch_workgroup,
|
opt.multi_patch_workgroup,
|
||||||
|
opt.raw_buffer_tese_input,
|
||||||
opt.vertex_for_tessellation,
|
opt.vertex_for_tessellation,
|
||||||
opt.arrayed_subpass_input,
|
opt.arrayed_subpass_input,
|
||||||
opt.ios_use_simdgroup_functions,
|
opt.ios_use_simdgroup_functions,
|
||||||
opt.emulate_subgroups,
|
opt.emulate_subgroups,
|
||||||
opt.vertex_index_type,
|
opt.vertex_index_type,
|
||||||
opt.force_sample_rate_shading,
|
opt.force_sample_rate_shading,
|
||||||
opt.raw_buffer_tese_input);
|
opt.manual_helper_invocation_updates,
|
||||||
|
opt.check_discarded_frag_stores);
|
||||||
}
|
}
|
||||||
|
|
||||||
template<class Archive>
|
template<class Archive>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user