From: Mateusz Majewski Date: Wed, 5 Feb 2025 07:48:15 +0000 (+0100) Subject: mutex init X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=92cfbe03d44ae824965ead9185acbe0fc80dc88d;p=sdk%2Femulator%2Fqemu.git mutex init Change-Id: I5ee04c4d0de5bfb8a9ecf455957de6f3805548a7 --- diff --git a/tizen/src/ui/qt5.c b/tizen/src/ui/qt5.c index 91ae8f5aa5..a9ff955312 100644 --- a/tizen/src/ui/qt5.c +++ b/tizen/src/ui/qt5.c @@ -390,6 +390,9 @@ void maru_qt5_display_init(DisplayState *ds, int full_screen) } qt5_num_outputs = i; qt5_console = g_new0(struct qt5_state, qt5_num_outputs); +#ifdef CONFIG_OPENGL + qt5_gl_init_items(); +#endif for (i = 0; i < qt5_num_outputs; i++) { QemuConsole *con = qemu_console_lookup_by_index(i); #ifdef CONFIG_OPENGL diff --git a/tizen/src/ui/qt5_supplement.cpp b/tizen/src/ui/qt5_supplement.cpp index f37c1145b3..22ebc58ca0 100644 --- a/tizen/src/ui/qt5_supplement.cpp +++ b/tizen/src/ui/qt5_supplement.cpp @@ -615,6 +615,21 @@ void qt5_update_texture(void *dpy_item) static dpy_item dpy_item_pool[DPY_ITEM_NO]; static uint64_t dpy_item_gen[DPY_ITEM_NO]; +void qt5_gl_init_items() +{ + for (int i = 0; i < DPY_ITEM_NO; ++i) { + qemu_mutex_init(&dpy_item_pool[i].mutex); + dpy_item_pool[i].available = true; + } +} +// TODO: Is there a good place to put this? +/* void qt5_gl_destroy_items() +{ + for (int i = 0; i < DPY_ITEM_NO; ++i) { + qemu_mutex_destroy(&dpy_item_pool[i].mutex); + } +} */ + uint32_t qt5_gl_refresh_internal(uint32_t tex, uint32_t width, uint32_t height, uint64_t gen, bool *should_free) { uint32_t ret = tex; @@ -626,7 +641,7 @@ uint32_t qt5_gl_refresh_internal(uint32_t tex, uint32_t width, uint32_t height, { auto item = &dpy_item_pool[item_id]; qemu_mutex_lock(&item->mutex); - bool ok = dpy_item_gen[item_id] == 0 || item->available; + bool ok = item->available; if (ok) { ret = item->tex; if (dpy_item_gen[item_id] != gen || /* HACK HACK HACK */ item->tex < 25) { diff --git a/tizen/src/ui/qt5_supplement.h b/tizen/src/ui/qt5_supplement.h index b3431674ef..80a66f5740 100644 --- a/tizen/src/ui/qt5_supplement.h +++ b/tizen/src/ui/qt5_supplement.h @@ -64,6 +64,8 @@ const char* qt5_get_version(void); void qt5_set_force_legacy(bool isLegacy); #ifdef CONFIG_OPENGL +void qt5_gl_init_items(void); +// void qt5_gl_destroy_items(void); uint32_t qt5_gl_refresh_internal(uint32_t tex, uint32_t width, uint32_t height, uint64_t gen, bool *should_free); void *qt5_gl_create_context_internal(int major, int minor); void qt5_gl_destroy_context_internal(void *);