Timo Aaltonen pushed to branch upstream-unstable at X Strike Force / lib / 
libglvnd


Commits:
6f52473d by Eric Engestrom at 2019-09-30T15:08:37Z
include: install GL headers when GL is enabled

A typo made it depend on EGL instead.

Fixes: ab9b5fcc3bf90064418f ("Install the GL/GLES/GLX/EGL header 
files.")

- - - - -
879a453d by Kyle Brenneman at 2019-09-30T21:35:25Z
Merge branch 'headers-fix-typo' into 'master'

include: install GL headers when GL is enabled

See merge request glvnd/libglvnd!190
- - - - -
3a1fb32c by Laurent Carlier at 2019-10-08T16:34:16Z
Add a configure option to disable glesv1 or glesv2

Because mesa can be built without glesv1 so it breaks autodetection.

Fixes: https://bugs.archlinux.org/task/64032 ('mesa-demos doesn't 
build, unable to find GLES/gl.h')

- - - - -
6fc91b93 by Kyle Brenneman at 2019-10-08T16:34:16Z
Merge branch 'gles-enable-fix' into 'master'

Add a configure option to disable glesv1 or glesv2

See merge request glvnd/libglvnd!191
- - - - -
51233cc5 by Adam Jackson at 2019-10-17T15:53:50Z
egl: Sync with Khronos

    commit de3a5e867d906a04a5c37ee0d89e7f01d3598eb9
    Author: Ken Russell <kbrus...@alum.mit.edu>
    Date:   Sat Oct 12 05:44:43 2019 -0700

        Reserve enums 0x34A0..0x34AF for ANGLE project. (#93)

Closes: https://gitlab.freedesktop.org/glvnd/libglvnd/issues/193

- - - - -
a1a73db6 by Kyle Brenneman at 2019-10-18T15:17:32Z
Merge branch 'egl-registry-sync' into 'master'

egl: Sync with Khronos

Update egl.h and egl.xml to upstream commit 
de3a5e867d906a04a5c37ee0d89e7f01d3598eb9.

Closes #193

See merge request glvnd/libglvnd!192
- - - - -
5dfdc5a6 by Kyle Brenneman at 2019-10-22T22:48:29Z
Update GL/gl.h to match Mesa.

Updated GL/gl.h to match the copy from Mesa at commit
a0829cf23b307ca44ab8c4505974fb7c8d71a35a.

- - - - -
6e310f72 by Lepton Wu at 2019-10-24T21:57:46Z
GLdispatch: Improve the x86 tsd stubs performance.

This skips touching %ebx most times and the same change for mesa shows that
glGetString performance increased from 114M/s to 120M/s on my desktop.

- - - - -
1dea90a9 by Lepton Wu at 2019-10-26T02:13:11Z
GLdispatch: Improve the x86 TLS stubs performance.

This save one call frame and a similar change for mesa shows that
glGetString performance increased from 118M/s to 128M/s on my desktop.

- - - - -
58f1c0db by Kyle Brenneman at 2019-10-28T19:55:32Z
Merge branch 'copy-mesa-gl-h' into 'master'

Update GL/gl.h to match Mesa.

Closes #194

See merge request glvnd/libglvnd!195
- - - - -
931791bf by Kyle Brenneman at 2019-10-28T22:01:45Z
Add GitLab CI configuration.

Add a .gitlab-ci.yml file to run libglvnd's unit tests.

The "build-distcheck" target will simply run "make 
distcheck". That should also
cover running the unit tests for the x86-64 TLS build.

The "build-i386", "build-i386-tsd", and 
"build-x86-64-tsd" targets will build
and test the x86 TLS and TSD builds and the x86-64 TSD build.

The pure C stubs aren't covered yet, but they'll be easy to add once 
the unit
tests are fixed for them.

ARM and PPC builds also aren't covered yet.

- - - - -
f4668353 by Matt Turner at 2019-11-07T01:41:08Z
Provide an empty GLES3/gl3ext.h header

The one in Mesa is empty but appears to come from some Khronos
repository, but gl3ext.h has never existed in the OpenGL-Registry
repository on github. Provide it for backwards compatibility.

Closes: https://gitlab.freedesktop.org/glvnd/libglvnd/issues/195

- - - - -
b581ecfa by Kyle Brenneman at 2019-11-07T14:39:59Z
Merge branch 'gl3ext.h' into 'master'

Provide an empty GLES3/gl3ext.h header

Closes #195

See merge request glvnd/libglvnd!200
- - - - -
2a8e4011 by Kyle Brenneman at 2019-11-14T15:14:46Z
Merge branch 'add-gitlab-ci' into 'master'

Add GitLab CI configuration

See merge request glvnd/libglvnd!198
- - - - -
fc2ab74c by Kyle Brenneman at 2019-11-14T15:34:46Z
Add a USE_DISPATCH_ASM macro to config.h.

Define a new USE_DISPATCH_ASM macro in config.h if assembly dispatch stubs are
enabled. Update the GLX entrypoint generation to use that macro instead of
checking all of the USE_*_ASM macros.

This is less likely to break if we add assembly support for another
architecture. In addition, it'll make it easier to skip any unit tests
that depend on being able to generate new dispatch stubs.

- - - - -
33e1fffb by Kyle Brenneman at 2019-11-14T15:34:47Z
tests: Check for assembly support in testgldispatch.

In testgldispatch, if it's testing generating or patching entrypoints, then
check if assembly support is enabled, and skip the test if it's not.

- - - - -
8bb82da3 by Kyle Brenneman at 2019-11-14T15:34:47Z
tests: Add some threading tests for libGLdispatch.

Added a new test, testgldispatchthread, which tests some of the thread-handling
stuff in libGLdispatch.

- - - - -
d1ce26f9 by Kyle Brenneman at 2019-11-14T15:34:48Z
tests: Add a new test for GLX entrypoint generation.

Added a separate test program testglxgetprocaddress_genentry to test the GLX
entrypoint generation by itself instead of lumping that in with
testglxgetprocaddress.

- - - - -
4261cb96 by Kyle Brenneman at 2019-11-14T15:34:48Z
tests: Rework testglxgetprocaddress.

It now calls glXGetClientString up front to load the dummy vendor library. The
GLX entrypoint generation path has its own test now, so this test can now work
on builds without assembly support.

It now uses glXQueryServerString to test calling a core GLX function. 
That's a
better test because it returns a predictable value, so we can make sure that it
actually gets dispatched to the vendor library, instead of just checking that
it doesn't crash.

For testing looking up an OpenGL function, it'll call glXGetProcAddress and
directly call __glDispatchGetProcAddress, and make sure that it gets the same
pointer from both. It doesn't try to call the function, since OpenGL
dispatching has its own tests.

- - - - -
bc674f79 by Kyle Brenneman at 2019-11-14T15:34:49Z
tests: Use __GLX_FORCE_VENDOR_LIBRARY_0 for all of the GLX tests.

Set the environment variable __GLX_FORCE_VENDOR_LIBRARY_0 for all of the GLX
tests instead of __GLX_VENDOR_LIBRARY_NAME.

Individual tests can force libGLX to load a vendor library early by calling
glXGetClientString or similar.

- - - - -
17ecd2f1 by Kyle Brenneman at 2019-11-14T15:34:49Z
tests: Make the glXMakeCurrent tests work without assembly support.

Change glMakeCurrentTestResults to a GLX function instead of a GL function, so
that it can be dispatched using a vendor-provided stub instead of having to
generate one.

Remove the testglxmclate test, and the --late option in testglxmakecurrent,
since that only makes sense when MakeCurrentTestResults was a GL function.

- - - - -
84d4d662 by Kyle Brenneman at 2019-11-14T15:34:50Z
tests: Remove testpatchentrypoints

The testgldispatch tests cover the entrypoint patching code, so the
testpatchentrypoints test is redundant.

- - - - -
207b0bf8 by Kyle Brenneman at 2019-11-14T15:38:54Z
Add GitLab CI coverage for C stubs.

Now that the unit tests can handle builds without assembly support, add builds
with C dispatch stubs to .gitlab-ci.yml.

- - - - -
1613facc by Kyle Brenneman at 2019-11-14T15:47:40Z
Merge branch 'github/fork/kbrenneman/fix-tests-no-assembly' into 
'master'

Fix for unit tests with no assembly support

Closes #154

See merge request glvnd/libglvnd!180
- - - - -
4269cdcf by Kyle Brenneman at 2019-11-22T15:38:16Z
Move glvnd_genentry into the GLX directory.

The glvnd_genentry code isn't used outside of GLX.

- - - - -
86a9ed57 by Kyle Brenneman at 2019-11-22T17:18:55Z
GLdispatch: Define dynamic dispatch stubs at compile time.

Instead of allocating pages of memory for the dynamic dispatch stubs, define
them at build time like the static stubs.

The dynamic stubs are identical to the static ones, so we can use the same code
to define both the static and dynamic stubs at compile time.

Removed entry_generate(). entry_generate_default_code is now only used to
restore entrypoints after patching.

Aside from simplifying things by not having a separate allocation for the
dynamic stubs, this should also allow the dispatch stubs to function properly
in both processes after a call to fork.

- - - - -
59b622a7 by Kyle Brenneman at 2019-11-22T17:18:55Z
GLdispatch: Remove writeEntry variables in entry_generate_default_code.

Remove the writeEntry variables in the various entry_generate_default_code
functions, since it doesn't have separate writable and executable mappings.

- - - - -
78321673 by Kyle Brenneman at 2019-11-22T17:18:55Z
GLdispatch: Simplify the dispatch stub bookkeeping.

Changed the interface in stub.h to work with function indexes instead of
mapi_stub pointers. The mapi_stub structure is now an internal detail in
stub.c.

The mapi_stub struct now only contains a name and a slot.

Removed the dynamic_stubs array. Instead, it just keeps an array of the
function names for each dynamic stub. It now looks up the function pointers
with entry_get_public, and the slot number is always equal to the index, so the
name is the only thing it needs to keep track of.

- - - - -
9bde8ba6 by Kyle Brenneman at 2019-11-22T17:18:55Z
GLdispatch: Change entry_get_patch_addresses to take an index.

entry_get_patch_addresses now takes an index instead of a function pointer.

- - - - -
5222e64d by Kyle Brenneman at 2019-11-22T17:18:55Z
GLdispatch: Move entry_get_patch_addresses into entry_common.c.

Move the function entry_get_patch_addresses into entry_common.c for all
architectures.

Now that it takes an index instead of a pointer, ther's no longer a 
difference
between ARMv7 and everything else.

- - - - -
44ea7c35 by Kyle Brenneman at 2019-11-22T17:18:55Z
GLdispatch: Change entry_get_patch_address to return a single address.

entry_get_patch_address now returns a single address, since it doesn't have
separate writable and executable mappings anymore.

- - - - -
13df5329 by Kyle Brenneman at 2019-11-22T17:18:55Z
GLdispatch: Change entry_generate_default_code to take an index.

For better consistency with the rest of GLdispatch, entry_generate_default_code
now takes the index of the stub instead of a function pointer.

- - - - -
0c08a092 by Kyle Brenneman at 2019-11-22T17:18:55Z
GLdispatch: Use all 4096 dynamic dispatch stubs.

In stub_add_dynamic, use all 4096 dynamic dispatch stubs. There's no longer 
any
need to leave the last one empty.

- - - - -
50a0db24 by Kyle Brenneman at 2019-11-22T20:16:44Z
GLX: Define the GLX dispatch stubs at compile time.

Rewrote the generated dispatch stubs for GLX so that they're all defined at
compile time, instead of generating them at runtime.

Insted of patching the address of the vendor-provided functions into the
assembly stubs, it will now keep a separate array of function pointers. The
assembly stubs will look up the approprite entry in that array and jump to it.

As a result, the assembly code is entirely static, so we don't need to deal
with generating or modifying executable code at runtime.

- - - - -
6811a4bc by Kyle Brenneman at 2019-11-22T20:16:48Z
GLX: Add labels to the GLX entrypoint stubs.

- - - - -
67aa9ac5 by Kyle Brenneman at 2019-11-22T20:39:13Z
Merge branch 'github/fork/kbrenneman/compile-time-stubs-glx-v2' into 
'master'

GLX: Define the GLX dispatch stubs at compile time (v2)

See merge request glvnd/libglvnd!146
- - - - -
02b8b933 by Kyle Brenneman at 2019-11-22T20:40:27Z
Merge branch 'github/fork/kbrenneman/compile-time-stubs-gldispatch-v2' 
into 'master'

GLdispatch: Define all dispatch stubs at compile time (v2)

See merge request glvnd/libglvnd!145
- - - - -
79b1b893 by Kyle Brenneman at 2019-11-22T21:48:56Z
Merge branch 'tls' into 'master'

GLdispatch: Improve the x86 TLS stubs performance.

See merge request glvnd/libglvnd!196
- - - - -
005d2568 by Kyle Brenneman at 2019-11-22T21:49:07Z
Merge branch 'fasm2' into 'master'

GLdispatch: Improve the x86 tsd stubs performance.

See merge request glvnd/libglvnd!197
- - - - -
77c4c27e by Kyle Brenneman at 2019-11-22T22:03:30Z
tests: Fix some missing libraries.

Fixed some missing static libraries for the EGL dummy vendor library.

Added Xlib to the GLX dummy library.

Added the --no-undefined flag for both of the dummy vendor libraries.

- - - - -
aeb905d8 by Kyle Brenneman at 2019-11-22T22:58:11Z
util: Remove the executable allocation functions.

Remove all of the functions related to allocating executable memory, since
they're no longer needed.

- - - - -
3c27c981 by Kyle Brenneman at 2019-11-22T22:58:11Z
GLdispatch: Remove runtime assembly code generation.

Removed the rest of the assembly code generation from libGLdispatch. Since we
don't need to generate dispatch stubs at runtime for extension functions
anymore, the code generation is now only used to restore the dispatch stubs
after a vendor library patches them.

Now, instead of reconstructing each dispatch stub, libGLdispatch will just
allocate a copy of all of the entrypoints before patching them, and then it
uses memcpy to restore them.

- - - - -
3465c7c2 by Kyle Brenneman at 2019-11-22T22:58:11Z
GLdispatch: Remove entry_init_public().

entry_init_public() is empty on all platforms, so just remove it.

- - - - -
9ba775ea by Kyle Brenneman at 2019-11-22T23:39:46Z
configure: Define EGL_NO_X11 unconditionally.

Change the configure script to define the EGL_NO_X11 macro unconditionally, so
that the EGL headers don't try to include the Xlib headers.

Regardless of whether --disable-x11 is used, libglvnd doesn't need 
X11-specific
typedefs for EGLNativeDisplayType et. al.

- - - - -
e9b5e559 by Kyle Brenneman at 2019-11-22T23:56:40Z
Merge branch 'egl-no-x11-macro' into 'master'

EGL: Set EGL_NO_X11 macro if --disable-x11 is used.

See merge request glvnd/libglvnd!193
- - - - -
2d5d9d6c by Aaron Plattner at 2019-12-03T21:39:43Z
Merge branch 'tests-fix-missing-libs' into 'master'

tests: Fix some missing libraries

See merge request glvnd/libglvnd!201
- - - - -
3aec7f09 by Dylan Baker at 2019-12-03T23:51:34Z
gitlab-ci: Update the wayland-template version

This resolves issues with creating a docker image.

- - - - -
eade458a by Eric Engestrom at 2019-12-04T00:09:20Z
Merge branch 'gitlab-ci-fixes' into 'master'

gitlab-ci: Update the wayland-template version

See merge request glvnd/libglvnd!207
- - - - -
fc32d568 by Kyle Brenneman at 2019-12-04T15:06:08Z
EGL: Fix two exported extension functions

Fix a bug in gen_egl_dispatch.py which caused libEGL.so to export two extension
functions, eglCreatePlatformWindowSurfaceEXT and
eglCreatePlatformPixmapSurfaceEXT.

Fixes https://gitlab.freedesktop.org/glvnd/libglvnd/issues/196

- - - - -
7b9e9ad6 by Kyle Brenneman at 2019-12-04T15:10:29Z
Merge branch 'egl-fix-ext-export' into 'master'

EGL: Fix two exported extension functions

Closes #196

See merge request glvnd/libglvnd!204
- - - - -
000a0f2b by Dylan Baker at 2019-12-04T16:51:22Z
Add .editorconfig file

Many project in the freedesktop graphics space use editorconfig files as
a way to standardize style in an editor agnostic way. This one
configures all of the files current in libglvnd (I looked at the .c and
.h files and they seem to all use 4 spaces for indent). Because it
seemed everything used 4 spaces I just set that to the default and
overrode as necessary.

- - - - -
ad2c870a by Dylan Baker at 2019-12-04T16:53:00Z
tests: Add -t to testgldispatch patched thr test

Since right now it tests the same thing as the patch test

- - - - -
12caca77 by Eric Engestrom at 2019-12-04T17:33:53Z
Merge branch 'editorconfig' into 'master'

Add .editorconfig file

See merge request glvnd/libglvnd!205
- - - - -
3a7aed00 by Dylan Baker at 2019-12-04T18:02:00Z
tests: Add symbol check tests

These use the symbol-check.py script from mesa, and should help to
ensure that glvnd doesn't start exposing/hiding new symbols. It's also
useful to double check that meson and autotools are doing the same
thing.

- - - - -
db89fc74 by Kyle Brenneman at 2019-12-04T18:52:39Z
Merge branch 'meson-test-fixes' into 'master'

Test changes from the meson MR

See merge request glvnd/libglvnd!206
- - - - -
3f6730ca by Kyle Brenneman at 2019-12-04T19:28:03Z
tests: Add tests for the end of the dispatch table.

Add a '-l' flag to testgldispatch, which tells it to test a generated 
stub
at the very end of the dispatch table.

On PPC, looking up a function past index 4096 requires more than just a simple
register+immediate load, so this makes sure that it's correct.

- - - - -
fbcce35d by Kyle Brenneman at 2019-12-05T18:13:17Z
Merge branch 'cleanup-assembly' into 'master'

Remove runtime assembly generation

See merge request glvnd/libglvnd!202
- - - - -
cbd5f13f by Matt Turner at 2019-12-05T18:22:38Z
Merge branch 'tests-gldispatch-check-last' into 'master'

Add unit tests for the end of GLdispatch's dispatch table.

See merge request glvnd/libglvnd!203
- - - - -
a9060bb6 by Kyle Brenneman at 2019-12-05T19:50:56Z
tests: Add tests for the end of the dispatch table.

Add a '-l' flag to testgldispatch, which tells it to test a generated 
stub
at the very end of the dispatch table.

On PPC, looking up a function past index 4096 requires more than just a simple
register+immediate load, so this makes sure that it's correct.

- - - - -
24fddd6e by Dylan Baker at 2019-12-05T19:50:56Z
tests/dummy/glx: Remove config.h

autotools force includes this with `-include config.h`, so it's
unnecessary to make compilation work. Meson doesn't generate a config.h
so this will break meson compilation.

- - - - -
16dc3235 by Dylan Baker at 2019-12-05T20:01:36Z
Add meson build system

Theres a couple of things that this meson build system does differently
than autotools. It doesn't use a config.h file, it just puts #defines on
the command line with -D. It also does all of the code generation in the
generated folder, simply because it's simpler to do that.

On my 2 core / 4 thread KBL system:

autotools (no ccache):
sh -c "./autogen.sh&& ./configure && make -j6 check"  
44.74s user 6.70s system 145% cpu 35.269 total

autotools (warm ccache):
sh -c "./autogen.sh&& ./configure && make -j6 check"  
32.86s user 4.22s system 129% cpu 28.580 total

meson (no ccache):
sh -c "meson build; ninja -C build test"  23.48s user 3.71s system 
236% cpu 11.487 total

meson (warm ccache)
sh -c "meson build; ninja -C build test"  16.06s user 2.31s system 
210% cpu 8.727 total

- - - - -
b308a876 by Dylan Baker at 2019-12-05T20:01:36Z
autotools: Include meson.build and meson_options.txt in dist

- - - - -
416e73a8 by Dylan Baker at 2019-12-05T20:01:36Z
README: add content about using meson

- - - - -
61ed0176 by Dylan Baker at 2019-12-05T20:01:36Z
gitlab-ci: Split some parts that are autotools specific

- - - - -
e10e423c by Dylan Baker at 2019-12-05T20:01:36Z
gitlab-ci: Install meson dependencies for meson building

- - - - -
bc908ed8 by Dylan Baker at 2019-12-05T20:01:36Z
gitlab-ci: Add meson build support

- - - - -
cdf63cfc by Dylan Baker at 2019-12-05T20:01:36Z
gitlab-ci: Also run meson from the dist tarball

- - - - -
a1350eef by Eric Engestrom at 2019-12-05T20:26:41Z
Merge branch 'meson' into 'master'

New meson build system

See merge request glvnd/libglvnd!199
- - - - -
0f39337d by Matt Turner at 2019-12-05T21:16:00Z
Drop unnecessary assembly macros

These were presumably copied from Mesa where they enable assembly code
that is not part of the dispatch layer. They are unused in libglvnd.

- - - - -
05e762ba by Matt Turner at 2019-12-05T21:44:43Z
Bump the version number to 1.3.0.

- - - - -


29 changed files:

- + .editorconfig
- + .gitlab-ci.yml
- + .gitlab-ci/i686-linux-gnu
- + .gitlab-ci/run_build.sh
- + .gitlab-ci/run_distcheck.sh
- + .gitlab-ci/run_meson.sh
- + .gitlab-ci/ubuntu_install.sh
- Makefile.am
- README.md
- + bin/symbols-check.py
- configure.ac
- include/EGL/eglplatform.h
- include/GL/gl.h
- + include/GLES3/gl3ext.h
- include/Makefile.am
- + include/meson.build
- + meson.build
- + meson_options.txt
- src/EGL/Makefile.am
- + src/EGL/egl-symbol-check.sh
- + src/EGL/egl.symbols
- + src/EGL/meson.build
- src/GL/Makefile.am
- + src/GL/gl-symbol-check.sh
- + src/GL/gl.symbols
- src/GL/libgl.c
- + src/GL/meson.build
- src/GLESv1/Makefile.am
- + src/GLESv1/glesv1-symbol-check.sh


The diff was not included because it is too large.


View it on GitLab: 
https://salsa.debian.org/xorg-team/lib/libglvnd/compare/062a42ea55a9452bfcfe6268348a82edbea7542c...05e762ba74bb47a0f420ce46fc2bfc69d71e1786

-- 
View it on GitLab: 
https://salsa.debian.org/xorg-team/lib/libglvnd/compare/062a42ea55a9452bfcfe6268348a82edbea7542c...05e762ba74bb47a0f420ce46fc2bfc69d71e1786
You're receiving this email because of your account on salsa.debian.org.


Reply via email to