|
|
@ -770,6 +770,7 @@ std::unique_ptr<GraphicsPipeline> PipelineCache::CreateGraphicsPipeline(
|
|
|
|
|
|
|
|
|
|
|
|
const Shader::Profile profile{MakeProfile(key, program.stage)};
|
|
|
|
const Shader::Profile profile{MakeProfile(key, program.stage)};
|
|
|
|
const std::vector<u32> code{EmitSPIRV(profile, program, binding)};
|
|
|
|
const std::vector<u32> code{EmitSPIRV(profile, program, binding)};
|
|
|
|
|
|
|
|
device.SaveShader(code);
|
|
|
|
modules[stage_index] = BuildShader(device, code);
|
|
|
|
modules[stage_index] = BuildShader(device, code);
|
|
|
|
if (device.HasDebuggingToolAttached()) {
|
|
|
|
if (device.HasDebuggingToolAttached()) {
|
|
|
|
const std::string name{fmt::format("{:016x}{:016x}", key.unique_hashes[index][0],
|
|
|
|
const std::string name{fmt::format("{:016x}{:016x}", key.unique_hashes[index][0],
|
|
|
@ -846,7 +847,8 @@ std::unique_ptr<ComputePipeline> PipelineCache::CreateComputePipeline(
|
|
|
|
Shader::Maxwell::Flow::CFG cfg{env, pools.flow_block, env.StartAddress()};
|
|
|
|
Shader::Maxwell::Flow::CFG cfg{env, pools.flow_block, env.StartAddress()};
|
|
|
|
Shader::IR::Program program{TranslateProgram(pools.inst, pools.block, env, cfg)};
|
|
|
|
Shader::IR::Program program{TranslateProgram(pools.inst, pools.block, env, cfg)};
|
|
|
|
u32 binding{0};
|
|
|
|
u32 binding{0};
|
|
|
|
std::vector<u32> code{EmitSPIRV(base_profile, program, binding)};
|
|
|
|
const std::vector<u32> code{EmitSPIRV(base_profile, program, binding)};
|
|
|
|
|
|
|
|
device.SaveShader(code);
|
|
|
|
vk::ShaderModule spv_module{BuildShader(device, code)};
|
|
|
|
vk::ShaderModule spv_module{BuildShader(device, code)};
|
|
|
|
if (device.HasDebuggingToolAttached()) {
|
|
|
|
if (device.HasDebuggingToolAttached()) {
|
|
|
|
const auto name{fmt::format("{:016x}{:016x}", key.unique_hash[0], key.unique_hash[1])};
|
|
|
|
const auto name{fmt::format("{:016x}{:016x}", key.unique_hash[0], key.unique_hash[1])};
|
|
|
|