egl: wire up ANGLE_sync_control_rate

Add eglGetMscRateANGLE prototype into generate file

Signed-off-by: KJ Liew <liewkj@yahoo.com>
Signed-off-by: Térence Clastres <t.clastres@gmail.com>
Signed-off-by: Satadru Pramanik <satadru@gmail.com>
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17815>
This commit is contained in:
Yonggang Luo 2022-07-30 17:28:54 +08:00 committed by Marge Bot
parent f5bb9dd738
commit eebea558b7
6 changed files with 40 additions and 0 deletions

View file

@ -216,6 +216,9 @@ EGL_FUNCTIONS = (
# EGL_CHROMIUM_get_sync_values
_eglFunc("eglGetSyncValuesCHROMIUM", "display"),
# EGL_ANGLE_sync_control_rate
_eglFunc("eglGetMscRateANGLE", "display"),
# EGL_ANDROID_native_fence_sync
_eglFunc("eglDupNativeFenceFDANDROID", "display"),

View file

@ -68,6 +68,15 @@
<param><ptype>EGLuint64KHR *</ptype> <name>msc</name></param>
<param><ptype>EGLuint64KHR *</ptype> <name>sbc</name></param>
</command>
<!-- EGL_ANGLE_sync_control_rate -->
<command>
<proto>EGLBoolean <name>eglGetMscRateANGLE</name></proto>
<param><ptype>EGLDisplay</ptype> <name>display</name></param>
<param><ptype>EGLSurface</ptype> <name>surface</name></param>
<param><ptype>EGLint *</ptype> <name>numerator</name></param>
<param><ptype>EGLint *</ptype> <name>denominator</name></param>
</command>
</commands>
</registry>

View file

@ -490,6 +490,7 @@ _eglCreateExtensionsString(_EGLDisplay *disp)
_EGL_CHECK_EXTENSION(ANDROID_recordable);
_EGL_CHECK_EXTENSION(CHROMIUM_sync_control);
_EGL_CHECK_EXTENSION(ANGLE_sync_control_rate);
_EGL_CHECK_EXTENSION(EXT_buffer_age);
_EGL_CHECK_EXTENSION(EXT_create_context_robustness);
@ -2369,6 +2370,28 @@ eglGetSyncValuesCHROMIUM(EGLDisplay dpy, EGLSurface surface,
RETURN_EGL_EVAL(disp, ret);
}
static EGLBoolean EGLAPIENTRY
eglGetMscRateANGLE(EGLDisplay dpy, EGLSurface surface,
EGLint *numerator, EGLint *denominator)
{
_EGLDisplay *disp = _eglLockDisplay(dpy);
_EGLSurface *surf = _eglLookupSurface(surface, disp);
EGLBoolean ret;
_EGL_FUNC_START(disp, EGL_OBJECT_SURFACE_KHR, surf, EGL_FALSE);
_EGL_CHECK_SURFACE(disp, surf, EGL_FALSE);
if (!disp->Extensions.ANGLE_sync_control_rate)
RETURN_EGL_EVAL(disp, EGL_FALSE);
if (!numerator || !denominator)
RETURN_EGL_ERROR(disp, EGL_BAD_PARAMETER, EGL_FALSE);
ret = disp->Driver->GetMscRateANGLE(disp, surf, numerator, denominator);
RETURN_EGL_EVAL(disp, ret);
}
static EGLBoolean EGLAPIENTRY
eglExportDMABUFImageQueryMESA(EGLDisplay dpy, EGLImage image,
EGLint *fourcc, EGLint *nplanes,

View file

@ -100,6 +100,7 @@ struct _egl_extensions
EGLBoolean ANDROID_native_fence_sync;
EGLBoolean ANDROID_recordable;
EGLBoolean ANGLE_sync_control_rate;
EGLBoolean CHROMIUM_sync_control;
EGLBoolean EXT_buffer_age;

View file

@ -181,6 +181,9 @@ struct _egl_driver
EGLuint64KHR *ust, EGLuint64KHR *msc,
EGLuint64KHR *sbc);
EGLBoolean (*GetMscRateANGLE)(_EGLDisplay *disp, _EGLSurface *surface,
EGLint *numerator, EGLint *denominator);
/* for EGL_MESA_image_dma_buf_export */
EGLBoolean (*ExportDMABUFImageQueryMESA)(_EGLDisplay *disp, _EGLImage *img,
EGLint *fourcc, EGLint *nplanes,

View file

@ -45,6 +45,7 @@ EGL_ENTRYPOINT(eglGetDisplay)
EGL_ENTRYPOINT(eglGetDisplayDriverConfig)
EGL_ENTRYPOINT(eglGetDisplayDriverName)
EGL_ENTRYPOINT(eglGetError)
EGL_ENTRYPOINT(eglGetMscRateANGLE)
EGL_ENTRYPOINT(eglGetPlatformDisplay)
EGL_ENTRYPOINT(eglGetPlatformDisplayEXT)
EGL_ENTRYPOINT(eglGetProcAddress)