Hi folks,
Due to some network security reasons, I can not sync the angle source tree completely and I am relying on below code to trigger the Vulkan backend on Windows 11.
I have used
these guidelines (specifically first 2 paras) to try the below code.
After copying libGLESv2.dll , libEGL.dll and vulkan-1.dll from Chromium installation in my project folder, I do
#if defined(MYLIB_WITHANGLE)
HMODULE EGLDll = NULL;
EGLDll = LoadLibrary("libEGL_myangle.dll"); // intentional renaming
if (EGLDll == NULL)
{
printf("ERROR: Fail to load libEGL_myangle.dll!\n");
return false;
}
PFNEGLGETPLATFORMDISPLAYEXTPROC pFn_eglGetPlatformDisplayEXT = (PFNEGLGETPLATFORMDISPLAYEXTPROC)GetProcAddress(EGLDll, "eglGetPlatformDisplayEXT");
const EGLint displayattribs[] = { EGL_PLATFORM_ANGLE_TYPE_ANGLE,EGL_PLATFORM_ANGLE_TYPE_VULKAN_ANGLE,EGL_NONE };
NativeDisplayType nd = nullptr;
EGLDisplay ed = pFn_eglGetPlatformDisplayEXT(EGL_PLATFORM_ANGLE_ANGLE, &nd , displayattribs);
if(ed == EGL_NO_DISPLAY)
{
fprintf(stderr, "EGL: eglGetPlatformDisplayEXT failed\n");
return false;
}
#endif
This code SegVs/memory violation at pFn_eglGetPlatformDisplayEXT call.
Its quite visible in the VS 2019 debugger.
Questions1) Why the memory violation ? Am I missing something obvious ? Is Vulkan backend renderer not supported on Windows ?
2) Is this even possible ? below in order
a] integrate/use some of the EGL + GLES Angle extension headers
b] use angle DLLs, to load EGL + GLES APIs
c] run GLES based app on Angle with Vulkan backend renderer on Windows
3) Or do I need all the libs (object library) + DLLs + exported headers to do something like I mentioned in 2) which is most probably possible via complete angle library building
4) Are the .lib files for angle available in any package installation e.g. chromium, cef ?
Thank you in advance.
Cheers,
Abhishek