- EGL_SYNC_NATIVE_FENCE_TIZEN is not an official extension.
So we need to support official extensions about egl sync.
EGL_SYNC_NATIVE_FENCE_TIZEN will be deprecated.
Change-Id: I53c4ea248d4ffaf0190619b861633eda450b44c4
Signed-off-by: Joonbum Ko <joonbum.ko@samsung.com>
#ifndef EGL_TIZEN_native_fence_sync
#define EGL_TIZEN_native_fence_sync 1
-#define EGL_SYNC_NATIVE_FENCE_TIZEN 0x3144
-#define EGL_SYNC_NATIVE_FENCE_FD_TIZEN 0x3145
+#define EGL_SYNC_NATIVE_FENCE_TIZEN EGL_SYNC_NATIVE_FENCE_ANDROID
+#define EGL_SYNC_NATIVE_FENCE_FD_TIZEN EGL_SYNC_NATIVE_FENCE_FD_ANDROID
#define EGL_NO_NATIVE_FENCE_FD_TIZEN -1
typedef EGLint (EGLAPIENTRYP PFNEGLDUPNATIVEFENCEFDTIZENPROC) (EGLDisplay dpy, EGLSyncKHR sync);
#ifdef EGL_EGLEXT_PROTOTYPES
case EGL_SYNC_REUSABLE_KHR:
cnd_destroy(&dri2_sync->cond);
break;
-#ifdef HAVE_TIZEN_PLATFORM
- case EGL_SYNC_NATIVE_FENCE_TIZEN:
- if (dri2_sync->base.SyncFd != EGL_NO_NATIVE_FENCE_FD_TIZEN)
- close(dri2_sync->base.SyncFd);
- break;
-#else
case EGL_SYNC_NATIVE_FENCE_ANDROID:
if (dri2_sync->base.SyncFd != EGL_NO_NATIVE_FENCE_FD_ANDROID)
close(dri2_sync->base.SyncFd);
break;
-#endif
default:
break;
}
dri2_sync->base.SyncStatus = EGL_UNSIGNALED_KHR;
break;
-#ifdef HAVE_TIZEN_PLATFORM
- case EGL_SYNC_NATIVE_FENCE_TIZEN:
- if (dri2_dpy->fence->create_fence_fd) {
- dri2_sync->fence = dri2_dpy->fence->create_fence_fd(
- dri2_ctx->dri_context, dri2_sync->base.SyncFd);
- }
- if (!dri2_sync->fence) {
- _eglError(EGL_BAD_ATTRIBUTE, "eglCreateSyncKHR");
- goto fail;
- }
- break;
- }
-#else
case EGL_SYNC_NATIVE_FENCE_ANDROID:
if (dri2_dpy->fence->create_fence_fd) {
dri2_sync->fence = dri2_dpy->fence->create_fence_fd(
return NULL;
}
break;
-#endif
+ }
p_atomic_set(&dri2_sync->refcount, 1);
mtx_unlock(&dri2_dpy->lock);
switch (sync->Type) {
case EGL_SYNC_FENCE_KHR:
-#ifdef HAVE_TIZEN_PLATFORM
- case EGL_SYNC_NATIVE_FENCE_TIZEN:
-#else
case EGL_SYNC_NATIVE_FENCE_ANDROID:
-#endif
case EGL_SYNC_CL_EVENT_KHR:
if (dri2_dpy->fence->client_wait_sync(
dri2_ctx ? dri2_ctx->dri_context : NULL, dri2_sync->fence,
dri2_dpy->fence->get_capabilities(dri2_dpy->dri_screen);
disp->Extensions.TIZEN_native_fence_sync =
(capabilities & __DRI_FENCE_CAP_NATIVE_FD) != 0;
+ disp->Extensions.ANDROID_native_fence_sync = disp->Extensions.TIZEN_native_fence_sync;
}
return EGL_TRUE;
* error is generated.
*/
if (!ctx &&
- (type == EGL_SYNC_FENCE_KHR || type == EGL_SYNC_NATIVE_FENCE_ANDROID
- || type == EGL_SYNC_NATIVE_FENCE_TIZEN))
+ (type == EGL_SYNC_FENCE_KHR || type == EGL_SYNC_NATIVE_FENCE_ANDROID))
RETURN_EGL_ERROR(disp, EGL_BAD_MATCH, EGL_NO_SYNC_KHR);
if (ctx && (ctx->Resource.Display != disp))
if (!disp->Extensions.KHR_cl_event2)
RETURN_EGL_ERROR(disp, invalid_type_error, EGL_NO_SYNC_KHR);
break;
-#ifdef HAVE_TIZEN_PLATFORM
- case EGL_SYNC_NATIVE_FENCE_TIZEN:
- if (!disp->Extensions.TIZEN_native_fence_sync)
- RETURN_EGL_ERROR(disp, invalid_type_error, EGL_NO_SYNC_KHR);
- break;
-#else
case EGL_SYNC_NATIVE_FENCE_ANDROID:
if (!disp->Extensions.ANDROID_native_fence_sync)
RETURN_EGL_ERROR(disp, invalid_type_error, EGL_NO_SYNC_KHR);
break;
-#endif
default:
RETURN_EGL_ERROR(disp, invalid_type_error, EGL_NO_SYNC_KHR);
}
err = EGL_BAD_ATTRIBUTE;
}
break;
-#ifdef HAVE_TIZEN_PLATFORM
- case EGL_SYNC_NATIVE_FENCE_FD_TIZEN:
- if (sync->Type == EGL_SYNC_NATIVE_FENCE_TIZEN) {
- /* we take ownership of the native fd, so no dup(): */
- sync->SyncFd = val;
- } else {
- err = EGL_BAD_ATTRIBUTE;
- }
- break;
-#else
case EGL_SYNC_NATIVE_FENCE_FD_ANDROID:
if (sync->Type == EGL_SYNC_NATIVE_FENCE_ANDROID) {
/* we take ownership of the native fd, so no dup(): */
err = EGL_BAD_ATTRIBUTE;
}
break;
-#endif
default:
err = EGL_BAD_ATTRIBUTE;
break;
case EGL_SYNC_CL_EVENT_KHR:
sync->SyncCondition = EGL_SYNC_CL_EVENT_COMPLETE_KHR;
break;
-#ifdef HAVE_TIZEN_PLATFORM
- case EGL_SYNC_NATIVE_FENCE_TIZEN:
- sync->SyncCondition = EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR;
- break;
-#else
case EGL_SYNC_NATIVE_FENCE_ANDROID:
if (sync->SyncFd == EGL_NO_NATIVE_FENCE_FD_ANDROID)
sync->SyncCondition = EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR;
else
sync->SyncCondition = EGL_SYNC_NATIVE_FENCE_SIGNALED_ANDROID;
break;
-#endif
default:
sync->SyncCondition = EGL_SYNC_PRIOR_COMMANDS_COMPLETE_KHR;
}
(sync->Type == EGL_SYNC_FENCE_KHR ||
sync->Type == EGL_SYNC_CL_EVENT_KHR ||
sync->Type == EGL_SYNC_REUSABLE_KHR ||
-#ifdef HAVE_TIZEN_PLATFORM
- sync->Type == EGL_SYNC_NATIVE_FENCE_TIZEN))
-#else
sync->Type == EGL_SYNC_NATIVE_FENCE_ANDROID))
-#endif
disp->Driver->ClientWaitSyncKHR(disp, sync, 0, 0);
*value = sync->SyncStatus;
case EGL_SYNC_CONDITION_KHR:
if (sync->Type != EGL_SYNC_FENCE_KHR &&
sync->Type != EGL_SYNC_CL_EVENT_KHR &&
-#ifdef HAVE_TIZEN_PLATFORM
- sync->Type != EGL_SYNC_NATIVE_FENCE_TIZEN)
-#else
sync->Type != EGL_SYNC_NATIVE_FENCE_ANDROID)
-#endif
return _eglError(EGL_BAD_ATTRIBUTE, "eglGetSyncAttribKHR");
*value = sync->SyncCondition;
break;