Commit graph

1507 commits

Author SHA1 Message Date
Kristian Høgsberg
9110425c72 libGL: Pull the drawable hash back out in the generic code.
This will be shared between dri and dri2 code.
2008-03-12 02:18:12 -04:00
Kristian Høgsberg
94f39f2e7c Add another missing check for uninitialized DRI.
Spotted by Chris Taylor.
2008-03-12 02:04:16 -04:00
Kristian Høgsberg
fe23dc5eca Move make install logic for libGL back into src/mesa/Makefile.
This makes make install work again for non-glx libGL implementations.
The make install logic is split into three sub-targets: install-libgl,
install-osmesa, install-drivers.  The install target in src/glx/x11
is then implemented using the src/mesa make install-libgl rule.

Thanks to Dan Nicholson for pointing out the breakage.
2008-03-10 18:46:19 -04:00
Kristian Høgsberg
3731159ec6 Only try to call DRI function if DRI got initialized properly. 2008-03-10 18:46:19 -04:00
Brian
9162bc8f48 remove extra #include of assert.h (bug 14932) 2008-03-10 07:43:40 -06:00
Dave Airlie
20e0a8a1ca dri: fix function call to add new parameter.
This may not be correct but it should get the build going.
2008-03-10 19:13:34 +10:00
Kristian Høgsberg
b0f8025434 Properly revert the libGL loader path breakage. 2008-03-09 19:02:56 -04:00
Kristian Høgsberg
03db9c8acb libGL: Fall back to DEFAULT_DRIVER_DIR properly.
After commit 6fd82f6fbd, we would
overwrite the libPath default value with NULL if libGL was running
non-setuid and none of the env vars were set.

Thanks to Magnus Kessler <Magnus.Kessler@gmx.net> for spotting it.
2008-03-09 16:29:17 -04:00
Kristian Høgsberg
3d28a2690f Use _X_HIDDEN to hide a bunch of leaked symbols. 2008-03-08 22:28:01 -05:00
Kristian Høgsberg
020c64b2cf Move DRI context functions into dri_glx.c.
Also drop isDirect flag; if gc->driContext is non-NULL, it's direct.
2008-03-08 21:57:29 -05:00
Kristian Høgsberg
20b9230ce1 Move DRI drawable creation into dri_glx.c. 2008-03-08 21:02:23 -05:00
Kristian Høgsberg
92d2a78f8d Introduce __GLXDRIscreen so we can start moving function pointers in there.
Temporarily rename the __DRIscreen member to __driScreen.  Eventually,
we'll move that into __GLXDRIscreen and only access it in dri_glx.c.
2008-03-08 20:34:24 -05:00
Kristian Høgsberg
53dc863636 Move DRI specific parts of CreateContext into dri_glx.c. 2008-03-08 20:02:22 -05:00
Kristian Høgsberg
a1ea6f6198 Convert driCreateScreen and driDestroyScreen to function pointers.
We avoid leaking the symbols and will be able to replace them with
DRI2 implementation later on.
2008-03-08 19:15:50 -05:00
Kristian Høgsberg
425f9ed44e Abstract __DRIdisplayPrivateRec away in dri_glx.c.
This patch moves __DRIdisplayPrivateRec definition into dri_glx.c and
let's dri_glx.c allocate the __DRIdisplay struct pointer to from
__GLXdisplayPrivate.

A small step towards moving more of the dri functionality into dri_glx.c.
2008-03-08 19:10:21 -05:00
Kristian Høgsberg
f585cb29b8 Make __glXCloseDisplay static instead of prototyping it to avoid warning. 2008-03-08 17:38:02 -05:00
Kristian Høgsberg
47d563006d Move libGL install target to the libGL Makefile. 2008-03-08 17:19:39 -05:00
Kristian Høgsberg
6fd82f6fbd Simplify LIBGL_DRIVERS_PATH walking. 2008-03-08 16:19:39 -05:00
Kristian Høgsberg
0f2723cacb Simplify dri loading code by eliminating dlopen "cache".
No need to jump through hoops to track __DRIdrivers and avoid dlopening the
same .so more than twice, dlopen() does this internally.  Besides, we
were already bypassing this and dlopening drivers for each screen,
whether or not they were already dlopened.
2008-03-08 16:19:39 -05:00
Kristian Høgsberg
890d44e54f libGL: Consolidate DRI initialization in dri_glx.c
Move a lot of code over from glx_ext.c.
2008-03-08 16:19:39 -05:00
Kristian Høgsberg
3c5a1e4c2d Update libGL DRI loader to latest DRI interface changes. 2008-02-29 16:42:29 -05:00
Kristian Høgsberg
bcecea6ea6 autoconf: Add gcc search patch to MKDEP_OPTIONS to eliminate warnings.
Also, use -include to avoid error message when make initially fails to
include the non-existent depend file.
2008-02-25 19:02:07 -05:00
Kristian Høgsberg
6e8d21d72f Remove GetMSC DriverAPI function.
The DriverAPI is internal to the DRI drivers and GetDrawableMSC
obsoletes GetMSC.  Also, since the DRI driver interface has not yet
been released, just drop the getMSC function from the DRI interface
instead using the ABI preserving version mechanism.

Finally, using void pointer privates in the DRI interface is not allowed,
always pass the actual types around (__DRIdrawable in this case) to
enhance type safety and readability of the code.
2008-02-25 19:02:06 -05:00
Brian
a3a480979b Regenerated (see bug 11893) 2008-02-19 08:39:12 -07:00
Brian
fda62a6f2f Regenerated (raise GL_INVALID_VALUE if counter param is negative) 2008-02-19 08:29:17 -07:00
José Fonseca
90b2beb661 Simplify makefile boilerplate code.
Don't define ASM_SOURCES variable globally -- reserve that variable to be defined
locally by makefiles, together with C_SOURCES and CPP_SOURCES.
2008-02-19 14:06:11 +09:00
Dan Nicholson
7688791fc5 glapi: Generate xserver glapi sources in the mesa tree
Instead of generating the glapi sources for the xserver and commiting
them to the xserver tree, we can keep them in the mesa tree and change
the xserver build to use the files from the mesa tree.

This makes the xserver glx build more robust as it reduces the chances
for mismatches of the glX API used in the xserver vs. in mesa.
2008-02-17 17:40:43 -08:00
Brian
4875b40304 Assorted patches for miniglx/linux-solo (Gavin Li <codeview@gmail.com>) 2008-01-23 16:03:19 -07:00
Brian
5c82549d9e fix pc vs. gc->ps usage (bug 14197) 2008-01-22 08:40:29 -07:00
José Fonseca
eaa82d33bf Add src/mesa to include path. 2007-12-12 16:04:58 +00:00
Michel Dänzer
62f6e55013 Minor followup fixes for the previous commit. 2007-12-06 10:19:22 +01:00
George Nassas
17afc800c9 Always call dlopen in DriverOpen.
This increases the reference count for the driver binary, preventing it from
getting unloaded prematurely in driDestroyDisplay. See
https://bugs.freedesktop.org/show_bug.cgi?id=13541 .
2007-12-06 10:11:05 +01:00
WuNian
16099c15f5 remove drawable from hash table when window is deleted (see bug 13091) 2007-11-27 18:22:42 -07:00
Michel Dänzer
42108629e8 libGL: Make sure a valid value is returned for GLX_BIND_TO_MIPMAP_TEXTURE_EXT.
If the server didn't send a value, assume it's not supported.

