Mike Blumenkrantz
6e8b9e143d
mesa: support NV_timeline_semaphore
...
this is for use with vulkan interop and carries the same mechanics
Acked-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/35866 >
2025-07-07 21:18:29 +00:00
Yurii Kolesnykov
9822fa3ef3
Get rid of 5 remaining references to glapitable.h
...
Closes : #13003
Fixes: 0cebfb15 ("glapi: remove duplicated generated header glapitable.h")
Co-authored-by: Marek Olšák <maraeo@gmail.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Signed-off-by: Yurii Kolesnykov <root@yurikoles.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34682 >
2025-04-23 20:18:25 +00:00
Lucas Stach
b60d816d6e
include: update GL headers from the registry
...
Taken from OpenGL-Registry commit ca62982097eb
("Remove plural bindings in GL_ARB_shader_texture_image_samples (#637 )")
Signed-off-by: Lucas Stach <l.stach@pengutronix.de >
Acked-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33356 >
2025-04-01 19:08:38 +00:00
Marek Olšák
47d08dbde7
glx: stop exporting EXT_texture_object functions from libGLX_mesa.so
...
These aliases of the non-EXT functions have a non-aliased indirect GLX
implementation. Remove it since it's not needed.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34002 >
2025-03-27 05:46:35 +00:00
Marek Olšák
574c1a70d6
mesa: move dispatch.h and marshal_generated.h generation to glapi/gen
...
This is where most files are generated. It's a prerequisite for
a future change.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34002 >
2025-03-27 05:46:35 +00:00
Marek Olšák
06a720e1ea
glapi: remove the option to set the nop handler
...
Call the only nop handler that's ever set directly.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34002 >
2025-03-27 05:46:35 +00:00
Marek Olšák
e6da775506
glapi: get the list of public GL functions from libgl-symbols.txt
...
It's used by the symbols check test, so let's feed the same file into
python to define public GL functions because the lists are identical.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34002 >
2025-03-27 05:46:35 +00:00
Marek Olšák
1e0ce9db94
glapi: remove unused _mesa_glapi_Dispatch
...
Only _mesa_glapi_tls_Dispatch is used.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34002 >
2025-03-27 05:46:34 +00:00
Marek Olšák
fae087770a
glapi: simplify codegen macros
...
- include the generated header directly instead of including
MAPI_ABI_HEADER
- remove the MAPI_MODE_BRIDGE macro
- must move code into .c files since we don't have the macros anymore
- clean up #includes
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34002 >
2025-03-27 05:46:34 +00:00
Marek Olšák
16ab7bd5a0
glapi: replace mapi_func type with identical _glapi_proc
...
there's no need to have 2 types for the same thing
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34002 >
2025-03-27 05:46:34 +00:00
Marek Olšák
d134f97e3f
glapi: make a separate copy of entry.c for each lib
...
Using the same .c file in 4 different static/shared libs is difficult to
read. Having them separate will make it possible to simplify the code.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34002 >
2025-03-27 05:46:34 +00:00
Marek Olšák
9e24940bc7
glx: don't generate indirect GLX dispatch for ARB_imaging functions
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34002 >
2025-03-27 05:46:34 +00:00
Jose Fonseca
e3741a5731
glapi: Make _GLAPI_EXPORT a no-op on Windows.
...
DLL import/export annotations unneeded, now that glapi is statically
linked into libgallium_wgl.
However _mesa_glapi_get_proc_address and _mesa_glapi_get_dispatch need
to be explicitly exported for libEGL and libGLESv2.
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12573
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33822 >
2025-03-25 17:11:07 +00:00
Marek Olšák
171ee1797b
glapi: remove extension definitions that will likely never be implemented
...
If somebody needs these in the future, they can add them back, but a lot
of these extensions are very old (SUN, SGI, ...).
No code is added, though git diff is having trouble detecting that.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33794 >
2025-03-06 17:13:23 +00:00
Marek Olšák
0cebfb15b5
glapi: remove duplicated generated header glapitable.h
...
mesa/main/dispatch.h is exactly the same. We generated the same header
twice.
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33794 >
2025-03-06 17:13:23 +00:00
Marek Olšák
db7e49d5ff
glapi: remove static glapi (it's dead code now)
...
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33794 >
2025-03-06 17:13:22 +00:00
Marek Olšák
fefb1a6fb3
meson: remove with_shared_glapi variable (it's always true)
...
Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33794 >
2025-03-06 17:13:22 +00:00
Marek Olšák
1d5d809818
glapi: remove unused python code
...
detected by a program called vulture
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33634 >
2025-03-03 21:06:06 +00:00
Marek Olšák
906dcb56e1
glx: make it more obvious what libglapi_bridge is
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33634 >
2025-03-03 21:06:06 +00:00
Marek Olšák
71bb62e3c9
glx: stop exporting GL functions from libGLX_mesa.so
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33634 >
2025-03-03 21:06:06 +00:00
Marek Olšák
fb16a1121b
glapi: remove is_static_entry_point wrapper
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33634 >
2025-03-03 21:06:06 +00:00
Marek Olšák
20aadf4f64
glapi: use static_data.libgl_public_functions directly
...
also filter_entry_points is unused, so remove that
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33634 >
2025-03-03 21:06:06 +00:00
Marek Olšák
72db4a1e50
glapi: disable python escape sequences in strings that use invalid ones
...
We use invalid escape sequences in a few string.
r'...' disables escape sequences. This fixes validator errors:
/home/marek/dev/mesa/src/mapi/mapi_abi.py:45: SyntaxWarning: invalid escape sequence '\w'
'^(?P<type>[\w\s*]+?)(?P<name>\w+)(\[(?P<array>\d+)\])?$')
/home/marek/dev/mesa/src/mapi/glapi/gen/api_exec_init.py:43: SyntaxWarning: invalid escape sequence '\p'
header = """/**
/home/marek/dev/mesa/src/mapi/glapi/gen/gl_enums.py:64: SyntaxWarning: invalid escape sequence '\c'
print("""
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33634 >
2025-03-03 21:06:06 +00:00
Marek Olšák
1f75715dae
glthread: rename scripts to match the names of generated files
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33634 >
2025-03-03 21:06:06 +00:00
Marek Olšák
9a2974019b
glthread: handle glFlush with HasExternallySharedImages more efficiently
...
Doing finish without flush is more efficient because it executes the unflushed
batch immediately.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33634 >
2025-03-03 21:06:06 +00:00
Marek Olšák
2937d8a961
glapi: just use _gloffset_COUNT_ everywhere, which is always the function count
...
MAPI_TABLE_NUM_STATIC was just duplicated _gloffset_COUNT.
mesa/main no longer needs to specify the table size.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33634 >
2025-03-03 21:06:06 +00:00
Marek Olšák
057c7f0dd2
glapi: verify that aliased functions don't have entries in dispatch tables
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33634 >
2025-03-03 21:06:06 +00:00
Marek Olšák
02d22dd1f3
glapi: move legacy imaging functions to the end of dispatch tables
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33634 >
2025-03-03 21:06:06 +00:00
Marek Olšák
1fde49d50e
glapi: remove unused functions from dispatch tables
...
We also have to remove __indirect_glVertexAttribPointerNV because nothing
uses it after the removal from dispatch tables.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33634 >
2025-03-03 21:06:06 +00:00
Marek Olšák
c0b0ba1b77
glapi: generate static offsets from the list of GL functions automatically
...
Since glapi is part of libgallium.so, the offsets don't have to be immutable
anymore, but they still have to be fixed values within a build because both
gl_XML.py and genCommon.py use them and they should match AFAIK.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33634 >
2025-03-03 21:06:06 +00:00
Marek Olšák
e3f9848a5c
glapi: remove check_table tests
...
glapi is now statically built into libgallium or libGL and both must come
from the same Mesa version, so backward compatibility of dispatch tables
is no longer required.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33634 >
2025-03-03 21:06:06 +00:00
Marek Olšák
a8b18dce82
glapi: clarify the meaning of static_data.functions
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33634 >
2025-03-03 21:06:06 +00:00
Marek Olšák
6c39cc1cc3
glapi: use an assertion in SET_by_offset instead of doing nothing
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33634 >
2025-03-03 21:06:06 +00:00
Marek Olšák
49facd7d54
glapi: remove support for dynamically-registered functions
...
I think this was for when libglapi was older than DRI drivers and didn't
know all functions.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33634 >
2025-03-03 21:06:06 +00:00
Marek Olšák
3fc52ac0e0
glapi: fix build dependencies by putting all xml/py files into a single list
...
This fixes missing script dependencies that didn't trigger rebuilds when
those files were changed. To keep it simple stupid, all xml and python
files used by python scripts indirectly are now in a single global list.
All variables holding file names are also inlined, so that we use file
paths everywhere.
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33634 >
2025-03-03 21:06:06 +00:00
Marek Olšák
e4830d6e44
glapi: don't export always-private functions
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33634 >
2025-03-03 21:06:05 +00:00
Marek Olšák
142202cd00
glapi: remove dead code
...
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33634 >
2025-03-03 21:06:05 +00:00
Erik Faye-Lund
fde6aeb886
mesa/main: wire up glapi bits for EXT_multi_draw_indirect
...
Turns out we were missing the glapi bits, making it impossible to use get
the function pointers for this extension. Whoops?!
[daniels: Squashed in a618 SkQP fails, presumably caused by these not
being skipped anymore.]
Fixes: 9f5af68995 ("mesa/main: expose `EXT_multi_draw_indirect`")
Reviewed-by: Antonino Maniscalco <antomani103@gmail.com >
Tested-by: Chris Healy <healych@amazon.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33546 >
2025-02-21 09:22:03 +00:00
Adam Jackson
244c9cc45e
mapi/glx: Remove FASTCALL/PURE
...
This isn't worth the complexity.
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Eric Engestrom <eric@igalia.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33623 >
2025-02-20 15:47:23 +00:00
Adam Jackson
32a10ccbdd
glx: Remove (almost) all usage of _X_HIDDEN / _X_INTERNAL
...
It's redundant at this point. The one exception is for GLX_PUBLIC when
building for glvnd, because then we really do want the GLX API to be
hidden.
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33623 >
2025-02-20 15:47:23 +00:00
Adam Jackson
43fb26f8ea
mapi/glx: Remove xserver code generation
...
This hasn't been hooked up to the build since we deleted autotools back
in 2019. It's effectively dead code anyway, as GLX is not a moving
target, and at this point is it easier to modify the generated code
directly than to modify the generator. xserver is encouraged to copy
the generators from 2019 into its own build if it wants, or -
preferably, in this GLX greybeard's opinion - find a prettier codegen
solution in the process of finishing GL 3.0 support.
Reviewed-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Eric Engestrom <eric@igalia.com >
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33623 >
2025-02-20 15:47:23 +00:00
James Hogan
be106bd6c6
mesa: Handle getting GL_MAX_VIEWS_OVR
...
Add support for GL_OVR_multiview's GL_MAX_VIEWS_OVR which can be
accessed with glGetIntegerv().
MaxViews is accessed via the hash table set up by get_hash_params.py as
a constant (MAX_VIEWS_OVR) using GL_MAX_VIEWS_OVR.
v2: Add this patch (thanks to Mike's guidance)
v3: Drop unnecessary enum size element in OVR_multiview.XML
v4: Switch to CONST(MAX_VIEWS_OVR) instead of gl_constants::MaxViews
(Marek's suggestion)
Fixes: 328c29d600 ("mesa,glsl,gallium: add GL_OVR_multiview")
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Signed-off-by: James Hogan <james@albanarts.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32992 >
2025-02-19 19:12:33 +00:00
Matt Turner
da6971f865
mapi: Fix typos
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33556 >
2025-02-15 17:43:44 +00:00
Saroj Kumar
57d47f717a
mesa: Add GL_EXT_protected_textures support
...
Add support for GL_EXT_protected_textures to create protected
texture in OpenGL ES 3.2. This enables allocating standard
GL textures as protected surfaces. This allows use-cases such
as depth, stencil, or mipmapped textures to be supported as
destinations for rendering within a protected context.
Signed-off-by: Saroj Kumar <saroj.kumar@amd.com >
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33358 >
2025-02-11 08:14:03 +00:00
Dudemanguy
1aa21c27d4
treewide: remove unneeded executable bit in non-scripting files
...
Noticed one by chance and searched for any others with find that were
clearly not meant to be executable.
For the curious:
33aa039acf changed texstore.c to
executable.
ed176e2c71 introduced si_vpc.c and
si_vpc.h which have always been executable.
d0e5203855 changed lava-gitlab-ci.yml to
executable.
328c29d600 introduced OVR_multiview.xml as
executable.
ac912b3754 introduced
OVR_multiview_multisampled_render_to_texture.xml as exectuable.
Signed-off-by: Dudemanguy <random342@airmail.cc >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/33436 >
2025-02-06 16:51:15 -06:00
Marek Olšák
e7214b9446
glapi: rename exported symbols so as not to conflict with old libglapi
...
libwaffle 1.7.0 has a hack that dlopen's libglapi with RTLD_GLOBAL, which
was meant to preload libglapi, but with this MR it overwrites libgallium's
own symbols, which breaks libgallium.
Reviewed-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com >
Reviewed-by: Eric Engestrom <None>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32789 >
2025-01-23 00:49:05 +00:00
Marek Olšák
464dde302c
glapi: remove the remap table
...
it's unused now
Reviewed-by: Adam Jackson <ajax@redhat.com >
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Reviewed-by: Eric Engestrom <None>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32789 >
2025-01-23 00:49:05 +00:00
Marek Olšák
b22f682a31
glapi: stop using the remap table
...
The remap table adds an array lookup into 75% of CALL_* macros, which are
used to call GL functions through the dispatch table. Removing the array
lookup reduces overhead of dispatch table calls.
Since libglapi is now required to be from the same build as libgallium,
the remap table is no longer needed.
This change doesn't remove the remapping table. It only disables it.
Compare asm:
Before:
0000000000000000 <_mesa_unmarshal_Uniform1f>:
0: f3 0f 1e fa endbr64
4: 48 83 ec 08 sub $0x8,%rsp
8: 48 8b 05 00 00 00 00 mov 0x0(%rip),%rax # f <_mesa_unmarshal_Uniform1f+0xf>
f: 8b 4e 04 mov 0x4(%rsi),%ecx
12: 31 d2 xor %edx,%edx
14: f3 0f 10 46 08 movss 0x8(%rsi),%xmm0
19: 48 63 80 a8 01 00 00 movslq 0x1a8(%rax),%rax
20: 85 c0 test %eax,%eax
22: 78 08 js 2c <_mesa_unmarshal_Uniform1f+0x2c>
24: 48 8b 57 40 mov 0x40(%rdi),%rdx
28: 48 8b 14 c2 mov (%rdx,%rax,8),%rdx
2c: 89 cf mov %ecx,%edi
2e: ff d2 call *%rdx
30: b8 02 00 00 00 mov $0x2,%eax
35: 48 83 c4 08 add $0x8,%rsp
39: c3 ret
After:
0000000000000000 <_mesa_unmarshal_Uniform1f>:
0: f3 0f 1e fa endbr64
4: 48 89 f8 mov %rdi,%rax
7: 48 83 ec 08 sub $0x8,%rsp
b: f3 0f 10 46 08 movss 0x8(%rsi),%xmm0
10: 8b 7e 04 mov 0x4(%rsi),%edi
13: 48 8b 40 40 mov 0x40(%rax),%rax
17: ff 90 10 10 00 00 call *0x1010(%rax)
1d: b8 02 00 00 00 mov $0x2,%eax
22: 48 83 c4 08 add $0x8,%rsp
26: c3 ret
Reviewed-by: Adam Jackson <ajax@redhat.com >
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com >
Reviewed-by: Eric Engestrom <None>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/32789 >
2025-01-23 00:49:05 +00:00
Georg Lehmann
894c4f0c78
meson: remove selinux option
...
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com >
Reviewed-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31656 >
2024-10-21 01:14:35 +00:00
Mike Blumenkrantz
ac912b3754
mesa: OVR_multiview_multisampled_render_to_texture
...
this is automatically supported for anyone that supports OVR_multiview
and EXT_multisampled_render_to_texture
Acked-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31235 >
2024-09-20 18:54:26 +00:00