2
0
mirror of https://github.com/AxioDL/metaforce.git synced 2025-12-08 12:24:56 +00:00

macOS build fixes

This commit is contained in:
Jack Andersen
2018-10-18 16:44:41 -10:00
parent 27ca93178a
commit 395e5c191b
5 changed files with 19 additions and 11 deletions

View File

@@ -196,6 +196,7 @@ Texture2D zFrontfaceTex : register(t0);
Texture2D zBackfaceTex : register(t1);
Texture2D zLinearizer : register(t2);
SamplerState samp : register(s0);
SamplerState zLinearizerSamp : register(s3);
float4 main(in VertToFrag vtf) : SV_Target0
{
float frontY;
@@ -204,8 +205,8 @@ float4 main(in VertToFrag vtf) : SV_Target0
float frontX = modf((1.0 - zFrontfaceTex.Sample(samp, vtf.uv).r) * linScale, frontY);
float backX = modf((1.0 - zBackfaceTex.Sample(samp, vtf.uv).r) * linScale, backY);
const float uvBias = 0.5 / 256.0;
float frontLin = zLinearizer.Sample(samp, float2(frontX * 255.0 / 256.0 + uvBias, frontY / 256.0 + uvBias)).r;
float backLin = zLinearizer.Sample(samp, float2(backX * 255.0 / 256.0 + uvBias, backY / 256.0 + uvBias)).r;
float frontLin = zLinearizer.Sample(zLinearizerSamp, float2(frontX * 255.0 / 256.0 + uvBias, frontY / 256.0 + uvBias)).r;
float backLin = zLinearizer.Sample(zLinearizerSamp, float2(backX * 255.0 / 256.0 + uvBias, backY / 256.0 + uvBias)).r;
return float4(vtf.color.rgb, (frontLin - backLin) * 10.0);
}
@@ -219,6 +220,7 @@ struct VertToFrag
fragment float4 fmain(VertToFrag vtf [[ stage_in ]],
sampler samp [[ sampler(0) ]],
sampler zLinearizerSamp [[ sampler(3) ]],
texture2d<float> zFrontfaceTex [[ texture(0) ]],
texture2d<float> zBackfaceTex [[ texture(1) ]],
texture2d<float> zLinearizer [[ texture(2) ]])
@@ -229,7 +231,7 @@ fragment float4 fmain(VertToFrag vtf [[ stage_in ]],
float frontX = modf((1.0 - zFrontfaceTex.sample(samp, vtf.uv).r) * linScale, frontY);
float backX = modf((1.0 - zBackfaceTex.sample(samp, vtf.uv).r) * linScale, backY);
const float uvBias = 0.5 / 256.0;
float frontLin = zLinearizer.sample(samp, float2(frontX * 255.0 / 256.0 + uvBias, frontY / 256.0 + uvBias)).r;
float backLin = zLinearizer.sample(samp, float2(backX * 255.0 / 256.0 + uvBias, backY / 256.0 + uvBias)).r;
float frontLin = zLinearizer.sample(zLinearizerSamp, float2(frontX * 255.0 / 256.0 + uvBias, frontY / 256.0 + uvBias)).r;
float backLin = zLinearizer.sample(zLinearizerSamp, float2(backX * 255.0 / 256.0 + uvBias, backY / 256.0 + uvBias)).r;
return float4(vtf.color.rgb, (frontLin - backLin) * 10.0);
}

View File

@@ -551,7 +551,7 @@ static std::string _BuildFS(const SFluidPlaneShaderInfo& info)
// ZERO, TEX, ONE, C0
// Output reg 0, subtract, clamp, no bias
combiner += " float3 lightVec = lights[3].pos.xyz - vtf.mvPos.xyz;\n"
combiner += " float3 lightVec = lu.lights[3].pos.xyz - vtf.mvPos.xyz;\n"
" float lx = dot(vtf.mvTangent.xyz, lightVec);\n"
" float ly = dot(vtf.mvBinorm.xyz, lightVec);\n";
combiner += hecl::Format(" float4 emboss1 = bumpMap.sample(samp, vtf.uv%d) + float4(0.5);\n"
@@ -648,9 +648,6 @@ static std::string _BuildAdditionalTCGs(const SFluidPlaneShaderInfo& info)
static std::string _BuildVS(const SFluidPlaneShaderInfo& info, bool tessellation)
{
if (tessellation)
return TessCS;
std::string additionalTCGs = _BuildAdditionalTCGs(info);
char *finalVSs;
@@ -673,6 +670,13 @@ std::string StageObject_CFluidPlaneShader<hecl::PlatformType::Metal, hecl::Pipel
return _BuildFS(in);
}
template <>
std::string StageObject_CFluidPlaneShader<hecl::PlatformType::Metal, hecl::PipelineStage::Control>::BuildShader
(const SFluidPlaneShaderInfo& in, bool tessellation)
{
return TessCS;
}
static std::string BuildES(const SFluidPlaneShaderInfo& info)
{
int nextTex = 0;
@@ -700,6 +704,7 @@ static std::string BuildES(const SFluidPlaneShaderInfo& info)
return ret;
}
template <>
std::string StageObject_CFluidPlaneShader<hecl::PlatformType::Metal, hecl::PipelineStage::Evaluation>::BuildShader
(const SFluidPlaneShaderInfo& in, bool tessellation)