Skip to content

Commit 130f5f1

Browse files
committed
fix-stutter
1 parent d0377ac commit 130f5f1

File tree

2 files changed

+3
-6
lines changed

2 files changed

+3
-6
lines changed

src/main.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -285,17 +285,17 @@ void *__DISPLAY_THREAD__(void *param)
285285
assert(!ret);
286286

287287
// show DRM FB in plane
288-
ret = pthread_mutex_lock(&osd_mutex);
289-
assert(!ret);
290288
drmModeAtomicSetCursor(output_list->video_request, 0);
291289
ret = set_drm_object_property(output_list->video_request, &output_list->video_plane, "FB_ID", fb_id);
292290
assert(ret>0);
293291

294292
if(enable_osd) {
293+
ret = pthread_mutex_lock(&osd_mutex);
294+
assert(!ret);
295295
ret = set_drm_object_property(output_list->video_request, &output_list->osd_plane, "FB_ID", output_list->osd_bufs[output_list->osd_buf_switch].fb);
296296
assert(ret>0);
297297
}
298-
drmModeAtomicCommit(drm_fd, output_list->video_request, DRM_MODE_ATOMIC_NONBLOCK, NULL);
298+
drmModeAtomicCommit(drm_fd, output_list->video_request, DRM_MODE_ATOMIC_ALLOW_MODESET, NULL);
299299
ret = pthread_mutex_unlock(&osd_mutex);
300300
assert(!ret);
301301

src/osd.cpp

-3
Original file line numberDiff line numberDiff line change
@@ -1615,9 +1615,6 @@ void *__OSD_THREAD__(void *param) {
16151615
int ret = pthread_mutex_lock(&osd_mutex);
16161616
assert(!ret);
16171617
p->out->osd_buf_switch = buf_idx;
1618-
ret = set_drm_object_property(p->out->video_request, &p->out->osd_plane, "FB_ID", p->out->osd_bufs[p->out->osd_buf_switch].fb);
1619-
assert(ret>0);
1620-
drmModeAtomicCommit(p->fd, p->out->video_request, DRM_MODE_ATOMIC_NONBLOCK, NULL);
16211618
ret = pthread_mutex_unlock(&osd_mutex);
16221619
assert(!ret);
16231620
last_display_at = std::chrono::steady_clock::now();

0 commit comments

Comments
 (0)