Skip to content

st3m: gfx: Release drawlists already before scanout

dos requested to merge dos/flow3r-firmware:pipe into main

The framebuffer won't be modified until the graphics task gets to another iteration of its infinite loop, so there's no reason to still hold the drawlist during scanout.

Since this decouples drawlist release and ability to submit another drawlist from each other, split existing st3m_gfx_pipe_full into two functions - one that checks whether there's a free drawlist available to take, and one that checks whether a drawlist can be submitted for rasterization.

There was no visible difference in performance in default mode with this, but it turned out that low latency mode received an FPS boost with actually made it faster than default mode. This prompted me to also reduce the number of drawlists. I'm not exactly sure why it is the case, but it does improve the performance a bit for heavier apps while also reducing latency - perhaps due to being friendlier to the cache?

Merge request reports