|
|
|
@ -7,6 +7,7 @@
|
|
|
|
|
#include <ranges>
|
|
|
|
|
#include <vector>
|
|
|
|
|
|
|
|
|
|
#include "common/settings.h"
|
|
|
|
|
#include "shader_recompiler/exception.h"
|
|
|
|
|
#include "shader_recompiler/frontend/ir/basic_block.h"
|
|
|
|
|
#include "shader_recompiler/frontend/ir/post_order.h"
|
|
|
|
@ -164,7 +165,9 @@ IR::Program TranslateProgram(ObjectPool<IR::Inst>& inst_pool, ObjectPool<IR::Blo
|
|
|
|
|
|
|
|
|
|
Optimization::ConstantPropagationPass(program);
|
|
|
|
|
Optimization::DeadCodeEliminationPass(program);
|
|
|
|
|
Optimization::VerificationPass(program);
|
|
|
|
|
if (Settings::values.renderer_debug) {
|
|
|
|
|
Optimization::VerificationPass(program);
|
|
|
|
|
}
|
|
|
|
|
Optimization::CollectShaderInfoPass(env, program);
|
|
|
|
|
CollectInterpolationInfo(env, program);
|
|
|
|
|
AddNVNStorageBuffers(program);
|
|
|
|
@ -200,7 +203,9 @@ IR::Program MergeDualVertexPrograms(IR::Program& vertex_a, IR::Program& vertex_b
|
|
|
|
|
Optimization::JoinTextureInfo(result.info, vertex_b.info);
|
|
|
|
|
Optimization::JoinStorageInfo(result.info, vertex_b.info);
|
|
|
|
|
Optimization::DeadCodeEliminationPass(result);
|
|
|
|
|
Optimization::VerificationPass(result);
|
|
|
|
|
if (Settings::values.renderer_debug) {
|
|
|
|
|
Optimization::VerificationPass(result);
|
|
|
|
|
}
|
|
|
|
|
Optimization::CollectShaderInfoPass(env_vertex_b, result);
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|