shader_recompiler: Better handling of geometry shader scenario G (#3064)

This commit is contained in:
TheTurtle
2025-06-09 03:31:51 +03:00
committed by GitHub
parent ae2053c487
commit c20d02dd40
8 changed files with 33 additions and 4 deletions

View File

@@ -1179,8 +1179,16 @@ struct Liverpool {
};
union GsMode {
enum class Mode : u32 {
Off = 0,
ScenarioA = 1,
ScenarioB = 2,
ScenarioG = 3,
ScenarioC = 4,
};
u32 raw;
BitField<0, 3, u32> mode;
BitField<0, 3, Mode> mode;
BitField<3, 2, u32> cut_mode;
BitField<22, 2, u32> onchip;
};

View File

@@ -146,6 +146,7 @@ const Shader::RuntimeInfo& PipelineCache::BuildRuntimeInfo(Stage stage, LogicalS
}
gs_info.in_vertex_data_size = regs.vgt_esgs_ring_itemsize;
gs_info.out_vertex_data_size = regs.vgt_gs_vert_itemsize[0];
gs_info.mode = regs.vgt_gs_mode.mode;
const auto params_vc = Liverpool::GetParams(regs.vs_program);
gs_info.vs_copy = params_vc.code;
gs_info.vs_copy_hash = params_vc.hash;