mirror of
https://github.com/cemu-project/Cemu.git
synced 2025-12-22 13:37:06 +00:00
Remove LatteShader_FinishCompilation
CleanupAfterCompile is already done in LatteShader_CreateRendererShader WaitForCompiled is already done in PreponeCompilation
This commit is contained in:
parent
25c8f0a5ff
commit
55d2ac0e43
4 changed files with 9 additions and 18 deletions
|
|
@ -357,19 +357,6 @@ void LatteShader_CreateRendererShader(LatteDecompilerShader* shader, bool compil
|
||||||
LatteShader_CleanupAfterCompile(shader);
|
LatteShader_CleanupAfterCompile(shader);
|
||||||
}
|
}
|
||||||
|
|
||||||
void LatteShader_FinishCompilation(LatteDecompilerShader* shader)
|
|
||||||
{
|
|
||||||
if (shader->hasError)
|
|
||||||
{
|
|
||||||
cemuLog_logDebug(LogType::Force, "LatteShader_finishCompilation(): Skipped because of error in shader {:x}", shader->baseHash);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
shader->shader->WaitForCompiled();
|
|
||||||
|
|
||||||
LatteShader_prepareSeparableUniforms(shader);
|
|
||||||
LatteShader_CleanupAfterCompile(shader);
|
|
||||||
}
|
|
||||||
|
|
||||||
void LatteSHRC_RegisterShader(LatteDecompilerShader* shader, uint64 baseHash, uint64 auxHash)
|
void LatteSHRC_RegisterShader(LatteDecompilerShader* shader, uint64 baseHash, uint64 auxHash)
|
||||||
{
|
{
|
||||||
auto& cache = LatteSHRC_GetCacheByType(shader->shaderType);
|
auto& cache = LatteSHRC_GetCacheByType(shader->shaderType);
|
||||||
|
|
@ -768,7 +755,7 @@ LatteDecompilerShader* LatteShader_CompileSeparableVertexShader(uint64 baseHash,
|
||||||
{
|
{
|
||||||
if (vertexShader->shader)
|
if (vertexShader->shader)
|
||||||
vertexShader->shader->PreponeCompilation();
|
vertexShader->shader->PreponeCompilation();
|
||||||
LatteShader_FinishCompilation(vertexShader);
|
LatteShader_prepareSeparableUniforms(vertexShader);
|
||||||
}
|
}
|
||||||
|
|
||||||
LatteSHRC_RegisterShader(vertexShader, vertexShader->baseHash, vertexShader->auxHash);
|
LatteSHRC_RegisterShader(vertexShader, vertexShader->baseHash, vertexShader->auxHash);
|
||||||
|
|
@ -797,7 +784,7 @@ LatteDecompilerShader* LatteShader_CompileSeparableGeometryShader(uint64 baseHas
|
||||||
{
|
{
|
||||||
if (geometryShader->shader)
|
if (geometryShader->shader)
|
||||||
geometryShader->shader->PreponeCompilation();
|
geometryShader->shader->PreponeCompilation();
|
||||||
LatteShader_FinishCompilation(geometryShader);
|
LatteShader_prepareSeparableUniforms(geometryShader);
|
||||||
}
|
}
|
||||||
|
|
||||||
LatteSHRC_RegisterShader(geometryShader, geometryShader->baseHash, geometryShader->auxHash);
|
LatteSHRC_RegisterShader(geometryShader, geometryShader->baseHash, geometryShader->auxHash);
|
||||||
|
|
@ -826,7 +813,7 @@ LatteDecompilerShader* LatteShader_CompileSeparablePixelShader(uint64 baseHash,
|
||||||
{
|
{
|
||||||
if (pixelShader->shader)
|
if (pixelShader->shader)
|
||||||
pixelShader->shader->PreponeCompilation();
|
pixelShader->shader->PreponeCompilation();
|
||||||
LatteShader_FinishCompilation(pixelShader);
|
LatteShader_prepareSeparableUniforms(pixelShader);
|
||||||
}
|
}
|
||||||
|
|
||||||
LatteSHRC_RegisterShader(pixelShader, _shaderBaseHash_ps, psAuxHash);
|
LatteSHRC_RegisterShader(pixelShader, _shaderBaseHash_ps, psAuxHash);
|
||||||
|
|
|
||||||
|
|
@ -99,7 +99,6 @@ void LatteShader_GetDecompilerOptions(struct LatteDecompilerOptions& options, La
|
||||||
LatteDecompilerShader* LatteShader_CreateShaderFromDecompilerOutput(LatteDecompilerOutput_t& decompilerOutput, uint64 baseHash, bool calculateAuxHash, uint64 optionalAuxHash, uint32* contextRegister);
|
LatteDecompilerShader* LatteShader_CreateShaderFromDecompilerOutput(LatteDecompilerOutput_t& decompilerOutput, uint64 baseHash, bool calculateAuxHash, uint64 optionalAuxHash, uint32* contextRegister);
|
||||||
|
|
||||||
void LatteShader_CreateRendererShader(LatteDecompilerShader* shader, bool compileAsync);
|
void LatteShader_CreateRendererShader(LatteDecompilerShader* shader, bool compileAsync);
|
||||||
void LatteShader_FinishCompilation(LatteDecompilerShader* shader);
|
|
||||||
|
|
||||||
void LatteShader_prepareSeparableUniforms(LatteDecompilerShader* shader);
|
void LatteShader_prepareSeparableUniforms(LatteDecompilerShader* shader);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -108,7 +108,10 @@ void LatteShaderCache_updateCompileQueue(sint32 maxRemainingEntries)
|
||||||
break;
|
break;
|
||||||
auto shader = shaderCompileQueue.entry[0].shader;
|
auto shader = shaderCompileQueue.entry[0].shader;
|
||||||
if (shader)
|
if (shader)
|
||||||
LatteShader_FinishCompilation(shader);
|
{
|
||||||
|
shader->shader->PreponeCompilation();
|
||||||
|
LatteShader_prepareSeparableUniforms(shader);
|
||||||
|
}
|
||||||
LatteShaderCache_removeFromCompileQueue(0);
|
LatteShaderCache_removeFromCompileQueue(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -28,6 +28,8 @@ void LatteShader_prepareSeparableUniforms(LatteDecompilerShader* shader)
|
||||||
{
|
{
|
||||||
if (g_renderer->GetType() == RendererAPI::Vulkan)
|
if (g_renderer->GetType() == RendererAPI::Vulkan)
|
||||||
return;
|
return;
|
||||||
|
if(shader->hasError)
|
||||||
|
return;
|
||||||
|
|
||||||
auto shaderGL = (RendererShaderGL*)shader->shader;
|
auto shaderGL = (RendererShaderGL*)shader->shader;
|
||||||
// setup uniform info
|
// setup uniform info
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue