From 8ba63a78219ccfdce9db8e8da9ca0238aaa1bc4f Mon Sep 17 00:00:00 2001 From: jacob Date: Wed, 30 Jul 2025 17:54:31 -0500 Subject: [PATCH] dxc layer refactor --- src/asset_cache/asset_cache_core.c | 2 +- src/base/base_util.h | 2 +- src/dxc/dxc_core.h | 8 +++++++- src/dxc/dxc_core_win32.cpp | 14 +++++++------- src/gp/gp_core_dx12.c | 14 +++++++------- src/platform/platform_win32.c | 4 ++-- src/playback/playback_core_win32.c | 2 +- src/sim/sim_core.c | 8 ++++---- src/user/user_core.c | 4 ++-- 9 files changed, 32 insertions(+), 26 deletions(-) diff --git a/src/asset_cache/asset_cache_core.c b/src/asset_cache/asset_cache_core.c index ee513dfb..d120d9a0 100644 --- a/src/asset_cache/asset_cache_core.c +++ b/src/asset_cache/asset_cache_core.c @@ -124,7 +124,7 @@ AC_Asset *AC_TouchCache(String key, u64 hash, b32 *is_first_touch) } String key_stored = ZI; { - /* CopyStruct key to store */ + /* Copy key to store */ AC_Store store = AC_OpenStore(); key_stored = CopyString(store.arena, key); AC_CloseStore(&store); diff --git a/src/base/base_util.h b/src/base/base_util.h index 55dec2ec..ecd0a761 100644 --- a/src/base/base_util.h +++ b/src/base/base_util.h @@ -85,7 +85,7 @@ Inline void MergesortInternal(u8 *left, u8 *right, u8 *items, u64 left_count, u6 ++r; } } - /* CopyStruct remaining */ + /* Copy remaining */ if (l != left_count) { u64 remaining_count = left_count - l; diff --git a/src/dxc/dxc_core.h b/src/dxc/dxc_core.h index 83290237..835caafa 100644 --- a/src/dxc/dxc_core.h +++ b/src/dxc/dxc_core.h @@ -1,7 +1,13 @@ +//////////////////////////////// +//~ Dxc types + Struct(DXC_Result) { String dxc; String errors; b32 success; }; -DXC_Result dxc_compile(Arena *arena, String shader_source, i32 num_args, String *args); +//////////////////////////////// +//~ Dxc operations + +DXC_Result DXC_Compile(Arena *arena, String shader_source, i32 num_args, String *args); diff --git a/src/dxc/dxc_core_win32.cpp b/src/dxc/dxc_core_win32.cpp index f98cba0a..2dedccb5 100644 --- a/src/dxc/dxc_core_win32.cpp +++ b/src/dxc/dxc_core_win32.cpp @@ -1,6 +1,6 @@ #if !RESOURCE_RELOADING -DXC_Result dxc_compile(Arena *arena, String shader_source, i32 num_args, String *args) +DXC_Result DXC_Compile(Arena *arena, String shader_source, i32 num_args, String *args) { (UNUSED)arena; (UNUSED)shader_source; @@ -29,7 +29,7 @@ DXC_Result dxc_compile(Arena *arena, String shader_source, i32 num_args, String #pragma comment(lib, "dxcompiler") /* https://github.com/microsoft/DirectXShaderCompiler/wiki/Using-dxc.exe-and-dxcompiler.dll */ -DXC_Result dxc_compile(Arena *arena, String shader_source, i32 num_args, String *args) +DXC_Result DXC_Compile(Arena *arena, String shader_source, i32 num_args, String *args) { __prof; TempArena scratch = BeginScratch(arena); @@ -45,7 +45,7 @@ DXC_Result dxc_compile(Arena *arena, String shader_source, i32 num_args, String dxc_src_buffer.Size = shader_source.len; dxc_src_buffer.Encoding = DXC_CP_UTF8; - /* Init compiler */ + //- Init compiler CComPtr dxc_utils; CComPtr dxc_compiler; CComPtr dxc_include_handler; @@ -53,11 +53,11 @@ DXC_Result dxc_compile(Arena *arena, String shader_source, i32 num_args, String DxcCreateInstance(CLSID_DxcCompiler, IID_PPV_ARGS(&dxc_compiler)); dxc_utils->CreateDefaultIncludeHandler(&dxc_include_handler); - /* Compile */ + //- Compile CComPtr compile_results = 0; dxc_compiler->Compile(&dxc_src_buffer, (LPCWSTR *)wstr_args, (u32)num_args, dxc_include_handler, IID_PPV_ARGS(&compile_results)); - /* CopyStruct errors */ + //- Copy errors CComPtr dxc_errors = 0; compile_results->GetOutput(DXC_OUT_ERRORS, IID_PPV_ARGS(&dxc_errors), 0); if (dxc_errors != 0) { @@ -67,12 +67,12 @@ DXC_Result dxc_compile(Arena *arena, String shader_source, i32 num_args, String result.errors = CopyString(arena, blob_str); } - /* Get status */ + //- Get status HRESULT dxc_hr = 0; compile_results->GetStatus(&dxc_hr); result.success = SUCCEEDED(dxc_hr); - /* CopyStruct shader output */ + //- Copy shader output if (result.success) { CComPtr dxc_shader = 0; compile_results->GetOutput(DXC_OUT_OBJECT, IID_PPV_ARGS(&dxc_shader), 0); diff --git a/src/gp/gp_core_dx12.c b/src/gp/gp_core_dx12.c index 7412a081..246019c8 100644 --- a/src/gp/gp_core_dx12.c +++ b/src/gp/gp_core_dx12.c @@ -651,7 +651,7 @@ internal void dx12_init_objects(void) struct command_queue_desc params[] = { {.type = D3D12_COMMAND_LIST_TYPE_DIRECT, .priority = D3D12_COMMAND_QUEUE_PRIORITY_NORMAL, .dbg_name = Lit("Direct queue") }, {.type = D3D12_COMMAND_LIST_TYPE_COMPUTE, .priority = D3D12_COMMAND_QUEUE_PRIORITY_NORMAL, .dbg_name = Lit("Compute queue") }, - {.type = D3D12_COMMAND_LIST_TYPE_COPY, .priority = D3D12_COMMAND_QUEUE_PRIORITY_HIGH, .dbg_name = Lit("CopyStruct queue") }, + {.type = D3D12_COMMAND_LIST_TYPE_COPY, .priority = D3D12_COMMAND_QUEUE_PRIORITY_HIGH, .dbg_name = Lit("Copyqueue") }, {.type = D3D12_COMMAND_LIST_TYPE_COPY, .priority = D3D12_COMMAND_QUEUE_PRIORITY_NORMAL, .dbg_name = Lit("Background copy queue") } }; struct command_queue_alloc_job_sig sig = ZI; @@ -899,7 +899,7 @@ internal P_JobDef(shader_compile_job, job) for (u32 i = 0; i < dxc_args_array.count; ++i) { args[i + countof(shader_args)] = dxc_args_array.strings[i]; } - dxc_result = dxc_compile(arena, desc->src, num_args, args); + dxc_result = DXC_Compile(arena, desc->src, num_args, args); } result->success = dxc_result.success; result->dxc = dxc_result.dxc; @@ -2015,7 +2015,7 @@ internal struct command_descriptor_heap *command_list_push_descriptor_heap(struc ID3D12DescriptorHeap_GetGPUDescriptorHandleForHeapStart(cdh->heap, &cdh->start_gpu_handle); } - /* CopyStruct CPU heap */ + /* CopyCPU heap */ { P_Lock lock = P_LockS(&dh_cpu->mutex); ID3D12Device_CopyDescriptorsSimple(G.device, dh_cpu->num_descriptors_reserved, cdh->start_cpu_handle, dh_cpu->handle, D3D12_DESCRIPTOR_HEAP_TYPE_CBV_SRV_UAV); @@ -2328,7 +2328,7 @@ internal P_JobDef(dx12_upload_job, job) struct command_queue *cq = G.command_queues[DX12_QUEUE_COPY_BACKGROUND]; struct command_list *cl = command_list_open(cq->cl_pool); { - /* CopyStruct to upload heap */ + /* Copyto upload heap */ { D3D12_RANGE read_range = ZI; void *mapped = 0; @@ -2351,7 +2351,7 @@ internal P_JobDef(dx12_upload_job, job) ID3D12Resource_Unmap(upload->resource, 0, 0); } - /* CopyStruct from upload heap to texture */ + /* Copyfrom upload heap to texture */ { __profnc_dx12(cl->cq->prof, cl->cl, "Upload texture", Rgb32F(0.2, 0.5, 0.2)); D3D12_TEXTURE_COPY_LOCATION dst_loc = { @@ -3500,11 +3500,11 @@ internal P_JobDef(dx12_evictor_job, _) TempArena scratch = BeginScratchNoConflict(); u64 targets[countof(completed_targets)] = ZI; - /* CopyStruct queued data */ + /* Copyqueued data */ u32 num_fenced_releases = 0; struct fenced_release_data *fenced_releases = 0; { - __profn("CopyStruct queued releases"); + __profn("Copyqueued releases"); P_Lock lock = P_LockE(&G.fenced_releases_mutex); num_fenced_releases = G.fenced_releases_arena->pos / sizeof(struct fenced_release_data); fenced_releases = PushStructsNoZero(scratch.arena, struct fenced_release_data, num_fenced_releases); diff --git a/src/platform/platform_win32.c b/src/platform/platform_win32.c index c33a7f6c..11703788 100644 --- a/src/platform/platform_win32.c +++ b/src/platform/platform_win32.c @@ -102,7 +102,7 @@ P_W32_Thread *P_W32_AllocThread(P_W32_ThreadFunc *entry_point, void *thread_data t->thread_data = thread_data; t->profiler_group = profiler_group; - /* CopyStruct thread name to params */ + /* Copy thread name to params */ { u64 CstrLen = MinU64((countof(t->thread_name_cstr) - 1), thread_name.len); CopyBytes(t->thread_name_cstr, thread_name.text, CstrLen * sizeof(*t->thread_name_cstr)); @@ -2886,7 +2886,7 @@ P_Address P_AddressFromString(String str) } else { - /* CopyStruct address without port */ + /* Copy address without port */ ip_len = MinU64(str.len, countof(ip_buff) - 1); CopyBytes(ip_buff, str.text, ip_len); } diff --git a/src/playback/playback_core_win32.c b/src/playback/playback_core_win32.c index c1888aa8..bf401be6 100644 --- a/src/playback/playback_core_win32.c +++ b/src/playback/playback_core_win32.c @@ -189,7 +189,7 @@ internal void wasapi_update_end(struct wasapi_buffer *wspbuf, M_PcmF32 src) u32 flags = 0; if (frames_in_source == frames_in_output) { - /* CopyStruct bytes to output */ + /* Copy bytes to output */ u32 bytes_per_sample = G.buffer_format->nBlockAlign / G.buffer_format->nChannels; u32 write_size = frames_in_source * 2 * bytes_per_sample; CopyBytes(wspbuf->frames, src.samples, write_size); diff --git a/src/sim/sim_core.c b/src/sim/sim_core.c index 096f33bd..6b4691b0 100644 --- a/src/sim/sim_core.c +++ b/src/sim/sim_core.c @@ -303,14 +303,14 @@ Snapshot *sim_snapshot_alloc(Client *client, Snapshot *src, u64 tick) ss->client = client; ++client->num_ticks; - /* CopyStruct src info */ + /* Copy src info */ ss->sim_dt_ns = src->sim_dt_ns; ss->sim_time_ns = src->sim_time_ns; ss->continuity_gen = src->continuity_gen; ss->local_player = src->local_player; ss->phys_iteration = src->phys_iteration; - /* CopyStruct id lookup bins */ + /* Copy id lookup bins */ ss->num_id_bins = src->num_id_bins > 0 ? src->num_id_bins : ID_LOOKUP_BINS; ss->id_bins = PushStructsNoZero(ss->arena, EntBin, ss->num_id_bins); if (src->num_id_bins > 0) { @@ -321,7 +321,7 @@ Snapshot *sim_snapshot_alloc(Client *client, Snapshot *src, u64 tick) ZeroBytes(ss->id_bins, sizeof(*ss->id_bins) * ss->num_id_bins); } - /* CopyStruct entities */ + /* Copy entities */ ss->first_free_ent = src->first_free_ent; ss->num_ents_allocated = src->num_ents_allocated; ss->num_ents_reserved = src->num_ents_reserved; @@ -689,7 +689,7 @@ void sim_snapshot_sync_ents(Snapshot *local_ss, Snapshot *remote_ss, EntId remot if (should_sync) { Ent *remote_ent = sim_ent_from_id(remote_ss, local_ent->id); if (remote_ent->valid) { - /* CopyStruct all ent data from remote */ + /* Copy all ent data from remote */ sim_ent_sync(local_ent, remote_ent); } else { /* Remote ent is no longer valid / networked, release it */ diff --git a/src/user/user_core.c b/src/user/user_core.c index 218007c0..1c272138 100644 --- a/src/user/user_core.c +++ b/src/user/user_core.c @@ -1137,7 +1137,7 @@ internal void user_update(P_Window *window) Ent **sorted = PushDry(scratch.arena, Ent *); u64 sorted_count = 0; { - /* CopyStruct valid entities */ + /* Copy valid entities */ { __profn("Build ents list for sorting"); for (u64 ent_index = 0; ent_index < G.ss_blended->num_ents_reserved; ++ent_index) { @@ -2745,7 +2745,7 @@ internal P_JobDef(local_sim_job, _) } } - /* CopyStruct local snapshot to user client */ + /* Copy local snapshot to user client */ { Snapshot *local_ss = sim_snapshot_from_tick(local_client, local_client->last_tick); if (local_ss->valid) {