Skip to content

v1.6.0

Compare
Choose a tag to compare
@github-actions github-actions released this 24 Aug 16:48
· 60 commits to master since this release
  • Renderer now lives on its own thread.
    This is a major architectural change that deserves far more of an
    explanation than I'm going to provide here.

    I've been wanting to split the renderer onto it's own thread for quite some
    time, mostly as an academic exercise.

    It turned out to create more maintenance burden than I would have liked,
    although it does make a few operations easier/cleaner, such as freeing GPU
    resources from worker threads.

    The API is a message-queue based system for which most of the boilerplate is
    generated by poof. There's an asyncify_render_function poof routine that
    takes a function prototype and spits out an Async version of the function
    which pushes a render job onto a work queue. At this point it's up to the
    programmer to remember to go actually call the function in the renderer
    (which is made easier by being reminded of the new, non-enumerated case by the compiler).

  • Debug system once again welded directly into the program instead of compiled to a DLL
    I got tired of maintaining globals in so many places and decided the cost of
    having the debug system split out into a DLL was not worth the flexibility
    of being able to load it in other programs. If I want to use the profiler
    in other programs, I'll just compile it in.

  • Special, compressed vertex data type for world_chunk
    I wanted to see how much performance I could squeeze out of compressing
    position and normal data for chunks to 8 bit int from 32 bit float. Turns
    out not a massive amount (deferred renderer is mostly texture-bound), but
    it did shave off a bit.

  • Many other misc fixes
    I didn't document them along the way, and wrote this months after the work was
    done, so .. who knows.