Skip to content
  • Dongwon Kim's avatar
    egl: add EGL_KHR_reusable_sync to egl_dri · 70299474
    Dongwon Kim authored
    This patch enables an EGL extension, EGL_KHR_reusable_sync.
    This new extension basically provides a way for multiple APIs or
    threads to be excuted synchronously via a "reusable sync"
    primitive shared by those threads/API calls.
    
    This was implemented based on the specification at
    
    https://www.khronos.org/registry/egl/extensions/KHR/EGL_KHR_reusable_sync.txt
    
    
    
    v2
    - use thread functions defined in C11/threads.h instead of
      using direct pthread calls
    - make the timeout set with reference to CLOCK_MONOTONIC
    - cleaned up the way expiration time is calculated
    - (bug fix) in dri2_client_wait_sync, case EGL_SYNC_CL_EVENT_KHR
      has been added.
    - (bug fix) in dri2_destroy_sync, return from cond_broadcast
      call is now stored in 'err' intead of 'ret' to prevent 'ret'
      from being reset to 'EGL_FALSE' even in successful case
    - corrected minor syntax problems
    
    v3
    - dri2_egl_unref_sync now became 'void' type. No more error check
      is needed for this function call as a result.
    - (bug fix) resolved issue with duplicated unlocking of display in
      eglClientWaitSync when type of sync is "EGL_KHR_REUSABLE_SYNC"
    
    Signed-off-by: default avatarDongwon Kim <dongwon.kim@intel.com>
    Signed-off-by: default avatarMarek Olšák <marek.olsak@amd.com>
    70299474