From e94f0c8f630bfd9ffdf5fb1d0bcdb7566cc2b7e5 Mon Sep 17 00:00:00 2001 From: MarcZX100 Date: Fri, 9 Oct 2026 06:42:18 +0000 Subject: [PATCH] test(agc): verify optional geometry output register --- core/libs/prx/libSceAgc/tests/ShaderHelpers.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/core/libs/prx/libSceAgc/tests/ShaderHelpers.cpp b/core/libs/prx/libSceAgc/tests/ShaderHelpers.cpp index 40f579b02..56858072e 100644 --- a/core/libs/prx/libSceAgc/tests/ShaderHelpers.cpp +++ b/core/libs/prx/libSceAgc/tests/ShaderHelpers.cpp @@ -94,7 +94,13 @@ int main() { special.vgt_gs_out_prim_type = {}; std::array noGeometryContext{}; Require(sceAgcCreatePrimState(noGeometryContext.data(), nullptr, nullptr, &vertex, 7) == 0); - Require(noGeometryContext[0].offset == VGT_SHADER_STAGES_EN && noGeometryContext[1].offset == VGT_GS_OUT_PRIM_TYPE && noGeometryContext[1].value != 0); + Require(noGeometryContext[0].offset == VGT_SHADER_STAGES_EN && noGeometryContext[1].offset == VGT_GS_OUT_PRIM_TYPE && noGeometryContext[1].value == static_cast(GsOutputPrimitiveType::Rectangle2D)); + special.vgt_shader_stages_en.value = VGT_SHADER_STAGES_GS_BIT; + bool rejectedMissingGeometryOutput = false; + try { static_cast(sceAgcCreatePrimState(noGeometryContext.data(), nullptr, nullptr, &vertex, 7)); } + catch (const std::runtime_error&) { rejectedMissingGeometryOutput = true; } + Require(rejectedMissingGeometryOutput); + special.vgt_shader_stages_en.value = 0; special.vgt_gs_out_prim_type = {VGT_GS_OUT_PRIM_TYPE, 2}; std::array linkedContext{}; std::array linkedPrimitive{};