Add more tracy zones

This commit is contained in:
NepDisk 2025-12-26 20:26:45 -05:00
parent c8b0a0483b
commit c822e256c9
3 changed files with 40 additions and 5 deletions

View file

@ -4427,6 +4427,7 @@ static inline boolean P_UnArchiveLuabanksAndConsistency(savebuffer_t *save)
{
TracyCZone(__zone, true);
boolean ret = true;
switch (READUINT8(save->p))
{
case 0xb7: // luabanks marker
@ -4435,25 +4436,28 @@ static inline boolean P_UnArchiveLuabanksAndConsistency(savebuffer_t *save)
if (banksinuse > NUM_LUABANKS)
{
CONS_Alert(CONS_ERROR, M_GetText("Corrupt Luabanks! (Too many banks in use)\n"));
return false;
ret = false;
break;
}
for (i = 0; i < banksinuse; i++)
luabanks[i] = READINT32(save->p);
if (READUINT8(save->p) != 0x1d) // consistency marker
{
CONS_Alert(CONS_ERROR, M_GetText("Corrupt Luabanks! (Failed consistency check)\n"));
return false;
ret = false;
break;
}
}
case 0x1d: // consistency marker
break;
default: // anything else is nonsense
CONS_Alert(CONS_ERROR, M_GetText("Failed consistency check (???)\n"));
return false;
ret = false;
break;
}
TracyCZoneEnd(__zone);
return true;
return ret;
}
void P_SaveGame(savebuffer_t *save, INT16 mapnum)
@ -4571,9 +4575,10 @@ boolean P_LoadNetGame(savebuffer_t *save, boolean reloading)
// so the thinkers would be deleted later. Therefore, P_SetupLevel will *not* spawn
// precipitation when loading a netgame save. Instead, precip has to be spawned here.
// This is done in P_NetUnArchiveSpecials now.
boolean ret = P_UnArchiveLuabanksAndConsistency(save);
TracyCZoneEnd(__zone);
return P_UnArchiveLuabanksAndConsistency(save);
return ret;
}
boolean P_SaveBufferZAlloc(savebuffer_t *save, size_t alloc_size, INT32 tag, void *user)

View file

@ -13,6 +13,8 @@
#ifdef HAVE_OPENAL
#include <tracy/tracy/TracyC.h>
#ifdef HAVE_GME
#ifdef HAVE_ZLIB
#ifndef _MSC_VER
@ -389,6 +391,7 @@ static sf_count_t SecondsToSamples(float seconds, int sampleRate) {
static boolean I_QueueNextSample(boolean unqueue)
{
TracyCZone(__zone, true);
static INT16 *stream = NULL;
ALenum format = AL_FORMAT_MONO16;
@ -462,17 +465,27 @@ static boolean I_QueueNextSample(boolean unqueue)
else
{
CONS_Alert(CONS_ERROR, "Music is active, but no source is available\n");
TracyCZoneEnd(__zone);
return false;
}
if (unqueue && !TRY(alSourceUnqueueBuffers, audio.music, 1, &audio.musicbuffers[audio.bufferindex]))
{
TracyCZoneEnd(__zone);
return false;
}
if (!TRY(alBufferData, audio.musicbuffers[audio.bufferindex], format, stream, count, samplerate))
{
TracyCZoneEnd(__zone);
return false;
}
if (!TRY(alSourceQueueBuffers, audio.music, 1, &audio.musicbuffers[audio.bufferindex]))
{
TracyCZoneEnd(__zone);
return false;
}
audio.bufferindex = (audio.bufferindex + 1) % BUFFERCOUNT;
@ -480,14 +493,17 @@ static boolean I_QueueNextSample(boolean unqueue)
if (count == 0 && !audio.looping)
{
I_StopSong();
TracyCZoneEnd(__zone);
return false;
}
TracyCZoneEnd(__zone);
return true;
}
static void UpdateSound(audiostate_t *aud)
{
TracyCZone(__zone, true);
if (aud->music != INVALID_HANDLE)
{
ALint processed;
@ -501,6 +517,7 @@ static void UpdateSound(audiostate_t *aud)
if (!I_QueueNextSample(false))
{
I_UnloadSong();
TracyCZoneEnd(__zone);
return;
}
}
@ -508,14 +525,21 @@ static void UpdateSound(audiostate_t *aud)
TRY(alSourcePlay, aud->music);
aud->startplay = false;
TracyCZoneEnd(__zone);
return;
}
if (!TRY(alGetSourcei, aud->music, AL_BUFFERS_PROCESSED, &processed))
{
TracyCZoneEnd(__zone);
return;
}
if (!TRY(alGetSourcei, aud->music, AL_BUFFERS_QUEUED, &queued))
{
TracyCZoneEnd(__zone);
return;
}
// semi-hack because this is sometimes not called for a longer period of time
boolean need_restart = processed == BUFFERCOUNT;
@ -528,6 +552,7 @@ static void UpdateSound(audiostate_t *aud)
if (need_restart)
TRY(alSourcePlay, aud->music);
}
TracyCZoneEnd(__zone);
}
void I_UpdateSound(void)
@ -547,8 +572,10 @@ void I_UpdateSound(void)
static void AudioThread(void *userdata)
{
TracyCZone(__zone, true);
(void)userdata;
while (true)
{
// doesn't need to be that frequent, this thread just feeds buffers
@ -559,11 +586,13 @@ static void AudioThread(void *userdata)
if (audio.shutdown)
{
audio.shutdown = false;
TracyCZoneEnd(__zone);
return;
}
UpdateSound(&audio);
}
}
TracyCZoneEnd(__zone);
}
static char *ds2chunk(void *stream, size_t *len, size_t *samplerate)

View file

@ -166,6 +166,7 @@ void Z_Free2(void *ptr, const char *file, INT32 line)
#endif
block->prev->next = block->next;
block->next->prev = block->prev;
TracyCFree(block);
free(block);
}