~dokomix/dokomix/+git/taisei:laseropt

Last commit made on 2023-04-01
Get this branch:
git clone -b laseropt https://git.launchpad.net/~dokomix/dokomix/+git/taisei

Branch merges

Branch information

Name:
laseropt
Repository:
lp:~dokomix/dokomix/+git/taisei

Recent commits

9385d36... by Andrei Alexeyev <email address hidden>

lasers: optimize and simplify draw code (WIP)

There's an issue where partially out of bounds lasers will step over
neighbouring tiles, causing artifacts. Should be solved with a packing
algorithm.

86cfcee... by Andrei Alexeyev <email address hidden>

stage1: fix stain particles

571d2ac... by Andrei Alexeyev <email address hidden>

thread: make thread_get_current() safe to call after thread_shutdown()

Was causing a use-after-free on shutdown

bae08cd... by Andrei Alexeyev <email address hidden>

main: init coroutines before log

Without this cotask_active() is called before co_main is set, which
trips up ASan.

f265f38... by Andrei Alexeyev <email address hidden>

log: cotask support; rewrite console formatter

10ecc9f... by Andrei Alexeyev <email address hidden>

coroutine/cotask: add cotask_get_name() API

a13e6ae... by Andrei Alexeyev <email address hidden>

coroutine/cotask: make cotask_active safe to call outside of task context

Returns NULL in main context. Still not entirely safe to call on
non-main thread.

The slightly faster "unsafe" version is available as cotask_active_unsafe.
The new cotask_active is currently not used by anything; it's intended
for a logging system update later.

f5c5803... by Andrei Alexeyev <email address hidden>

util/strbuf: inline strbuf_cat

a4717b9... by Andrei Alexeyev <email address hidden>

util/strbuf: make cat and ncat return number of chars written

a78b67a... by Andrei Alexeyev <email address hidden>

resource: set name before ires is put into the hashtable

This should fix a rare race condition in res_load_dependency where the
dep could make its way to ires_make_dependent_one without having the
name set yet, failing an assertion there.

It also gets rid of a name parameter to load_resource, since the name is
always known at that point.