EGL: Add code-gen for dmabuf extensions

Add code-gen for EGL_EXT_image_dma_buf_import and
EGL_EXT_image_dma_buf_import_modifiers.

Bug: angleproject:7065
Change-Id: Ib1bd2a881f11e96b1e7e5128975bdba3bdc41e0f
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3495122
Reviewed-by: Jamie Madill <jmadill@chromium.org>
Commit-Queue: Jamie Madill <jmadill@chromium.org>
This commit is contained in:
Antonio Caggiano
2022-02-24 12:23:09 +01:00
committed by Angle LUCI CQ
parent ef6688c9e2
commit b92ebdb73a
28 changed files with 260 additions and 27 deletions

View File

@@ -26,7 +26,7 @@
"scripts/gl_angle_ext.xml":
"474989440f980a079935dff3ab4d7b24",
"scripts/registry_xml.py":
"2d6924d398a790f4ef80473c0279eda5",
"0f5d6e43b21fa54987644b9f4d1411ce",
"scripts/wgl.xml":
"c36001431919e1c435f1215a85f7e1db",
"src/libANGLE/gen_extensions.py":

View File

@@ -12,25 +12,25 @@
"scripts/gl_angle_ext.xml":
"474989440f980a079935dff3ab4d7b24",
"scripts/registry_xml.py":
"2d6924d398a790f4ef80473c0279eda5",
"0f5d6e43b21fa54987644b9f4d1411ce",
"scripts/wgl.xml":
"c36001431919e1c435f1215a85f7e1db",
"src/libEGL/egl_loader_autogen.cpp":
"4b342bb3332ab8fca34b085c2d9df39c",
"cac833213d037fa8d8a81c39b6bb1c56",
"src/libEGL/egl_loader_autogen.h":
"e4ef16c990b67a168f5c668eaf0b63ed",
"6c1243c5956193a13ebc6658646877f2",
"src/tests/restricted_traces/trace_egl_loader_autogen.cpp":
"3a4117b9e6c08e07bb50bae047ba4ec2",
"31143ac4b21d32854fa6603673c93937",
"src/tests/restricted_traces/trace_egl_loader_autogen.h":
"f1445400e80230d1c3eedee627e555c3",
"372c734043680041148d75e1810d63c5",
"src/tests/restricted_traces/trace_gles_loader_autogen.cpp":
"6ef6645cd56919d025fbe1001405cfd5",
"src/tests/restricted_traces/trace_gles_loader_autogen.h":
"5f75c66513b6d4ee86e088ed60b480da",
"util/egl_loader_autogen.cpp":
"0dab7cf0826a618dc046c1c78f3ac7c9",
"7134e5535bf520664b33ba5a34e46351",
"util/egl_loader_autogen.h":
"fe0bb83a26e3e1a09e8bd9381cd7b295",
"07612f2570e6ed43f8ccdf32934d73b8",
"util/gles_loader_autogen.cpp":
"965995d6ce0d7bc6fec6a675190cafae",
"util/gles_loader_autogen.h":

View File

