Commit 5c6a6cb6 by Geoff Lang Committed by Commit Bot

GL: Load external object extension entry points.

BUG=angleproject:3656 Change-Id: I360d5a0eda820a4138e5400614332ae919216db6 Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1688506Reviewed-by: 's avatarShahbaz Youssefi <syoussefi@chromium.org> Reviewed-by: 's avatarClemen Deng <clemendeng@google.com> Commit-Queue: Geoff Lang <geofflang@chromium.org>
parent b75b97a2
...@@ -4,15 +4,15 @@ ...@@ -4,15 +4,15 @@
"src/libANGLE/renderer/angle_format.py": "src/libANGLE/renderer/angle_format.py":
"7ed0a2469779c02567c98e0f2e476843", "7ed0a2469779c02567c98e0f2e476843",
"src/libANGLE/renderer/gl/DispatchTableGL_autogen.cpp": "src/libANGLE/renderer/gl/DispatchTableGL_autogen.cpp":
"96d06b3acf7826aee1ec813a8fa3a867", "7ebaa7f7525a0fe13f163ec076a8eace",
"src/libANGLE/renderer/gl/DispatchTableGL_autogen.h": "src/libANGLE/renderer/gl/DispatchTableGL_autogen.h":
"ea5eded625b5db7d7b2b7f689c72f14b", "27af4da77c5cc60708fd2aabedc983f7",
"src/libANGLE/renderer/gl/generate_gl_dispatch_table.py": "src/libANGLE/renderer/gl/generate_gl_dispatch_table.py":
"f21314d401e650b4182c4b7d66ac5c9c", "f21314d401e650b4182c4b7d66ac5c9c",
"src/libANGLE/renderer/gl/gl_bindings_data.json": "src/libANGLE/renderer/gl/gl_bindings_data.json":
"1afca09d29ed7788c76cbc9bcfb4de0a", "e870a4d86dc69e52dcab9afd78a47c9b",
"src/libANGLE/renderer/gl/null_functions.cpp": "src/libANGLE/renderer/gl/null_functions.cpp":
"5470d6b1d7057d797e15b986a31e196e", "80406da03a9500023f196a70144f1059",
"src/libANGLE/renderer/gl/null_functions.h": "src/libANGLE/renderer/gl/null_functions.h":
"7906751710cab691f9e7365e59b7beed" "773950879f646085f78b89fe6a2daf5d"
} }
\ No newline at end of file
...@@ -2649,12 +2649,68 @@ void DispatchTableGL::initProcsSharedExtensions(const std::set<std::string> &ext ...@@ -2649,12 +2649,68 @@ void DispatchTableGL::initProcsSharedExtensions(const std::set<std::string> &ext
ASSIGN("glDrawElementsInstancedEXT", drawElementsInstanced); ASSIGN("glDrawElementsInstancedEXT", drawElementsInstanced);
} }
if (extensions.count("GL_EXT_memory_object") != 0)
{
ASSIGN("glBufferStorageMemEXT", bufferStorageMemEXT);
ASSIGN("glCreateMemoryObjectsEXT", createMemoryObjectsEXT);
ASSIGN("glDeleteMemoryObjectsEXT", deleteMemoryObjectsEXT);
ASSIGN("glGetMemoryObjectParameterivEXT", getMemoryObjectParameterivEXT);
ASSIGN("glGetUnsignedBytei_vEXT", getUnsignedBytei_vEXT);
ASSIGN("glGetUnsignedBytevEXT", getUnsignedBytevEXT);
ASSIGN("glIsMemoryObjectEXT", isMemoryObjectEXT);
ASSIGN("glMemoryObjectParameterivEXT", memoryObjectParameterivEXT);
ASSIGN("glNamedBufferStorageMemEXT", namedBufferStorageMemEXT);
ASSIGN("glTexStorageMem2DEXT", texStorageMem2DEXT);
ASSIGN("glTexStorageMem2DMultisampleEXT", texStorageMem2DMultisampleEXT);
ASSIGN("glTexStorageMem3DEXT", texStorageMem3DEXT);
ASSIGN("glTexStorageMem3DMultisampleEXT", texStorageMem3DMultisampleEXT);
ASSIGN("glTextureStorageMem2DEXT", textureStorageMem2DEXT);
ASSIGN("glTextureStorageMem2DMultisampleEXT", textureStorageMem2DMultisampleEXT);
ASSIGN("glTextureStorageMem3DEXT", textureStorageMem3DEXT);
ASSIGN("glTextureStorageMem3DMultisampleEXT", textureStorageMem3DMultisampleEXT);
}
if (extensions.count("GL_EXT_memory_object_fd") != 0)
{
ASSIGN("glImportMemoryFdEXT", importMemoryFdEXT);
}
if (extensions.count("GL_EXT_memory_object_win32") != 0)
{
ASSIGN("glImportMemoryWin32HandleEXT", importMemoryWin32HandleEXT);
ASSIGN("glImportMemoryWin32NameEXT", importMemoryWin32NameEXT);
}
if (extensions.count("GL_EXT_multi_draw_arrays") != 0) if (extensions.count("GL_EXT_multi_draw_arrays") != 0)
{ {
ASSIGN("glMultiDrawArraysEXT", multiDrawArrays); ASSIGN("glMultiDrawArraysEXT", multiDrawArrays);
ASSIGN("glMultiDrawElementsEXT", multiDrawElements); ASSIGN("glMultiDrawElementsEXT", multiDrawElements);
} }
if (extensions.count("GL_EXT_semaphore") != 0)
{
ASSIGN("glDeleteSemaphoresEXT", deleteSemaphoresEXT);
ASSIGN("glGenSemaphoresEXT", genSemaphoresEXT);
ASSIGN("glGetSemaphoreParameterui64vEXT", getSemaphoreParameterui64vEXT);
ASSIGN("glGetUnsignedBytei_vEXT", getUnsignedBytei_vEXT);
ASSIGN("glGetUnsignedBytevEXT", getUnsignedBytevEXT);
ASSIGN("glIsSemaphoreEXT", isSemaphoreEXT);
ASSIGN("glSemaphoreParameterui64vEXT", semaphoreParameterui64vEXT);
ASSIGN("glSignalSemaphoreEXT", signalSemaphoreEXT);
ASSIGN("glWaitSemaphoreEXT", waitSemaphoreEXT);
}
if (extensions.count("GL_EXT_semaphore_fd") != 0)
{
ASSIGN("glImportSemaphoreFdEXT", importSemaphoreFdEXT);
}
if (extensions.count("GL_EXT_semaphore_win32") != 0)
{
ASSIGN("glImportSemaphoreWin32HandleEXT", importSemaphoreWin32HandleEXT);
ASSIGN("glImportSemaphoreWin32NameEXT", importSemaphoreWin32NameEXT);
}
if (extensions.count("GL_EXT_separate_shader_objects") != 0) if (extensions.count("GL_EXT_separate_shader_objects") != 0)
{ {
ASSIGN("glActiveShaderProgramEXT", activeShaderProgram); ASSIGN("glActiveShaderProgramEXT", activeShaderProgram);
...@@ -5384,12 +5440,68 @@ void DispatchTableGL::initProcsSharedExtensionsNULL(const std::set<std::string> ...@@ -5384,12 +5440,68 @@ void DispatchTableGL::initProcsSharedExtensionsNULL(const std::set<std::string>
drawElementsInstanced = &glDrawElementsInstancedNULL; drawElementsInstanced = &glDrawElementsInstancedNULL;
} }
if (extensions.count("GL_EXT_memory_object") != 0)
{
bufferStorageMemEXT = &glBufferStorageMemEXTNULL;
createMemoryObjectsEXT = &glCreateMemoryObjectsEXTNULL;
deleteMemoryObjectsEXT = &glDeleteMemoryObjectsEXTNULL;
getMemoryObjectParameterivEXT = &glGetMemoryObjectParameterivEXTNULL;
getUnsignedBytei_vEXT = &glGetUnsignedBytei_vEXTNULL;
getUnsignedBytevEXT = &glGetUnsignedBytevEXTNULL;
isMemoryObjectEXT = &glIsMemoryObjectEXTNULL;
memoryObjectParameterivEXT = &glMemoryObjectParameterivEXTNULL;
namedBufferStorageMemEXT = &glNamedBufferStorageMemEXTNULL;
texStorageMem2DEXT = &glTexStorageMem2DEXTNULL;
texStorageMem2DMultisampleEXT = &glTexStorageMem2DMultisampleEXTNULL;
texStorageMem3DEXT = &glTexStorageMem3DEXTNULL;
texStorageMem3DMultisampleEXT = &glTexStorageMem3DMultisampleEXTNULL;
textureStorageMem2DEXT = &glTextureStorageMem2DEXTNULL;
textureStorageMem2DMultisampleEXT = &glTextureStorageMem2DMultisampleEXTNULL;
textureStorageMem3DEXT = &glTextureStorageMem3DEXTNULL;
textureStorageMem3DMultisampleEXT = &glTextureStorageMem3DMultisampleEXTNULL;
}
if (extensions.count("GL_EXT_memory_object_fd") != 0)
{
importMemoryFdEXT = &glImportMemoryFdEXTNULL;
}
if (extensions.count("GL_EXT_memory_object_win32") != 0)
{
importMemoryWin32HandleEXT = &glImportMemoryWin32HandleEXTNULL;
importMemoryWin32NameEXT = &glImportMemoryWin32NameEXTNULL;
}
if (extensions.count("GL_EXT_multi_draw_arrays") != 0) if (extensions.count("GL_EXT_multi_draw_arrays") != 0)
{ {
multiDrawArrays = &glMultiDrawArraysNULL; multiDrawArrays = &glMultiDrawArraysNULL;
multiDrawElements = &glMultiDrawElementsNULL; multiDrawElements = &glMultiDrawElementsNULL;
} }
if (extensions.count("GL_EXT_semaphore") != 0)
{
deleteSemaphoresEXT = &glDeleteSemaphoresEXTNULL;
genSemaphoresEXT = &glGenSemaphoresEXTNULL;
getSemaphoreParameterui64vEXT = &glGetSemaphoreParameterui64vEXTNULL;
getUnsignedBytei_vEXT = &glGetUnsignedBytei_vEXTNULL;
getUnsignedBytevEXT = &glGetUnsignedBytevEXTNULL;
isSemaphoreEXT = &glIsSemaphoreEXTNULL;
semaphoreParameterui64vEXT = &glSemaphoreParameterui64vEXTNULL;
signalSemaphoreEXT = &glSignalSemaphoreEXTNULL;
waitSemaphoreEXT = &glWaitSemaphoreEXTNULL;
}
if (extensions.count("GL_EXT_semaphore_fd") != 0)
{
importSemaphoreFdEXT = &glImportSemaphoreFdEXTNULL;
}
if (extensions.count("GL_EXT_semaphore_win32") != 0)
{
importSemaphoreWin32HandleEXT = &glImportSemaphoreWin32HandleEXTNULL;
importSemaphoreWin32NameEXT = &glImportSemaphoreWin32NameEXTNULL;
}
if (extensions.count("GL_EXT_separate_shader_objects") != 0) if (extensions.count("GL_EXT_separate_shader_objects") != 0)
{ {
activeShaderProgram = &glActiveShaderProgramNULL; activeShaderProgram = &glActiveShaderProgramNULL;
......
...@@ -741,6 +741,48 @@ class DispatchTableGL : angle::NonCopyable ...@@ -741,6 +741,48 @@ class DispatchTableGL : angle::NonCopyable
// GL_EXT_discard_framebuffer // GL_EXT_discard_framebuffer
PFNGLDISCARDFRAMEBUFFEREXTPROC discardFramebufferEXT = nullptr; PFNGLDISCARDFRAMEBUFFEREXTPROC discardFramebufferEXT = nullptr;
// GL_EXT_memory_object
PFNGLBUFFERSTORAGEMEMEXTPROC bufferStorageMemEXT = nullptr;
PFNGLCREATEMEMORYOBJECTSEXTPROC createMemoryObjectsEXT = nullptr;
PFNGLDELETEMEMORYOBJECTSEXTPROC deleteMemoryObjectsEXT = nullptr;
PFNGLGETMEMORYOBJECTPARAMETERIVEXTPROC getMemoryObjectParameterivEXT = nullptr;
PFNGLGETUNSIGNEDBYTEI_VEXTPROC getUnsignedBytei_vEXT = nullptr;
PFNGLGETUNSIGNEDBYTEVEXTPROC getUnsignedBytevEXT = nullptr;
PFNGLISMEMORYOBJECTEXTPROC isMemoryObjectEXT = nullptr;
PFNGLMEMORYOBJECTPARAMETERIVEXTPROC memoryObjectParameterivEXT = nullptr;
PFNGLNAMEDBUFFERSTORAGEMEMEXTPROC namedBufferStorageMemEXT = nullptr;
PFNGLTEXSTORAGEMEM2DEXTPROC texStorageMem2DEXT = nullptr;
PFNGLTEXSTORAGEMEM2DMULTISAMPLEEXTPROC texStorageMem2DMultisampleEXT = nullptr;
PFNGLTEXSTORAGEMEM3DEXTPROC texStorageMem3DEXT = nullptr;
PFNGLTEXSTORAGEMEM3DMULTISAMPLEEXTPROC texStorageMem3DMultisampleEXT = nullptr;
PFNGLTEXTURESTORAGEMEM2DEXTPROC textureStorageMem2DEXT = nullptr;
PFNGLTEXTURESTORAGEMEM2DMULTISAMPLEEXTPROC textureStorageMem2DMultisampleEXT = nullptr;
PFNGLTEXTURESTORAGEMEM3DEXTPROC textureStorageMem3DEXT = nullptr;
PFNGLTEXTURESTORAGEMEM3DMULTISAMPLEEXTPROC textureStorageMem3DMultisampleEXT = nullptr;
// GL_EXT_memory_object_fd
PFNGLIMPORTMEMORYFDEXTPROC importMemoryFdEXT = nullptr;
// GL_EXT_memory_object_win32
PFNGLIMPORTMEMORYWIN32HANDLEEXTPROC importMemoryWin32HandleEXT = nullptr;
PFNGLIMPORTMEMORYWIN32NAMEEXTPROC importMemoryWin32NameEXT = nullptr;
// GL_EXT_semaphore
PFNGLDELETESEMAPHORESEXTPROC deleteSemaphoresEXT = nullptr;
PFNGLGENSEMAPHORESEXTPROC genSemaphoresEXT = nullptr;
PFNGLGETSEMAPHOREPARAMETERUI64VEXTPROC getSemaphoreParameterui64vEXT = nullptr;
PFNGLISSEMAPHOREEXTPROC isSemaphoreEXT = nullptr;
PFNGLSEMAPHOREPARAMETERUI64VEXTPROC semaphoreParameterui64vEXT = nullptr;
PFNGLSIGNALSEMAPHOREEXTPROC signalSemaphoreEXT = nullptr;
PFNGLWAITSEMAPHOREEXTPROC waitSemaphoreEXT = nullptr;
// GL_EXT_semaphore_fd
PFNGLIMPORTSEMAPHOREFDEXTPROC importSemaphoreFdEXT = nullptr;
// GL_EXT_semaphore_win32
PFNGLIMPORTSEMAPHOREWIN32HANDLEEXTPROC importSemaphoreWin32HandleEXT = nullptr;
PFNGLIMPORTSEMAPHOREWIN32NAMEEXTPROC importSemaphoreWin32NameEXT = nullptr;
// GL_KHR_parallel_shader_compile // GL_KHR_parallel_shader_compile
PFNGLMAXSHADERCOMPILERTHREADSKHRPROC maxShaderCompilerThreadsKHR = nullptr; PFNGLMAXSHADERCOMPILERTHREADSKHRPROC maxShaderCompilerThreadsKHR = nullptr;
......
...@@ -805,5 +805,59 @@ ...@@ -805,5 +805,59 @@
"GL_OVR_multiview2": "GL_OVR_multiview2":
[ [
"FramebufferTextureMultiviewOVR" "FramebufferTextureMultiviewOVR"
] ],
"GL_EXT_memory_object":
[
"GetUnsignedBytevEXT",
"GetUnsignedBytei_vEXT",
"DeleteMemoryObjectsEXT",
"IsMemoryObjectEXT",
"CreateMemoryObjectsEXT",
"MemoryObjectParameterivEXT",
"GetMemoryObjectParameterivEXT",
"TexStorageMem2DEXT",
"TexStorageMem2DMultisampleEXT",
"TexStorageMem3DEXT",
"TexStorageMem3DMultisampleEXT",
"BufferStorageMemEXT",
"TextureStorageMem2DEXT",
"TextureStorageMem2DMultisampleEXT",
"TextureStorageMem3DEXT",
"TextureStorageMem3DMultisampleEXT",
"NamedBufferStorageMemEXT"
],
"GL_EXT_semaphore":
[
"GenSemaphoresEXT",
"DeleteSemaphoresEXT",
"IsSemaphoreEXT",
"SemaphoreParameterui64vEXT",
"GetSemaphoreParameterui64vEXT",
"WaitSemaphoreEXT",
"SignalSemaphoreEXT"
],
"GL_EXT_memory_object_fd":
[
"ImportMemoryFdEXT"
],
"GL_EXT_semaphore_fd":
[
"ImportSemaphoreFdEXT"
],
"GL_EXT_memory_object_win32":
[
"ImportMemoryWin32HandleEXT",
"ImportMemoryWin32NameEXT"
],
"GL_EXT_semaphore_win32":
[
"ImportSemaphoreWin32HandleEXT",
"ImportSemaphoreWin32NameEXT"
]
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment