summaryrefslogtreecommitdiff
path: root/src/mapi
AgeCommit message (Collapse)AuthorFilesLines
2011-01-29mapi: Workaround a bug in makedepend.Chia-I Wu4-7/+30
makedepend would crash when a source includes a header indirectly, such as #define HEADER "some-header.h" #include HEADER Do not define HEADER (makedepend would detects this as an incomplete include) and add the dependency manually in the Makefile. This should hopefully fix bug #33374.
2011-01-27glapi: add @GOTPCREL relocation typeDimitry Andric2-2/+4
Fixes http://bugs.freedesktop.org/show_bug.cgi?id=33440 This replaces commit 731ec60da3ccb92f5bfb4d6f1bc3c8e712751376 NOTE: This is a candidate for the 7.9 and 7.10 branches Signed-off-by: Brian Paul <brianp@vmware.com>
2011-01-25Revert "glapi: adding missing @GOTPCREL qualifer in glapi_x86-64.S"Brian Paul2-2/+2
This reverts commit 731ec60da3ccb92f5bfb4d6f1bc3c8e712751376. This change causes crashes in the x86-64 dispatch code.
2011-01-25glapi: adding @ char before type specifier in glapi_x86.SDimitry Andric2-2/+2
Fixes http://bugs.freedesktop.org/show_bug.cgi?id=33433 NOTE: This is a candidate for the 7.9 and 7.10 branches. Signed-off-by: Brian Paul <brianp@vmware.com>
2011-01-25glapi: adding missing @GOTPCREL qualifer in glapi_x86-64.SDimitry Andric2-2/+2
Fixes http://bugs.freedesktop.org/show_bug.cgi?id=33440 NOTE: This is a candidate for the 7.9 and 7.10 branches Signed-off-by: Brian Paul <brianp@vmware.com>
2011-01-24add machine generated files to .gitignoreTim Wiederhake3-0/+4
Signed-off-by: Brian Paul <brianp@vmware.com>
2011-01-22scons: Add support for GLES.Chia-I Wu3-5/+121
GLES can be enabled by running scons with $ scons gles=yes When gles=yes is given, the build is changed in three ways. First, libmesa.a will be built with FEATURE_ES1 and FEATURE_ES2. This makes DRI drivers and libEGL support and advertise GLES support. Second, GLES libraries will be created. They are libGLESv1_CM, libGLESv2, and libglapi. Last, libGL or opengl32 will link to libglapi. This change is required as _glapi_* will be declared as __declspec(dllimport) in libmesa.a on windows. libmesa.a expects those symbols to be defined in another DLL. Due to this change to GL, GLES support is marked experimental. Note that GLES requires libxml2-python to generate some of its sources.
2011-01-22mapi: ENTRY_CURRENT_TABLE_GET should be stringified.Chia-I Wu1-1/+1
So that it can be renamed to _glapi_get_dispatch.
2011-01-20mesa: clean-up _mesa_lookup_prim_by_nr()Brian Paul1-16/+27
Remove the redundant public _mesa_prim_name[] array.
2011-01-20glapi: Fix OpenGL and OpenGL ES interop.Chia-I Wu5-23/+13201
When --enable-shared-glapi is specified, libGL will share libglapi with OpenGL ES instead of defining its own copy of glapi. This makes sure an app will get only one copy of glapi in its address space. The new option is disabled by default. When enabled, libGL and libglapi must be built from the same source tree and distributed together. This requirement comes from the fact that the dispatch offsets used by these libraries are re-assigned whenever GLAPI XMLs are changed. For GLX, indirect rendering for has_different_protocol() functions is tricky. A has_different_protocol() function is assigned only one dispatch offset, yet each entry point needs a different protocol opcode. It cannot be supported by the shared glapi. The fix to this is to make glXGetProcAddress handle such functions specially before calling _glapi_get_proc_address. Note that these files are automatically generated/re-generated src/glx/indirect.c src/glx/indirect.h src/mapi/glapi/glapi_mapi_tmp.h
2011-01-20glapi: Fix OpenGL ES 1.1 and 2.0 interop.Chia-I Wu3-100/+150
Move _glapi_* symbols from libGLESv1_CM.so and libGLESv2.so to libglapi.so. This makes sure an app will get only one copy of glapi in its address space. Note that with this change, libGLES* and libglapi must be built from the same source tree and distributed together. This requirement comes from the fact that the dispatch offsets used by these libraries are re-assigned whenever GLAPI XMLs are changed.
2011-01-20mapi: Add support for bridge mode.Chia-I Wu8-33/+149
In bridge mode, mapi no longer implements glapi.h. It becomes a user of glapi.h. Imagine an app that uses both libGL.so and libGLESv2.so. There will be two copies of glapi in the app's memory. It is possible that _glapi_get_dispatch does not return what _glapi_set_dispatch set, if they access different copies of the global variables. The solution to this situation to build either one of the libraries as a bridge to the other. Or build both libraries as bridges to another shared glapi library.
2011-01-20mapi: u_current_table may be renamed.Chia-I Wu4-5/+9
When MAPI_MODE_GLAPI is defined, u_current_table is renamed to _glapi_Dispatch or _glapi_tls_Dispatch. The ASM dispatchers should not use hardcoded name.
2011-01-20mapi: Add a new glapi.h implementation.Chia-I Wu3-3/+253
The new implementation is based on mapi. No new script is needed. As noted in sources.mk, the way to use it is to compile MAPI_GLAPI_SOURCES with MAPI_MODE_GLAPI defined.
2011-01-20mapi: Fix glapi printers for gl_and_es_API.xml.Chia-I Wu1-18/+503
Fix GLAPIPrinter, ES1APIPrinter, and ES2APIPrinter to output files that are ready for compilation. Since gl_and_es_API.xml is based on gl_API.xml, the hidden and handcode attributes of entries have to be overridden for ES1APIPrinter and ES2APIPrinter.
2011-01-20mapi: Allow prefix to be macro.Chia-I Wu1-3/+7
Treat prefix as macro when it is all uppercase. Generate PREFIX(name) instead of PREFIXname when it is a macro.
2011-01-20mapi: Add the ability to parse GLAPI XML.Chia-I Wu1-5/+76
A prerequisite if we want to convert vgapi.csv to vgapi.xml, or to use mapi for glapi.
2011-01-20glapi: Add gl_and_es_API.xml.Chia-I Wu6-0/+1255
gl_and_es_API.xml defines OpenGL ES 1.1 and 2.0 API as well as OpenGL API. It consists of gl_API.xml and the newly added es_EXT.xml, ARB_get_program_binary.xml, OES_single_precision.xml, and OES_fixed_point.xml.
2011-01-19Add machine generated files to .gitignoretwied2-0/+6
2011-01-15glapi: regenerated filesBrian Paul6-3229/+3429
2011-01-15glapi: new entrypoint specs for GL_ARB_draw_buffers_blendBrian Paul3-0/+41
2011-01-15glapi: regenerated filesBrian Paul8-3234/+3304
2011-01-15glapi: GL_ARB_instanced_arrays supportBrian Paul1-0/+1
2011-01-14glapi: Regenerate for GL_ARB_ES2_compatibility.Eric Anholt6-3146/+3386
2011-01-14glapi: Add entrypoints and enums for GL_ARB_ES2_compatibility.Eric Anholt3-0/+61
2011-01-13scons: Ensure the OpenVG/EGL import libs are also prefixed with 'lib'.José Fonseca1-0/+1
2011-01-13scons: Build libOpenVG.dll & libEGL.dllJosé Fonseca1-0/+3
But without creating liblibOpenVG or liblibEGL elsewhere. Thanks Chia-I Wu for pointing this out.
2011-01-12scons: Fix build on systems without libOpenVG.soJosé Fonseca1-4/+4
2011-01-12scons: Updates for targets/egl-static.Chia-I Wu1-1/+4
Update SConscripts to re-enable or add support for EGL on windows and x11 platforms respectively. targets/egl-gdi is replaced by targets/egl-static, where "-static" means pipe drivers and state trackers are linked to statically by egl_gallium, and egl_gallium is a built-in driver of libEGL. There is no more egl_gallium.dll on Windows.
2010-12-31mapi: add missing newline in error messageBrian Paul1-1/+1
2010-12-24mapi: Move mapi_func typedef to entry.h.Chia-I Wu4-4/+4
Make it clear that entry.h does not depend on stub.h.
2010-12-24mapi: Define MAPI_TMP_DEFINES only when needed.Chia-I Wu2-1/+1
Since struct mapi_table is opaque, MAPI_TMP_DEFINES is not needed in table.h.
2010-12-24mapi: Add and use entry_get_public.Chia-I Wu7-16/+66
Given a dispatch slot, entry_get_public returns the address of the corresponding public entry point. There may be more than one of them. But since they are all equivalent, it is fine to return any one of them. With entry_get_public, the address of any public entry point can be calculated at runtime when an assembly dispatcher is used. There is no need to have a mapping table in such case. This omits the unnecessary relocations from the binary.
2010-12-24mapi: Make struct mapi_stub opaque.Chia-I Wu4-15/+61
Add accessors for struct mapi_stub and make it opaque.
2010-12-24mapi: Allow blocks to be disabled from the output.Chia-I Wu1-47/+58
For example, a printer may ask not to output noop dispatch table.
2010-12-24mapi: Fix hidden entries.Chia-I Wu1-16/+55
Hidden entries are just like normal entries except that they are not exported. Since it is not always possible to hide them, and two hidden aliases can share the same entry, the name of hidden aliases are mangled to '_dispatch_stub_<slot>'.
2010-12-24mapi: Add "handcode" attribute to the script.Chia-I Wu1-0/+22
Entries with handcode attribute will be handled normally, except no entry point will be generated for them.
2010-12-24mapi: Minor ABIPrinter refactoring.Chia-I Wu1-21/+32
Split out function name generation from _c_decl to _c_function, and use it everywhere. Add an optional 'export' argument to _cdecl. It is prepended to the returned string.
2010-12-24mapi: Store alias entry instead of alias name.Chia-I Wu1-6/+8
An entry can hold more info than plain name.
2010-12-23mapi: Remove unnecessary header.Vinson Lee1-1/+0
2010-12-18mapi: Clean up sources.mk.Chia-I Wu6-27/+29
Rename MAPI_GLAPI_SOURCES to MAPI_UTIL_SOURCES. Rename macro MAPI_GLAPI_CURRENT to MAPI_MODE_UTIL. Update the comments to make it clear that mapi may be used in two ways and how.
2010-12-18mapi: Clean up u_current interface.Chia-I Wu9-56/+104
Try not to use macros to make u_current.h appear to be glapi.h. Use u_current.h to implement glapi.h instead whenever possible.
2010-12-18mapi: Add ABI-tag note.Chia-I Wu2-0/+26
TLS requires kernel >= 2.4.20. Per glapi.
2010-12-12mapi: Fix a warning in !THREADS build.Chia-I Wu1-1/+1
It should be u_thread_self, not _glthread_GetID.
2010-12-06mapi: Rewrite mapi_abi.py to get rid of preprocessor magic.Chia-I Wu8-374/+326
The preprocessor magic in mapi was nothing but obfuscation. Rewrite mapi_abi.py to generate real C code. This commit removes the hack added in 43121f20866bb89e8dac92bd92ec85a943704b7e.
2010-12-02mapi: Hack to avoid vgCreateFont being generated as vgCreateFontA.José Fonseca1-0/+3
Right fix is probably stop C-preprocessor abuse and stick 100% with scripted code generation.
2010-12-02WIN32_THREADS -> WIN32José Fonseca8-12/+11
Fixes nasty bug where some parts of the code didn't define WIN32_THREADS and were using the integer mutex implementation, causing even confusion to the debuggers. And there is little interest of other thread implemenation on Win32 besides Win32 threads.
2010-12-01st/vega: Update to latest headers.Chia-I Wu1-12/+12
2010-11-29drivers/x11: unifdef XFree86ServerAdam Jackson1-12/+1
This code was for the old GLcore build of the software rasteriser. The X server switched to a DRI driver for software indirect GLX long ago. Signed-off-by: Adam Jackson <ajax@redhat.com>
2010-11-21mesa: hook up GL 3.x entrypointsBrian Paul12-4694/+5702
Fix up some details in the xml files and regenerate dispatch files.