remove profiler markup

This commit is contained in:
jacob 2025-12-03 20:41:03 -06:00
parent 7ed6b8a62e
commit 718c0de889
31 changed files with 7 additions and 408 deletions

View File

@ -159,8 +159,6 @@ u32 ASE_ReverseBits(u32 v, u32 bit_count)
ASE_HuffDict ASE_InitHuffDict(Arena *arena, u32 max_code_bits, u32 *bl_counts, u32 bl_counts_count) ASE_HuffDict ASE_InitHuffDict(Arena *arena, u32 max_code_bits, u32 *bl_counts, u32 bl_counts_count)
{ {
__prof;
ASE_HuffDict result = ZI; ASE_HuffDict result = ZI;
result.max_code_bits = max_code_bits; result.max_code_bits = max_code_bits;
result.entries_count = (1 << max_code_bits); result.entries_count = (1 << max_code_bits);
@ -222,7 +220,6 @@ void ASE_Inflate(u8 *dst, u8 *encoded)
{ {
TempArena scratch = BeginScratchNoConflict(); TempArena scratch = BeginScratchNoConflict();
__prof;
ASE_Bitbuff bb = { .data = encoded }; ASE_Bitbuff bb = { .data = encoded };
/* ZLIB header */ /* ZLIB header */
@ -484,8 +481,6 @@ void ASE_MakeDimensionsSquareish(ASE_Header *header, u32 *frames_x, u32 *frames_
ASE_DecodedImage ASE_DecodeImage(Arena *arena, String encoded) ASE_DecodedImage ASE_DecodeImage(Arena *arena, String encoded)
{ {
__prof;
TempArena scratch = BeginScratch(arena); TempArena scratch = BeginScratch(arena);
ASE_DecodedImage result = ZI; ASE_DecodedImage result = ZI;
@ -692,7 +687,6 @@ ASE_DecodedImage ASE_DecodeImage(Arena *arena, String encoded)
//- Assemble image from cels //- Assemble image from cels
{ {
__profn("Build image from cels");
for (Ace_Cel *cel = cel_head; cel; cel = cel->next) for (Ace_Cel *cel = cel_head; cel; cel = cel->next)
{ {
ASE_Layer *layer = layers_ordered[cel->layer_index]; ASE_Layer *layer = layers_ordered[cel->layer_index];
@ -779,8 +773,6 @@ abort:
ASE_DecodedSheet ASE_DecodeSheet(Arena *arena, String encoded) ASE_DecodedSheet ASE_DecodeSheet(Arena *arena, String encoded)
{ {
__prof;
ASE_DecodedSheet result = ZI; ASE_DecodedSheet result = ZI;
BB_Buff bb = BB_BuffFromString(encoded); BB_Buff bb = BB_BuffFromString(encoded);

View File

@ -7,7 +7,6 @@ AC_SharedState AC_shared_state = ZI;
void AC_Startup(void) void AC_Startup(void)
{ {
__prof;
AC_SharedState *g = &AC_shared_state; AC_SharedState *g = &AC_shared_state;
g->store_arena = AcquireArena(Gibi(64)); g->store_arena = AcquireArena(Gibi(64));
} }

View File

@ -25,10 +25,6 @@
#error Missing compile time definition for 'IsDeveloperModeEnabled' #error Missing compile time definition for 'IsDeveloperModeEnabled'
#endif #endif
#ifndef IsProfilingEnabled
#error Missing compile time definition for 'IsProfilingEnabled'
#endif
#ifndef IsUnoptimized #ifndef IsUnoptimized
#error Missing compile time definition for 'IsUnoptimized' #error Missing compile time definition for 'IsUnoptimized'
#endif #endif

View File

@ -5,7 +5,6 @@ SharedArenaCtx shared_arena_ctx = ZI;
Arena *AcquireArena(u64 reserve) Arena *AcquireArena(u64 reserve)
{ {
__prof;
reserve += ArenaHeaderSize; reserve += ArenaHeaderSize;
/* Round up to nearest block size */ /* Round up to nearest block size */
@ -36,7 +35,6 @@ Arena *AcquireArena(u64 reserve)
StaticAssert(ArenaHeaderSize <= ArenaBlockSize); /* Header must fit in first block */ StaticAssert(ArenaHeaderSize <= ArenaBlockSize); /* Header must fit in first block */
StaticAssert(sizeof(Arena) <= ArenaHeaderSize); /* Arena struct must fit in header */ StaticAssert(sizeof(Arena) <= ArenaHeaderSize); /* Arena struct must fit in header */
__profalloc(base, ArenaBlockSize);
AsanPoison(base + sizeof(Arena), ArenaBlockSize - sizeof(Arena)); AsanPoison(base + sizeof(Arena), ArenaBlockSize - sizeof(Arena));
AddGstat(GSTAT_MEMORY_COMMITTED, ArenaBlockSize); AddGstat(GSTAT_MEMORY_COMMITTED, ArenaBlockSize);
AddGstat(GSTAT_NUM_ARENAS, 1); AddGstat(GSTAT_NUM_ARENAS, 1);
@ -52,8 +50,6 @@ Arena *AcquireArena(u64 reserve)
void ReleaseArena(Arena *arena) void ReleaseArena(Arena *arena)
{ {
AsanUnpoison(arena, arena->committed + ArenaHeaderSize); AsanUnpoison(arena, arena->committed + ArenaHeaderSize);
__prof;
__proffree(arena);
AddGstat(GSTAT_MEMORY_COMMITTED, -(i64)(arena->committed - ArenaHeaderSize)); AddGstat(GSTAT_MEMORY_COMMITTED, -(i64)(arena->committed - ArenaHeaderSize));
AddGstat(GSTAT_MEMORY_RESERVED, -(i64)(arena->reserved)); AddGstat(GSTAT_MEMORY_RESERVED, -(i64)(arena->reserved));
AddGstat(GSTAT_NUM_ARENAS, -1); AddGstat(GSTAT_NUM_ARENAS, -1);
@ -112,7 +108,6 @@ void *PushBytesNoZero(Arena *arena, u64 size, u64 align)
u64 new_pos = aligned_start_pos + size; u64 new_pos = aligned_start_pos + size;
if (new_pos > arena->committed) if (new_pos > arena->committed)
{ {
__profn("Arena commit");
/* Commit new block(s) */ /* Commit new block(s) */
u64 blocks_needed = (new_pos - arena->committed + ArenaBlockSize - 1) / ArenaBlockSize; u64 blocks_needed = (new_pos - arena->committed + ArenaBlockSize - 1) / ArenaBlockSize;
u64 commit_bytes = blocks_needed * ArenaBlockSize; u64 commit_bytes = blocks_needed * ArenaBlockSize;
@ -130,8 +125,6 @@ void *PushBytesNoZero(Arena *arena, u64 size, u64 align)
} }
arena->committed += commit_bytes; arena->committed += commit_bytes;
AddGstat(GSTAT_MEMORY_COMMITTED, commit_bytes); AddGstat(GSTAT_MEMORY_COMMITTED, commit_bytes);
__proffree(arena);
__profalloc(arena, arena->committed + ArenaHeaderSize);
AsanPoison(commit_address, commit_bytes); AsanPoison(commit_address, commit_bytes);
} }
@ -244,7 +237,6 @@ FiberArenaCtx *FiberArenaCtxFromId(i16 fiber_id)
FiberArenaCtx *ctx = &g->arena_contexts[fiber_id]; FiberArenaCtx *ctx = &g->arena_contexts[fiber_id];
if (!ctx->perm_arena) if (!ctx->perm_arena)
{ {
__profn("Initialize fiber arena ctx");
ctx->perm_arena = AcquireArena(Gibi(64)); ctx->perm_arena = AcquireArena(Gibi(64));
for (i32 i = 0; i < (i32)countof(ctx->scratch_arenas); ++i) for (i32 i = 0; i < (i32)countof(ctx->scratch_arenas); ++i)
{ {

View File

@ -29,7 +29,7 @@ Struct(LogEventsArray)
/* Log level configuration */ /* Log level configuration */
#ifndef LogLevel_CompTime #ifndef LogLevel_CompTime
# if IsRtcEnabled || IsProfilingEnabled # if IsRtcEnabled
# define LogLevel_CompTime LogLevel_Debug # define LogLevel_CompTime LogLevel_Debug
# else # else
# define LogLevel_CompTime LogLevel_Info # define LogLevel_CompTime LogLevel_Info

View File

@ -540,8 +540,6 @@ String TrimWhitespace(String s)
*/ */
String FormatStringV(Arena *arena, String fmt, va_list args) String FormatStringV(Arena *arena, String fmt, va_list args)
{ {
__prof;
u64 final_len = 0; u64 final_len = 0;
u8 *final_text = ArenaNext(arena, u8); u8 *final_text = ArenaNext(arena, u8);

View File

@ -150,7 +150,6 @@ Inline void Mergesort(void *items, u64 item_count, u64 item_size, MergesortCompa
Inline Dict *InitDict(Arena *arena, u64 bins_count) Inline Dict *InitDict(Arena *arena, u64 bins_count)
{ {
__prof;
Dict *dict = PushStruct(arena, Dict); Dict *dict = PushStruct(arena, Dict);
dict->bins_count = MaxU64(bins_count, 1); /* Ensure at least 1 bin */ dict->bins_count = MaxU64(bins_count, 1); /* Ensure at least 1 bin */
dict->bins = PushStructs(arena, DictBin, dict->bins_count); dict->bins = PushStructs(arena, DictBin, dict->bins_count);
@ -171,7 +170,6 @@ Inline void ResetDict(Dict *dict)
Inline DictEntry *EnsureDictEntry(Arena *arena, Dict *dict, u64 hash) Inline DictEntry *EnsureDictEntry(Arena *arena, Dict *dict, u64 hash)
{ {
__prof;
DictBin *bin = &dict->bins[hash % dict->bins_count]; DictBin *bin = &dict->bins[hash % dict->bins_count];
DictEntry *entry = bin->first; DictEntry *entry = bin->first;
@ -226,7 +224,6 @@ Inline DictEntry *EnsureDictEntry(Arena *arena, Dict *dict, u64 hash)
Inline void SetDictValue(Arena *arena, Dict *dict, u64 hash, u64 value) Inline void SetDictValue(Arena *arena, Dict *dict, u64 hash, u64 value)
{ {
__prof;
DictEntry *entry = EnsureDictEntry(arena, dict, hash); DictEntry *entry = EnsureDictEntry(arena, dict, hash);
entry->value = value; entry->value = value;
} }
@ -289,7 +286,6 @@ Inline void RemoveDictEntry(Dict *dict, DictEntry *entry)
Inline DictEntry *DictEntryFromHash(Dict *dict, u64 hash) Inline DictEntry *DictEntryFromHash(Dict *dict, u64 hash)
{ {
__prof;
DictEntry *result = 0; DictEntry *result = 0;
DictBin *bin = &dict->bins[hash % dict->bins_count]; DictBin *bin = &dict->bins[hash % dict->bins_count];
for (DictEntry *entry = bin->first; entry; entry = entry->next_in_bin) for (DictEntry *entry = bin->first; entry; entry = entry->next_in_bin)
@ -306,14 +302,12 @@ Inline DictEntry *DictEntryFromHash(Dict *dict, u64 hash)
Inline u64 DictValueFromHash(Dict *dict, u64 hash) Inline u64 DictValueFromHash(Dict *dict, u64 hash)
{ {
__prof;
DictEntry *entry = DictEntryFromHash(dict, hash); DictEntry *entry = DictEntryFromHash(dict, hash);
return entry ? entry->value : 0; return entry ? entry->value : 0;
} }
Inline u64 DictValueOrNilFromHash(Dict *dict, u64 hash, u64 nil) Inline u64 DictValueOrNilFromHash(Dict *dict, u64 hash, u64 nil)
{ {
__prof;
DictEntry *entry = DictEntryFromHash(dict, hash); DictEntry *entry = DictEntryFromHash(dict, hash);
return entry ? entry->value : nil; return entry ? entry->value : nil;
} }

View File

@ -212,7 +212,6 @@ JobImpl(W32_StartupLayers, sig, id)
JobImpl(W32_ShutdownLayers, sig, id) JobImpl(W32_ShutdownLayers, sig, id)
{ {
__prof;
W32_SharedState *g = &W32_shared_state; W32_SharedState *g = &W32_shared_state;
i32 num_funcs = Atomic32Fetch(&g->num_exit_funcs); i32 num_funcs = Atomic32Fetch(&g->num_exit_funcs);
for (i32 i = num_funcs - 1; i >= 0; --i) for (i32 i = num_funcs - 1; i >= 0; --i)
@ -228,82 +227,8 @@ JobImpl(W32_ShutdownLayers, sig, id)
i32 W32_Main(void) i32 W32_Main(void)
{ {
__profthread("Main thread", PROF_THREAD_GROUP_MAIN);
W32_SharedState *g = &W32_shared_state; W32_SharedState *g = &W32_shared_state;
#if IsProfilingEnabled
/* Start profiler */
{
__profn("Launch profiler");
STARTUPINFO si = ZI;
si.cb = sizeof(si);
PROCESS_INFORMATION pi = ZI;
wchar_t cmd[sizeof(ProfilingCmdWstr)] = ZI;
CopyBytes(cmd, ProfilingCmdWstr, sizeof(ProfilingCmdWstr));
DeleteFileW(ProfilingOutFileWstr);
b32 ok = CreateProcessW(0, cmd, 0, 0, 0, DETACHED_PROCESS, 0, 0, &si, &pi);
if (!ok)
{
MessageBoxExW(0, L"Failed to launch profiler using command '" ProfilingCmdWstr L"'.", L"Error", MB_ICONSTOP | MB_SETFOREGROUND | MB_TOPMOST, 0);
}
}
/* Set internal profiler thread affinities */
{
__profn("Set profiler thread affinities");
wchar_t *prefix_name_wstr = ProfilerThreadPrefixWstr;
u64 prefix_name_wstr_len = ((i32)sizeof(ProfilerThreadPrefixWstr) >> 1) - 1;
if (prefix_name_wstr_len > 0 && ProfilerThreadAffinityMask != 0)
{
DWORD proc_id = GetCurrentProcessId();
HANDLE snapshot = CreateToolhelp32Snapshot(TH32CS_SNAPTHREAD, 0);
if (snapshot != INVALID_HANDLE_VALUE)
{
THREADENTRY32 te = ZI;
te.dwSize = sizeof(THREADENTRY32);
if (Thread32First(snapshot, &te))
{
do
{
if (te.th32OwnerProcessID == proc_id)
{
i32 thread_id = te.th32ThreadID;
HANDLE thread = OpenThread(THREAD_ALL_ACCESS, FALSE, thread_id);
if (thread)
{
wchar_t *thread_name_wstr = 0;
HRESULT hr = GetThreadDescription(thread, &thread_name_wstr);
if (SUCCEEDED(hr))
{
u64 thread_name_len = WstrLenNoLimit(thread_name_wstr);
if (thread_name_len >= prefix_name_wstr_len && MatchBytes(thread_name_wstr, prefix_name_wstr, prefix_name_wstr_len))
{
__profn("Set profiler thread affinity");
b32 ok = SetThreadAffinityMask(thread, ProfilerThreadAffinityMask) != 0;
{
/* Retry until external tools can set correct process affinity */
i32 delay_ms = 16;
while (!ok && delay_ms <= 1024)
{
__profn("Profiler thread affinity retry");
Sleep(delay_ms);
ok = SetThreadAffinityMask(thread, ProfilerThreadAffinityMask) != 0;
delay_ms *= 2;
}
}
Assert(ok);
}
}
CloseHandle(thread);
}
}
} while (Thread32Next(snapshot, &te));
}
}
CloseHandle(snapshot);
}
}
#endif
/* Init time */ /* Init time */
{ {
LARGE_INTEGER qpf; LARGE_INTEGER qpf;

View File

@ -39,8 +39,6 @@ DWORD WINAPI W32_Win32ThreadProc(LPVOID vt)
char *thread_name_desc_cstr = CstrFromString(perm, thread_name_desc); char *thread_name_desc_cstr = CstrFromString(perm, thread_name_desc);
wchar_t *thread_name_desc_wstr = WstrFromString(perm, thread_name_desc); wchar_t *thread_name_desc_wstr = WstrFromString(perm, thread_name_desc);
__profthread(thread_name_dsec_cstr, t->profiler_group);
/* Initialize COM */ /* Initialize COM */
CoInitializeEx(0, COINIT_MULTITHREADED); CoInitializeEx(0, COINIT_MULTITHREADED);
@ -58,9 +56,8 @@ DWORD WINAPI W32_Win32ThreadProc(LPVOID vt)
return 0; return 0;
} }
W32_Thread *W32_StartThread(W32_ThreadFunc *entry_point, void *thread_udata, String thread_name, i32 profiler_group) W32_Thread *W32_StartThread(W32_ThreadFunc *entry_point, void *thread_udata, String thread_name)
{ {
__prof;
W32_SharedJobState *g = &W32_shared_job_state; W32_SharedJobState *g = &W32_shared_job_state;
TempArena scratch = BeginScratchNoConflict(); TempArena scratch = BeginScratchNoConflict();
Arena *perm = PermArena(); Arena *perm = PermArena();
@ -71,7 +68,6 @@ W32_Thread *W32_StartThread(W32_ThreadFunc *entry_point, void *thread_udata, Str
t->thread_name = PushString(perm, thread_name); t->thread_name = PushString(perm, thread_name);
t->entry_point = entry_point; t->entry_point = entry_point;
t->thread_udata = thread_udata; t->thread_udata = thread_udata;
t->profiler_group = profiler_group;
t->handle = CreateThread(0, W32_FiberStackSize, W32_Win32ThreadProc, t, 0, 0); t->handle = CreateThread(0, W32_FiberStackSize, W32_Win32ThreadProc, t, 0, 0);
if (!t->handle) if (!t->handle)
@ -86,7 +82,6 @@ W32_Thread *W32_StartThread(W32_ThreadFunc *entry_point, void *thread_udata, Str
/* Returns 0 if the thread could not release in specified timeout (e.g. because it is still running) */ /* Returns 0 if the thread could not release in specified timeout (e.g. because it is still running) */
b32 W32_TryEndThread(W32_Thread *thread, f32 timeout_seconds) b32 W32_TryEndThread(W32_Thread *thread, f32 timeout_seconds)
{ {
__prof;
W32_SharedJobState *g = &W32_shared_job_state; W32_SharedJobState *g = &W32_shared_job_state;
b32 ok = 0; b32 ok = 0;
W32_Thread *t = (W32_Thread *)thread; W32_Thread *t = (W32_Thread *)thread;
@ -108,7 +103,6 @@ b32 W32_TryEndThread(W32_Thread *thread, f32 timeout_seconds)
void W32_WaitEndThread(W32_Thread *thread) void W32_WaitEndThread(W32_Thread *thread)
{ {
__prof;
b32 ok = W32_TryEndThread(thread, F32Infinity); b32 ok = W32_TryEndThread(thread, F32Infinity);
Assert(ok); Assert(ok);
} }
@ -160,7 +154,6 @@ W32_Fiber *W32_AcquireFiber(W32_JobPool *pool)
} }
if (new_name_cstr != 0) if (new_name_cstr != 0)
{ {
__profn("Initialize fiber");
fiber->id = fiber_id; fiber->id = fiber_id;
/* Id to ASCII */ /* Id to ASCII */
@ -200,7 +193,6 @@ W32_Fiber *W32_AcquireFiber(W32_JobPool *pool)
/* Init win32 fiber */ /* Init win32 fiber */
if (pool != 0) if (pool != 0)
{ {
__profn("CreateFiber");
fiber->pool = pool->id; fiber->pool = pool->id;
#if VIRTUAL_FIBERS #if VIRTUAL_FIBERS
fiber->addr = CreateThread(0, W32_FiberStackSize, W32_VirtualFiberEntryPoint, (void *)(i64)fiber_id, 0, 0); fiber->addr = CreateThread(0, W32_FiberStackSize, W32_VirtualFiberEntryPoint, (void *)(i64)fiber_id, 0, 0);
@ -211,7 +203,6 @@ W32_Fiber *W32_AcquireFiber(W32_JobPool *pool)
else else
{ {
/* Fiber is not a part of a job pool, convert thread to fiber */ /* Fiber is not a part of a job pool, convert thread to fiber */
__profn("ConvertThreadToFiber");
fiber->addr = ConvertThreadToFiber((void *)(i64)fiber_id); fiber->addr = ConvertThreadToFiber((void *)(i64)fiber_id);
#if VIRTUAL_FIBERS #if VIRTUAL_FIBERS
fiber->addr = GetCurrentThread(); fiber->addr = GetCurrentThread();
@ -275,7 +266,6 @@ void W32_FiberEntryPoint(void *_)
W32_JobPool *pool = &W32_shared_job_state.job_pools[fiber->pool]; W32_JobPool *pool = &W32_shared_job_state.job_pools[fiber->pool];
JobPoolId pool_id = fiber->pool; JobPoolId pool_id = fiber->pool;
char *fiber_name_cstr = fiber->name_cstr; char *fiber_name_cstr = fiber->name_cstr;
__prof_fiber_enter(fiber_name_cstr, PROF_THREAD_GROUP_FIBERS - Mebi(pool_id) + Kibi(1) + fiber->id);
for (;;) for (;;)
{ {
W32_Task *task = fiber->task; W32_Task *task = fiber->task;
@ -311,7 +301,6 @@ void W32_FiberEntryPoint(void *_)
/* Yield to worker */ /* Yield to worker */
{ {
__prof_fiber_leave();
W32_Fiber *parent_fiber = W32_FiberFromId(fiber->return_id); W32_Fiber *parent_fiber = W32_FiberFromId(fiber->return_id);
W32_SwitchToFiber(parent_fiber); W32_SwitchToFiber(parent_fiber);
} }
@ -377,7 +366,6 @@ W32_ThreadDef(W32_JobWorkerEntryPoint, worker_ctx_arg)
case JobPoolPriority_Audio: case JobPoolPriority_Audio:
{ {
/* https://learn.microsoft.com/en-us/windows/win32/procthread/multimedia-class-scheduler-service#registry-settings */ /* https://learn.microsoft.com/en-us/windows/win32/procthread/multimedia-class-scheduler-service#registry-settings */
__profn("Set mm thread characteristics");
DWORD task = 0; DWORD task = 0;
AvSetMmThreadCharacteristics(L"Pro Audio", &task); AvSetMmThreadCharacteristics(L"Pro Audio", &task);
SetThreadPriority(thread_handle, THREAD_PRIORITY_TIME_CRITICAL); SetThreadPriority(thread_handle, THREAD_PRIORITY_TIME_CRITICAL);
@ -460,22 +448,18 @@ W32_ThreadDef(W32_JobWorkerEntryPoint, worker_ctx_arg)
void SuspendFiber(void) void SuspendFiber(void)
{ {
__prof;
i16 fiber_id = FiberId(); i16 fiber_id = FiberId();
W32_Fiber *fiber = W32_FiberFromId(FiberId()); W32_Fiber *fiber = W32_FiberFromId(FiberId());
__prof_fiber_leave();
{ {
Atomic8Set(&fiber->status, W32_FiberStatus_Suspending); Atomic8Set(&fiber->status, W32_FiberStatus_Suspending);
W32_Fiber *parent_fiber = W32_FiberFromId(fiber->return_id); W32_Fiber *parent_fiber = W32_FiberFromId(fiber->return_id);
W32_SwitchToFiber(parent_fiber); W32_SwitchToFiber(parent_fiber);
} }
__prof_fiber_enter(fiber->name_cstr, PROF_THREAD_GROUP_FIBERS - Mebi(fiber->pool) + Kibi(1) + fiber->id);
} }
/* NOTE: Must only be called on fibers suspended via SuspendFiber */ /* NOTE: Must only be called on fibers suspended via SuspendFiber */
void ResumeFibers(i16 fiber_ids_count, i16 *fiber_ids) void ResumeFibers(i16 fiber_ids_count, i16 *fiber_ids)
{ {
__prof;
TempArena scratch = BeginScratchNoConflict(); TempArena scratch = BeginScratchNoConflict();
W32_SharedJobState *g = &W32_shared_job_state; W32_SharedJobState *g = &W32_shared_job_state;
i32 num_pools = Atomic32Fetch(&g->num_pools); i32 num_pools = Atomic32Fetch(&g->num_pools);
@ -568,9 +552,6 @@ JobPoolId InitJobPool(u32 thread_count, String name, JobPoolPriority priority)
pool->name = name; pool->name = name;
pool->priority = priority; pool->priority = priority;
/* TODO: Real profiler group */
i32 profiler_group = 0;
Arena *perm = PermArena(); Arena *perm = PermArena();
pool->worker_threads = PushStructs(perm, W32_Thread *, pool->num_worker_threads); pool->worker_threads = PushStructs(perm, W32_Thread *, pool->num_worker_threads);
pool->worker_contexts = PushStructs(perm, W32_WorkerCtx, pool->num_worker_threads); pool->worker_contexts = PushStructs(perm, W32_WorkerCtx, pool->num_worker_threads);
@ -580,7 +561,7 @@ JobPoolId InitJobPool(u32 thread_count, String name, JobPoolPriority priority)
ctx->pool_id = pool_id; ctx->pool_id = pool_id;
ctx->id = i; ctx->id = i;
String worker_name = StringF(perm, "%F [%F]", FmtString(name), FmtSint(i)); String worker_name = StringF(perm, "%F [%F]", FmtString(name), FmtSint(i));
pool->worker_threads[i] = W32_StartThread(W32_JobWorkerEntryPoint, ctx, worker_name, profiler_group + i); pool->worker_threads[i] = W32_StartThread(W32_JobWorkerEntryPoint, ctx, worker_name);
} }
return pool_id; return pool_id;
} }

View File

@ -34,7 +34,6 @@ Struct(W32_Thread)
String thread_name; String thread_name;
W32_ThreadFunc *entry_point; W32_ThreadFunc *entry_point;
void *thread_udata; void *thread_udata;
i32 profiler_group;
HANDLE handle; HANDLE handle;
}; };
@ -180,7 +179,7 @@ void StartupJobs(void);
//~ Thread operations //~ Thread operations
DWORD WINAPI W32_Win32ThreadProc(LPVOID vt); DWORD WINAPI W32_Win32ThreadProc(LPVOID vt);
W32_Thread *W32_StartThread(W32_ThreadFunc *entry_point, void *thread_udata, String thread_name, i32 profiler_group); W32_Thread *W32_StartThread(W32_ThreadFunc *entry_point, void *thread_udata, String thread_name);
b32 W32_TryEndThread(W32_Thread *thread, f32 timeout_seconds); b32 W32_TryEndThread(W32_Thread *thread, f32 timeout_seconds);
void W32_WaitEndThread(W32_Thread *thread); void W32_WaitEndThread(W32_Thread *thread);
JobDecl(W32_DummyJob, EmptySig); JobDecl(W32_DummyJob, EmptySig);

View File

@ -5,7 +5,6 @@ W32_SharedLogState W32_shared_log_state = ZI;
void InitLogSystem(String logfile_path) void InitLogSystem(String logfile_path)
{ {
__prof;
W32_SharedLogState *g = &W32_shared_log_state; W32_SharedLogState *g = &W32_shared_log_state;
g->logs_arena = AcquireArena(Gibi(64)); g->logs_arena = AcquireArena(Gibi(64));
g->log_msgs_arena = AcquireArena(Gibi(64)); g->log_msgs_arena = AcquireArena(Gibi(64));
@ -33,7 +32,6 @@ void InitLogSystem(String logfile_path)
void W32_Log(i32 level, String msg) void W32_Log(i32 level, String msg)
{ {
__prof;
W32_SharedLogState *g = &W32_shared_log_state; W32_SharedLogState *g = &W32_shared_log_state;
TempArena scratch = BeginScratchNoConflict(); TempArena scratch = BeginScratchNoConflict();
if (Atomic32Fetch(&g->initialized)) if (Atomic32Fetch(&g->initialized))
@ -43,7 +41,6 @@ void W32_Log(i32 level, String msg)
{ {
Panic(Lit("Invalid log level")); Panic(Lit("Invalid log level"));
} }
__profmsg((char *)msg.text, msg.len, settings.color);
DateTime datetime = LocalDateTime(); DateTime datetime = LocalDateTime();
i64 now_ns = TimeNs(); i64 now_ns = TimeNs();

View File

@ -85,11 +85,6 @@
/* If enabled, things like network writes & memory allocations will be tracked in a global statistics struct */ /* If enabled, things like network writes & memory allocations will be tracked in a global statistics struct */
#define GstatIsEnabled 1 #define GstatIsEnabled 1
#define PROF_THREAD_GROUP_FIBERS -(i64)Gibi(1)
#define PROF_THREAD_GROUP_SCHEDULER -(i64)Mebi(3)
#define PROF_THREAD_GROUP_WINDOW -(i64)Mebi(2)
#define PROF_THREAD_GROUP_MAIN -(i64)Mebi(1)
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
//~ Settings //~ Settings

View File

@ -5,7 +5,6 @@ D_SharedState D_shared_state = ZI;
void D_Startup(void) void D_Startup(void)
{ {
__prof;
D_SharedState *g = &D_shared_state; D_SharedState *g = &D_shared_state;
u32 pixel_white = 0xFFFFFFFF; u32 pixel_white = 0xFFFFFFFF;
g->solid_white_texture = GPU_AcquireTexture(GP_TEXTURE_FORMAT_R8G8B8A8_UNORM, 0, VEC2I32(1, 1), &pixel_white); g->solid_white_texture = GPU_AcquireTexture(GP_TEXTURE_FORMAT_R8G8B8A8_UNORM, 0, VEC2I32(1, 1), &pixel_white);

View File

@ -3,7 +3,6 @@
JobImpl(F_Load, sig, _) JobImpl(F_Load, sig, _)
{ {
__prof;
TempArena scratch = BeginScratchNoConflict(); TempArena scratch = BeginScratchNoConflict();
PERSIST Readonly u32 font_codes[] = { PERSIST Readonly u32 font_codes[] = {
@ -135,7 +134,6 @@ JobImpl(F_Load, sig, _)
/* Returns the asset from the asset cache */ /* Returns the asset from the asset cache */
AC_Asset *F_LoadAsset(ResourceKey resource, f32 size, b32 wait) AC_Asset *F_LoadAsset(ResourceKey resource, f32 size, b32 wait)
{ {
__prof;
TempArena scratch = BeginScratchNoConflict(); TempArena scratch = BeginScratchNoConflict();
String name = NameFromResource(resource); String name = NameFromResource(resource);
@ -172,7 +170,6 @@ AC_Asset *F_LoadAsset(ResourceKey resource, f32 size, b32 wait)
F_Font *F_LoadFontAsync(ResourceKey resource, f32 point_size) F_Font *F_LoadFontAsync(ResourceKey resource, f32 point_size)
{ {
__prof;
AC_Asset *asset = F_LoadAsset(resource, point_size, 0); AC_Asset *asset = F_LoadAsset(resource, point_size, 0);
F_Font *f = (F_Font *)AC_DataFromStore(asset); F_Font *f = (F_Font *)AC_DataFromStore(asset);
return f; return f;
@ -180,7 +177,6 @@ F_Font *F_LoadFontAsync(ResourceKey resource, f32 point_size)
F_Font *F_LoadFontWait(ResourceKey resource, f32 point_size) F_Font *F_LoadFontWait(ResourceKey resource, f32 point_size)
{ {
__prof;
AC_Asset *asset = F_LoadAsset(resource, point_size, 1); AC_Asset *asset = F_LoadAsset(resource, point_size, 1);
AC_YieldOnAssetReady(asset); AC_YieldOnAssetReady(asset);
F_Font *f = (F_Font *)AC_DataFromStore(asset); F_Font *f = (F_Font *)AC_DataFromStore(asset);

View File

@ -12,11 +12,11 @@ Struct(GPU_SwapchainHandle) { u64 v; };
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
//~ Queue types //~ Queue types
#define GPU_MultiQueueIsEnabled (!IsProfilingEnabled) #define GPU_IsMultiQueueEnabled 1
Enum(GPU_QueueKind) Enum(GPU_QueueKind)
{ {
#if GPU_MultiQueueIsEnabled #if GPU_IsMultiQueueEnabled
GPU_QueueKind_Direct = 0, GPU_QueueKind_Direct = 0,
GPU_QueueKind_AsyncCompute = 1, GPU_QueueKind_AsyncCompute = 1,
GPU_QueueKind_AsyncCopy = 2, GPU_QueueKind_AsyncCopy = 2,
@ -681,10 +681,6 @@ void GPU_RasterizeEx(GPU_CommandListHandle cl,
void GPU_ClearRenderTarget(GPU_CommandListHandle cl, GPU_ResourceHandle render_target, Vec4 color); void GPU_ClearRenderTarget(GPU_CommandListHandle cl, GPU_ResourceHandle render_target, Vec4 color);
//- Profile
void GPU_ProfN(GPU_CommandListHandle cl, String name);
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
//~ @hookdecl Synchronization //~ @hookdecl Synchronization

View File

@ -19,7 +19,6 @@ void GPU_Startup(void)
u32 dxgi_factory_flags = 0; u32 dxgi_factory_flags = 0;
#if GPU_DEBUG #if GPU_DEBUG
{ {
__profn("Enable debug layer");
ID3D12Debug *debug_controller0 = 0; ID3D12Debug *debug_controller0 = 0;
{ {
hr = D3D12GetDebugInterface(&IID_ID3D12Debug, (void **)&debug_controller0); hr = D3D12GetDebugInterface(&IID_ID3D12Debug, (void **)&debug_controller0);
@ -50,7 +49,6 @@ void GPU_Startup(void)
/* Create factory */ /* Create factory */
{ {
__profn("Create factory");
hr = CreateDXGIFactory2(dxgi_factory_flags, &IID_IDXGIFactory6, (void **)&g->factory); hr = CreateDXGIFactory2(dxgi_factory_flags, &IID_IDXGIFactory6, (void **)&g->factory);
if (FAILED(hr)) if (FAILED(hr))
{ {
@ -60,7 +58,6 @@ void GPU_Startup(void)
/* Create device */ /* Create device */
{ {
__profn("Create device");
IDXGIAdapter3 *adapter = 0; IDXGIAdapter3 *adapter = 0;
ID3D12Device10 *device = 0; ID3D12Device10 *device = 0;
String error = Lit("Could not initialize GPU device."); String error = Lit("Could not initialize GPU device.");
@ -123,7 +120,6 @@ void GPU_Startup(void)
#if GPU_DEBUG #if GPU_DEBUG
/* Enable D3D12 Debug break */ /* Enable D3D12 Debug break */
{ {
__profn("Enable d3d12 debug break");
ID3D12InfoQueue *info = 0; ID3D12InfoQueue *info = 0;
hr = ID3D12Device_QueryInterface(g->device, &IID_ID3D12InfoQueue, (void **)&info); hr = ID3D12Device_QueryInterface(g->device, &IID_ID3D12InfoQueue, (void **)&info);
if (FAILED(hr)) if (FAILED(hr))
@ -136,7 +132,6 @@ void GPU_Startup(void)
} }
/* Enable DXGI Debug break */ /* Enable DXGI Debug break */
{ {
__profn("Enable dxgi debug break");
IDXGIInfoQueue *dxgi_info = 0; IDXGIInfoQueue *dxgi_info = 0;
hr = DXGIGetDebugInterface1(0, &IID_IDXGIInfoQueue, (void **)&dxgi_info); hr = DXGIGetDebugInterface1(0, &IID_IDXGIInfoQueue, (void **)&dxgi_info);
if (FAILED(hr)) if (FAILED(hr))
@ -252,8 +247,6 @@ void GPU_Startup(void)
ID3D10Blob *blob = 0; ID3D10Blob *blob = 0;
if (SUCCEEDED(hr)) if (SUCCEEDED(hr))
{ {
__profn("Serialize root signature");
D3D12_ROOT_PARAMETER params[MaxShaderConstants] = ZI; D3D12_ROOT_PARAMETER params[MaxShaderConstants] = ZI;
for (i32 slot = 0; slot < MaxShaderConstants; ++slot) for (i32 slot = 0; slot < MaxShaderConstants; ++slot)
{ {
@ -279,7 +272,6 @@ void GPU_Startup(void)
ID3D12RootSignature *rootsig = 0; ID3D12RootSignature *rootsig = 0;
if (SUCCEEDED(hr)) if (SUCCEEDED(hr))
{ {
__profn("Create root signature");
hr = ID3D12Device_CreateRootSignature(g->device, 0, ID3D10Blob_GetBufferPointer(blob), ID3D10Blob_GetBufferSize(blob), &IID_ID3D12RootSignature, (void **)&rootsig); hr = ID3D12Device_CreateRootSignature(g->device, 0, ID3D10Blob_GetBufferPointer(blob), ID3D10Blob_GetBufferSize(blob), &IID_ID3D12RootSignature, (void **)&rootsig);
} }
g->bindless_rootsig = rootsig; g->bindless_rootsig = rootsig;
@ -675,7 +667,6 @@ void GPU_D12_CommitRawCommandList(GPU_D12_RawCommandList *cl)
/* Close */ /* Close */
{ {
__profn("Close DX12 command list");
HRESULT hr = ID3D12GraphicsCommandList_Close(cl->d3d_cl); HRESULT hr = ID3D12GraphicsCommandList_Close(cl->d3d_cl);
if (FAILED(hr)) if (FAILED(hr))
{ {
@ -686,7 +677,6 @@ void GPU_D12_CommitRawCommandList(GPU_D12_RawCommandList *cl)
/* Commit */ /* Commit */
{ {
__profn("Commit");
Lock lock = LockE(&queue->commit_mutex); Lock lock = LockE(&queue->commit_mutex);
{ {
u64 target = ++queue->commit_fence_target; u64 target = ++queue->commit_fence_target;
@ -2377,13 +2367,6 @@ void GPU_ClearRenderTarget(GPU_CommandListHandle cl_handle, GPU_ResourceHandle r
cmd->clear_rtv.color = color; cmd->clear_rtv.color = color;
} }
//- Profile
void GPU_ProfN(GPU_CommandListHandle cl, String name)
{
/* TODO */
}
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
//~ @hookimpl Synchronization //~ @hookimpl Synchronization
@ -2409,7 +2392,7 @@ void GPU_SyncQueue(GPU_QueueKind completion_queue_kind, GPU_QueueKind waiter_que
void GPU_SyncAllQueues(GPU_QueueKind completion_queue_kind) void GPU_SyncAllQueues(GPU_QueueKind completion_queue_kind)
{ {
if (GPU_MultiQueueIsEnabled) if (GPU_IsMultiQueueEnabled)
{ {
GPU_D12_Queue *completion_queue = GPU_D12_QueueFromKind(completion_queue_kind); GPU_D12_Queue *completion_queue = GPU_D12_QueueFromKind(completion_queue_kind);
ID3D12Fence *d3d_fence = completion_queue->commit_fence; ID3D12Fence *d3d_fence = completion_queue->commit_fence;
@ -2714,7 +2697,6 @@ void GPU_CommitBackbuffer(GPU_ResourceHandle backbuffer_handle, i32 vsync)
/* Present */ /* Present */
{ {
__profn("Present");
HRESULT hr = IDXGISwapChain3_Present(swapchain->d3d_swapchain, vsync, present_flags); HRESULT hr = IDXGISwapChain3_Present(swapchain->d3d_swapchain, vsync, present_flags);
if (!SUCCEEDED(hr)) if (!SUCCEEDED(hr))
{ {

View File

@ -33,10 +33,6 @@
# define IsDeveloperModeEnabled 1 # define IsDeveloperModeEnabled 1
#endif #endif
#ifndef IsProfilingEnabled
# define IsProfilingEnabled 0
#endif
#ifndef IsUnoptimized #ifndef IsUnoptimized
# define IsUnoptimized 1 # define IsUnoptimized 1
#endif #endif
@ -53,7 +49,6 @@
//~ Includes //~ Includes
//- Header files //- Header files
#include "../prof/prof_inc.h"
#include "../base/base_inc.h" #include "../base/base_inc.h"
#include "meta_os/meta_os_inc.h" #include "meta_os/meta_os_inc.h"
#include "meta_file/meta_file_inc.h" #include "meta_file/meta_file_inc.h"
@ -332,11 +327,9 @@ JobImpl(Step, sig, id)
PushStringToList(arena, &c_out_lines, Lit("// Auto generated file")); PushStringToList(arena, &c_out_lines, Lit("// Auto generated file"));
/* Include base layer */ /* Include base layer */
{ {
String prof_inc_path = F_GetFull(arena, Lit("../src/prof/prof_inc.h"));
String base_inc_path = F_GetFull(arena, Lit("../src/base/base_inc.h")); String base_inc_path = F_GetFull(arena, Lit("../src/base/base_inc.h"));
PushStringToList(arena, &c_out_lines, Lit("")); PushStringToList(arena, &c_out_lines, Lit(""));
PushStringToList(arena, &c_out_lines, Lit("//- Base layer includes")); PushStringToList(arena, &c_out_lines, Lit("//- Base layer includes"));
PushStringToList(arena, &c_out_lines, StringF(arena, "#include \"%F\"", FmtString(prof_inc_path)));
PushStringToList(arena, &c_out_lines, StringF(arena, "#include \"%F\"", FmtString(base_inc_path))); PushStringToList(arena, &c_out_lines, StringF(arena, "#include \"%F\"", FmtString(base_inc_path)));
} }
/* Define resource stores */ /* Define resource stores */
@ -507,11 +500,9 @@ JobImpl(Step, sig, id)
PushStringToList(arena, &gpu_out_lines, Lit("// Auto generated file")); PushStringToList(arena, &gpu_out_lines, Lit("// Auto generated file"));
/* Include base layer */ /* Include base layer */
{ {
String prof_inc_path = F_GetFull(arena, Lit("../src/prof/prof_inc.h"));
String base_inc_path = F_GetFull(arena, Lit("../src/base/base_inc.h")); String base_inc_path = F_GetFull(arena, Lit("../src/base/base_inc.h"));
PushStringToList(arena, &gpu_out_lines, Lit("")); PushStringToList(arena, &gpu_out_lines, Lit(""));
PushStringToList(arena, &gpu_out_lines, Lit("//- Base layer includes")); PushStringToList(arena, &gpu_out_lines, Lit("//- Base layer includes"));
PushStringToList(arena, &gpu_out_lines, StringF(arena, "#include \"%F\"", FmtString(prof_inc_path)));
PushStringToList(arena, &gpu_out_lines, StringF(arena, "#include \"%F\"", FmtString(base_inc_path))); PushStringToList(arena, &gpu_out_lines, StringF(arena, "#include \"%F\"", FmtString(base_inc_path)));
} }
/* Include dependency layers */ /* Include dependency layers */
@ -860,7 +851,6 @@ JobImpl(Build, _, __)
u64 new_metahash = 0; u64 new_metahash = 0;
{ {
StringList check_files = ZI; StringList check_files = ZI;
F_FilesFromDir(arena, &check_files, Lit("../src/prof"), F_IterFlag_Recurse);
F_FilesFromDir(arena, &check_files, Lit("../src/base"), F_IterFlag_Recurse); F_FilesFromDir(arena, &check_files, Lit("../src/base"), F_IterFlag_Recurse);
F_FilesFromDir(arena, &check_files, Lit("../src/meta"), F_IterFlag_Recurse); F_FilesFromDir(arena, &check_files, Lit("../src/meta"), F_IterFlag_Recurse);
PushStringToList(arena, &check_files, Lit("../src/config.h")); PushStringToList(arena, &check_files, Lit("../src/config.h"));
@ -921,7 +911,6 @@ JobImpl(Build, _, __)
PushStringToList(arena, &cp.defs, Lit("-DIsCrtlibEnabled=1")); PushStringToList(arena, &cp.defs, Lit("-DIsCrtlibEnabled=1"));
PushStringToList(arena, &cp.defs, Lit("-DIsDebinfoEnabled=1")); PushStringToList(arena, &cp.defs, Lit("-DIsDebinfoEnabled=1"));
PushStringToList(arena, &cp.defs, Lit("-DIsDeveloperModeEnabled=1")); PushStringToList(arena, &cp.defs, Lit("-DIsDeveloperModeEnabled=1"));
PushStringToList(arena, &cp.defs, Lit("-DIsProfilingEnabled=0"));
PushStringToList(arena, &cp.defs, Lit("-DIsUnoptimized=1")); PushStringToList(arena, &cp.defs, Lit("-DIsUnoptimized=1"));
PushStringToList(arena, &cp.defs, Lit("-DIsTestingEnabled=0")); PushStringToList(arena, &cp.defs, Lit("-DIsTestingEnabled=0"));
PushStringToList(arena, &cp.defs, Lit("-DIsHotSwappingEnabled=1")); PushStringToList(arena, &cp.defs, Lit("-DIsHotSwappingEnabled=1"));

View File

@ -21,7 +21,6 @@ MIX_SharedState M_shared_state = ZI;
void MIX_Startup(void) void MIX_Startup(void)
{ {
__prof;
MIX_SharedState *g = &M_shared_state; MIX_SharedState *g = &M_shared_state;
g->track_arena = AcquireArena(Gibi(64)); g->track_arena = AcquireArena(Gibi(64));
g->listener_pos = VEC2(0, 0); g->listener_pos = VEC2(0, 0);
@ -241,7 +240,6 @@ i16 MIX_SampleSound(SND_Sound *sound, u64 sample_pos, b32 wrap)
/* To be called once per audio playback interval */ /* To be called once per audio playback interval */
MIX_PcmF32 MIX_MixAllTracks(Arena *arena, u64 frame_count) MIX_PcmF32 MIX_MixAllTracks(Arena *arena, u64 frame_count)
{ {
__prof;
TempArena scratch = BeginScratch(arena); TempArena scratch = BeginScratch(arena);
MIX_SharedState *g = &M_shared_state; MIX_SharedState *g = &M_shared_state;
@ -267,7 +265,6 @@ MIX_PcmF32 MIX_MixAllTracks(Arena *arena, u64 frame_count)
mixes = PushStructsNoZero(scratch.arena, MIX_MixData *, g->track_playing_count); mixes = PushStructsNoZero(scratch.arena, MIX_MixData *, g->track_playing_count);
for (MIX_Track *track = g->track_first_playing; track; track = track->next) for (MIX_Track *track = g->track_first_playing; track; track = track->next)
{ {
__profn("Prepare track");
MIX_MixData *mix = &track->mix; MIX_MixData *mix = &track->mix;
mix->desc = track->desc; mix->desc = track->desc;
mixes[mixes_count++] = mix; mixes[mixes_count++] = mix;
@ -280,7 +277,6 @@ MIX_PcmF32 MIX_MixAllTracks(Arena *arena, u64 frame_count)
for (u64 mix_index = 0; mix_index < mixes_count; ++mix_index) for (u64 mix_index = 0; mix_index < mixes_count; ++mix_index)
{ {
__profn("Mix track");
MIX_MixData *mix = mixes[mix_index]; MIX_MixData *mix = mixes[mix_index];
if (mix->source->samples_count <= 0) if (mix->source->samples_count <= 0)
@ -338,7 +334,6 @@ MIX_PcmF32 MIX_MixAllTracks(Arena *arena, u64 frame_count)
//- Resample //- Resample
/* Transform 16 bit source -> 32 bit stereo at output duration */ /* Transform 16 bit source -> 32 bit stereo at output duration */
{ {
__profn("Resample");
f32 *out_samples = mix_pcm.samples; f32 *out_samples = mix_pcm.samples;
u64 out_frames_count = mix_pcm.count / 2; u64 out_frames_count = mix_pcm.count / 2;
@ -395,8 +390,6 @@ MIX_PcmF32 MIX_MixAllTracks(Arena *arena, u64 frame_count)
//- Spatialize //- Spatialize
if (desc.flags & MIX_TrackFlag_Spatialize) if (desc.flags & MIX_TrackFlag_Spatialize)
{ {
__profn("Spatialize");
/* Algorithm constants */ /* Algorithm constants */
const f32 rolloff_height = 1.2f; const f32 rolloff_height = 1.2f;
const f32 rolloff_scale = 6.0f; const f32 rolloff_scale = 6.0f;
@ -457,7 +450,6 @@ MIX_PcmF32 MIX_MixAllTracks(Arena *arena, u64 frame_count)
//- Update track effect data //- Update track effect data
{ {
__profn("Update track effect data");
Lock lock = LockE(&g->mutex); Lock lock = LockE(&g->mutex);
for (u64 i = 0; i < mixes_count; ++i) for (u64 i = 0; i < mixes_count; ++i)
{ {

View File

@ -544,13 +544,10 @@ N_EventList N_BeginUpdate(Arena *arena, N_Host *host)
N_EventList events = ZI; N_EventList events = ZI;
i64 now_ns = TimeNs(); i64 now_ns = TimeNs();
{ {
__profn("Read packets");
//- Read socket //- Read socket
N_RcvPacket *first_packet = 0; N_RcvPacket *first_packet = 0;
N_RcvPacket *last_packet = 0; N_RcvPacket *last_packet = 0;
{ {
__profn("Read socket");
P_Sock *sock = host->sock; P_Sock *sock = host->sock;
P_SockReadResult result = ZI; P_SockReadResult result = ZI;
while ((result = P_ReadSock(scratch.arena, sock)).valid) while ((result = P_ReadSock(scratch.arena, sock)).valid)
@ -577,7 +574,6 @@ N_EventList N_BeginUpdate(Arena *arena, N_Host *host)
//- Read incoming packets //- Read incoming packets
{ {
__profn("Process host packets");
for (N_RcvPacket *packet = first_packet; packet; packet = packet->next) for (N_RcvPacket *packet = first_packet; packet; packet = packet->next)
{ {
//struct sock *sock = packet->sock; //struct sock *sock = packet->sock;
@ -766,7 +762,6 @@ N_EventList N_BeginUpdate(Arena *arena, N_Host *host)
//- Update channels //- Update channels
{ {
__profn("Update host channels");
for (u64 i = 0; i < host->num_channels_reserved; ++i) for (u64 i = 0; i < host->num_channels_reserved; ++i)
{ {
N_Channel *channel = &host->channels[i]; N_Channel *channel = &host->channels[i];
@ -850,13 +845,11 @@ N_EventList N_BeginUpdate(Arena *arena, N_Host *host)
/* Process host cmds & send outgoing packets */ /* Process host cmds & send outgoing packets */
void N_EndUpdate(N_Host *host) void N_EndUpdate(N_Host *host)
{ {
__prof;
TempArena scratch = BeginScratchNoConflict(); TempArena scratch = BeginScratchNoConflict();
/* Process cmds into sendable packets */ /* Process cmds into sendable packets */
/* TODO: Unreliable packets don't need to be allocated into unreliable packet queue, should just send them and forget */ /* TODO: Unreliable packets don't need to be allocated into unreliable packet queue, should just send them and forget */
{ {
__profn("Process host cmds");
for (N_Cmd *cmd = host->first_cmd; cmd; cmd = cmd->next) for (N_Cmd *cmd = host->first_cmd; cmd; cmd = cmd->next)
{ {
N_CmdKind kind = cmd->kind; N_CmdKind kind = cmd->kind;
@ -981,7 +974,6 @@ void N_EndUpdate(N_Host *host)
//- Send packets //- Send packets
/* TODO: Aggregate small packets */ /* TODO: Aggregate small packets */
{ {
__profn("Send host packets");
for (u64 i = 0; i < host->num_channels_reserved; ++i) for (u64 i = 0; i < host->num_channels_reserved; ++i)
{ {
P_Sock *sock = host->sock; P_Sock *sock = host->sock;

View File

@ -181,10 +181,8 @@ JobImpl(P_W32_StartTimerSync, _, __)
/* FIXME: shutdown */ /* FIXME: shutdown */
for (;;) for (;;)
{ {
__profn("Job scheduler cycle");
{ {
/* TODO: Minimum timer frequency in case timers ever become ultra precise in the future */ /* TODO: Minimum timer frequency in case timers ever become ultra precise in the future */
__profn("Job scheduler wait");
LARGE_INTEGER due = ZI; LARGE_INTEGER due = ZI;
due.QuadPart = -1; due.QuadPart = -1;
//due.QuadPart = -10000; //due.QuadPart = -10000;
@ -244,7 +242,6 @@ String P_GetWritePath(Arena *arena)
b32 P_IsFile(String path) b32 P_IsFile(String path)
{ {
__prof;
TempArena scratch = BeginScratchNoConflict(); TempArena scratch = BeginScratchNoConflict();
wchar_t *path_wstr = WstrFromString(scratch.arena, path); wchar_t *path_wstr = WstrFromString(scratch.arena, path);
DWORD attributes = GetFileAttributesW(path_wstr); DWORD attributes = GetFileAttributesW(path_wstr);
@ -263,7 +260,6 @@ b32 P_IsDir(String path)
void P_MkDir(String path) void P_MkDir(String path)
{ {
__prof;
TempArena scratch = BeginScratchNoConflict(); TempArena scratch = BeginScratchNoConflict();
wchar_t *path_wstr = WstrFromString(scratch.arena, path); wchar_t *path_wstr = WstrFromString(scratch.arena, path);
int err_code = SHCreateDirectory(0, path_wstr); int err_code = SHCreateDirectory(0, path_wstr);
@ -306,7 +302,6 @@ void P_MkDir(String path)
//- File creation //- File creation
P_File P_OpenFileRead(String path) P_File P_OpenFileRead(String path)
{ {
__prof;
TempArena scratch = BeginScratchNoConflict(); TempArena scratch = BeginScratchNoConflict();
P_File file = ZI; P_File file = ZI;
@ -329,7 +324,6 @@ P_File P_OpenFileRead(String path)
P_File P_OpenFileReadWait(String path) P_File P_OpenFileReadWait(String path)
{ {
__prof;
TempArena scratch = BeginScratchNoConflict(); TempArena scratch = BeginScratchNoConflict();
P_File file = ZI; P_File file = ZI;
@ -340,7 +334,6 @@ P_File P_OpenFileReadWait(String path)
{ {
if (GetLastError() == ERROR_SHARING_VIOLATION) if (GetLastError() == ERROR_SHARING_VIOLATION)
{ {
__profn("File share conflict delay");
Sleep(delay_ms); Sleep(delay_ms);
if (delay_ms < 1024) if (delay_ms < 1024)
{ {
@ -361,7 +354,6 @@ P_File P_OpenFileReadWait(String path)
P_File P_OpenFileWrite(String path) P_File P_OpenFileWrite(String path)
{ {
__prof;
TempArena scratch = BeginScratchNoConflict(); TempArena scratch = BeginScratchNoConflict();
P_File file = ZI; P_File file = ZI;
@ -384,7 +376,6 @@ P_File P_OpenFileWrite(String path)
P_File P_OpenFileAppend(String path) P_File P_OpenFileAppend(String path)
{ {
__prof;
TempArena scratch = BeginScratchNoConflict(); TempArena scratch = BeginScratchNoConflict();
P_File file = ZI; P_File file = ZI;
@ -407,7 +398,6 @@ P_File P_OpenFileAppend(String path)
void P_CloseFile(P_File file) void P_CloseFile(P_File file)
{ {
__prof;
if (file.handle) if (file.handle)
{ {
CloseHandle((HANDLE)file.handle); CloseHandle((HANDLE)file.handle);
@ -417,7 +407,6 @@ void P_CloseFile(P_File file)
//- File data manipulation //- File data manipulation
String P_ReadFile(Arena *arena, P_File file) String P_ReadFile(Arena *arena, P_File file)
{ {
__prof;
i64 size = 0; i64 size = 0;
GetFileSizeEx((HANDLE)file.handle, (PLARGE_INTEGER)&size); GetFileSizeEx((HANDLE)file.handle, (PLARGE_INTEGER)&size);
@ -446,7 +435,6 @@ String P_ReadFile(Arena *arena, P_File file)
void P_WriteFile(P_File file, String data) void P_WriteFile(P_File file, String data)
{ {
__prof;
/* TODO: Check what the real data limit is and chunk sequentially based on /* TODO: Check what the real data limit is and chunk sequentially based on
* that (rather than failing) */ * that (rather than failing) */
if (data.len >= 0x7FFF) if (data.len >= 0x7FFF)
@ -478,8 +466,6 @@ u64 P_GetFileSize(P_File file)
P_FileTime P_GetFileTime(P_File file) P_FileTime P_GetFileTime(P_File file)
{ {
__prof;
/* Get file times */ /* Get file times */
FILETIME ft_created; FILETIME ft_created;
FILETIME ft_accessed; FILETIME ft_accessed;
@ -518,7 +504,6 @@ P_FileTime P_GetFileTime(P_File file)
P_FileMap P_OpenFileMap(P_File file) P_FileMap P_OpenFileMap(P_File file)
{ {
__prof;
P_FileMap map = ZI; P_FileMap map = ZI;
u64 size = P_GetFileSize(file); u64 size = P_GetFileSize(file);
@ -996,14 +981,11 @@ i64 P_GetCurrentTimerPeriodNs(void)
void P_SleepPrecise(i64 sleep_time_ns) void P_SleepPrecise(i64 sleep_time_ns)
{ {
__prof;
i64 now_ns = TimeNs(); i64 now_ns = TimeNs();
i64 target_ns = now_ns + sleep_time_ns; i64 target_ns = now_ns + sleep_time_ns;
/* Sleep on timer to conserve power */ /* Sleep on timer to conserve power */
{ {
__profn("Sleep timer");
Fence *timer_fence = P_GetTimerFence(); Fence *timer_fence = P_GetTimerFence();
i64 timer_period_ns = P_GetCurrentTimerPeriodNs(); i64 timer_period_ns = P_GetCurrentTimerPeriodNs();
i64 timer_tolerance_ns = timer_period_ns * 0.5; i64 timer_tolerance_ns = timer_period_ns * 0.5;
@ -1015,7 +997,6 @@ void P_SleepPrecise(i64 sleep_time_ns)
now_ns = TimeNs(); now_ns = TimeNs();
while (now_ns < target_ns) while (now_ns < target_ns)
{ {
__profn("Sleep spin");
_mm_pause(); _mm_pause();
now_ns = TimeNs(); now_ns = TimeNs();
} }

View File

@ -11,7 +11,6 @@ PB_WSP_SharedState PB_WSP_shared_state = ZI;
void PB_Startup(void) void PB_Startup(void)
{ {
__prof;
PB_WSP_SharedState *g = &PB_WSP_shared_state; PB_WSP_SharedState *g = &PB_WSP_shared_state;
PB_WSP_InitializeWasapi(); PB_WSP_InitializeWasapi();
/* Start playback job */ /* Start playback job */
@ -22,7 +21,6 @@ void PB_Startup(void)
ExitFuncDef(PB_WSP_Shutdown) ExitFuncDef(PB_WSP_Shutdown)
{ {
__prof;
PB_WSP_SharedState *g = &PB_WSP_shared_state; PB_WSP_SharedState *g = &PB_WSP_shared_state;
Atomic32Set(&g->shutdown, 1); Atomic32Set(&g->shutdown, 1);
YieldOnFence(&g->shutdown_jobs_fence, g->shutdown_jobs_count); YieldOnFence(&g->shutdown_jobs_fence, g->shutdown_jobs_count);
@ -126,7 +124,6 @@ void PB_WSP_InitializeWasapi(void)
PB_WSP_Buff PB_WSP_BeginUpdate(void) PB_WSP_Buff PB_WSP_BeginUpdate(void)
{ {
__prof;
PB_WSP_SharedState *g = &PB_WSP_shared_state; PB_WSP_SharedState *g = &PB_WSP_shared_state;
PB_WSP_Buff wspbuf = ZI; PB_WSP_Buff wspbuf = ZI;
@ -147,7 +144,6 @@ PB_WSP_Buff PB_WSP_BeginUpdate(void)
void PB_WSP_EndUpdate(PB_WSP_Buff *wspbuf, MIX_PcmF32 src) void PB_WSP_EndUpdate(PB_WSP_Buff *wspbuf, MIX_PcmF32 src)
{ {
__prof;
PB_WSP_SharedState *g = &PB_WSP_shared_state; PB_WSP_SharedState *g = &PB_WSP_shared_state;
u32 frames_in_source = src.count / 2; u32 frames_in_source = src.count / 2;
u32 frames_in_output = wspbuf->frames_count; u32 frames_in_output = wspbuf->frames_count;
@ -176,7 +172,6 @@ void PB_WSP_EndUpdate(PB_WSP_Buff *wspbuf, MIX_PcmF32 src)
/* Submit output buffer to WASAPI */ /* Submit output buffer to WASAPI */
IAudioRenderClient_ReleaseBuffer(g->playback, frames_in_source, flags); IAudioRenderClient_ReleaseBuffer(g->playback, frames_in_source, flags);
__profframe("Audio");
} }
//////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////
@ -184,7 +179,6 @@ void PB_WSP_EndUpdate(PB_WSP_Buff *wspbuf, MIX_PcmF32 src)
JobImpl(PB_WSP_Playback, sig, id) JobImpl(PB_WSP_Playback, sig, id)
{ {
__prof;
PB_WSP_SharedState *g = &PB_WSP_shared_state; PB_WSP_SharedState *g = &PB_WSP_shared_state;
/* FIXME: If playback fails at any point and mixer stops advancing, we /* FIXME: If playback fails at any point and mixer stops advancing, we
@ -194,11 +188,9 @@ JobImpl(PB_WSP_Playback, sig, id)
{ {
TempArena scratch = BeginScratchNoConflict(); TempArena scratch = BeginScratchNoConflict();
{ {
__profn("Wasapi wait");
WaitForSingleObject(g->event, INFINITE); WaitForSingleObject(g->event, INFINITE);
} }
{ {
__profn("Fill sample buffer");
PB_WSP_Buff wspbuf = PB_WSP_BeginUpdate(); PB_WSP_Buff wspbuf = PB_WSP_BeginUpdate();
MIX_PcmF32 pcm = MIX_MixAllTracks(scratch.arena, wspbuf.frames_count); MIX_PcmF32 pcm = MIX_MixAllTracks(scratch.arena, wspbuf.frames_count);
PB_WSP_EndUpdate(&wspbuf, pcm); PB_WSP_EndUpdate(&wspbuf, pcm);

View File

@ -281,7 +281,6 @@ void V_EndCommandsWidget(V_CommandsWidget *widget)
UI_Key V_BuildConsoleWidget(b32 minimized) UI_Key V_BuildConsoleWidget(b32 minimized)
{ {
/* TODO: Remove this whole thing */ /* TODO: Remove this whole thing */
__prof;
TempArena scratch = BeginScratchNoConflict(); TempArena scratch = BeginScratchNoConflict();
// i32 console_level = minimized ? LogLevel_Success : LogLevel_Debug; // i32 console_level = minimized ? LogLevel_Success : LogLevel_Debug;

View File

@ -1 +0,0 @@
#include "prof_tracy.h"

View File

@ -1,9 +0,0 @@
#if defined(IsProfilingEnabled) && IsProfilingEnabled == 1
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Weverything"
#define TRACY_FIBERS
# include TracyClientSrcPath
#pragma clang diagnostic pop
#endif

View File

@ -1,158 +0,0 @@
#if defined(IsProfilingEnabled) && IsProfilingEnabled == 1
////////////////////////////////////////////////////////////
//~ Profiling enabled
#ifndef __clang__
# error Only clang is supported when compiling with IsProfilingEnabled=1 (cleanup attributes are required for profiling markup)
#endif
#define ProfilingSystemTrace 0
#define ProfilingCaptureFrame 0
#define ProfilingLocks 0
#define ProfilingGpu 1
#define ProfilingGpuStablePowerState 1
//#define ProfilerThreadAffinityMask 0x000000000000F000ull
#define ProfilerThreadAffinityMask 0
#define ProfilerThreadPrefixWstr L"Tracy"
#define ProfilingOutFileWstr L".tracy"
#define ProfilingCmdWstr L"cmd /C start \"\" /wait tracy-capture.exe -o .tracy -a 127.0.0.1 && start \"\" tracy-profiler.exe .tracy"
//#define ProfilingCmdWstr L"tracy-profiler.exe -a 127.0.0.1"
/* Tracy defines */
#define TRACY_ENABLE
#define TRACY_FIBERS
#if !ProfilingSystemTrace
# define TRACY_NO_CALLSTACK
# define TRACY_NO_SYSTEM_TRACING
#endif
/* Include tracy client */
#pragma clang diagnostic ignored "-Wshadow"
#pragma clang diagnostic ignored "-Wextra-semi"
#pragma clang diagnostic ignored "-Wextra-semi-stmt"
#pragma clang diagnostic ignored "-Wpointer-sign"
#pragma clang diagnostic ignored "-Wincompatible-pointer-types-discards-qualifiers"
#include TracyClientHeaderPath
inline void __prof_zone_cleanup_func(TracyCZoneCtx *ctx) { TracyCZoneEnd(*ctx) }
#define __profnc(name, color) static const struct ___tracy_source_location_data Cat(__tracy_source_location,__LINE__) = { (name), __func__, __FILE__, (uint32_t)__LINE__, Bgr32(color) }; __attribute((cleanup(__prof_zone_cleanup_func))) TracyCZoneCtx __tracy_zone_ctx = ___tracy_emit_zone_begin( &Cat(__tracy_source_location,__LINE__), 1 )
#define __profn(name) __profnc(name, 0)
#define __prof __profnc(0, 0)
#define __profvalue(v) TracyCZoneValue(__tracy_zone_ctx, (v))
#define __profalloc(ptr, size) TracyCAlloc((ptr), (size))
#define __proffree(ptr) TracyCFree((ptr))
#define __profmsg(txt, len, col) TracyCMessageC((txt), (len), Bgr32(col))
#define __profframe(name) TracyCFrameMarkNamed((name))
#define __profthread(name, group_hint) TracyCSetThreadNameWithHint((name), (group_hint))
enum __prof_plot_type {
__prof_plot_type_number = TracyPlotFormatNumber,
__prof_plot_type_memory = TracyPlotFormatMemory,
__prof_plot_type_percentage = TracyPlotFormatPercentage,
__prof_plot_type_watt = TracyPlotFormatWatt
};
#define __prof_plot_init(name, type, step, fill, color) TracyCPlotConfig(name, type, step, fill, Bgr32(color))
#define __prof_plot(name, val) TracyCPlot(name, val)
#define __prof_plot_i(name, val) TracyCPlotI(name, val)
#define __prof_is_connected() ___tracy_connected()
#else
////////////////////////////////////////////////////////////
//~ Profiling disabled
#define ProfilingCaptureFrame 0
#define ProfilingLocks 0
#define ProfilingGpu 0
#define __profnc(name, color)
#define __profn(name)
#define __prof
#define __profvalue(v)
#define __profalloc(ptr, size)
#define __proffree(ptr)
#define __profmsg(txt, len, col)
#define __profframe(name)
#define __profthread(name, group_hint)
#define __prof_plot_init(name, type, step, fill, color)
#define __prof_plot(name, val)
#define __prof_plot_i(name, val)
#define __prof_is_connected() 0
#endif /* IsProfilingEnabled */
#if ProfilingLocks
# define __proflock_ctx(name) struct TracyCSharedLockCtx *name
# define __proflock_acquire(ctx) TracyCSharedLockAnnounce((ctx))
# define __proflock_release(ctx) TracyCSharedLockTerminate((ctx))
# define __proflock_before_exclusive_lock(ctx) TracyCSharedLockBeforeExclusiveLock((ctx))
# define __proflock_after_exclusive_lock(ctx) TracyCSharedLockAfterExclusiveLock((ctx))
# define __proflock_after_exclusive_unlock(ctx) TracyCSharedLockAfterExclusiveUnlock((ctx))
# define __proflock_after_try_exclusive_lock(ctx, acquired) TracyCSharedLockAfterTryExclusiveLock((ctx), (acquired))
# define __proflock_before_shared_lock(ctx) TracyCSharedLockBeforeSharedLock((ctx))
# define __proflock_after_shared_lock(ctx) TracyCSharedLockAfterSharedLock((ctx))
# define __proflock_after_shared_unlock(ctx) TracyCSharedLockAfterSharedUnlock((ctx))
# define __proflock_after_try_shared_lock(ctx, acquired) TracyCSharedLockAfterTrySharedLock((ctx), (acquired))
# define __proflock_mark(ctx) TracyCSharedLockMark((ctx))
# define __proflock_custom_name(ctx, name, len) TracyCSharedLockCustomName((ctx), (name), (len))
#else
# define __proflock_acquire(ctx)
# define __proflock_release(ctx)
# define __proflock_before_exclusive_lock(ctx)
# define __proflock_after_exclusive_lock(ctx)
# define __proflock_after_exclusive_unlock(ctx)
# define __proflock_after_try_exclusive_lock(ctx, acquired)
# define __proflock_before_shared_lock(ctx)
# define __proflock_after_shared_lock(ctx)
# define __proflock_after_shared_unlock(ctx)
# define __proflock_after_try_shared_lock(ctx, acquired)
# define __proflock_mark(ctx)
# define __proflock_custom_name(ctx, name, len)
#endif /* IsProfilingEnabled && ProfilingLocks */
#if ProfilingGpu
/* Dx11 */
inline void __prof_dx11_zone_cleanup_func(TracyCD3D11ZoneCtx *ctx) { ___tracy_d3d11_emit_zone_end(*ctx); }
# define __profnc_dx11(dx11_ctx, name, color) static const struct ___tracy_source_location_data Cat(__tracy_gpu_d3d11_source_location,__LINE__) = { name, __func__, __FILE__, (uint32_t)__LINE__, Bgr32(color) }; __attribute((cleanup(__prof_dx11_zone_cleanup_func))) TracyCD3D11ZoneCtx __tracy_d3d11_zone_ctx; ___tracy_d3d11_emit_zone_begin( dx11_ctx, &__tracy_d3d11_zone_ctx, &Cat(__tracy_gpu_d3d11_source_location,__LINE__), 1)
# define __prof_dx11_ctx(name) struct TracyCD3D11Ctx *name
# define __prof_dx11_ctx_acquire(ctx, device, device_ctx, name, name_len) ctx = ___tracy_d3d11_context_announce(device, device_ctx, name, name_len)
# define __prof_dx11_ctx_release(ctx) ___tracy_d3d11_context_terminate(ctx)
# define __prof_dx11_collect(ctx) ___tracy_d3d11_context_collect(ctx)
/* Dx12 */
inline void __prof_dx12_zone_cleanup_func(TracyCD3D12ZoneCtx *ctx) { ___tracy_d3d12_emit_zone_end(*ctx); }
# define __profnc_dx12(dx12_ctx, cmd_list, name, color) static const struct ___tracy_source_location_data Cat(__tracy_gpu_d3d12_source_location,__LINE__) = { name, __func__, __FILE__, (uint32_t)__LINE__, Bgr32(color) }; __attribute((cleanup(__prof_dx12_zone_cleanup_func))) TracyCD3D12ZoneCtx __tracy_d3d12_zone_ctx; ___tracy_d3d12_emit_zone_begin( dx12_ctx, cmd_list, &__tracy_d3d12_zone_ctx, &Cat(__tracy_gpu_d3d12_source_location,__LINE__), 1)
# define __prof_dx12_ctx(name) struct TracyCD3D12Ctx *name
# define __prof_dx12_ctx_acquire(ctx, device, queue, name, name_len) ctx = ___tracy_d3d12_context_announce(device, queue, name, name_len)
# define __prof_dx12_ctx_release(ctx) ___tracy_d3d12_context_terminate(ctx)
# define __prof_dx12_new_frame(ctx) ___tracy_d3d12_context_new_frame(ctx)
# define __prof_dx12_collect(ctx) ___tracy_d3d12_context_collect(ctx)
#else
# define __profnc_dx11(dx11_ctx, name, color)
# define __prof_dx11_ctx_acquire(ctx, device, device_ctx, name, name_len)
# define __prof_dx11_ctx_release(ctx)
# define __prof_dx11_collect(ctx)
# define __profnc_dx12(dx11_ctx, queue, name, color)
# define __prof_dx12_ctx_acquire(ctx, device, queue, name, name_len)
# define __prof_dx12_ctx_release(ctx)
# define __prof_dx12_new_frame(ctx)
# define __prof_dx12_collect(ctx)
#endif /* ProfilingGpu */
#if ProfilingCaptureFrame
# define __profframeimage(image, width, height, offset, flipped) TracyCFrameImage((image), (width), (height), (offset), (flipped))
#else
# define __profframeimage(image, width, height, offset, flipped)
#endif /* ProfilingCaptureFrame */
#ifdef TRACY_FIBERS
/* Tracy fiber methods are wrapped in ForceNoInline because otherwise issues can arise
* accross fiber context boundaries during optimization */
__attribute__((noinline)) inline void __prof_fiber_enter(char *fiber_name, int profiler_group) { TracyCFiberEnterWithHint(fiber_name, profiler_group); }
__attribute__((noinline)) inline void __prof_fiber_leave(void) { TracyCFiberLeave; }
#else
# define __prof_fiber_enter(fiber_name, profiler_group)
# define __prof_fiber_leave()
#endif

View File

@ -3,8 +3,6 @@
String SETTINGS_StringFromWindowSettings(Arena *arena, const P_WindowSettings *settings) String SETTINGS_StringFromWindowSettings(Arena *arena, const P_WindowSettings *settings)
{ {
__prof;
String minimized = settings->flags & P_WindowSettingsFlag_Minimized ? Lit("true") : Lit("false"); String minimized = settings->flags & P_WindowSettingsFlag_Minimized ? Lit("true") : Lit("false");
String maximized = settings->flags & P_WindowSettingsFlag_Maximized ? Lit("true") : Lit("false"); String maximized = settings->flags & P_WindowSettingsFlag_Maximized ? Lit("true") : Lit("false");
String fullscreen = settings->flags & P_WindowSettingsFlag_Fullscreen ? Lit("true") : Lit("false"); String fullscreen = settings->flags & P_WindowSettingsFlag_Fullscreen ? Lit("true") : Lit("false");
@ -45,7 +43,6 @@ String SETTINGS_StringFromWindowSettings(Arena *arena, const P_WindowSettings *s
P_WindowSettings *SETTINGS_WindowSettingsFromString(Arena *arena, String src, String *error_out) P_WindowSettings *SETTINGS_WindowSettingsFromString(Arena *arena, String src, String *error_out)
{ {
__prof;
TempArena scratch = BeginScratch(arena); TempArena scratch = BeginScratch(arena);
String error = ZI; String error = ZI;

View File

@ -3,7 +3,6 @@
JobImpl(SND_Load, sig, id) JobImpl(SND_Load, sig, id)
{ {
__prof;
TempArena scratch = BeginScratchNoConflict(); TempArena scratch = BeginScratchNoConflict();
ResourceKey resource = sig->resource; ResourceKey resource = sig->resource;
String name = NameFromResource(resource); String name = NameFromResource(resource);
@ -82,7 +81,6 @@ JobImpl(SND_Load, sig, id)
AC_Asset *SND_LoadAsset(ResourceKey resource, SND_SoundFlag flags, b32 wait) AC_Asset *SND_LoadAsset(ResourceKey resource, SND_SoundFlag flags, b32 wait)
{ {
__prof;
TempArena scratch = BeginScratchNoConflict(); TempArena scratch = BeginScratchNoConflict();
/* Generate and append sound flags to name key */ /* Generate and append sound flags to name key */
@ -119,7 +117,6 @@ AC_Asset *SND_LoadAsset(ResourceKey resource, SND_SoundFlag flags, b32 wait)
SND_Sound *SND_LoadSoundAsync(ResourceKey resource, SND_SoundFlag flags) SND_Sound *SND_LoadSoundAsync(ResourceKey resource, SND_SoundFlag flags)
{ {
__prof;
AC_Asset *asset = SND_LoadAsset(resource, flags, 0); AC_Asset *asset = SND_LoadAsset(resource, flags, 0);
SND_Sound *sound = (SND_Sound *)AC_DataFromStore(asset); SND_Sound *sound = (SND_Sound *)AC_DataFromStore(asset);
return sound; return sound;
@ -127,7 +124,6 @@ SND_Sound *SND_LoadSoundAsync(ResourceKey resource, SND_SoundFlag flags)
SND_Sound *SND_LoadSoundWait(ResourceKey resource, SND_SoundFlag flags) SND_Sound *SND_LoadSoundWait(ResourceKey resource, SND_SoundFlag flags)
{ {
__prof;
AC_Asset *asset = SND_LoadAsset(resource, flags, 1); AC_Asset *asset = SND_LoadAsset(resource, flags, 1);
AC_YieldOnAssetReady(asset); AC_YieldOnAssetReady(asset);
SND_Sound *sound = (SND_Sound *)AC_DataFromStore(asset); SND_Sound *sound = (SND_Sound *)AC_DataFromStore(asset);

View File

@ -18,8 +18,6 @@ u64 TAR_U64FromOctString(String str)
*/ */
TAR_Archive TAR_ArchiveFromString(Arena *arena, String data, String prefix) TAR_Archive TAR_ArchiveFromString(Arena *arena, String data, String prefix)
{ {
__prof;
TAR_Archive archive = ZI; TAR_Archive archive = ZI;
BB_Buff bb = BitbuffFromString(data); BB_Buff bb = BitbuffFromString(data);
BB_Reader br = BB_ReaderFromBuffNoDebug(&bb); BB_Reader br = BB_ReaderFromBuffNoDebug(&bb);

View File

@ -9,7 +9,6 @@ TTF_DW_SharedState TTF_DW_shared_state = ZI;
/* Call this during font system startup */ /* Call this during font system startup */
void TTF_Startup(void) void TTF_Startup(void)
{ {
__prof;
TTF_DW_SharedState *g = &TTF_DW_shared_state; TTF_DW_SharedState *g = &TTF_DW_shared_state;
Assert(!g->factory); Assert(!g->factory);
/* FIXME: I think IDWriteFactory5 only exists on later updates of windows /* FIXME: I think IDWriteFactory5 only exists on later updates of windows
@ -40,7 +39,6 @@ void TTF_Startup(void)
TTF_Decoded TTF_Decode(Arena *arena, String encoded, f32 em_size, u32 *cache_codes, u32 cache_codes_count) TTF_Decoded TTF_Decode(Arena *arena, String encoded, f32 em_size, u32 *cache_codes, u32 cache_codes_count)
{ {
__prof;
TTF_DW_SharedState *g = &TTF_DW_shared_state; TTF_DW_SharedState *g = &TTF_DW_shared_state;
COLORREF bg_color = 0xFF000000; COLORREF bg_color = 0xFF000000;
COLORREF fg_color = 0xFFFFFFFF; COLORREF fg_color = 0xFFFFFFFF;
@ -143,7 +141,6 @@ TTF_Decoded TTF_Decode(Arena *arena, String encoded, f32 em_size, u32 *cache_cod
u32 out_offset_y = 0; u32 out_offset_y = 0;
u32 row_height = 0; u32 row_height = 0;
{ {
__profn("Build atlas");
for (u16 i = 0; i < glyph_count; ++i) for (u16 i = 0; i < glyph_count; ++i)
{ {
//- Render glyph to render target //- Render glyph to render target

View File

@ -1245,7 +1245,6 @@ i64 UI_EndFrame(UI_Frame frame)
} }
if (!g->eframe.draw_target) if (!g->eframe.draw_target)
{ {
__profn("Acquire ui render target");
GPU_ResourceDesc desc = ZI; GPU_ResourceDesc desc = ZI;
desc.kind = GPU_ResourceKind_Texture2D; desc.kind = GPU_ResourceKind_Texture2D;
desc.flags = GPU_ResourceFlag_Renderable | GPU_ResourceFlag_Writable; desc.flags = GPU_ResourceFlag_Renderable | GPU_ResourceFlag_Writable;
@ -1429,8 +1428,6 @@ i64 UI_EndFrame(UI_Frame frame)
{ {
//- Prep rect pass //- Prep rect pass
{ {
__profn("Clear target");
GPU_ProfN(cl, Lit("Clear target"));
GPU_TransitionToRenderable(cl, g->eframe.draw_target, 0); GPU_TransitionToRenderable(cl, g->eframe.draw_target, 0);
GPU_ClearRenderable(cl, g->eframe.draw_target); GPU_ClearRenderable(cl, g->eframe.draw_target);
} }
@ -1438,9 +1435,6 @@ i64 UI_EndFrame(UI_Frame frame)
//- Rect pass //- Rect pass
if (draw_rects_count > 0) if (draw_rects_count > 0)
{ {
__profn("UI rect pass");
GPU_ProfN(cl, Lit("UI rect pass"));
GPU_Viewport viewport = GPU_ViewportFromRect(draw_viewport); GPU_Viewport viewport = GPU_ViewportFromRect(draw_viewport);
GPU_Scissor scissor = GPU_ScissorFromRect(draw_viewport); GPU_Scissor scissor = GPU_ScissorFromRect(draw_viewport);

View File

@ -154,7 +154,6 @@ JobImpl(WND_W32_ProcessMessagesForever, sig, id)
MSG msg = ZI; MSG msg = ZI;
GetMessageW(&msg, 0, 0, 0); GetMessageW(&msg, 0, 0, 0);
{ {
__profn("Process window message");
TranslateMessage(&msg); TranslateMessage(&msg);
DispatchMessageW(&msg); DispatchMessageW(&msg);
} }