Commit Graph

  • 5ba9983594 also migrate frame accumulator to world state instead of it being a static variable in some weird timeline i have multiple physics sims running at once master ecker 2026-08-19 20:18:45 -0500
  • cb86b34076 impressive... (some physics fixes i wasn't able to find myself), some fixes to get it to compile under linux (again, I thought it did before) ecker 2026-08-19 19:32:27 -0500
  • 2b41912c4d 'what an expensive mistake this turned to to be' (was curious and revived my mistake of a .5K rig from a couple of years ago to toss the CPU=>GPU serialization issue at it just for it to shuffle some lines after 5M tokens) ecker 2026-08-19 15:44:13 -0500
  • a0fab08ca4 non-blocking transient buffer draining + ring buffer or something ecker 2026-08-18 22:41:55 -0500
  • 25470f8ac3 sanity and cleanup ecker 2026-08-18 19:19:52 -0500
  • b43a6179df fixed vxgi trace, something else I think ecker 2026-08-16 19:50:27 -0500
  • a43b1567b3 rabbithole of swapping VXGI to SVOGI (currently enabled arbitrary regions to voxelize into (mostly working)), repaired shadowmaps (kind of flickers from depth precision when moving), to-do: fix annoying race issue when GPU is under load that is not fixed with N-buffered attachments, but is fixed with vkDeviceWaitIdle (although this is a horribad bandaid fix) ecker 2026-08-15 23:36:26 -0500
  • 08134804cf mesh/texture ''streaming'' (dynamic loading) is (relatively) seamless on the dreamcast now (due to concurrency issues with disk reads despite there only being one worker thread), a bunch of s/push_back/emplace_back since i've been getting lazy with it ecker 2026-08-14 12:27:26 -0500
  • 0f29016823 cleaned up GD-ROM/MIL-CD creation stack with my own utility, updated documentation (somewhat) ecker 2026-08-12 15:47:41 -0500
  • 1f84f2b214 fixed audio issues for AICA backend (sound effects play now, OGG/WAV plays too), updated uf::io::preferred to have an order of preference, added query caching for most uf::io calls ecker 2026-08-10 20:43:46 -0500
  • 8565569ec5 fixed issue with -ffast-math treating nan == nan as true instead of false, fixed normalize on dreamcast, squashed remaining failing physics unit tests (while hunting for the first two bugs), fixed position solver ecker 2026-08-10 16:24:27 -0500
  • f7f6d54c54 re-enabled internal allocator for STL containers (because of lines being swapped), fixed async asset loading (for OpenGL, Vulkan still doesn't like it), grouped OpenGL draw calls by material type for a speedup, some other stuff ecker 2026-08-09 23:28:11 -0500
  • 956b0ddb4a final fixes (refit/decide is flat aware, can fully clear unflat bounds/nodes when flattened, some timing issue with creating/initializing/updating the physics state), dreamcast still stutters on streaming in data though...... ecker 2026-08-09 13:13:48 -0500
  • d078784088 fixed footsteps returning wrong sound (due to it assuming the view ID was a triangle ID), overhauled flattened BVHs by shrinking node size and quantizing AABBS to reduce memory footprint, fixed BVHs to clear the unflattened node/bounds when flattened (for meshes, broadphase BVHs need to be updated to use the flattened versions) ecker 2026-08-09 11:35:04 -0500
  • 1324cf7e42 properly fixed this streamed-in BVH nightmare (to-do: fix the footsteps because it's passing in a local triangle ID instead of a global triangle ID like it expected before) ecker 2026-08-08 22:55:20 -0500
  • 992556b054 more fixes (to-do: fix BVH serialization/deserialization since I'm very sure it's wrong, but everything else should be plumbed right) ecker 2026-08-08 20:54:32 -0500
  • 24d1d63516 actually fix BVH building, overhauled BVH building to (theoretically) allow for nodes to be disabled so the BVH is loaded once and unloaded mesh regions are deactivated, build mesh BVHs when saving graph to disk and load them (to-do: actually fix it, since the writer might be broken) ecker 2026-08-08 16:09:13 -0500
  • ff72196418 fixed some bugs (to-do: squash the stutter from building the mesh's BVH) ecker 2026-08-07 22:51:35 -0500
  • fed6db2d17 more overkill optimizations (dedicated uf::thread implementation for KOS, replaced std::istream in VFS, mesh code cleanup, probably fixed std::swap maybe naively copying), dramatically sped up mesh streaming/processing, but still a small noticeable stutter on the dreamcast ecker 2026-08-07 21:08:58 -0500
  • 25ee978a8d fixed bug in texconv, dreamcast settings adjustments (namely shrinking the threshold for reading the entire file vs streaming it in because for some reason I thought 2MB wasn't an issue) ecker 2026-08-07 10:30:26 -0500
  • e3ae6d6b85 mesh streaming works with interleaved meshes, overhauled mesh streaming to work asynchronously (ironically only x86_64 OpenGL works well with it), reverted dtex conversion to 32x32 because any larger size doesn't actually work ecker 2026-08-06 20:45:41 -0500
  • d758cf6db9 fixed some weird memory leak with keymap import/merge, validated allocator settings, some other things (mds-mcdonalds can now theoretically load on a real dreamcast) (to-do: asynchronous mesh loading since it stutters on streaming new mesh data) ecker 2026-08-05 20:18:21 -0500
  • f4fdf5208f fixed emitted audio crashing if not-existant, fixed GLdc non-compressed texture loading, bin lightmaps to partitions for NewDark MIS and Valve BSP loaders (NewDark doesn't group by portal-cell), validated that game scene does load on dreamcast (even though mds-mcdonalds clocks at 23MiB at runtime with gutting everything......) ecker 2026-08-04 20:40:56 -0500
  • fc47cff1fa maybe final fixes for opengl (properly set depth range and ops, just need a scene to test for dreamcast......) ecker 2026-08-03 23:28:44 -0500
  • eacde883d0 finally fixed dreamcast/flycast not rendering the main menu (to-do: fix inside out for x86_64 opengl), fixed uf::vector::notEquals, added deterministic fnv1a hashing for when it needs to be cross platformed ecker 2026-08-03 19:30:52 -0500
  • d481d8ae4a added cache VFS to store all these offline-converted formats, repaired opengl renderer because of some annoying bug of implicitly casted vectors of different dimensions...... ecker 2026-08-01 00:03:06 -0500
  • 44e0caca5b added ADPCM, added encode/decode functions for vorbis/wav, automatically convert audio to ADPCM for Dreamcast playback, (theoretically working) spatial audio for AICA-audio backend, non-streamed (SFX) maybe working? ecker 2026-07-28 00:57:52 -0500
  • d3d33383ec actually flycast had a bug that refused to play audio from kallistios-based programs... ecker 2026-07-27 07:24:14 -0500
  • 9ac47e843f more schizophrenic fixes for the dreamcast build (for audio/graphics to still be broken), dropped freetype for stb_truetype (to shrink the DC binary down to 2.6MB) ecker 2026-07-26 20:36:55 -0500
  • c61e502dcb a bunch of schizoshit to get dreamcast target to boot (crashes from a memory pool assert) while simultaneously shrinking the .elf (3.60MB=>3.06MB) ecker 2026-07-24 22:45:57 -0500
  • 9597916568 fixed simd normalize because i guess you needed to check for dot > eps2, actually enabled use of custom allocator for uf::stl containers, updated nlohmann/json wrapper to use supplied types (should fully remove the need to glue on float64_t to it for dreamcast, even though either -m4/-m4-single fixed that last i checked), fixed weird issue with debug draw having frame % 3 draw the wireframe without a transformation matrix presumably because the camera viewport was [4] instead of [6] (even-even though it fixed itself when i only set the specialization constant for debug text only), mostly corrected source-engine physics state even though it should probably get defined in the bsp loader or something ecker 2026-07-23 21:45:57 -0500
  • b309a60b8c more physics tweaks (disabled NGS because it behaved poorly, added some small code to keep objects when grounded to moving bodies, fixed oversight with kinematic bodies), made darkengine lightmaps properly dark with baking it as srgb ecker 2026-07-21 00:11:43 -0500
  • 5cc441bb63 chasing down demons in the physics system...... ecker 2026-07-20 20:18:00 -0500
  • afd04c317e renamed ttlg => lgs (because it makes slightly more sense as it follows the naming convention of ext::valve for Valve formats, although it might be better to instead be dark/source or darkengine/sourceengine) ecker 2026-07-20 16:41:18 -0500
  • 4fba288af5 newdark: cleaned up code, io.lua handles strictly IO, osm.lua handles replicating OSM code, schema_db.lua handles resolving schemas => filenames, lua hook calls returns their values (to-do, try and return any value, probably never happening) ecker 2026-07-20 16:35:56 -0500
  • 988a61de7a newdark: code cleanup (with uf::stl::reader), squashed bugs with ambience (to-do: fix attenuation), more I/O (buttons actually work, most things sans keycard readers emit the right sound, elevator lifts mostly work), added mask filtering for raycast to avoid hitting triggers, to-do: add a crosshair and draw a square around entity looking at, fix SIMD normalize being dreadfully slow ecker 2026-07-20 00:06:17 -0500
  • 7bd018dae0 newdark: (ughhhh) binding physics states, ambient sounds, doors, triggers, songs (missing things like XXMIX_S), to-do: more I/O, fix trigger bounds being weird, optimize physics bodies because it eats half my frametime | added dir listing for VFS, added queueing pending sounds to seamlessly transition (streamed audio only), probably a lot of other things just to make the former features happen.............. ecker 2026-07-19 02:38:10 -0500
  • bd6b41a7a7 newdark: fixed orientation (naively binding a light to a proper entity caused issues), code cleanup (to-do: fix some models loading the wrong materials, finish binding data) ecker 2026-07-17 20:13:44 -0500
  • 9520e33d75 newdark: fixed lights not loading, almost fixed orientation loading wrong, (to-do: fix prop materials sometimes being wrong) ecker 2026-07-17 11:55:20 -0500
  • c5e49e59eb fixed stacking multiple Zip mounts from overwriting due to not assigning mount.path, adding NewDark .mis loading (to-do: fix rotation quirks, some textures not loading, implement LGMM loading, handle non-lightmap lights, handle soundscapes, tie in links, etc.) ecker 2026-07-15 22:19:11 -0500
  • 234aba6782 finishing integration of batched-scattered reads for fast load ecker 2026-07-12 22:12:49 -0500
  • d1c2de0423 added lz4 because i forgot to finish it i guess (and starting to abstract this batched-scattered read paradigm) ecker 2026-07-12 12:44:07 -0500
  • 2a02e08383 fixes for streaming in meshes/textures (sped up scene loading because I was thrashing I/O with re-walking a gunzip file constantly the moment i swapped to storing all mesh data inside one file......), some other things I don't remember since it was a week ago ecker 2026-07-11 17:48:07 -0500
  • ad360a351d when load times regress (more fixes related to opengl, to-do actually make interleaving + streaming work) ecker 2026-07-04 23:20:09 -0500
  • fa5f421140 more opengl related fixes (like proper instancing), disabled signaling a command buffer rebuild on graphic.updateMesh (to-do: properly handle this strictly for immediate-mode debug draw, or just do some lambda memery) ecker 2026-07-02 19:22:07 -0500
  • 65a08839f9 more fixes ecker 2026-06-30 21:21:43 -0500
  • a2636e834c opengl related fixes that almost are done (some props aren't rendering because of alpha shitcannery) ecker 2026-06-28 19:56:55 -0500
  • c3e337bb87 finalized VR rendermode, rendertarget handles the camera for where it should render at (defaults to 3 units in front of camera), fixed flat GUI not clicking/hovering when in VR because of mismatched viewport sizes, fixed validation error regressions ecker 2026-06-23 21:51:01 -0500
  • a98298b668 repaired VR support (to-do: make the VR rendermode work) ecker 2026-06-22 22:04:18 -0500
  • e0fbed4a14 more fixes (chasing down demons because of forgetting to support BGR888......), theoretical HDR image saving/loading and animated textures (to-do: actually animate them) ecker 2026-06-20 23:10:53 -0500
  • def459e72c added 3D skybox rendering (to-do: fix some quirks), fixing lighting issues (to-do: fix tangents or normal maps or something i dont know) ecker 2026-06-20 00:24:33 -0500
  • aa2740979c overhauled saving/loading graphs, made joints global IDs, fixed some quirk with subsequent graphs loading, fixed quirks with async graph loading, some other things ecker 2026-06-18 20:42:39 -0500
  • 941ad2ead9 fixing issues related to asynchronous asset loading (disabled for now because there's an inconsistent vulkan-related crash that I'd like to fix) ecker 2026-06-17 22:49:13 -0500
  • 2944335904 refractored player behavior into not-monolithic code, better player handling, stair stepping going up and down, lua serialization/deserialization should be more optimal by virtue of not stringifying ecker 2026-06-16 21:41:18 -0500
  • a834adca13 audio effects via gaytracing, fixed IO connectivity of triggers, fixed linear doors not dooring ecker 2026-06-16 00:26:52 -0500
  • de5fc31ff5 refractored audio system into audiosource and audioclip ecker 2026-06-15 21:23:07 -0500
  • d5f374350e cubemap handling from vbsp parser (eventually to be used for PBR irradiance or whatever i guess) ecker 2026-06-13 23:53:05 -0500
  • 7034da71de managed to fix the disgusting icky input lag at specific frametimes (because the swapchain was rendering to the wrong frame for presentation), attempting to fix a regression with shadowmaps being icky ecker 2026-06-12 22:28:35 -0500
  • 8aee000b05 fix non-msaa because of cringe ecker 2026-06-11 22:43:06 -0500
  • 02d98c1176 more neurotic changes, triangle IDs are dispatched in collision events, proper footstep sounds (to-do: make use of the physics material), Lua script can handle footsteps too (probably shouldn't because Lua invocations are kinda slow on dreamcast last I checked due to lack of LuaJIT), some other things I forgot already ecker 2026-06-11 22:24:16 -0500
  • 595e986903 did not plan on actually implementing tr_polys with forward+ (it didn't even solve the issue of incadescent light panels not working right because they're baked into worldspawn) ecker 2026-06-11 00:08:31 -0500
  • 590eee0684 even more SFINAE abuse shoving the hasher into unordered_map (and somewhere along the line scene loading is quicker because of things) ecker 2026-06-10 21:15:45 -0500
  • 334b897e19 fixed the issues with uf::hashed_string keys for hook system (because of a lot of annoying things) ecker 2026-06-10 20:37:42 -0500
  • 5931a5dc6f reverted hook hashes because all non-entity hook dispatches breaks, dilate texture atlases if padding is requested, proper mipmapping in deferred shader, some other code cleanup, parse mass from MDL, load error model as fallback ecker 2026-06-09 23:24:05 -0500
  • f9d7cf2dc8 microoptimization of having hook system keyed to hashes rather than strings directly (and hash hook names containing '%UID%' with that entity's UID rather than replace the string) ecker 2026-06-09 19:54:24 -0500
  • 0fdba55927 schizofixes before converting hooks to hashes finally ecker 2026-06-08 23:24:16 -0500
  • 9e823645a4 several agonizing hours of dealing with more GCC v13 gremlins involving calculating tangents ecker 2026-06-07 23:53:41 -0500
  • 6ae24419e7 more bug fixes (fixed that weird instancing bug where things get rendered at origin because of instanced graphics also rendering, mdl fixes, fixed lightmaps with displacements, fixed trigger physics bodies) ecker 2026-06-07 17:04:03 -0500
  • e4ad164203 odd bug fixes involving entities that load more than one lua script (nasty hack), issue with audio not streaming from non-disk VFSs, more valve compliance (doors, IO connectivity, ambience_generic) ecker 2026-06-07 00:59:19 -0500
  • 22fb850709 more engine cleanup and fixes (removed the footgun of texture2Ds/instanceAddresses, parse VMT values into material information, re-parent nodes for BSP loader, hopefully final VFS integration fixes) ecker 2026-06-06 15:36:36 -0500
  • 98ec4933da insanity (added VFS, piped everything through it and made it work, 90% done with valve loaders) ecker 2026-06-06 00:10:29 -0500
  • 06e88cbf17 cleanup (strictly de-interleaved meshes, cleaned up atlas packing and xatlas unwrapping, dropped mesh attribute ID since it's not necessary with draw command/instance indirectin) ecker 2026-06-04 19:56:45 -0500
  • 46c08b0516 lots of things (cleaned up how graph storage works, fixed bugs related to loading from gtlf rather than a graph, fixed lightmap baker, use RGBExp32 format for lightmaps, some other things, in-progress BSP/VTF/MDL loader) ecker 2026-06-03 22:55:14 -0500
  • f8da959ffd lots of old code cleanup (camera, image, glyph, atlas, etc.), reintroduced un-staged buffers (to test if this solved the immediate mode jitter but it was the camera) ecker 2026-05-31 19:34:20 -0500
  • a6875adf13 better billboarding ecker 2026-05-31 01:16:48 -0500
  • 90758175ca render entity information, properly handle when there's no lines/strings to render (as it would never update the buffers to say theres nothing to draw), skip resolving manifold contacts if a body is a trigger (idle thought told me that i needed to do this before i bother with triggers) ecker 2026-05-30 23:07:44 -0500
  • 4f03712001 mucho texto (hunted down a weird GCC v13 bug that required uf::transform::apply to be inlined, working clang again, more attempts to fix ragdolls, made GUI text much more optimal, debug draw text, a bunch of other things) ecker 2026-05-30 21:48:28 -0500
  • 78171039a1 guh ecker 2026-05-28 21:54:02 -0500
  • e434f33092 tie joint matrices to ragdoll joints ecker 2026-05-27 23:06:07 -0500
  • 5402aff2a8 imagine my shock the week-long issue predicated on scaling issues (constraint solving is now scaling aware, automatic ragdoll rigging seems to work, but need to actually bind the transforms to joint matrices) ecker 2026-05-27 20:54:51 -0500
  • 94ce7be618 even more inane code cleanup, migrated immediate mode debug draw into its own file, added transform flattening pre/post physics step (for two reasons) ecker 2026-05-26 22:08:16 -0500
  • 0a92fed14a attempt at generating a ragdoll from a skinned mesh (doesn't work right now), fixed normal mapping ecker 2026-05-24 22:23:41 -0500
  • 3a2dfb0833 retrieval of collision events ecker 2026-05-23 15:34:36 -0500
  • 52b972167a body_medium_impact_hard6.wav (ragdoll works) ecker 2026-05-22 22:23:42 -0500
  • eec75781ba an almost perfect ragdoll (has issues when you grab it) ecker 2026-05-22 22:02:13 -0500
  • 6deb8795c5 even more inane code cleanup, more lua bindings, multiple bodies for an entity (doesn't work?), ragdoll (doesn't work) ecker 2026-05-22 20:19:28 -0500
  • 40157df205 even more inane cleanup, and even more constraints ecker 2026-05-22 00:02:37 -0500
  • 7758389c6c more neurotic code cleanup, added joint constraints ecker 2026-05-21 20:42:54 -0500
  • 7bd4b00514 NGS position solver fixed because of a pesky minus sign ecker 2026-05-20 22:32:34 -0500
  • 9097aebc92 lots of physics cleanup and fixes (split-impulse performs better than a NGS position correction somehow?) ecker 2026-05-20 20:59:47 -0500
  • 098281ad81 removed PGS solver since it is the iterative impulse solver, fixed returning problem of boxes sinking, some other things ecker 2026-05-20 15:02:29 -0500
  • a8ad6d0fe4 typo ecker 2026-05-19 22:25:44 -0500
  • 437df59459 more cleanup (physics seem to /almost/ work without issues) ecker 2026-05-19 22:25:22 -0500
  • f054874fed generate proper-ish contacts for triangleAabb/triangleObb, code cleanup ecker 2026-05-19 15:01:38 -0500
  • a1f62ef0c3 added forward+ rendermode, added debug draw for physics system (revealed my meshAabb/neshObb ocntact points were wrong) ecker 2026-05-18 21:11:42 -0500
  • 6b07173804 added OBB colliders, painfully trying to resolve issues with rotating bodies ecker 2026-05-16 23:19:49 -0500
  • 142f584684 fixed odd regression where door collision broke (and trying to fix the weird flickering with using the aliased camera UBO for the deferred pass) ecker 2026-05-15 20:37:10 -0500
  • 07f2a7d17b unneeded now (and this somehow caused vxgi to double-light up the voxels from constantly re-recording) ecker 2026-05-15 14:30:50 -0500
  • f132f5d6d2 refractored descriptor sets to properly handle multiple sets for a given shader ecker 2026-05-15 14:18:50 -0500
  • e35806bb04 painfully diagnosed a performance hit with vxgi from one line being commented out (and a bug from eyepos being wrong) ecker 2026-05-14 22:00:17 -0500