@@ -16,13 +16,13 @@
"scripts/gl_angle_ext.xml":
"474989440f980a079935dff3ab4d7b24",
"scripts/registry_xml.py":
"2d6924d398a790f4ef80473c0279eda5",
"0f5d6e43b21fa54987644b9f4d1411ce",
"scripts/wgl.xml":
"c36001431919e1c435f1215a85f7e1db",
"src/common/entry_points_enum_autogen.cpp":
"08bf77782e6fb467efa2f95f64dea83c",
"f3b879957997e733a081b8654073b7df",
"src/common/entry_points_enum_autogen.h":
"2357352bf4767a07b243ad4afab73dcd",
"7e6fb57b6bd3873723142a9c4fb714cc",
"src/libANGLE/Context_gl_1_autogen.h":
"115d224fd28b0bc2b2800354bb57fcf3",
"src/libANGLE/Context_gl_2_autogen.h":
@@ -70,13 +70,13 @@
"src/libANGLE/capture/frame_capture_replay_autogen.cpp":
"e2e6419d43bc96a65b8a8e94222a910a",
"src/libANGLE/capture/frame_capture_utils_autogen.cpp":
"96307bd69a648f1b023956c0008623c5",
"90caecf105e7f7a500561d4c5447844b",
"src/libANGLE/capture/frame_capture_utils_autogen.h":
"840e4ad7d8610d16106bdd66e21798a5",
"c7b47636edf70a086788d26505ed4050",
"src/libANGLE/validationCL_autogen.h":
"0022d0cdb6a9e2ef4a59b71164f62333",
"src/libANGLE/validationEGL_autogen.h":
"d9ff034bf52b03cb1cd6132c60639f55",
"9efb40631ea8b4779167f3ecab1b5794",
"src/libANGLE/validationES1_autogen.h":
"99af5e328690ae78d7724a80e94cfac5",
"src/libANGLE/validationES2_autogen.h":
@@ -98,9 +98,9 @@
"src/libANGLE/validationGL4_autogen.h":
"0477150779497ad894973f0e4b830d6b",
"src/libEGL/libEGL_autogen.cpp":
"0309da002572331ad0fc7b2eefe8c323",
"f94c18dc41b0ce55d56dc002a32bb6b7",
"src/libEGL/libEGL_autogen.def":
"41185b1718ccc704c6fdc841465cd43f",
"fdd4a110a95c3a2fed33c4b5f110650d",
"src/libGL/entry_points_gl_1_autogen.cpp":
"8148ccb597c5c77db7d5e532c7152243",
"src/libGL/entry_points_gl_1_autogen.h":
@@ -124,7 +124,7 @@
"src/libGLESv2/cl_stubs_autogen.h":
"6d880c6b65284192b5842f0e42ad2741",
"src/libGLESv2/egl_ext_stubs_autogen.h":
"5cbb0f33441eb1e272726740b1b69090",
"0e33e7ae4c96995f674bff8cf92825ff",
"src/libGLESv2/egl_get_labeled_object_data.json":
"2f4148b2ddf34e62670e32c5e6da4937",
"src/libGLESv2/egl_stubs_autogen.h":
@@ -138,9 +138,9 @@
"src/libGLESv2/entry_points_egl_autogen.h":
"3bc7a8df9deadd7cfd615d0cfad0c6a8",
"src/libGLESv2/entry_points_egl_ext_autogen.cpp":
"0e046a3c25ed8d22db70e01124c1f523",
"c9d5df7d303e13fe9b3f78dafa22eff0",
"src/libGLESv2/entry_points_egl_ext_autogen.h":
"8255e4f7021688396bd814c4b6cadfd6",
"df2219883f43fc1c7a2b568f4f49185a",
"src/libGLESv2/entry_points_gles_1_0_autogen.cpp":
"4cb9f5d56c003d1627365cfa34470edc",
"src/libGLESv2/entry_points_gles_1_0_autogen.h":
@@ -168,11 +168,11 @@
"src/libGLESv2/libGLESv2_autogen.cpp":
"1144a2cd0bac4dbb8d50976e03945933",
"src/libGLESv2/libGLESv2_autogen.def":
"354fb8270e17b5e41ac754ed9cf96581",
"346035f14b502f3b314b245d56f6bb47",
"src/libGLESv2/libGLESv2_no_capture_autogen.def":
"cb5261d868e168d0f30bf66d3a5ff819",
"570799d87e11304b31b2944ead14cf28",
"src/libGLESv2/libGLESv2_with_capture_autogen.def":
"351f9f26260b7b39f1fc808cdbe9c5e2",
"a5c6aa52b7504045923bc8bf99c2810a",
"src/libOpenCL/libOpenCL_autogen.cpp":
"10849978c910dc1af5dd4f0c815d1581"
}

View File

@@ -6,7 +6,7 @@
"scripts/gl_angle_ext.xml":
"474989440f980a079935dff3ab4d7b24",
"scripts/registry_xml.py":
"2d6924d398a790f4ef80473c0279eda5",
"0f5d6e43b21fa54987644b9f4d1411ce",
"src/libANGLE/capture/gl_enum_utils_autogen.cpp":
"71454594bd3b1bf33aa8350942092669",
"src/libANGLE/capture/gl_enum_utils_autogen.h":

View File

@@ -12,7 +12,7 @@
"scripts/gl_angle_ext.xml":
"474989440f980a079935dff3ab4d7b24",
"scripts/registry_xml.py":
"2d6924d398a790f4ef80473c0279eda5",
"0f5d6e43b21fa54987644b9f4d1411ce",
"scripts/wgl.xml":
"c36001431919e1c435f1215a85f7e1db",
"src/libGL/proc_table_wgl_autogen.cpp":
@@ -20,7 +20,7 @@
"src/libGLESv2/proc_table_cl_autogen.cpp":
"ed003b0f041aaaa35b67d3fe07e61f91",
"src/libGLESv2/proc_table_egl_autogen.cpp":
"5026f86299a02a4b1440295b46f4dc77",
"4c157ab91896b7c59c0cc6aaef73de88",
"src/libOpenCL/libOpenCL_autogen.map":
"bc5f5cf48227149ed321258a16eff1d7"
}

View File

