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)
{
__prof;
ASE_HuffDict result = ZI;
result.max_code_bits = max_code_bits;
result.entries_count = (1 << max_code_bits);
@ -222,7 +220,6 @@ void ASE_Inflate(u8 *dst, u8 *encoded)
{
TempArena scratch = BeginScratchNoConflict();
__prof;
ASE_Bitbuff bb = { .data = encoded };
/* 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)
{
__prof;
TempArena scratch = BeginScratch(arena);
ASE_DecodedImage result = ZI;
@ -692,7 +687,6 @@ ASE_DecodedImage ASE_DecodeImage(Arena *arena, String encoded)
//- Assemble image from cels
{
__profn("Build image from cels");
for (Ace_Cel *cel = cel_head; cel; cel = cel->next)
{
ASE_Layer *layer = layers_ordered[cel->layer_index];
@ -779,8 +773,6 @@ abort:
ASE_DecodedSheet ASE_DecodeSheet(Arena *arena, String encoded)
{
__prof;
ASE_DecodedSheet result = ZI;
BB_Buff bb = BB_BuffFromString(encoded);

View File

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

View File

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

View File

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

View File

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

View File

@ -540,8 +540,6 @@ String TrimWhitespace(String s)
*/
String FormatStringV(Arena *arena, String fmt, va_list args)
{
__prof;
u64 final_len = 0;
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)
{
__prof;
Dict *dict = PushStruct(arena, Dict);
dict->bins_count = MaxU64(bins_count, 1); /* Ensure at least 1 bin */
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)
{
__prof;
DictBin *bin = &dict->bins[hash % dict->bins_count];
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)
{
__prof;
DictEntry *entry = EnsureDictEntry(arena, dict, hash);
entry->value = value;
}
@ -289,7 +286,6 @@ Inline void RemoveDictEntry(Dict *dict, DictEntry *entry)
Inline DictEntry *DictEntryFromHash(Dict *dict, u64 hash)
{
__prof;
DictEntry *result = 0;
DictBin *bin = &dict->bins[hash % dict->bins_count];
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)
{
__prof;
DictEntry *entry = DictEntryFromHash(dict, hash);
return entry ? entry->value : 0;
}
Inline u64 DictValueOrNilFromHash(Dict *dict, u64 hash, u64 nil)
{
__prof;
DictEntry *entry = DictEntryFromHash(dict, hash);
return entry ? entry->value : nil;
}

View File

@ -212,7 +212,6 @@ JobImpl(W32_StartupLayers, sig, id)
JobImpl(W32_ShutdownLayers, sig, id)
{
__prof;
W32_SharedState *g = &W32_shared_state;
i32 num_funcs = Atomic32Fetch(&g->num_exit_funcs);
for (i32 i = num_funcs - 1; i >= 0; --i)
@ -228,82 +227,8 @@ JobImpl(W32_ShutdownLayers, sig, id)
i32 W32_Main(void)
{
__profthread("Main thread", PROF_THREAD_GROUP_MAIN);
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 */
{
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);
wchar_t *thread_name_desc_wstr = WstrFromString(perm, thread_name_desc);
__profthread(thread_name_dsec_cstr, t->profiler_group);
/* Initialize COM */
CoInitializeEx(0, COINIT_MULTITHREADED);
@ -58,9 +56,8 @@ DWORD WINAPI W32_Win32ThreadProc(LPVOID vt)
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;
TempArena scratch = BeginScratchNoConflict();
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->entry_point = entry_point;
t->thread_udata = thread_udata;
t->profiler_group = profiler_group;
t->handle = CreateThread(0, W32_FiberStackSize, W32_Win32ThreadProc, t, 0, 0);
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) */
b32 W32_TryEndThread(W32_Thread *thread, f32 timeout_seconds)
{
__prof;
W32_SharedJobState *g = &W32_shared_job_state;
b32 ok = 0;
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)
{
__prof;
b32 ok = W32_TryEndThread(thread, F32Infinity);
Assert(ok);
}
@ -160,7 +154,6 @@ W32_Fiber *W32_AcquireFiber(W32_JobPool *pool)
}
if (new_name_cstr != 0)
{
__profn("Initialize fiber");
fiber->id = fiber_id;
/* Id to ASCII */
@ -200,7 +193,6 @@ W32_Fiber *W32_AcquireFiber(W32_JobPool *pool)
/* Init win32 fiber */
if (pool != 0)
{
__profn("CreateFiber");
fiber->pool = pool->id;
#if VIRTUAL_FIBERS
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
{
/* Fiber is not a part of a job pool, convert thread to fiber */
__profn("ConvertThreadToFiber");
fiber->addr = ConvertThreadToFiber((void *)(i64)fiber_id);
#if VIRTUAL_FIBERS
fiber->addr = GetCurrentThread();
@ -275,7 +266,6 @@ void W32_FiberEntryPoint(void *_)
W32_JobPool *pool = &W32_shared_job_state.job_pools[fiber->pool];
JobPoolId pool_id = fiber->pool;
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 (;;)
{
W32_Task *task = fiber->task;
@ -311,7 +301,6 @@ void W32_FiberEntryPoint(void *_)
/* Yield to worker */
{
__prof_fiber_leave();
W32_Fiber *parent_fiber = W32_FiberFromId(fiber->return_id);
W32_SwitchToFiber(parent_fiber);
}
@ -377,7 +366,6 @@ W32_ThreadDef(W32_JobWorkerEntryPoint, worker_ctx_arg)
case JobPoolPriority_Audio:
{
/* https://learn.microsoft.com/en-us/windows/win32/procthread/multimedia-class-scheduler-service#registry-settings */
__profn("Set mm thread characteristics");
DWORD task = 0;
AvSetMmThreadCharacteristics(L"Pro Audio", &task);
SetThreadPriority(thread_handle, THREAD_PRIORITY_TIME_CRITICAL);
@ -460,22 +448,18 @@ W32_ThreadDef(W32_JobWorkerEntryPoint, worker_ctx_arg)
void SuspendFiber(void)
{
__prof;
i16 fiber_id = FiberId();
W32_Fiber *fiber = W32_FiberFromId(FiberId());
__prof_fiber_leave();
{
Atomic8Set(&fiber->status, W32_FiberStatus_Suspending);
W32_Fiber *parent_fiber = W32_FiberFromId(fiber->return_id);
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 */
void ResumeFibers(i16 fiber_ids_count, i16 *fiber_ids)
{
__prof;
TempArena scratch = BeginScratchNoConflict();
W32_SharedJobState *g = &W32_shared_job_state;
i32 num_pools = Atomic32Fetch(&g->num_pools);
@ -568,9 +552,6 @@ JobPoolId InitJobPool(u32 thread_count, String name, JobPoolPriority priority)
pool->name = name;
pool->priority = priority;
/* TODO: Real profiler group */
i32 profiler_group = 0;
Arena *perm = PermArena();
pool->worker_threads = PushStructs(perm, W32_Thread *, 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->id = 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;
}

View File

@ -34,7 +34,6 @@ Struct(W32_Thread)
String thread_name;
W32_ThreadFunc *entry_point;
void *thread_udata;
i32 profiler_group;
HANDLE handle;
};
@ -180,7 +179,7 @@ void StartupJobs(void);
//~ Thread operations
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);
void W32_WaitEndThread(W32_Thread *thread);
JobDecl(W32_DummyJob, EmptySig);

View File

@ -5,7 +5,6 @@ W32_SharedLogState W32_shared_log_state = ZI;
void InitLogSystem(String logfile_path)
{
__prof;
W32_SharedLogState *g = &W32_shared_log_state;
g->logs_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)
{
__prof;
W32_SharedLogState *g = &W32_shared_log_state;
TempArena scratch = BeginScratchNoConflict();
if (Atomic32Fetch(&g->initialized))
@ -43,7 +41,6 @@ void W32_Log(i32 level, String msg)
{
Panic(Lit("Invalid log level"));
}
__profmsg((char *)msg.text, msg.len, settings.color);
DateTime datetime = LocalDateTime();
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 */
#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

View File

@ -5,7 +5,6 @@ D_SharedState D_shared_state = ZI;
void D_Startup(void)
{
__prof;
D_SharedState *g = &D_shared_state;
u32 pixel_white = 0xFFFFFFFF;
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, _)
{
__prof;
TempArena scratch = BeginScratchNoConflict();
PERSIST Readonly u32 font_codes[] = {
@ -135,7 +134,6 @@ JobImpl(F_Load, sig, _)
/* Returns the asset from the asset cache */
AC_Asset *F_LoadAsset(ResourceKey resource, f32 size, b32 wait)
{
__prof;
TempArena scratch = BeginScratchNoConflict();
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)
{
__prof;
AC_Asset *asset = F_LoadAsset(resource, point_size, 0);
F_Font *f = (F_Font *)AC_DataFromStore(asset);
return f;
@ -180,7 +177,6 @@ F_Font *F_LoadFontAsync(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_YieldOnAssetReady(asset);
F_Font *f = (F_Font *)AC_DataFromStore(asset);

View File

@ -12,11 +12,11 @@ Struct(GPU_SwapchainHandle) { u64 v; };
////////////////////////////////////////////////////////////
//~ Queue types
#define GPU_MultiQueueIsEnabled (!IsProfilingEnabled)
#define GPU_IsMultiQueueEnabled 1
Enum(GPU_QueueKind)
{
#if GPU_MultiQueueIsEnabled
#if GPU_IsMultiQueueEnabled
GPU_QueueKind_Direct = 0,
GPU_QueueKind_AsyncCompute = 1,
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);
//- Profile
void GPU_ProfN(GPU_CommandListHandle cl, String name);
////////////////////////////////////////////////////////////
//~ @hookdecl Synchronization

View File

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

View File

@ -33,10 +33,6 @@
# define IsDeveloperModeEnabled 1
#endif
#ifndef IsProfilingEnabled
# define IsProfilingEnabled 0
#endif
#ifndef IsUnoptimized
# define IsUnoptimized 1
#endif
@ -53,7 +49,6 @@
//~ Includes
//- Header files
#include "../prof/prof_inc.h"
#include "../base/base_inc.h"
#include "meta_os/meta_os_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"));
/* 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"));
PushStringToList(arena, &c_out_lines, Lit(""));
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)));
}
/* Define resource stores */
@ -507,11 +500,9 @@ JobImpl(Step, sig, id)
PushStringToList(arena, &gpu_out_lines, Lit("// Auto generated file"));
/* 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"));
PushStringToList(arena, &gpu_out_lines, Lit(""));
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)));
}
/* Include dependency layers */
@ -860,7 +851,6 @@ JobImpl(Build, _, __)
u64 new_metahash = 0;
{
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/meta"), F_IterFlag_Recurse);
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("-DIsDebinfoEnabled=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("-DIsTestingEnabled=0"));
PushStringToList(arena, &cp.defs, Lit("-DIsHotSwappingEnabled=1"));

View File

@ -21,7 +21,6 @@ MIX_SharedState M_shared_state = ZI;
void MIX_Startup(void)
{
__prof;
MIX_SharedState *g = &M_shared_state;
g->track_arena = AcquireArena(Gibi(64));
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 */
MIX_PcmF32 MIX_MixAllTracks(Arena *arena, u64 frame_count)
{
__prof;
TempArena scratch = BeginScratch(arena);
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);
for (MIX_Track *track = g->track_first_playing; track; track = track->next)
{
__profn("Prepare track");
MIX_MixData *mix = &track->mix;
mix->desc = track->desc;
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)
{
__profn("Mix track");
MIX_MixData *mix = mixes[mix_index];
if (mix->source->samples_count <= 0)
@ -338,7 +334,6 @@ MIX_PcmF32 MIX_MixAllTracks(Arena *arena, u64 frame_count)
//- Resample
/* Transform 16 bit source -> 32 bit stereo at output duration */
{
__profn("Resample");
f32 *out_samples = mix_pcm.samples;
u64 out_frames_count = mix_pcm.count / 2;
@ -395,8 +390,6 @@ MIX_PcmF32 MIX_MixAllTracks(Arena *arena, u64 frame_count)
//- Spatialize
if (desc.flags & MIX_TrackFlag_Spatialize)
{
__profn("Spatialize");
/* Algorithm constants */
const f32 rolloff_height = 1.2f;
const f32 rolloff_scale = 6.0f;
@ -457,7 +450,6 @@ MIX_PcmF32 MIX_MixAllTracks(Arena *arena, u64 frame_count)
//- Update track effect data
{
__profn("Update track effect data");
Lock lock = LockE(&g->mutex);
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;
i64 now_ns = TimeNs();
{
__profn("Read packets");
//- Read socket
N_RcvPacket *first_packet = 0;
N_RcvPacket *last_packet = 0;
{
__profn("Read socket");
P_Sock *sock = host->sock;
P_SockReadResult result = ZI;
while ((result = P_ReadSock(scratch.arena, sock)).valid)
@ -577,7 +574,6 @@ N_EventList N_BeginUpdate(Arena *arena, N_Host *host)
//- Read incoming packets
{
__profn("Process host packets");
for (N_RcvPacket *packet = first_packet; packet; packet = packet->next)
{
//struct sock *sock = packet->sock;
@ -766,7 +762,6 @@ N_EventList N_BeginUpdate(Arena *arena, N_Host *host)
//- Update channels
{
__profn("Update host channels");
for (u64 i = 0; i < host->num_channels_reserved; ++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 */
void N_EndUpdate(N_Host *host)
{
__prof;
TempArena scratch = BeginScratchNoConflict();
/* Process cmds into sendable packets */
/* 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)
{
N_CmdKind kind = cmd->kind;
@ -981,7 +974,6 @@ void N_EndUpdate(N_Host *host)
//- Send packets
/* TODO: Aggregate small packets */
{
__profn("Send host packets");
for (u64 i = 0; i < host->num_channels_reserved; ++i)
{
P_Sock *sock = host->sock;

View File

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

View File

@ -11,7 +11,6 @@ PB_WSP_SharedState PB_WSP_shared_state = ZI;
void PB_Startup(void)
{
__prof;
PB_WSP_SharedState *g = &PB_WSP_shared_state;
PB_WSP_InitializeWasapi();
/* Start playback job */
@ -22,7 +21,6 @@ void PB_Startup(void)
ExitFuncDef(PB_WSP_Shutdown)
{
__prof;
PB_WSP_SharedState *g = &PB_WSP_shared_state;
Atomic32Set(&g->shutdown, 1);
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)
{
__prof;
PB_WSP_SharedState *g = &PB_WSP_shared_state;
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)
{
__prof;
PB_WSP_SharedState *g = &PB_WSP_shared_state;
u32 frames_in_source = src.count / 2;
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 */
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)
{
__prof;
PB_WSP_SharedState *g = &PB_WSP_shared_state;
/* 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();
{
__profn("Wasapi wait");
WaitForSingleObject(g->event, INFINITE);
}
{
__profn("Fill sample buffer");
PB_WSP_Buff wspbuf = PB_WSP_BeginUpdate();
MIX_PcmF32 pcm = MIX_MixAllTracks(scratch.arena, wspbuf.frames_count);
PB_WSP_EndUpdate(&wspbuf, pcm);

View File

@ -281,7 +281,6 @@ void V_EndCommandsWidget(V_CommandsWidget *widget)
UI_Key V_BuildConsoleWidget(b32 minimized)
{
/* TODO: Remove this whole thing */
__prof;
TempArena scratch = BeginScratchNoConflict();
// 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)
{
__prof;
String minimized = settings->flags & P_WindowSettingsFlag_Minimized ? 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");
@ -45,7 +43,6 @@ String SETTINGS_StringFromWindowSettings(Arena *arena, const P_WindowSettings *s
P_WindowSettings *SETTINGS_WindowSettingsFromString(Arena *arena, String src, String *error_out)
{
__prof;
TempArena scratch = BeginScratch(arena);
String error = ZI;

View File

@ -3,7 +3,6 @@
JobImpl(SND_Load, sig, id)
{
__prof;
TempArena scratch = BeginScratchNoConflict();
ResourceKey resource = sig->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)
{
__prof;
TempArena scratch = BeginScratchNoConflict();
/* 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)
{
__prof;
AC_Asset *asset = SND_LoadAsset(resource, flags, 0);
SND_Sound *sound = (SND_Sound *)AC_DataFromStore(asset);
return sound;
@ -127,7 +124,6 @@ SND_Sound *SND_LoadSoundAsync(ResourceKey resource, SND_SoundFlag flags)
SND_Sound *SND_LoadSoundWait(ResourceKey resource, SND_SoundFlag flags)
{
__prof;
AC_Asset *asset = SND_LoadAsset(resource, flags, 1);
AC_YieldOnAssetReady(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)
{
__prof;
TAR_Archive archive = ZI;
BB_Buff bb = BitbuffFromString(data);
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 */
void TTF_Startup(void)
{
__prof;
TTF_DW_SharedState *g = &TTF_DW_shared_state;
Assert(!g->factory);
/* 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)
{
__prof;
TTF_DW_SharedState *g = &TTF_DW_shared_state;
COLORREF bg_color = 0xFF000000;
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 row_height = 0;
{
__profn("Build atlas");
for (u16 i = 0; i < glyph_count; ++i)
{
//- Render glyph to render target

View File

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

View File

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