From 3456fb39faec0e211f74190597f82aa8e41c1fd4 Mon Sep 17 00:00:00 2001 From: Billy Laws Date: Sat, 17 Sep 2022 13:10:23 +0100 Subject: [PATCH] Fix pipeline to shader stage conversion when filling in shader infos The two vertex pipeline stages need to be both treated as a single stage, and all subsequent stages need to be offset by -1 --- .../skyline/gpu/interconnect/maxwell_3d/pipeline_manager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/cpp/skyline/gpu/interconnect/maxwell_3d/pipeline_manager.cpp b/app/src/main/cpp/skyline/gpu/interconnect/maxwell_3d/pipeline_manager.cpp index 87469d09..da6613bf 100644 --- a/app/src/main/cpp/skyline/gpu/interconnect/maxwell_3d/pipeline_manager.cpp +++ b/app/src/main/cpp/skyline/gpu/interconnect/maxwell_3d/pipeline_manager.cpp @@ -209,7 +209,7 @@ namespace skyline::gpu::interconnect::maxwell3d { continue; auto runtimeInfo{MakeRuntimeInfo(packedState, programs[i], lastProgram, hasGeometry)}; - shaderStages[i] = {ConvertVkShaderStage(pipelineStage(i)), ctx.gpu.shader.CompileShader(runtimeInfo, programs[i], bindings), programs[i].info}; + shaderStages[i - (i >= 1 ? 1 : 0)] = {ConvertVkShaderStage(pipelineStage(i)), ctx.gpu.shader.CompileShader(runtimeInfo, programs[i], bindings), programs[i].info}; lastProgram = &programs[i]; }