mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-03-15 13:21:14 +00:00
vk: Enable optimization passes for generated SPIRV
This commit is contained in:
parent
f72385b00c
commit
a0f63a31e3
@ -12,6 +12,7 @@
|
||||
#include "restore_new.h"
|
||||
#include "SPIRV/GlslangToSpv.h"
|
||||
#include "define_new_memleakdetect.h"
|
||||
#include "spirv-tools/optimizer.hpp"
|
||||
#ifdef _MSC_VER
|
||||
#pragma warning(pop)
|
||||
#else
|
||||
@ -177,9 +178,16 @@ namespace vk
|
||||
if (success)
|
||||
{
|
||||
glslang::SpvOptions options;
|
||||
options.disableOptimizer = false;
|
||||
options.disableOptimizer = true;
|
||||
options.optimizeSize = true;
|
||||
glslang::GlslangToSpv(*program.getIntermediate(lang), spv, &options);
|
||||
|
||||
// Now we optimize
|
||||
spvtools::Optimizer optimizer(SPV_ENV_VULKAN_1_0);
|
||||
optimizer.RegisterPass(spvtools::CreateUnifyConstantPass()); // Remove duplicate constants
|
||||
optimizer.RegisterPass(spvtools::CreateMergeReturnPass()); // Huge savings in vertex interpreter and likely normal vertex shaders
|
||||
optimizer.RegisterPass(spvtools::CreateAggressiveDCEPass()); // Remove dead code
|
||||
optimizer.Run(spv.data(), spv.size(), &spv);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
Loading…
x
Reference in New Issue
Block a user