From a856376a90dd8e34a704f7f5e369e4fc8d7dd7f2 Mon Sep 17 00:00:00 2001 From: jacob Date: Fri, 20 Mar 2026 19:22:00 -0500 Subject: [PATCH] compile clang with -fno-strict-overflow --- src/base/base_win32/base_win32.c | 4 ++-- src/gpu/gpu_dx12/gpu_dx12_core.c | 2 +- src/meta/meta.c | 1 + src/pp/pp.c | 4 ++-- src/pp/pp_vis/pp_vis_core.c | 23 +---------------------- src/pp/pp_vis/pp_vis_gpu.g | 2 +- 6 files changed, 8 insertions(+), 28 deletions(-) diff --git a/src/base/base_win32/base_win32.c b/src/base/base_win32/base_win32.c index 472daca6..c90f89c1 100644 --- a/src/base/base_win32/base_win32.c +++ b/src/base/base_win32/base_win32.c @@ -610,9 +610,9 @@ i32 W32_Main(void) cmdline_str = StringFromWstrNoLimit(perm, cmdline_wstr); i32 argc = 0; LPWSTR *argv = CommandLineToArgvW(cmdline_wstr, &argc); - for (i32 i = 0; i < argc; ++i) + for (i32 arg_idx = 0; arg_idx < argc; ++arg_idx) { - wchar_t *arg_wstr = argv[i]; + wchar_t *arg_wstr = argv[arg_idx]; String arg = StringFromWstrNoLimit(perm, arg_wstr); PushStringToList(perm, &args_list, arg); } diff --git a/src/gpu/gpu_dx12/gpu_dx12_core.c b/src/gpu/gpu_dx12/gpu_dx12_core.c index 6d5a5b29..9c57103b 100644 --- a/src/gpu/gpu_dx12/gpu_dx12_core.c +++ b/src/gpu/gpu_dx12/gpu_dx12_core.c @@ -9,7 +9,6 @@ void G_Bootstrap(void) TempArena scratch = BeginScratchNoConflict(); Arena *perm = PermArena(); - // NOTE: Nsight seems to have trouble attaching when independent devices are enabled G_D12.validation_layer_enabled = CommandlineArgFromName(Lit("gpu-debug-validation")).exists; G_D12.debug_layer_enabled = G_D12.validation_layer_enabled || CommandlineArgFromName(Lit("gpu-debug")).exists; @@ -45,6 +44,7 @@ void G_Bootstrap(void) ////////////////////////////// //- Enable independent devices + // NOTE: Nsight seems to have trouble attaching when independent devices are enabled if (!CommandlineArgFromName(Lit("no-d3d12-independent-devices")).exists) { G_D12.independent_devices_enabled = 1; diff --git a/src/meta/meta.c b/src/meta/meta.c index 10e43af6..6356315d 100644 --- a/src/meta/meta.c +++ b/src/meta/meta.c @@ -552,6 +552,7 @@ void M_BuildEntryPoint(WaveLaneCtx *lane) PushStringToList(perm, &cp.compiler_only_flags_clang, Lit("-std=c99")); PushStringToList(perm, &cp.compiler_only_flags_clang, Lit("-fno-finite-loops")); PushStringToList(perm, &cp.compiler_only_flags_clang, Lit("-fno-strict-aliasing")); + PushStringToList(perm, &cp.compiler_only_flags_clang, Lit("-fno-strict-overflow")); PushStringToList(perm, &cp.compiler_only_flags_clang, Lit("-msse4.2")); // TODO: Export debug info separately for release builds diff --git a/src/pp/pp.c b/src/pp/pp.c index 97162c1a..d1600064 100644 --- a/src/pp/pp.c +++ b/src/pp/pp.c @@ -3209,7 +3209,7 @@ void P_StepFrame(P_Frame *frame) f32 speed_falloff = 0; if (weapon->is_uzi) { - initial_speed = TweakFloat("Bullet speed", 100, 1, 100); + initial_speed = TweakFloat("Bullet speed", 50, 1, 100); } else if (weapon->is_launcher) { @@ -3350,7 +3350,7 @@ void P_StepFrame(P_Frame *frame) Vec2 p1 = p0; // Cur pos -> next pos path - if (!is_first_bullet_tick) + // if (!is_first_bullet_tick) { p1 = AddVec2(p0, dir); BulletPath *path = PushStruct(scratch.arena, BulletPath); diff --git a/src/pp/pp_vis/pp_vis_core.c b/src/pp/pp_vis/pp_vis_core.c index 42aa249e..96b6d9d0 100644 --- a/src/pp/pp_vis/pp_vis_core.c +++ b/src/pp/pp_vis/pp_vis_core.c @@ -2471,23 +2471,6 @@ void V_TickForever(WaveLaneCtx *lane) - - - - // for (P_Ent *trail = P_FirstEnt(local_frame); !P_IsEntNil(trail); trail = P_NextEnt(trail)) - // { - // if (trail->is_trail && trail->is_first_observation) - // { - // Vec2 p0 = trail->trail_p0; - // Vec2 p1 = trail->trail_p1; - - // P_DebugDrawLine(p0, p1, Color_Cyan); - // } - // } - - - - // TODO: Not like this for (P_Ent *trail = P_FirstEnt(local_frame); !P_IsEntNil(trail); trail = P_NextEnt(trail)) @@ -2533,10 +2516,6 @@ void V_TickForever(WaveLaneCtx *lane) - - - - ////////////////////////////// //- Push test impact particles @@ -2656,7 +2635,7 @@ void V_TickForever(WaveLaneCtx *lane) emitter.speed.max = speed + speed_spread * 0.5; emitter.angle.min = angle - angle_spread * 0.5; emitter.angle.max = angle + angle_spread * 0.5; - emitter.count = TweakFloat("Emitter count", 8, 0, Kibi(64)); + emitter.count = TweakFloat("Emitter count", 32, 0, Kibi(64)); V_PushParticles(emitter); } } diff --git a/src/pp/pp_vis/pp_vis_gpu.g b/src/pp/pp_vis/pp_vis_gpu.g index e9a44035..182b0884 100644 --- a/src/pp/pp_vis/pp_vis_gpu.g +++ b/src/pp/pp_vis/pp_vis_gpu.g @@ -635,8 +635,8 @@ ComputeShader(V_SimParticlesCS) } } - f32 falloff = saturate(lerp(10, 20, rand_falloff) * frame.dt); // f32 falloff = saturate(lerp(1, 2, rand_falloff) * frame.dt); + f32 falloff = saturate(lerp(10, 20, rand_falloff) * frame.dt); particle.velocity *= 1.0f - falloff; particle.pos = p0 + (p1 - p0) * t;