summaryrefslogtreecommitdiff
path: root/src/video_core
diff options
context:
space:
mode:
authorGravatar Feng Chen2021-11-19 15:32:53 +0800
committerGravatar vonchenplus2021-11-19 22:53:58 +0800
commit4dd85f86a89338ff84d05a3981c14f6de1be4606 (patch)
treeb2a48b24bf216a325e62f5e363bc98b41de84444 /src/video_core
parentMerge pull request #7349 from ameerj/ogl-convert-image (diff)
downloadyuzu-4dd85f86a89338ff84d05a3981c14f6de1be4606.tar.gz
yuzu-4dd85f86a89338ff84d05a3981c14f6de1be4606.tar.xz
yuzu-4dd85f86a89338ff84d05a3981c14f6de1be4606.zip
Implement convert legacy to generic
Diffstat (limited to 'src/video_core')
-rw-r--r--src/video_core/renderer_opengl/gl_shader_cache.cpp3
-rw-r--r--src/video_core/renderer_vulkan/vk_pipeline_cache.cpp2
2 files changed, 5 insertions, 0 deletions
diff --git a/src/video_core/renderer_opengl/gl_shader_cache.cpp b/src/video_core/renderer_opengl/gl_shader_cache.cpp
index 42ef67628..310cda6d8 100644
--- a/src/video_core/renderer_opengl/gl_shader_cache.cpp
+++ b/src/video_core/renderer_opengl/gl_shader_cache.cpp
@@ -44,6 +44,7 @@ using Shader::Backend::GLSL::EmitGLSL;
44using Shader::Backend::SPIRV::EmitSPIRV; 44using Shader::Backend::SPIRV::EmitSPIRV;
45using Shader::Maxwell::MergeDualVertexPrograms; 45using Shader::Maxwell::MergeDualVertexPrograms;
46using Shader::Maxwell::TranslateProgram; 46using Shader::Maxwell::TranslateProgram;
47using Shader::Maxwell::ConvertLegacyToGeneric;
47using VideoCommon::ComputeEnvironment; 48using VideoCommon::ComputeEnvironment;
48using VideoCommon::FileEnvironment; 49using VideoCommon::FileEnvironment;
49using VideoCommon::GenericEnvironment; 50using VideoCommon::GenericEnvironment;
@@ -462,12 +463,14 @@ std::unique_ptr<GraphicsPipeline> ShaderCache::CreateGraphicsPipeline(
462 MakeRuntimeInfo(key, program, previous_program, glasm_use_storage_buffers, use_glasm)}; 463 MakeRuntimeInfo(key, program, previous_program, glasm_use_storage_buffers, use_glasm)};
463 switch (device.GetShaderBackend()) { 464 switch (device.GetShaderBackend()) {
464 case Settings::ShaderBackend::GLSL: 465 case Settings::ShaderBackend::GLSL:
466 ConvertLegacyToGeneric(program, runtime_info);
465 sources[stage_index] = EmitGLSL(profile, runtime_info, program, binding); 467 sources[stage_index] = EmitGLSL(profile, runtime_info, program, binding);
466 break; 468 break;
467 case Settings::ShaderBackend::GLASM: 469 case Settings::ShaderBackend::GLASM:
468 sources[stage_index] = EmitGLASM(profile, runtime_info, program, binding); 470 sources[stage_index] = EmitGLASM(profile, runtime_info, program, binding);
469 break; 471 break;
470 case Settings::ShaderBackend::SPIRV: 472 case Settings::ShaderBackend::SPIRV:
473 ConvertLegacyToGeneric(program, runtime_info);
471 sources_spirv[stage_index] = EmitSPIRV(profile, runtime_info, program, binding); 474 sources_spirv[stage_index] = EmitSPIRV(profile, runtime_info, program, binding);
472 break; 475 break;
473 } 476 }
diff --git a/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp b/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp
index eb8b4e08b..5efa4feb4 100644
--- a/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp
+++ b/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp
@@ -50,6 +50,7 @@ namespace {
50using Shader::Backend::SPIRV::EmitSPIRV; 50using Shader::Backend::SPIRV::EmitSPIRV;
51using Shader::Maxwell::MergeDualVertexPrograms; 51using Shader::Maxwell::MergeDualVertexPrograms;
52using Shader::Maxwell::TranslateProgram; 52using Shader::Maxwell::TranslateProgram;
53using Shader::Maxwell::ConvertLegacyToGeneric;
53using VideoCommon::ComputeEnvironment; 54using VideoCommon::ComputeEnvironment;
54using VideoCommon::FileEnvironment; 55using VideoCommon::FileEnvironment;
55using VideoCommon::GenericEnvironment; 56using VideoCommon::GenericEnvironment;
@@ -543,6 +544,7 @@ std::unique_ptr<GraphicsPipeline> PipelineCache::CreateGraphicsPipeline(
543 infos[stage_index] = &program.info; 544 infos[stage_index] = &program.info;
544 545
545 const auto runtime_info{MakeRuntimeInfo(programs, key, program, previous_stage)}; 546 const auto runtime_info{MakeRuntimeInfo(programs, key, program, previous_stage)};
547 ConvertLegacyToGeneric(program, runtime_info);
546 const std::vector<u32> code{EmitSPIRV(profile, runtime_info, program, binding)}; 548 const std::vector<u32> code{EmitSPIRV(profile, runtime_info, program, binding)};
547 device.SaveShader(code); 549 device.SaveShader(code);
548 modules[stage_index] = BuildShader(device, code); 550 modules[stage_index] = BuildShader(device, code);