#include "test.h" #include "tinycthread.h" #define THREAD_COUNT 8 static int finishedThreadCount = 0; static mtx_t mutex; void drawRandomRect (VkvgContext ctx, float s) { float w = (float)test_width; float h = (float)test_height; randomize_color(ctx); float x = truncf(w*rndf()); float y = truncf(h*rndf()); vkvg_rectangle(ctx, x, y, s, s); } void _before_submit (void* data) { mtx_lock((mtx_t*)data); printf("sumbit 0x%lx\n", thrd_current()); } void _after_submit (void* data) { printf("release 0x%lx\n", thrd_current()); mtx_unlock((mtx_t*)data); } int drawRectsThread () { VkvgSurface s = vkvg_surface_create(device, test_width, test_height); VkvgContext ctx = vkvg_create(s); for (uint32_t i=0; imain 0x%lx\n", thrd_current()); mtx_t gQMutex; mtx_init (&gQMutex, mtx_plain); vkvg_device_set_queue_guards (device, _before_submit, _after_submit, &gQMutex); thrd_t threads[THREAD_COUNT]; finishedThreadCount = 0; mtx_init (&mutex,mtx_plain); for (uint32_t i=0; i