 
            From: Jacek Caban jacek@codeweavers.com
--- dlls/opengl32/make_opengl | 14 +++++++++++++- dlls/opengl32/unix_thunks.c | 8 ++++---- 2 files changed, 17 insertions(+), 5 deletions(-)
diff --git a/dlls/opengl32/make_opengl b/dlls/opengl32/make_opengl index 85e49dc03d2..e939b24feba 100755 --- a/dlls/opengl32/make_opengl +++ b/dlls/opengl32/make_opengl @@ -897,6 +897,12 @@ my %supported_egl_extensions = "EGL_KHR_platform_x11" => 1, "EGL_MESA_platform_surfaceless" => 1, ); +my %extension_aliases = + ( + "GL_ARB_buffer_storage" => "GL_EXT_buffer_storage", + "GL_EXT_blend_equation_separate" => "GL_ATI_blend_equation_separate", + "GL_EXT_multi_draw_arrays" => "GL_SUN_multi_draw_arrays", + );
my %supported_apis = ( @@ -1611,7 +1617,13 @@ foreach (sort keys %ext_functions) { next if $_ =~ /^egl/; # unix-side only API my $func = $ext_functions{$_}; - printf OUT " { "%s", "%s", offsetof(struct opengl_funcs, p_$_) },\n", $_, join(" ", sort @{$func->[2]}); + my @exts; + foreach my $ext (@{$func->[2]}) + { + push @exts, $ext; + push @exts, $extension_aliases{$ext} if defined $extension_aliases{$ext}; + } + printf OUT " { "%s", "%s", offsetof(struct opengl_funcs, p_$_) },\n", $_, join(" ", sort @exts); } print OUT "};\n";
diff --git a/dlls/opengl32/unix_thunks.c b/dlls/opengl32/unix_thunks.c index 986f3fec1b9..a4ed44123c9 100644 --- a/dlls/opengl32/unix_thunks.c +++ b/dlls/opengl32/unix_thunks.c @@ -98236,7 +98236,7 @@ const struct registry_entry extension_registry[2715] = { "glBlendEquationEXT", "GL_EXT_blend_minmax", offsetof(struct opengl_funcs, p_glBlendEquationEXT) }, { "glBlendEquationIndexedAMD", "GL_AMD_draw_buffers_blend", offsetof(struct opengl_funcs, p_glBlendEquationIndexedAMD) }, { "glBlendEquationSeparate", "GL_VERSION_2_0", offsetof(struct opengl_funcs, p_glBlendEquationSeparate) }, - { "glBlendEquationSeparateEXT", "GL_EXT_blend_equation_separate", offsetof(struct opengl_funcs, p_glBlendEquationSeparateEXT) }, + { "glBlendEquationSeparateEXT", "GL_ATI_blend_equation_separate GL_EXT_blend_equation_separate", offsetof(struct opengl_funcs, p_glBlendEquationSeparateEXT) }, { "glBlendEquationSeparateIndexedAMD", "GL_AMD_draw_buffers_blend", offsetof(struct opengl_funcs, p_glBlendEquationSeparateIndexedAMD) }, { "glBlendEquationSeparatei", "GL_VERSION_4_0", offsetof(struct opengl_funcs, p_glBlendEquationSeparatei) }, { "glBlendEquationSeparateiARB", "GL_ARB_draw_buffers_blend", offsetof(struct opengl_funcs, p_glBlendEquationSeparateiARB) }, @@ -98265,7 +98265,7 @@ const struct registry_entry extension_registry[2715] = { "glBufferPageCommitmentMemNV", "GL_NV_memory_object_sparse", offsetof(struct opengl_funcs, p_glBufferPageCommitmentMemNV) }, { "glBufferParameteriAPPLE", "GL_APPLE_flush_buffer_range", offsetof(struct opengl_funcs, p_glBufferParameteriAPPLE) }, { "glBufferRegionEnabled", "GL_KTX_buffer_region", offsetof(struct opengl_funcs, p_glBufferRegionEnabled) }, - { "glBufferStorage", "GL_ARB_buffer_storage GL_VERSION_4_4", offsetof(struct opengl_funcs, p_glBufferStorage) }, + { "glBufferStorage", "GL_ARB_buffer_storage GL_EXT_buffer_storage GL_VERSION_4_4", offsetof(struct opengl_funcs, p_glBufferStorage) }, { "glBufferStorageExternalEXT", "GL_EXT_external_buffer", offsetof(struct opengl_funcs, p_glBufferStorageExternalEXT) }, { "glBufferStorageMemEXT", "GL_EXT_memory_object", offsetof(struct opengl_funcs, p_glBufferStorageMemEXT) }, { "glBufferSubData", "GL_VERSION_1_5", offsetof(struct opengl_funcs, p_glBufferSubData) }, @@ -99360,7 +99360,7 @@ const struct registry_entry extension_registry[2715] = { "glMultTransposeMatrixfARB", "GL_ARB_transpose_matrix", offsetof(struct opengl_funcs, p_glMultTransposeMatrixfARB) }, { "glMultTransposeMatrixxOES", "GL_OES_fixed_point", offsetof(struct opengl_funcs, p_glMultTransposeMatrixxOES) }, { "glMultiDrawArrays", "GL_VERSION_1_4", offsetof(struct opengl_funcs, p_glMultiDrawArrays) }, - { "glMultiDrawArraysEXT", "GL_EXT_multi_draw_arrays", offsetof(struct opengl_funcs, p_glMultiDrawArraysEXT) }, + { "glMultiDrawArraysEXT", "GL_EXT_multi_draw_arrays GL_SUN_multi_draw_arrays", offsetof(struct opengl_funcs, p_glMultiDrawArraysEXT) }, { "glMultiDrawArraysIndirect", "GL_ARB_multi_draw_indirect GL_VERSION_4_3", offsetof(struct opengl_funcs, p_glMultiDrawArraysIndirect) }, { "glMultiDrawArraysIndirectAMD", "GL_AMD_multi_draw_indirect", offsetof(struct opengl_funcs, p_glMultiDrawArraysIndirectAMD) }, { "glMultiDrawArraysIndirectBindlessCountNV", "GL_NV_bindless_multi_draw_indirect_count", offsetof(struct opengl_funcs, p_glMultiDrawArraysIndirectBindlessCountNV) }, @@ -99370,7 +99370,7 @@ const struct registry_entry extension_registry[2715] = { "glMultiDrawElementArrayAPPLE", "GL_APPLE_element_array", offsetof(struct opengl_funcs, p_glMultiDrawElementArrayAPPLE) }, { "glMultiDrawElements", "GL_VERSION_1_4", offsetof(struct opengl_funcs, p_glMultiDrawElements) }, { "glMultiDrawElementsBaseVertex", "GL_ARB_draw_elements_base_vertex GL_VERSION_3_2", offsetof(struct opengl_funcs, p_glMultiDrawElementsBaseVertex) }, - { "glMultiDrawElementsEXT", "GL_EXT_multi_draw_arrays", offsetof(struct opengl_funcs, p_glMultiDrawElementsEXT) }, + { "glMultiDrawElementsEXT", "GL_EXT_multi_draw_arrays GL_SUN_multi_draw_arrays", offsetof(struct opengl_funcs, p_glMultiDrawElementsEXT) }, { "glMultiDrawElementsIndirect", "GL_ARB_multi_draw_indirect GL_VERSION_4_3", offsetof(struct opengl_funcs, p_glMultiDrawElementsIndirect) }, { "glMultiDrawElementsIndirectAMD", "GL_AMD_multi_draw_indirect", offsetof(struct opengl_funcs, p_glMultiDrawElementsIndirectAMD) }, { "glMultiDrawElementsIndirectBindlessCountNV", "GL_NV_bindless_multi_draw_indirect_count", offsetof(struct opengl_funcs, p_glMultiDrawElementsIndirectBindlessCountNV) },
 
            Rémi Bernon (@rbernon) commented about dlls/opengl32/make_opengl:
"EGL_KHR_platform_x11" => 1, "EGL_MESA_platform_surfaceless" => 1, );+my %extension_aliases =
- (
"GL_ARB_buffer_storage" => "GL_EXT_buffer_storage",
"GL_EXT_blend_equation_separate" => "GL_ATI_blend_equation_separate",
"GL_EXT_multi_draw_arrays" => "GL_SUN_multi_draw_arrays",
* GL_EXT_buffer_storage is a GL ES 3.1 extension, and it defines the glBufferStorageEXT function, not glBufferStorage (and unlike GL_ARB_buffer_storage, it doesn't define glNamedBufferStorageEXT).
* According to https://registry.khronos.org/OpenGL/extensions/EXT/EXT_blend_equation_separa... "Issues", ATI_blend_equation_separate is also a different extensions that doesn't have a specification but defines slightly different tokens. I don't think it should be aliased either.
* Then GL_EXT_multi_draw_arrays is probably okay, as both names are indeed listed in https://registry.khronos.org/OpenGL/extensions/EXT/EXT_multi_draw_arrays.txt


