Mercurial > repos > blastem
changeset 1979:06c25babe464
Don't hold frame queue mutex while rendering
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Sat, 09 May 2020 21:37:35 -0700 |
parents | 33d5b9b77aef |
children | 81df9aa2de9b |
files | render_sdl.c |
diffstat | 1 files changed, 4 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/render_sdl.c Sat May 09 21:35:42 2020 -0700 +++ b/render_sdl.c Sat May 09 21:37:35 2020 -0700 @@ -1709,13 +1709,16 @@ SDL_CondWait(frame_ready, frame_mutex); } for (int i = 0; i < frame_queue_len; i++) + while (frame_queue_len) { frame f = frame_queue[frame_queue_read++]; frame_queue_read &= 0x3; + frame_queue_len--; + SDL_UnlockMutex(frame_mutex); process_framebuffer(f.buffer, f.which, f.width); release_buffer(f.buffer); + SDL_LockMutex(frame_mutex); } - frame_queue_len = 0; } SDL_UnlockMutex(frame_mutex);