Skip to content

GLdispatch: Define all dispatch stubs at compile time.

Created by: kbrenneman

This is a series of changes to make libGLdispatch define all of its dispatch stubs at compile time, instead of generating some of them at runtime.

The code for the dynamic dispatch stubs is identical to the static ones. So, this extends the static assembly stubs in libGLdispatch so that it defines all of the dynamic entrypoints as well.

At that point, the only difference between the static and dynamic stubs is that the static stubs are assigned to a specific function name at compile time, and the dynamic stubs are assigned to a function name at runtime.

That removes all of the complexity and potential failure cases from allocating executable memory and filling it in. The entry_generate_default_code() functions are still there, but now they're only used for restoring the entrypoints after letting a vendor library patch them.

The first commit is the important one, which removes all the execmem code and extends the static dispatch stubs. The remaining changes are various cleanup and simplification changes that the first commit makes possible.

Merge request reports