mirror of
https://github.com/hedge-dev/XenosRecomp.git
synced 2025-10-30 07:12:17 +00:00
Compare commits
4 commits
995d2889d4
...
6c7c8fa87d
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6c7c8fa87d | ||
|
|
790c8be91b | ||
|
|
2d9e24c52f | ||
|
|
9112665766 |
2 changed files with 19 additions and 6 deletions
|
|
@ -168,6 +168,12 @@ float rcp(T a)
|
|||
{
|
||||
return 1.0 / a;
|
||||
}
|
||||
|
||||
template<typename T>
|
||||
float4x4 mul(T a, T b)
|
||||
{
|
||||
a * b;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef __air__
|
||||
|
|
|
|||
|
|
@ -1360,13 +1360,15 @@ void ShaderRecompiler::recompile(const uint8_t* shaderData, const std::string_vi
|
|||
|
||||
out += "#if __air__\n";
|
||||
|
||||
out += "struct StageIn\n";
|
||||
out += "{\n";
|
||||
if (isPixelShader) {
|
||||
out += "struct StageIn\n";
|
||||
out += "{\n";
|
||||
|
||||
for (auto& [usage, usageIndex] : INTERPOLATORS)
|
||||
println("\tfloat4 i{}{};", USAGE_VARIABLES[uint32_t(usage)], usageIndex);
|
||||
for (auto& [usage, usageIndex] : INTERPOLATORS)
|
||||
println("\tfloat4 i{}{};", USAGE_VARIABLES[uint32_t(usage)], usageIndex);
|
||||
|
||||
out += "};\n";
|
||||
out += "};\n";
|
||||
}
|
||||
|
||||
if (isPixelShader)
|
||||
out += "[[fragment]]\n";
|
||||
|
|
@ -1479,8 +1481,13 @@ void ShaderRecompiler::recompile(const uint8_t* shaderData, const std::string_vi
|
|||
#ifdef UNLEASHED_RECOMP
|
||||
if (hasIndexCount)
|
||||
{
|
||||
out += "#ifdef __air__\n";
|
||||
out += "\tuint iVertexId [[vertex_id]],\n";
|
||||
out += "\tuint iInstanceId [[instance_id]],\n";
|
||||
out += "#else\n";
|
||||
out += "\tin uint iVertexId : SV_VertexID,\n";
|
||||
out += "\tin uint iInstanceId : SV_InstanceID,\n";
|
||||
out += "#endif\n";
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
@ -1503,7 +1510,7 @@ void ShaderRecompiler::recompile(const uint8_t* shaderData, const std::string_vi
|
|||
out += "\tfloat4x4 mtxProjection = float4x4(g_MtxProjection(0), g_MtxProjection(1), g_MtxProjection(2), g_MtxProjection(3));\n";
|
||||
out += "\tfloat4x4 mtxProjectionReverseZ = mul(mtxProjection, float4x4(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, -1, 0, 0, 0, 1, 1));\n";
|
||||
|
||||
out += "\t[unroll] for (int iterationIndex = 0; iterationIndex < 2; iterationIndex++)\n";
|
||||
out += "\tUNROLL for (int iterationIndex = 0; iterationIndex < 2; iterationIndex++)\n";
|
||||
out += "\t{\n";
|
||||
}
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue