Jose Maria Casanova Crespo
efc87e0d6a
glapi: import noop_array and public stubs earlier.
...
After 711fc10ea3 "glapi: merge all shared-glapi source files
into one .c file" the V3D simulator started crashing. After
testing the changes of the merge one by one, it was identified
that previously shared_glapi_mapi_tmp.h was being imported twice
instead of only once as it happens after the merge. Although
the change done in the merge seems to be equivalent it seems
it was breaking the the debug builds.
Here can find an explanation why this problem was affecting debug
builds https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34363#note_2850196
Fixes: 711fc10ea3 ("glapi: merge all shared-glapi source files into one .c file")
Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/12908
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34363 >
2025-04-04 00:18:28 +00:00
Marek Olšák
b74a6e05bd
glapi: fix x86 32-bit asm dispatch regression
...
shared_glapi_mapi_tmp.h must be included before asm("x86_entry_end:").
Fixes: fae087770a - glapi: simplify codegen macros
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/34269 >
2025-03-29 22:36:21 +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
a91c541c5b
glapi: remove noop_generic callbacks
...
There are named and generic noop callbacks. The named ones can print
the GL function being called, while the generic ones can't. Remove
the generic ones.
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
711fc10ea3
glapi: merge all shared-glapi source files into one .c file
...
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
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
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
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
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
c13a3de924
glapi: inline functions or use equivalent alternatives
...
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
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
44bda7c258
dri: put shared-glapi into libgallium.*.so
...
so that we don't have to maintain a stable ABI for it.
This will allow removal of the remapping table to reduce CALL_* overhead
for GL dispatch tables.
Also we can now clean it up.
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
David Heidelberg
68215332a8
build: pass licensing information in SPDX form
...
Acked-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Acked-by: Dylan Baker <dylan.c.baker@intel.com >
Acked-by: Eric Engestrom <eric@igalia.com >
Acked-by: Daniel Stone <daniels@collabora.com >
Signed-off-by: David Heidelberg <david@ixit.cz >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/29972 >
2024-06-29 12:42:49 -07:00
Emma Anholt
1dd1147408
mapi: Delete execmem support code.
...
No longer used now that we don't dynamically generate dispatch stubs.
Acked-by: Marek Olšák <marek.olsak@amd.com >
Acked-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23451 >
2023-06-12 21:37:37 +00:00
Emma Anholt
a4b2825228
mesa: Drop the aliases from the remap table.
...
Mesa core doesn't need to have mapi sanity check that our aliases all map
to the same offset. That's a build-time decision.
Acked-by: Marek Olšák <marek.olsak@amd.com >
Acked-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23451 >
2023-06-12 21:37:37 +00:00
Emma Anholt
e0213a6953
mapi: Clean up mapi_stub struct.
...
We no longer use the address field, and the name is always a size_t offset
in the string pool (never a dynamic strduped name).
Acked-by: Marek Olšák <marek.olsak@amd.com >
Acked-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23451 >
2023-06-12 21:37:37 +00:00
Emma Anholt
29397f2e00
mesa: Drop the function parameter spec from the remap table.
...
Since we don't generate dynamic dispatch stubs any more, we don't need
this data.
Acked-by: Marek Olšák <marek.olsak@amd.com >
Acked-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23451 >
2023-06-12 21:37:37 +00:00
Emma Anholt
398a8d43dc
mapi: Delete dynamic stub generation.
...
Since Mesa drivers are now version-locked to the loader, that means that
we never need to support a newer hardware driver than the loader, and thus
don't need to generate dynamic dispatch stubs. This is great news, given
that we don't test those paths, and it involved delightful features like
arrays of hex for code to be pasted into executable memory.
More code removal will follow, this is the first cut of "don't generate,
and DCE generation code".
Fixes : #9158
Acked-by: Marek Olšák <marek.olsak@amd.com >
Acked-by: Alyssa Rosenzweig <alyssa@rosenzweig.io >
Reviewed-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23451 >
2023-06-12 21:37:37 +00:00
Marek Olšák
ef0e327d9f
glapi: inline the meson list files_mapi_util
...
so that people can easily tell where these files are used by searching
for the file names in the meson files.
Acked-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21777 >
2023-03-12 17:56:10 -04:00
Marek Olšák
eed145004b
glapi: move files specific to shared-glapi into the shared-glapi subdirectory
...
Acked-by: Adam Jackson <ajax@redhat.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21777 >
2023-03-12 17:56:03 -04:00
Eric Engestrom
f5d3d1e7ed
meson: inline gtest_test_protocol now that it's always 'gtest'
...
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21485 >
2023-03-10 07:20:29 +00:00
Dylan Baker
bab3e2fbd9
meson: use the same workaround for setting 'lib' on windows
...
Reviewed-by: Eric Engestrom <eric@igalia.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20752 >
2023-01-19 23:06:07 +00:00
Yonggang Luo
38b2402b5f
meson: Use deps_for_libmesa_util for idep_mesautil instead hand crafted list
...
Now the idep_mesautilc11 have no need reference when idep_mesautil is referenced
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Dylan Baker <dylan.c.baker@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19526 >
2022-11-10 11:57:22 +08:00
Yonggang Luo
2c89401f75
glapi: #include "util/glheader.h" in glapi_priv.h and glapitable.h directly
...
So that we do not need define GLAPIENTRY repeatedly, always using the
GLAPIENTRY macro comes from GL/gl.h
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Acked-by: Brian Paul brianp@vmware.com
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19472 >
2022-11-03 16:07:31 +00:00
Yonggang Luo
bfa3ce44a6
mesa: Move glheader.h from mesa/main/glheader.h to util/glheader.h
...
So it's can be accessed in broader places
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Acked-by: Brian Paul brianp@vmware.com
Reviewed-by: Marek Olšák <marek.olsak@amd.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19472 >
2022-11-03 16:07:31 +00:00
Yonggang Luo
1411d79e24
mapi: Use util_call_once to init exec_mem and mutex instead _MTX_INITIALIZER_NP
...
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Jesse Natalie <jenatali@microsoft.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19154 >
2022-10-20 01:32:47 +00:00
Yonggang Luo
b2ddec4e98
c11: Implement c11/time.h with c11/impl/time.c
...
Create c11/time.h instead of put timespec_get in `c11/threads.h`
Creating impl folder is used to avoid `#include <time.h>` point the c11/time.h file
Detecting if `struct timespec` present with meson
Define TIME_UTC in `c11/time.h` instead `c11/threads.h`
Define `struct timespec` in `c11/time.h` when not present.
Implement timespec_get in c11/impl/time.c instead threads.h
Signed-off-by: Yonggang Luo <luoyonggang@gmail.com >
Reviewed-by: Jason Ekstrand <jason.ekstrand@collabora.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15497 >
2022-06-09 17:23:34 +00:00
Dylan Baker
e73096bd6d
meson: use gtest protocol for gtest based tests when possible
...
With the `gtest` protocol meson will add some extra arguments to the
test to generate better junit results, which may be useful. This
protocol is only available in meson 0.55.0+, so keep using the default
`exitcode` protocol for meson older than that.
Reviewed-by: Caio Marcelo de Oliveira Filho <caio.oliveira@intel.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8484 >
2021-10-16 03:22:24 +00:00
Jesse Natalie
03006926de
wgl: Fix unit test when using shared glapi
...
Reviewed By: Bill Kristiansen <billkris@microsoft.com >
Reviewed-by: Charmaine Lee >charmainel@vmware.com >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12677 >
2021-09-08 07:21:48 -07:00
Kristian H. Kristensen
a725899c3f
mapi: Mark TLS symbols as optional in glapi-symbols.txt
...
Presence of these depends on whether or not we're using ELF TLS.
Reviewed-by: Eric Engestrom <eric@engestrom.ch >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6112 >
2020-08-05 18:08:07 +00:00
Dylan Baker
a8e2d79e02
meson: use gnu_symbol_visibility argument
...
This uses a meson builtin to handle -fvisibility=hidden. This is nice
because we don't need to track which languages are used, if C++ is
suddenly added meson just does the right thing.
Acked-by: Matt Turner <mattst88@gmail.com >
Reviewed-by: Eric Engestrom <eric@engestrom.ch >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4740 >
2020-06-01 18:59:18 +00:00
Jose Fonseca
2e92d33819
scons: Prune out unnecessary targets.
...
This prunes out all targets except libgl-gdi, libgl-xlib, and svga, as
suggested by Marek Olšák.
libgl-xlib will be remove once I have had time to confirm no automated
tests we have rely upon it.
There are also a bunch of Makefile.sources which become orphaned as
result, that are not taken care of in this change.
v2: Prune remainders of swr support.
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4348 >
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4348 >
2020-03-30 13:38:01 +00:00
Eric Engestrom
2f652e0b36
meson: move the generic symbols check arguments to a common variable
...
Signed-off-by: Eric Engestrom <eric.engestrom@intel.com >
Reviwed-by: Dylan Baker <dylan@pnwbakers>
2019-11-05 20:30:47 +00:00
Eric Engestrom
2c4395e61c
meson: add variable to control the symbols checks
...
Signed-off-by: Eric Engestrom <eric.engestrom@intel.com >
Reviwed-by: Dylan Baker <dylan@pnwbakers>
2019-11-05 20:12:32 +00:00
Dylan Baker
63f5aee694
meson: maintain names of shared API libraries
...
Mesa uses the lib prefix, and doesn't use a version for it's dynamic
libraries, which meson defaults to.
v2: - this patch
Acked-by: Eric Engestrom <eric.engestrom@intel.com >
Acked-by: Kristian H. Kristensen <hoegsberg@google.com >
2019-10-10 16:33:04 -07:00
Dylan Baker
2e17348600
meson: Add windows defines to glapi
...
These are needed to control the export or symbols due to differences
between the way windows and *nix handle symbol exports.
Reviewed-by: Eric Anholt <eric@anholt.net > (v2)
Acked-by: Kristian H. Kristensen <hoegsberg@google.com >
v5: - key NO_EXPORT off of shared-glapi instead of gles
2019-10-10 16:33:04 -07:00
Dylan Baker
2595b7c997
glapi: export glapi_destroy_multithread when building shared-glapi on windows
...
Which will allow meson to build a shared glapi build with mingw.
v2: - Add symbol to symbol check test
Reviewed-by: Eric Anholt <eric@anholt.net > (v1)
Reviewed-by: Eric Engestrom <eric.engestrom@intel.com >
2019-09-10 20:36:47 +00:00
Eric Engestrom
b619f89e23
mapi: add shared glapi symbols check
...
Signed-off-by: Eric Engestrom <eric.engestrom@intel.com >
Reviewed-by Dylan Baker <dylan@pnwbakers.com >
Reviewed-by: Emil Velikov <emil.velikov@collabora.com >
2019-07-10 11:27:51 +00:00
Eric Engestrom
7ca8ba199f
delete autotools .gitignore files
...
One special case, `src/util/xmlpool/.gitignore` is not entirely deleted,
as `xmlpool.pot` still gets generated (eg. by `ninja xmlpool-pot`).
Signed-off-by: Eric Engestrom <eric.engestrom@intel.com >
Reviewed-by: Dylan Baker <dylan@pnwbakers.com >
2019-04-29 21:17:19 +00:00
Konstantin Kharlamov
fccc9d3de6
mapi: work around GCC LTO dropping assembly-defined functions
...
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=109391
Signed-off-by: Konstantin Kharlamov <Hi-Angel@yandex.ru >
Acked-by: Eric Engestrom <eric.engestrom@intel.com >
Reviewed-by: Dylan Baker <dylan@pnwbakers.com >
Reviewed-by: Eric Engestrom <eric.engestrom@intel.com >
2019-02-13 14:20:51 +00:00
Emil Velikov
3bf08292d2
scons: wire the new generator for es1 and es2
...
Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com >
Reviewed-by: Erik Faye-Lund <erik.faye-lund@collabora.com >
2019-01-24 18:13:25 +00:00
Eric Engestrom
896c59d690
glapi: add missing visibility args
...
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=108829
Fixes: 3218056e0e "meson: Build i965 and dri stack"
Signed-off-by: Eric Engestrom <eric.engestrom@intel.com >
Reviewed-by: Emil Velikov <emil.velikov@collabora.com >
2018-11-22 18:21:05 +00:00
Dylan Baker
a999798daa
meson: Add tests to suites
...
Meson test has a concepts of suites, which allow tests to be grouped
together. This allows for a subtest of tests to be run only (say only
the tests for nir). A test can be added to more than one suite, but for
the most part I've only added a test to a single suite, though I've
added a compiler group that includes nir, glsl, and glcpp tests.
To use this you'll need to invoke meson test directly, instead of ninja
test (which always runs all targets). it can be invoked as:
`meson test -C builddir --suite $suitename` (meson test has addition
options that are pretty useful).
Tested-By: Gert Wollny <gert.wollny@collabora.com >
Acked-by: Eric Engestrom <eric.engestrom@intel.com >
2018-11-20 09:09:22 -08:00