Add more audio logging to pinpoint issues better
Some checks failed
eden-build / android (push) Has been cancelled
eden-build / source (push) Has been cancelled
eden-build / windows (msvc) (push) Has been cancelled
eden-build / linux (push) Failing after 8m56s

This commit is contained in:
edendev 2025-04-30 18:01:26 -07:00
parent 3b66092a5b
commit 01b790ff29
2 changed files with 17 additions and 8 deletions

View file

@ -7,7 +7,7 @@
#include "common/alignment.h"
#include "common/assert.h"
#include "common/common_types.h"
#include "common/common_types.h"
namespace AudioCore {
/**
@ -35,13 +35,14 @@ public:
auto current{buffer + offset};
auto aligned_buffer{Common::AlignUp(current, alignment)};
if (aligned_buffer + byte_size <= buffer + size) {
LOG_DEBUG(Service_Audio,
"Workbuffer Allocate: T={} count={} align={} → ptr=0x{:X} offset=0x{:X}",
typeid(T).name(), count, alignment, aligned_buffer, offset);
out = aligned_buffer;
offset = byte_size - buffer + aligned_buffer;
} else {
LOG_ERROR(
Service_Audio,
"Allocated buffer was too small to hold new alloc.\nAllocator size={:08X}, "
"offset={:08X}.\nAttempting to allocate {:08X} with alignment={:02X}",
LOG_ERROR(Service_Audio,
"Workbuffer OVERFLOW: size=0x{:X} offset=0x{:X} need=0x{:X} align=0x{:X}",
size, offset, byte_size, alignment);
count = 0;
}

View file

@ -21,12 +21,15 @@ namespace AudioCore::Renderer {
template <typename T, CommandId Id>
T& CommandBuffer::GenerateStart(const s32 node_id) {
if (size + sizeof(T) >= command_list.size_bytes()) {
LOG_ERROR(
Service_Audio,
"Attempting to write commands beyond the end of allocated command buffer memory!");
LOG_ERROR(Service_Audio,
"CommandBuffer OVERFLOW: size={} + {} > capacity={}",
size_, sizeof(T), command_list.size_bytes());
UNREACHABLE();
}
LOG_TRACE(Service_Audio,
"GenerateStart: CmdId={} node={} curSize={} → newSize={}",
static_cast<int>(Id), node_id, size_, size_ + sizeof(T));
auto& cmd{*std::construct_at<T>(reinterpret_cast<T*>(&command_list[size]))};
cmd.magic = CommandMagic;
@ -44,6 +47,11 @@ void CommandBuffer::GenerateEnd(T& cmd) {
estimated_process_time += cmd.estimated_process_time;
size += sizeof(T);
count++;
// Trace completion: how many commands & bytes are now committed
LOG_TRACE(Service_Audio,
"GenerateEnd<{}>: totalCmds={} totalBytes={} estTime={}",
static_cast<int>(cmd.type), count, size, estimated_process_time);
}
void CommandBuffer::GeneratePcmInt16Version1Command(const s32 node_id,