agc: trace per-frame packet parameters only with graphics debug dump

The per-frame ACB submit, indirect dispatch, reset-queue and patch-address
parameter dumps, and the flip-pending poll, are logged only with the graphics
debug dump, the way the DCB submit path already is. Otherwise they were about
7.5 MB of log a minute in the Spider-Man world.
This commit is contained in:
Mac
2026-09-23 01:25:36 +05:30
committed by nmzik
parent 1cc0ac7ed8
commit a20fb7f9f8
2 changed files with 33 additions and 31 deletions
+2
View File
@@ -1556,7 +1556,9 @@ KYTY_SYSV_ABI int VideoOutIsFlipPending(int handle) {
VideoOutFlipStatus status {}; VideoOutFlipStatus status {};
DriverState().GetFlipQueue().GetFlipStatus(*ctx, status); DriverState().GetFlipQueue().GetFlipStatus(*ctx, status);
if (Config::GraphicsDebugDumpEnabled()) {
LOGF("\t flipPendingNum = %d\n", status.flipPendingNum); LOGF("\t flipPendingNum = %d\n", status.flipPendingNum);
}
return status.flipPendingNum; return status.flipPendingNum;
} }
+11 -11
View File
@@ -2110,7 +2110,7 @@ uint32_t KYTY_SYSV_ABI AgcCbQueueEndOfPipeActionGetSize() {
uint32_t* KYTY_SYSV_ABI AgcAcbResetQueue(CommandBuffer* buf, uint32_t op) { uint32_t* KYTY_SYSV_ABI AgcAcbResetQueue(CommandBuffer* buf, uint32_t op) {
PRINT_NAME(); PRINT_NAME();
LOGF("\t op = 0x%08" PRIx32 "\n", op); AgcTrace("\t op = 0x%08" PRIx32 "\n", op);
EXIT_NOT_IMPLEMENTED(buf == nullptr); EXIT_NOT_IMPLEMENTED(buf == nullptr);
EXIT_NOT_IMPLEMENTED((op & ~0x1c2u) != 0); EXIT_NOT_IMPLEMENTED((op & ~0x1c2u) != 0);
@@ -2130,7 +2130,7 @@ uint32_t* KYTY_SYSV_ABI AgcAcbResetQueue(CommandBuffer* buf, uint32_t op) {
uint32_t* KYTY_SYSV_ABI AgcDcbResetQueue(CommandBuffer* buf, uint32_t op, uint32_t state) { uint32_t* KYTY_SYSV_ABI AgcDcbResetQueue(CommandBuffer* buf, uint32_t op, uint32_t state) {
PRINT_NAME(); PRINT_NAME();
LOGF("\t op = 0x%08" PRIx32 "\n" AgcTrace("\t op = 0x%08" PRIx32 "\n"
"\t state = 0x%08" PRIx32 "\n", "\t state = 0x%08" PRIx32 "\n",
op, state); op, state);
@@ -2749,7 +2749,7 @@ uint32_t* KYTY_SYSV_ABI AgcDcbSetBaseIndirectArgs(CommandBuffer* buf, uint32_t s
const volatile void* indirect_base_addr) { const volatile void* indirect_base_addr) {
PRINT_NAME(); PRINT_NAME();
LOGF("\t shader_type = %" PRIu32 "\n" AgcTrace("\t shader_type = %" PRIu32 "\n"
"\t indirect_base_addr = 0x%016" PRIx64 "\n", "\t indirect_base_addr = 0x%016" PRIx64 "\n",
shader_type, reinterpret_cast<uint64_t>(indirect_base_addr)); shader_type, reinterpret_cast<uint64_t>(indirect_base_addr));
@@ -2941,7 +2941,7 @@ uint32_t* KYTY_SYSV_ABI AgcDcbDispatchIndirect(CommandBuffer* buf, uint32_t data
uint32_t flags) { uint32_t flags) {
PRINT_NAME(); PRINT_NAME();
LOGF("\t data_offset = 0x%" PRIx32 "\n" AgcTrace("\t data_offset = 0x%" PRIx32 "\n"
"\t flags = 0x%08" PRIx32 "\n", "\t flags = 0x%08" PRIx32 "\n",
data_offset_in_bytes, flags); data_offset_in_bytes, flags);
@@ -3294,7 +3294,7 @@ uint32_t* KYTY_SYSV_ABI AgcAcbDispatchIndirect(CommandBuffer* buf,
uint32_t modifier) { uint32_t modifier) {
PRINT_NAME(); PRINT_NAME();
LOGF("\t indirect_args = 0x%016" PRIx64 "\n" AgcTrace("\t indirect_args = 0x%016" PRIx64 "\n"
"\t modifier = 0x%08" PRIx32 "\n", "\t modifier = 0x%08" PRIx32 "\n",
reinterpret_cast<uint64_t>(indirect_args), modifier); reinterpret_cast<uint64_t>(indirect_args), modifier);
@@ -3724,7 +3724,7 @@ int KYTY_SYSV_ABI AgcCondExecPatchSetCommandAddress(uint32_t* cmd
const volatile uint32_t* command) { const volatile uint32_t* command) {
PRINT_NAME(); PRINT_NAME();
LOGF("\t cmd = 0x%016" PRIx64 "\n" AgcTrace("\t cmd = 0x%016" PRIx64 "\n"
"\t command = 0x%016" PRIx64 "\n", "\t command = 0x%016" PRIx64 "\n",
reinterpret_cast<uint64_t>(cmd), reinterpret_cast<uint64_t>(command)); reinterpret_cast<uint64_t>(cmd), reinterpret_cast<uint64_t>(command));
@@ -3868,7 +3868,7 @@ static uint32_t* get_agc_wait_packet(uint32_t* cmd) {
int KYTY_SYSV_ABI AgcWaitRegMemPatchAddress(uint32_t* cmd, const volatile void* address) { int KYTY_SYSV_ABI AgcWaitRegMemPatchAddress(uint32_t* cmd, const volatile void* address) {
PRINT_NAME(); PRINT_NAME();
LOGF("\t cmd = 0x%016" PRIx64 "\n" AgcTrace("\t cmd = 0x%016" PRIx64 "\n"
"\t address = 0x%016" PRIx64 "\n", "\t address = 0x%016" PRIx64 "\n",
reinterpret_cast<uint64_t>(cmd), reinterpret_cast<uint64_t>(address)); reinterpret_cast<uint64_t>(cmd), reinterpret_cast<uint64_t>(address));
@@ -3913,7 +3913,7 @@ int KYTY_SYSV_ABI AgcQueueEndOfPipeActionPatchAddress(uint32_t* cmd,
// Not sure // Not sure
LOGF("\t cmd = 0x%016" PRIx64 "\n" AgcTrace("\t cmd = 0x%016" PRIx64 "\n"
"\t address = 0x%016" PRIx64 "\n", "\t address = 0x%016" PRIx64 "\n",
reinterpret_cast<uint64_t>(cmd), reinterpret_cast<uint64_t>(address)); reinterpret_cast<uint64_t>(cmd), reinterpret_cast<uint64_t>(address));
@@ -4246,7 +4246,7 @@ static void submit_acb(uint32_t queue, uint32_t* acb, uint32_t size_in_dwords) {
} }
for (uint32_t i = 0; i < std::min<uint32_t>(size_in_dwords, 8); i++) { for (uint32_t i = 0; i < std::min<uint32_t>(size_in_dwords, 8); i++) {
LOGF("\t acb[%u] = 0x%08" PRIx32 "\n", i, acb[i]); AgcTrace("\t acb[%u] = 0x%08" PRIx32 "\n", i, acb[i]);
} }
GraphicsDbgDumpDcb("a", size_in_dwords, acb); GraphicsDbgDumpDcb("a", size_in_dwords, acb);
@@ -4322,14 +4322,14 @@ int KYTY_SYSV_ABI AgcDriverSubmitMultiCommandBuffers(void* queue_cont
int KYTY_SYSV_ABI AgcDriverSubmitAcb(uint32_t queue, const Packet* packet) { int KYTY_SYSV_ABI AgcDriverSubmitAcb(uint32_t queue, const Packet* packet) {
PRINT_NAME(); PRINT_NAME();
LOGF("\t queue = 0x%08" PRIx32 "\n" AgcTrace("\t queue = 0x%08" PRIx32 "\n"
"\t packet = 0x%016" PRIx64 "\n", "\t packet = 0x%016" PRIx64 "\n",
queue, reinterpret_cast<uint64_t>(packet)); queue, reinterpret_cast<uint64_t>(packet));
if (packet == nullptr) { if (packet == nullptr) {
return OK; return OK;
} }
LOGF("\t acb = 0x%016" PRIx64 "\n" AgcTrace("\t acb = 0x%016" PRIx64 "\n"
"\t size = 0x%08" PRIx32 "\n" "\t size = 0x%08" PRIx32 "\n"
"\t flags = 0x%02" PRIx8 "\n", "\t flags = 0x%02" PRIx8 "\n",
reinterpret_cast<uint64_t>(packet->addr), packet->dw_num, packet->flags); reinterpret_cast<uint64_t>(packet->addr), packet->dw_num, packet->flags);