Merge pull request #1509 from cdavis5e/mac-post-depth-coverage

MSL: Allow post-depth coverage on Mac in MSL 2.3.
This commit is contained in:
Hans-Kristian Arntzen 2020-10-29 09:50:44 +01:00 committed by GitHub
commit 78c6d2d628
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 48 additions and 3 deletions

View File

@ -0,0 +1,17 @@
#include <metal_stdlib>
#include <simd/simd.h>
using namespace metal;
struct main0_out
{
float4 FragColor [[color(0)]];
};
[[ early_fragment_tests ]] fragment main0_out main0(uint gl_SampleMaskIn [[sample_mask, post_depth_coverage]])
{
main0_out out = {};
out.FragColor = float4(float(gl_SampleMaskIn));
return out;
}

View File

@ -0,0 +1,17 @@
#include <metal_stdlib>
#include <simd/simd.h>
using namespace metal;
struct main0_out
{
float4 FragColor [[color(0)]];
};
[[ early_fragment_tests ]] fragment main0_out main0(uint gl_SampleMaskIn [[sample_mask, post_depth_coverage]])
{
main0_out out = {};
out.FragColor = float4(float(gl_SampleMaskIn));
return out;
}

View File

@ -0,0 +1,11 @@
#version 450
#extension GL_ARB_post_depth_coverage : require
layout(post_depth_coverage) in;
layout(location = 0) out vec4 FragColor;
void main()
{
FragColor = vec4(gl_SampleMaskIn[0]);
}

View File

@ -10092,9 +10092,9 @@ void CompilerMSL::entry_point_args_builtin(string &ep_args)
if (bi_type == BuiltInSampleMask && get_entry_point().flags.get(ExecutionModePostDepthCoverage))
{
if (!msl_options.supports_msl_version(2))
SPIRV_CROSS_THROW("Post-depth coverage requires Metal 2.0.");
if (!msl_options.is_ios())
SPIRV_CROSS_THROW("Post-depth coverage is only supported on iOS.");
SPIRV_CROSS_THROW("Post-depth coverage requires MSL 2.0.");
if (msl_options.is_macos() && !msl_options.supports_msl_version(2, 3))
SPIRV_CROSS_THROW("Post-depth coverage on Mac requires MSL 2.3.");
ep_args += ", post_depth_coverage";
}
ep_args += "]]";