@@ -312,6 +312,8 @@ supported_egl_extensions = [
"EGL_EXT_gl_colorspace_display_p3_passthrough",
"EGL_EXT_gl_colorspace_scrgb",
"EGL_EXT_gl_colorspace_scrgb_linear",
"EGL_EXT_image_dma_buf_import",
"EGL_EXT_image_dma_buf_import_modifiers",
"EGL_EXT_image_gl_colorspace",
"EGL_EXT_pixel_format_float",
"EGL_EXT_platform_base",

View File

@@ -392,6 +392,10 @@ const char *GetEntryPointName(EntryPoint ep)
return "eglQueryDisplayAttribANGLE";
case EntryPoint::EGLQueryDisplayAttribEXT:
return "eglQueryDisplayAttribEXT";
case EntryPoint::EGLQueryDmaBufFormatsEXT:
return "eglQueryDmaBufFormatsEXT";
case EntryPoint::EGLQueryDmaBufModifiersEXT:
return "eglQueryDmaBufModifiersEXT";
case EntryPoint::EGLQueryStreamKHR:
return "eglQueryStreamKHR";
case EntryPoint::EGLQueryStreamu64KHR:

View File

@@ -202,6 +202,8 @@ enum class EntryPoint
EGLQueryDeviceStringEXT,
EGLQueryDisplayAttribANGLE,
EGLQueryDisplayAttribEXT,
EGLQueryDmaBufFormatsEXT,
EGLQueryDmaBufModifiersEXT,
EGLQueryStreamKHR,
EGLQueryStreamu64KHR,
EGLQueryString,

View File

@@ -65,6 +65,9 @@ void WriteParamCaptureReplay(std::ostream &os, const CallCapture &call, const Pa
case ParamType::TEGLAttribKHR:
WriteParamValueReplay<ParamType::TEGLAttribKHR>(os, call, param.value.EGLAttribKHRVal);
break;
case ParamType::TEGLBoolean:
WriteParamValueReplay<ParamType::TEGLBoolean>(os, call, param.value.EGLBooleanVal);
break;
case ParamType::TEGLClientBuffer:
WriteParamValueReplay<ParamType::TEGLClientBuffer>(os, call,
param.value.EGLClientBufferVal);
@@ -612,6 +615,8 @@ const char *ParamTypeToString(ParamType paramType)
return "GLenum";
case ParamType::TEGLAttribKHR:
return "GLenum";
case ParamType::TEGLBoolean:
return "GLenum";
case ParamType::TEGLClientBuffer:
return "GLenum";
case ParamType::TEGLConfig:

View File

@@ -30,6 +30,7 @@ enum class ParamType
TDrawElementsType,
TEGLAttrib,
TEGLAttribKHR,
TEGLBoolean,
TEGLClientBuffer,
TEGLConfig,
TEGLContext,
@@ -172,7 +173,7 @@ enum class ParamType
TvoidPointerPointer,
};
constexpr uint32_t kParamTypeCount = 153;
constexpr uint32_t kParamTypeCount = 154;
union ParamValue
{
@@ -189,6 +190,7 @@ union ParamValue
gl::DrawElementsType DrawElementsTypeVal;
EGLAttrib EGLAttribVal;
EGLAttribKHR EGLAttribKHRVal;
EGLBoolean EGLBooleanVal;
EGLClientBuffer EGLClientBufferVal;
EGLConfig EGLConfigVal;
EGLContext EGLContextVal;
@@ -422,6 +424,12 @@ inline EGLAttribKHR GetParamVal<ParamType::TEGLAttribKHR, EGLAttribKHR>(const Pa
return value.EGLAttribKHRVal;
}
template <>
inline EGLBoolean GetParamVal<ParamType::TEGLBoolean, EGLBoolean>(const ParamValue &value)
{
return value.EGLBooleanVal;
}
template <>
inline EGLClientBuffer GetParamVal<ParamType::TEGLClientBuffer, EGLClientBuffer>(
const ParamValue &value)
@@ -1380,6 +1388,8 @@ T AccessParamValue(ParamType paramType, const ParamValue &value)
return GetParamVal<ParamType::TEGLAttrib, T>(value);
case ParamType::TEGLAttribKHR:
return GetParamVal<ParamType::TEGLAttribKHR, T>(value);
case ParamType::TEGLBoolean:
return GetParamVal<ParamType::TEGLBoolean, T>(value);
case ParamType::TEGLClientBuffer:
return GetParamVal<ParamType::TEGLClientBuffer, T>(value);
case ParamType::TEGLConfig:
@@ -1751,6 +1761,12 @@ inline void SetParamVal<ParamType::TEGLAttribKHR>(EGLAttribKHR valueIn, ParamVal
valueOut->EGLAttribKHRVal = valueIn;
}
template <>
inline void SetParamVal<ParamType::TEGLBoolean>(EGLBoolean valueIn, ParamValue *valueOut)
{
valueOut->EGLBooleanVal = valueIn;
}
template <>
inline void SetParamVal<ParamType::TEGLClientBuffer>(EGLClientBuffer valueIn, ParamValue *valueOut)
{
@@ -2701,6 +2717,9 @@ void InitParamValue(ParamType paramType, T valueIn, ParamValue *valueOut)
case ParamType::TEGLAttribKHR:
SetParamVal<ParamType::TEGLAttribKHR>(valueIn, valueOut);
break;
case ParamType::TEGLBoolean:
SetParamVal<ParamType::TEGLBoolean>(valueIn, valueOut);
break;
case ParamType::TEGLClientBuffer:
SetParamVal<ParamType::TEGLClientBuffer>(valueIn, valueOut);
break;

View File

@@ -6518,4 +6518,26 @@ bool ValidateSetDamageRegionKHR(const ValidationContext *val,
return false;
}
bool ValidateQueryDmaBufFormatsEXT(ValidationContext const *val,
Display const *dpy,
EGLint max_formats,
const EGLint *formats,
const EGLint *num_formats)
{
UNIMPLEMENTED();
return false;
}
bool ValidateQueryDmaBufModifiersEXT(ValidationContext const *val,
Display const *dpy,
EGLint format,
EGLint max_modifiers,
const EGLuint64KHR *modifiers,
const EGLBoolean *external_only,
const EGLint *num_modifiers)
{
UNIMPLEMENTED();
return false;
}
} // namespace egl

View File

@@ -337,6 +337,20 @@ bool ValidateQueryDisplayAttribEXT(const ValidationContext *val,
EGLint attribute,
const EGLAttrib *value);
// EGL_EXT_image_dma_buf_import_modifiers
bool ValidateQueryDmaBufFormatsEXT(const ValidationContext *val,
const egl::Display *dpyPacked,
EGLint max_formats,
const EGLint *formats,
const EGLint *num_formats);
bool ValidateQueryDmaBufModifiersEXT(const ValidationContext *val,
const egl::Display *dpyPacked,
EGLint format,
EGLint max_modifiers,
const EGLuint64KHR *modifiers,
const EGLBoolean *external_only,
const EGLint *num_modifiers);
// EGL_EXT_platform_base
bool ValidateCreatePlatformPixmapSurfaceEXT(const ValidationContext *val,
const egl::Display *dpyPacked,

View File

@@ -86,6 +86,8 @@ PFNEGLGETSYNCVALUESCHROMIUMPROC l_EGL_GetSyncValuesCHROMIUM;
PFNEGLQUERYDEVICEATTRIBEXTPROC l_EGL_QueryDeviceAttribEXT;
PFNEGLQUERYDEVICESTRINGEXTPROC l_EGL_QueryDeviceStringEXT;
PFNEGLQUERYDISPLAYATTRIBEXTPROC l_EGL_QueryDisplayAttribEXT;
PFNEGLQUERYDMABUFFORMATSEXTPROC l_EGL_QueryDmaBufFormatsEXT;
PFNEGLQUERYDMABUFMODIFIERSEXTPROC l_EGL_QueryDmaBufModifiersEXT;
PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC l_EGL_CreatePlatformPixmapSurfaceEXT;
PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC l_EGL_CreatePlatformWindowSurfaceEXT;
PFNEGLGETPLATFORMDISPLAYEXTPROC l_EGL_GetPlatformDisplayEXT;
@@ -249,6 +251,10 @@ void LoadEGL_EGL(LoadProc loadProc)
reinterpret_cast<PFNEGLQUERYDEVICESTRINGEXTPROC>(loadProc("EGL_QueryDeviceStringEXT"));
l_EGL_QueryDisplayAttribEXT =
reinterpret_cast<PFNEGLQUERYDISPLAYATTRIBEXTPROC>(loadProc("EGL_QueryDisplayAttribEXT"));
l_EGL_QueryDmaBufFormatsEXT =
reinterpret_cast<PFNEGLQUERYDMABUFFORMATSEXTPROC>(loadProc("EGL_QueryDmaBufFormatsEXT"));
l_EGL_QueryDmaBufModifiersEXT = reinterpret_cast<PFNEGLQUERYDMABUFMODIFIERSEXTPROC>(
loadProc("EGL_QueryDmaBufModifiersEXT"));
l_EGL_CreatePlatformPixmapSurfaceEXT =
reinterpret_cast<PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC>(
loadProc("EGL_CreatePlatformPixmapSurfaceEXT"));

View File

@@ -91,6 +91,8 @@
#define EGL_QueryDeviceAttribEXT l_EGL_QueryDeviceAttribEXT
#define EGL_QueryDeviceStringEXT l_EGL_QueryDeviceStringEXT
#define EGL_QueryDisplayAttribEXT l_EGL_QueryDisplayAttribEXT
#define EGL_QueryDmaBufFormatsEXT l_EGL_QueryDmaBufFormatsEXT
#define EGL_QueryDmaBufModifiersEXT l_EGL_QueryDmaBufModifiersEXT
#define EGL_CreatePlatformPixmapSurfaceEXT l_EGL_CreatePlatformPixmapSurfaceEXT
#define EGL_CreatePlatformWindowSurfaceEXT l_EGL_CreatePlatformWindowSurfaceEXT
#define EGL_GetPlatformDisplayEXT l_EGL_GetPlatformDisplayEXT
@@ -201,6 +203,8 @@ ANGLE_NO_EXPORT extern PFNEGLGETSYNCVALUESCHROMIUMPROC l_EGL_GetSyncValuesCHROMI
ANGLE_NO_EXPORT extern PFNEGLQUERYDEVICEATTRIBEXTPROC l_EGL_QueryDeviceAttribEXT;
ANGLE_NO_EXPORT extern PFNEGLQUERYDEVICESTRINGEXTPROC l_EGL_QueryDeviceStringEXT;
ANGLE_NO_EXPORT extern PFNEGLQUERYDISPLAYATTRIBEXTPROC l_EGL_QueryDisplayAttribEXT;
ANGLE_NO_EXPORT extern PFNEGLQUERYDMABUFFORMATSEXTPROC l_EGL_QueryDmaBufFormatsEXT;
ANGLE_NO_EXPORT extern PFNEGLQUERYDMABUFMODIFIERSEXTPROC l_EGL_QueryDmaBufModifiersEXT;
ANGLE_NO_EXPORT extern PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC
l_EGL_CreatePlatformPixmapSurfaceEXT;
ANGLE_NO_EXPORT extern PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC

View File

@@ -644,6 +644,28 @@ EGLBoolean EGLAPIENTRY eglQueryDisplayAttribEXT(EGLDisplay dpy, EGLint attribute
return EGL_QueryDisplayAttribEXT(dpy, attribute, value);
}
// EGL_EXT_image_dma_buf_import_modifiers
EGLBoolean EGLAPIENTRY eglQueryDmaBufFormatsEXT(EGLDisplay dpy,
EGLint max_formats,
EGLint *formats,
EGLint *num_formats)
{
EnsureEGLLoaded();
return EGL_QueryDmaBufFormatsEXT(dpy, max_formats, formats, num_formats);
}
EGLBoolean EGLAPIENTRY eglQueryDmaBufModifiersEXT(EGLDisplay dpy,
EGLint format,
EGLint max_modifiers,
EGLuint64KHR *modifiers,
EGLBoolean *external_only,
EGLint *num_modifiers)
{
EnsureEGLLoaded();
return EGL_QueryDmaBufModifiersEXT(dpy, format, max_modifiers, modifiers, external_only,
num_modifiers);
}
// EGL_EXT_platform_base
EGLSurface EGLAPIENTRY eglCreatePlatformPixmapSurfaceEXT(EGLDisplay dpy,
EGLConfig config,

View File

@@ -129,6 +129,10 @@ EXPORTS
eglQueryDeviceStringEXT
eglQueryDisplayAttribEXT
; EGL_EXT_image_dma_buf_import_modifiers
eglQueryDmaBufFormatsEXT
eglQueryDmaBufModifiersEXT
; EGL_EXT_platform_base
eglCreatePlatformPixmapSurfaceEXT
eglCreatePlatformWindowSurfaceEXT

View File

@@ -899,4 +899,26 @@ EGLBoolean SetDamageRegionKHR(Thread *thread,
return EGL_TRUE;
}
EGLBoolean QueryDmaBufFormatsEXT(Thread *thread,
egl::Display *display,
EGLint max_formats,
EGLint *formats,
EGLint *num_formats)
{
UNIMPLEMENTED();
return EGL_FALSE;
}
EGLBoolean QueryDmaBufModifiersEXT(Thread *thread,
egl::Display *display,
EGLint format,
EGLint max_modifiers,
EGLuint64KHR *modifiers,
EGLBoolean *external_only,
EGLint *num_modifiers)
{
UNIMPLEMENTED();
return EGL_FALSE;
}
} // namespace egl

View File

@@ -134,6 +134,18 @@ EGLBoolean QueryDisplayAttribEXT(Thread *thread,
egl::Display *dpyPacked,
EGLint attribute,
EGLAttrib *value);
EGLBoolean QueryDmaBufFormatsEXT(Thread *thread,
egl::Display *dpyPacked,
EGLint max_formats,
EGLint *formats,
EGLint *num_formats);
EGLBoolean QueryDmaBufModifiersEXT(Thread *thread,
egl::Display *dpyPacked,
EGLint format,
EGLint max_modifiers,
EGLuint64KHR *modifiers,
EGLBoolean *external_only,
EGLint *num_modifiers);
EGLBoolean QueryStreamKHR(Thread *thread,
egl::Display *dpyPacked,
Stream *streamPacked,

View File

@@ -681,6 +681,55 @@ EGLBoolean EGLAPIENTRY EGL_QueryDisplayAttribEXT(EGLDisplay dpy, EGLint attribut
return QueryDisplayAttribEXT(thread, dpyPacked, attribute, value);
}
// EGL_EXT_image_dma_buf_import_modifiers
EGLBoolean EGLAPIENTRY EGL_QueryDmaBufFormatsEXT(EGLDisplay dpy,
EGLint max_formats,
EGLint *formats,
EGLint *num_formats)
{
ANGLE_SCOPED_GLOBAL_LOCK();
EGL_EVENT(QueryDmaBufFormatsEXT,
"dpy = 0x%016" PRIxPTR ", max_formats = %d, formats = 0x%016" PRIxPTR
", num_formats = 0x%016" PRIxPTR "",
(uintptr_t)dpy, max_formats, (uintptr_t)formats, (uintptr_t)num_formats);
Thread *thread = egl::GetCurrentThread();
egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
ANGLE_EGL_VALIDATE(thread, QueryDmaBufFormatsEXT, GetDisplayIfValid(dpyPacked), EGLBoolean,
dpyPacked, max_formats, formats, num_formats);
return QueryDmaBufFormatsEXT(thread, dpyPacked, max_formats, formats, num_formats);
}
EGLBoolean EGLAPIENTRY EGL_QueryDmaBufModifiersEXT(EGLDisplay dpy,
EGLint format,
EGLint max_modifiers,
EGLuint64KHR *modifiers,
EGLBoolean *external_only,
EGLint *num_modifiers)
{
ANGLE_SCOPED_GLOBAL_LOCK();
EGL_EVENT(QueryDmaBufModifiersEXT,
"dpy = 0x%016" PRIxPTR ", format = %d, max_modifiers = %d, modifiers = 0x%016" PRIxPTR
", external_only = 0x%016" PRIxPTR ", num_modifiers = 0x%016" PRIxPTR "",
(uintptr_t)dpy, format, max_modifiers, (uintptr_t)modifiers, (uintptr_t)external_only,
(uintptr_t)num_modifiers);
Thread *thread = egl::GetCurrentThread();
egl::Display *dpyPacked = PackParam<egl::Display *>(dpy);
ANGLE_EGL_VALIDATE(thread, QueryDmaBufModifiersEXT, GetDisplayIfValid(dpyPacked), EGLBoolean,
dpyPacked, format, max_modifiers, modifiers, external_only, num_modifiers);
return QueryDmaBufModifiersEXT(thread, dpyPacked, format, max_modifiers, modifiers,
external_only, num_modifiers);
}
// EGL_EXT_platform_base
EGLSurface EGLAPIENTRY EGL_CreatePlatformPixmapSurfaceEXT(EGLDisplay dpy,
EGLConfig config,

View File

@@ -149,6 +149,18 @@ ANGLE_EXPORT EGLBoolean EGLAPIENTRY EGL_QueryDisplayAttribEXT(EGLDisplay dpy,
EGLint attribute,
EGLAttrib *value);
// EGL_EXT_image_dma_buf_import_modifiers
ANGLE_EXPORT EGLBoolean EGLAPIENTRY EGL_QueryDmaBufFormatsEXT(EGLDisplay dpy,
EGLint max_formats,
EGLint *formats,
EGLint *num_formats);
ANGLE_EXPORT EGLBoolean EGLAPIENTRY EGL_QueryDmaBufModifiersEXT(EGLDisplay dpy,
EGLint format,
EGLint max_modifiers,
EGLuint64KHR *modifiers,
EGLBoolean *external_only,
EGLint *num_modifiers);
// EGL_EXT_platform_base
ANGLE_EXPORT EGLSurface EGLAPIENTRY EGL_CreatePlatformPixmapSurfaceEXT(EGLDisplay dpy,
EGLConfig config,

View File

@@ -1259,6 +1259,10 @@ EXPORTS
EGL_QueryDeviceStringEXT
EGL_QueryDisplayAttribEXT
; EGL_EXT_image_dma_buf_import_modifiers
EGL_QueryDmaBufFormatsEXT
EGL_QueryDmaBufModifiersEXT
; EGL_EXT_platform_base
EGL_CreatePlatformPixmapSurfaceEXT
EGL_CreatePlatformWindowSurfaceEXT

View File

@@ -1259,6 +1259,10 @@ EXPORTS
EGL_QueryDeviceStringEXT
EGL_QueryDisplayAttribEXT
; EGL_EXT_image_dma_buf_import_modifiers
EGL_QueryDmaBufFormatsEXT
EGL_QueryDmaBufModifiersEXT
; EGL_EXT_platform_base
EGL_CreatePlatformPixmapSurfaceEXT
EGL_CreatePlatformWindowSurfaceEXT

View File

@@ -1259,6 +1259,10 @@ EXPORTS
EGL_QueryDeviceStringEXT
EGL_QueryDisplayAttribEXT
; EGL_EXT_image_dma_buf_import_modifiers
EGL_QueryDmaBufFormatsEXT
EGL_QueryDmaBufModifiersEXT
; EGL_EXT_platform_base
EGL_CreatePlatformPixmapSurfaceEXT
EGL_CreatePlatformWindowSurfaceEXT

View File

@@ -101,6 +101,8 @@ const ProcEntry g_procTable[] = {
{"eglQueryDeviceStringEXT", P(EGL_QueryDeviceStringEXT)},
{"eglQueryDisplayAttribANGLE", P(EGL_QueryDisplayAttribANGLE)},
{"eglQueryDisplayAttribEXT", P(EGL_QueryDisplayAttribEXT)},
{"eglQueryDmaBufFormatsEXT", P(EGL_QueryDmaBufFormatsEXT)},
{"eglQueryDmaBufModifiersEXT", P(EGL_QueryDmaBufModifiersEXT)},
{"eglQueryStreamKHR", P(EGL_QueryStreamKHR)},
{"eglQueryStreamu64KHR", P(EGL_QueryStreamu64KHR)},
{"eglQueryString", P(EGL_QueryString)},
@@ -932,5 +934,5 @@ const ProcEntry g_procTable[] = {
{"glWaitSync", P(GL_WaitSync)},
{"glWeightPointerOES", P(GL_WeightPointerOES)}};
const size_t g_numProcs = 899;
const size_t g_numProcs = 901;
} // namespace egl

View File

@@ -92,6 +92,8 @@ ANGLE_TRACE_LOADER_EXPORT PFNEGLGETSYNCVALUESCHROMIUMPROC t_eglGetSyncValuesCHRO
ANGLE_TRACE_LOADER_EXPORT PFNEGLQUERYDEVICEATTRIBEXTPROC t_eglQueryDeviceAttribEXT;
ANGLE_TRACE_LOADER_EXPORT PFNEGLQUERYDEVICESTRINGEXTPROC t_eglQueryDeviceStringEXT;
ANGLE_TRACE_LOADER_EXPORT PFNEGLQUERYDISPLAYATTRIBEXTPROC t_eglQueryDisplayAttribEXT;
ANGLE_TRACE_LOADER_EXPORT PFNEGLQUERYDMABUFFORMATSEXTPROC t_eglQueryDmaBufFormatsEXT;
ANGLE_TRACE_LOADER_EXPORT PFNEGLQUERYDMABUFMODIFIERSEXTPROC t_eglQueryDmaBufModifiersEXT;
ANGLE_TRACE_LOADER_EXPORT PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC
t_eglCreatePlatformPixmapSurfaceEXT;
ANGLE_TRACE_LOADER_EXPORT PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC
@@ -255,6 +257,10 @@ void LoadEGL(LoadProc loadProc)
reinterpret_cast<PFNEGLQUERYDEVICESTRINGEXTPROC>(loadProc("eglQueryDeviceStringEXT"));
t_eglQueryDisplayAttribEXT =
reinterpret_cast<PFNEGLQUERYDISPLAYATTRIBEXTPROC>(loadProc("eglQueryDisplayAttribEXT"));
t_eglQueryDmaBufFormatsEXT =
reinterpret_cast<PFNEGLQUERYDMABUFFORMATSEXTPROC>(loadProc("eglQueryDmaBufFormatsEXT"));
t_eglQueryDmaBufModifiersEXT =
reinterpret_cast<PFNEGLQUERYDMABUFMODIFIERSEXTPROC>(loadProc("eglQueryDmaBufModifiersEXT"));
t_eglCreatePlatformPixmapSurfaceEXT =
reinterpret_cast<PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC>(
loadProc("eglCreatePlatformPixmapSurfaceEXT"));

View File

@@ -92,6 +92,8 @@
#define eglQueryDeviceAttribEXT t_eglQueryDeviceAttribEXT
#define eglQueryDeviceStringEXT t_eglQueryDeviceStringEXT
#define eglQueryDisplayAttribEXT t_eglQueryDisplayAttribEXT
#define eglQueryDmaBufFormatsEXT t_eglQueryDmaBufFormatsEXT
#define eglQueryDmaBufModifiersEXT t_eglQueryDmaBufModifiersEXT
#define eglCreatePlatformPixmapSurfaceEXT t_eglCreatePlatformPixmapSurfaceEXT
#define eglCreatePlatformWindowSurfaceEXT t_eglCreatePlatformWindowSurfaceEXT
#define eglGetPlatformDisplayEXT t_eglGetPlatformDisplayEXT
@@ -209,6 +211,8 @@ ANGLE_TRACE_LOADER_EXPORT extern PFNEGLGETSYNCVALUESCHROMIUMPROC t_eglGetSyncVal
ANGLE_TRACE_LOADER_EXPORT extern PFNEGLQUERYDEVICEATTRIBEXTPROC t_eglQueryDeviceAttribEXT;
ANGLE_TRACE_LOADER_EXPORT extern PFNEGLQUERYDEVICESTRINGEXTPROC t_eglQueryDeviceStringEXT;
ANGLE_TRACE_LOADER_EXPORT extern PFNEGLQUERYDISPLAYATTRIBEXTPROC t_eglQueryDisplayAttribEXT;
ANGLE_TRACE_LOADER_EXPORT extern PFNEGLQUERYDMABUFFORMATSEXTPROC t_eglQueryDmaBufFormatsEXT;
ANGLE_TRACE_LOADER_EXPORT extern PFNEGLQUERYDMABUFMODIFIERSEXTPROC t_eglQueryDmaBufModifiersEXT;
ANGLE_TRACE_LOADER_EXPORT extern PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC
t_eglCreatePlatformPixmapSurfaceEXT;
ANGLE_TRACE_LOADER_EXPORT extern PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC

View File

@@ -89,6 +89,8 @@ ANGLE_UTIL_EXPORT PFNEGLGETSYNCVALUESCHROMIUMPROC l_eglGetSyncValuesCHROMIUM;
ANGLE_UTIL_EXPORT PFNEGLQUERYDEVICEATTRIBEXTPROC l_eglQueryDeviceAttribEXT;
ANGLE_UTIL_EXPORT PFNEGLQUERYDEVICESTRINGEXTPROC l_eglQueryDeviceStringEXT;
ANGLE_UTIL_EXPORT PFNEGLQUERYDISPLAYATTRIBEXTPROC l_eglQueryDisplayAttribEXT;
ANGLE_UTIL_EXPORT PFNEGLQUERYDMABUFFORMATSEXTPROC l_eglQueryDmaBufFormatsEXT;
ANGLE_UTIL_EXPORT PFNEGLQUERYDMABUFMODIFIERSEXTPROC l_eglQueryDmaBufModifiersEXT;
ANGLE_UTIL_EXPORT PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC l_eglCreatePlatformPixmapSurfaceEXT;
ANGLE_UTIL_EXPORT PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC l_eglCreatePlatformWindowSurfaceEXT;
ANGLE_UTIL_EXPORT PFNEGLGETPLATFORMDISPLAYEXTPROC l_eglGetPlatformDisplayEXT;
@@ -250,6 +252,10 @@ void LoadEGL(LoadProc loadProc)
reinterpret_cast<PFNEGLQUERYDEVICESTRINGEXTPROC>(loadProc("eglQueryDeviceStringEXT"));
l_eglQueryDisplayAttribEXT =
reinterpret_cast<PFNEGLQUERYDISPLAYATTRIBEXTPROC>(loadProc("eglQueryDisplayAttribEXT"));
l_eglQueryDmaBufFormatsEXT =
reinterpret_cast<PFNEGLQUERYDMABUFFORMATSEXTPROC>(loadProc("eglQueryDmaBufFormatsEXT"));
l_eglQueryDmaBufModifiersEXT =
reinterpret_cast<PFNEGLQUERYDMABUFMODIFIERSEXTPROC>(loadProc("eglQueryDmaBufModifiersEXT"));
l_eglCreatePlatformPixmapSurfaceEXT =
reinterpret_cast<PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC>(
loadProc("eglCreatePlatformPixmapSurfaceEXT"));

View File

@@ -92,6 +92,8 @@
#define eglQueryDeviceAttribEXT l_eglQueryDeviceAttribEXT
#define eglQueryDeviceStringEXT l_eglQueryDeviceStringEXT
#define eglQueryDisplayAttribEXT l_eglQueryDisplayAttribEXT
#define eglQueryDmaBufFormatsEXT l_eglQueryDmaBufFormatsEXT
#define eglQueryDmaBufModifiersEXT l_eglQueryDmaBufModifiersEXT
#define eglCreatePlatformPixmapSurfaceEXT l_eglCreatePlatformPixmapSurfaceEXT
#define eglCreatePlatformWindowSurfaceEXT l_eglCreatePlatformWindowSurfaceEXT
#define eglGetPlatformDisplayEXT l_eglGetPlatformDisplayEXT
@@ -202,6 +204,8 @@ ANGLE_UTIL_EXPORT extern PFNEGLGETSYNCVALUESCHROMIUMPROC l_eglGetSyncValuesCHROM
ANGLE_UTIL_EXPORT extern PFNEGLQUERYDEVICEATTRIBEXTPROC l_eglQueryDeviceAttribEXT;
ANGLE_UTIL_EXPORT extern PFNEGLQUERYDEVICESTRINGEXTPROC l_eglQueryDeviceStringEXT;
ANGLE_UTIL_EXPORT extern PFNEGLQUERYDISPLAYATTRIBEXTPROC l_eglQueryDisplayAttribEXT;
ANGLE_UTIL_EXPORT extern PFNEGLQUERYDMABUFFORMATSEXTPROC l_eglQueryDmaBufFormatsEXT;
ANGLE_UTIL_EXPORT extern PFNEGLQUERYDMABUFMODIFIERSEXTPROC l_eglQueryDmaBufModifiersEXT;
ANGLE_UTIL_EXPORT extern PFNEGLCREATEPLATFORMPIXMAPSURFACEEXTPROC
l_eglCreatePlatformPixmapSurfaceEXT;
ANGLE_UTIL_EXPORT extern PFNEGLCREATEPLATFORMWINDOWSURFACEEXTPROC