A more generic solution might be better for this kind of problem, but an
attempt for this failed (see https://bugs.freedesktop.org/show_bug.cgi?id=9264)
and this allows compiz to work with drivers that support
GL_EXT_framebuffer_object.
2007-11-25 14:20:36 +01:00
Roland Scheidegger
7b3ab451a8 recreate from changed gl_API.xml 2007-11-09 14:49:01 +01:00
Kristian Høgsberg
286ce27193 Fix compilation for !GLX_DIRECT_RENDERING. 2007-11-06 14:34:15 -05:00
Kristian Høgsberg
001de0ac4e Remove a couple of "deprecated" fields from __GLXcontextRec.
The __GLXcontextRec struct is internal to the libGL implementation.  No point
in "deprecating", just get rid of it.
2007-11-06 13:32:33 -05:00
Kristian Høgsberg
866d271aa8 Don't return 0 in a void function. 2007-11-06 13:32:33 -05:00
Kristian Høgsberg
559ae0ab1b Pass the visual id to XF86DRICreateContextWithConfig(), not fbconfig id. 2007-11-06 11:23:27 -05:00
Kristian Høgsberg
8e66c3d755 Lookup visual in visual list, not fbconfig list.
Also, handle visual not found error case by throwing X error.
2007-11-05 17:02:29 -05:00
Kristian Høgsberg
e2c2df5c23 Filter both visuals and fbconfigs against driver supported configs. 2007-11-05 17:02:29 -05:00
Michel Dänzer
d2f19a554a Fix some build warnings, mostly with XCB. 2007-10-30 17:58:50 +01:00
Jesse Barnes
ad8ee7db3b Merge branch 'master' of ssh://git.freedesktop.org/git/mesa/mesa 2007-10-29 12:06:36 -07:00
Jesse Barnes
38fdb47d26 Refactor and fix core vblank support
Consolidate support for synchronizing to and retrieving vblank counters.  Also
fix the core vblank code to return monotonic MSC counters, which are required
by some GLX extensions.  Adding support for multiple pipes to a low level
driver is fairly easy, the Intel 965 driver provides simple example code (see
intel_buffers.c:intelWindowMoved()).

The new code bumps the media stream counter extension version to 2 and adds a
new getDrawableMSC callback.  This callback takes a drawablePrivate pointer,
which is used to calculate the MSC value seen by clients based on the actual
vblank counter(s) returned from the kernel.  The new drawable private fields
are as follows:
  - vblSeq - used for tracking vblank counts for buffer swapping
  - vblFlags - flags (e.g. current pipe), updated by low level driver
  - msc_base - MSC counter from the last time the current pipe changed
  - vblank_base - kernel DRM vblank counter from the last time the pipe changed

Using the above variables, the core vblank code (in vblank.c) can calculate a
monotonic MSC value.  The low level DRI drivers are responsible for updating
the current pipe (by setting VBLANK_FLAG_SECONDARY for example in vblFlags)
along with msc_base and vblank_base whenever the pipe associated with a given
drawable changes (again, see intelWindowMoved for an example of this).

Drivers should fill in the GetDrawableMSC DriverAPIRec field to point to
driDrawableGetMSC32 and add code for pipe switching as outlined above to fully
support the new scheme.
2007-10-29 12:06:00 -07:00
Chris Rankin
1421bffb18 Remember to call XSync() before resetting X error handler. 2007-10-29 14:37:32 -04:00
Kristian Høgsberg
6c753ad51d Pull workaround for unset GLX_DRAWABLE_TYPE back in.
The old version just set GLX_DRAWABLE_TYPE to GLX_WINDOW_BIT for
configs received through glXGetVisualConfigs and to
GLX_WINDOW_BIT | GLX_PIXMAP_BIT for configs received as FBConfigs.
The X server needs to send this info, but keep the workaround for now.

Fixes #12835.
2007-10-17 15:06:11 -04:00
Kristian Høgsberg
6c533ea2d1 Handle fbconfigs and glx visuals separately.
The old implementation fetches fbconfigs or glx visuals once and assumes the list
describes both fbconfigs and glx visuals.  This patch splits it up and fetches
visuals and fbconfigs in two steps and keep the two lists separate.  A server
could have no glx visuals or no glx fbconfigs and the old code wouldn't know the
difference.
2007-10-16 16:07:52 -04:00
Kristian Høgsberg
7a88ecbd1a Roll back premature version bump. 2007-10-15 12:16:45 -04:00
Kristian Høgsberg
a87e9a3479 Dont add fbconfigs to array that we didn't allocate for. 2007-10-15 10:59:06 -04:00
George Sapountzis
d7c137b0df Drop include "dri_interface.h" from xf86dri.h
Thanks to dri2, xf86dri no longer uses __DRI types.
2007-10-14 20:08:31 +03:00