Fix shader dumping

This commit is contained in:
Crementif 2025-01-04 15:09:00 +01:00
parent 2b0cbf7f6b
commit 9352654d3a

View file

@ -451,9 +451,11 @@ void LatteShader_DumpShader(uint64 baseHash, uint64 auxHash, LatteDecompilerShad
suffix = "gs";
else if (shader->shaderType == LatteConst::ShaderType::Pixel)
suffix = "ps";
fs::path dumpPath = "dump/shaders";
dumpPath /= fmt::format("{:016x}_{:016x}_{}.txt", baseHash, auxHash, suffix);
FileStream* fs = FileStream::createFile2(dumpPath);
fs::path shaderPath = ActiveSettings::GetUserDataPath("dump/shaders");
std::error_code ec;
fs::create_directories(shaderPath, ec);
FileStream* fs = FileStream::createFile2(shaderPath / std::format("{:016x}_{:016x}_{}.txt", baseHash, auxHash, suffix));
if (fs)
{
if (shader->strBuf_shaderSource)
@ -479,9 +481,11 @@ void LatteShader_DumpRawShader(uint64 baseHash, uint64 auxHash, uint32 type, uin
suffix = "copy";
else if (type == SHADER_DUMP_TYPE_COMPUTE)
suffix = "compute";
fs::path dumpPath = "dump/shaders";
dumpPath /= fmt::format("{:016x}_{:016x}_{}.bin", baseHash, auxHash, suffix);
FileStream* fs = FileStream::createFile2(dumpPath);
fs::path shaderPath = ActiveSettings::GetUserDataPath("dump/shaders");
std::error_code ec;
fs::create_directories(shaderPath, ec);
FileStream* fs = FileStream::createFile2(shaderPath / std::format("{:016x}_{:016x}_{}.bin", baseHash, auxHash, suffix));
if (fs)
{
fs->writeData(programCode, programLen);