From b77978fd1e02d88e832abaaa5b33a4fe74c45f3d Mon Sep 17 00:00:00 2001 From: nmzik Date: Mon, 31 Aug 2026 08:16:00 +0400 Subject: [PATCH] agc: correct Trinity mode ABI --- src/libs/agc.cpp | 11 +++++++---- src/libs/agc.h | 2 +- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/libs/agc.cpp b/src/libs/agc.cpp index 60daafac1..e323afc4c 100644 --- a/src/libs/agc.cpp +++ b/src/libs/agc.cpp @@ -894,8 +894,12 @@ static bool is_native_reg_indirect_packet(const uint32_t* cmd, RegIndirectPacket return ((cmd[0] >> 8u) & 0xffu) == reg_indirect_native_op(type); } +static constexpr bool is_trinity_mode() { + return false; +} + static uint32_t reg_indirect_pm4_r(RegIndirectPacket type) { - return (type == RegIndirectPacket::Uc && AgcGetIsTrinityMode() != 0 ? 1u : 0u); + return (type == RegIndirectPacket::Uc && is_trinity_mode() ? 1u : 0u); } static void reg_indirect_write_packet(uint32_t* cmd, uint64_t vaddr, uint32_t num_regs, @@ -1681,9 +1685,8 @@ uint64_t KYTY_SYSV_ABI AgcDcbContextStateOpGetSize(uint32_t operation) { return static_cast(context_state_op_size_dw(operation)) * sizeof(uint32_t); } -uint64_t KYTY_SYSV_ABI AgcGetIsTrinityMode() { - // PS5 Pro? - return 0; +void KYTY_SYSV_ABI AgcGetIsTrinityMode(uint8_t* result) { + *result = is_trinity_mode(); } static constexpr int GRAPHICS5_DRIVER_ERROR_INVALID_VALUE = static_cast(0x8a6c0033u); diff --git a/src/libs/agc.h b/src/libs/agc.h index 36f5479fa..d4bc9a542 100644 --- a/src/libs/agc.h +++ b/src/libs/agc.h @@ -78,7 +78,7 @@ int KYTY_SYSV_ABI AgcJumpPatchSetTarget(uint32_t* cmd, const volatile uint32_t* int KYTY_SYSV_ABI AgcSuspendPoint(); uint32_t* KYTY_SYSV_ABI AgcDcbContextStateOp(CommandBuffer* buf, uint32_t operation); uint64_t KYTY_SYSV_ABI AgcDcbContextStateOpGetSize(uint32_t operation); -uint64_t KYTY_SYSV_ABI AgcGetIsTrinityMode(); +void KYTY_SYSV_ABI AgcGetIsTrinityMode(uint8_t* result); uint32_t KYTY_SYSV_ABI AgcDriverGetDefaultOwner(); uint32_t KYTY_SYSV_ABI AgcDriverGetResourceRegistrationMaxNameLength();