mesa.git
17 years agoconfigs: Always use -fPIC for shared libraries, never for static
Dan Nicholson [Wed, 31 Oct 2007 17:33:20 +0000 (10:33 -0700)]
configs: Always use -fPIC for shared libraries, never for static

Mesa currently disables -fPIC for DRI on x86, but most Linux distros are
re-enabling -fPIC for all DRI arches. Let's just do that here since
that's normally what's wanted for shared libraries. Some justification:

http://bugs.gentoo.org/show_bug.cgi?id=110840#c9

On the other hand, position-independent code is only necessary when
building shared libraries, so disable it for the static cases.

17 years agoAdd -fno-strict-aliasing workaround for Linux GCC targets
Dan Nicholson [Wed, 31 Oct 2007 16:47:39 +0000 (09:47 -0700)]
Add -fno-strict-aliasing workaround for Linux GCC targets

Most Linux distros work around aliasing problems in Mesa by compiling
with the GCC option -fno-strict-aliasing. Two examples:

  https://bugs.freedesktop.org/show_bug.cgi?id=6046
  http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=394311

This makes -fno-strict-aliasing the default with a comment that
developers should consider commenting it out. There is a already a note
about these bugs in docs/helpwanted.html.

17 years agoGLSL support in i965 driver
Brian [Wed, 31 Oct 2007 15:57:07 +0000 (09:57 -0600)]
GLSL support in i965 driver

17 years agoupdated list
Brian [Wed, 31 Oct 2007 15:44:01 +0000 (09:44 -0600)]
updated list

17 years agocheck for count==0 in _mesa_validate_DrawArrays()
Brian [Wed, 31 Oct 2007 15:38:51 +0000 (09:38 -0600)]
check for count==0 in _mesa_validate_DrawArrays()

17 years agoFix some build warnings, mostly with XCB.
Michel Dänzer [Tue, 30 Oct 2007 16:47:17 +0000 (17:47 +0100)]
Fix some build warnings, mostly with XCB.

17 years agoAlias glStencilOpSeparateATI with glStencilOpSeparate.
Brian [Tue, 30 Oct 2007 16:24:34 +0000 (10:24 -0600)]
Alias glStencilOpSeparateATI with glStencilOpSeparate.

17 years agotest glStencilFuncSeparateATI()
Brian [Tue, 30 Oct 2007 16:23:58 +0000 (10:23 -0600)]
test glStencilFuncSeparateATI()

17 years agoFinish up ATI_separate_stencil
Brian [Tue, 30 Oct 2007 15:13:58 +0000 (09:13 -0600)]
Finish up ATI_separate_stencil

Add entrypoints to glapi XML file and regenerate files.
Implement glStencilOpSeparateATI().
Consolidate some code in stencil.c

17 years agoadd missing _mesa_StencilFuncSeparateATI function
Roland Scheidegger [Tue, 30 Oct 2007 13:09:17 +0000 (14:09 +0100)]
add missing _mesa_StencilFuncSeparateATI function

17 years agoMore vblank cleanups.
Michel Dänzer [Tue, 30 Oct 2007 12:16:50 +0000 (13:16 +0100)]
More vblank cleanups.

* Fix crash at context creation in most drivers supporting vblank.
* Don't pass vblank sequence or flags to functions that get passed the drawable
  private already.
* Attempt to initialize vblank related drawable private fields just once
  per drawable. May need more work in some drivers.

17 years ago[i915] Include header to pick up intel_ttm_bo_create_from_handle() proto.
Eric Anholt [Mon, 29 Oct 2007 18:56:50 +0000 (11:56 -0700)]
[i915] Include header to pick up intel_ttm_bo_create_from_handle() proto.

17 years agoMerge branch 'origin'
Eric Anholt [Mon, 29 Oct 2007 20:24:27 +0000 (13:24 -0700)]
Merge branch 'origin'

17 years agoMerge branch 'master' of ssh://git.freedesktop.org/git/mesa/mesa
Jesse Barnes [Mon, 29 Oct 2007 19:06:36 +0000 (12:06 -0700)]
Merge branch 'master' of ssh://git.freedesktop.org/git/mesa/mesa

17 years agoRefactor and fix core vblank support
Jesse Barnes [Mon, 29 Oct 2007 18:56:31 +0000 (11:56 -0700)]
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.

17 years agoBuild xdemos programs by default on linux-dri
Dan Nicholson [Mon, 29 Oct 2007 18:21:37 +0000 (11:21 -0700)]
Build xdemos programs by default on linux-dri

Since libglut is no longer hardcoded, we can build the xdemos programs
so long as a GLX enabled libGL and libGLU have been built.

17 years agoRemember to call XSync() before resetting X error handler.
Chris Rankin [Mon, 29 Oct 2007 18:37:32 +0000 (14:37 -0400)]
Remember to call XSync() before resetting X error handler.

17 years agolinux-dri-xcb: Fix undefined refs when linking with libGL
Dan Nicholson [Mon, 29 Oct 2007 18:17:04 +0000 (11:17 -0700)]
linux-dri-xcb: Fix undefined refs when linking with libGL

GL_LIB_DEPS was missing -lXdamage and -lXfixes, which was causing
linker errors when trying to build the programs.

17 years agodisable ctx->Driver.NewProgram() call in _mesa_new_program()
Brian [Mon, 29 Oct 2007 16:01:15 +0000 (10:01 -0600)]
disable ctx->Driver.NewProgram() call in _mesa_new_program()

This was causing infinite recursive calls w/ software drivers.
All vertex/fragment shaders should be allocated by calling
ctx->Driver.NewProgram(), not by calling _mesa_new_program().

17 years agoupdate APP_LIB_DEPS for static library configs (patch 3/3)
Dan Nicholson [Mon, 29 Oct 2007 15:05:13 +0000 (09:05 -0600)]
update APP_LIB_DEPS for static library configs (patch 3/3)

17 years agosimplify APP_LIB_DEPS (patch 2/3)
Dan Nicholson [Mon, 29 Oct 2007 15:04:30 +0000 (09:04 -0600)]
simplify APP_LIB_DEPS (patch 2/3)

17 years agospecify app lib dependencies in Makefiles (patch 1/3)
Dan Nicholson [Mon, 29 Oct 2007 15:03:01 +0000 (09:03 -0600)]
specify app lib dependencies in Makefiles (patch 1/3)

17 years agoOnly set R_MODE with NV_point_sprite
Alan Hourihane [Sun, 28 Oct 2007 20:07:37 +0000 (20:07 +0000)]
Only set R_MODE with NV_point_sprite

17 years agoconfigs: Fix linux-static to link correctly
Dan Nicholson [Fri, 26 Oct 2007 22:43:44 +0000 (15:43 -0700)]
configs: Fix linux-static to link correctly

The linux-static target was missing necessary libraries and hardcoding
their location to /usr/X11R6/lib. This makes it comparable to the x86
and x86-64 static targets.

17 years agoMerge branch '965-glsl'
Zou Nan hai [Fri, 26 Oct 2007 07:39:50 +0000 (15:39 +0800)]
Merge branch '965-glsl'

Conflicts:

src/mesa/drivers/dri/i965/brw_sf.h
src/mesa/drivers/dri/i965/intel_context.c

17 years agouse grep -q
Brian [Thu, 25 Oct 2007 20:46:35 +0000 (14:46 -0600)]
use grep -q

17 years agoIgnore new programs
Dan Nicholson [Thu, 25 Oct 2007 18:34:16 +0000 (11:34 -0700)]
Ignore new programs

17 years agosimplify/fix the ASM_FLAGS tests (bug 12931)
Brian [Thu, 25 Oct 2007 17:10:10 +0000 (11:10 -0600)]
simplify/fix the ASM_FLAGS tests (bug 12931)

17 years agoadded catamount-osmesa-pgi config
Alex Neundorf [Wed, 24 Oct 2007 22:31:22 +0000 (16:31 -0600)]
added catamount-osmesa-pgi config

17 years agodon't build x86, x86-64 dirs if not needed
Brian [Wed, 24 Oct 2007 22:24:06 +0000 (16:24 -0600)]
don't build x86, x86-64 dirs if not needed

17 years agofix assorted bugs, works now
Brian [Wed, 24 Oct 2007 19:55:22 +0000 (13:55 -0600)]
fix assorted bugs, works now

17 years agoadd to git
Brian [Wed, 24 Oct 2007 18:43:02 +0000 (12:43 -0600)]
add to git

17 years agoImplement gl_PointCoord attribute for GLSL fragment shaders.
Brian [Wed, 24 Oct 2007 17:37:05 +0000 (11:37 -0600)]
Implement gl_PointCoord attribute for GLSL fragment shaders.

Contains the normalized fragment position within a point sprite.

17 years agoproperly init dst reg's CondMask/Swizzle fields
Brian [Tue, 23 Oct 2007 16:55:24 +0000 (10:55 -0600)]
properly init dst reg's CondMask/Swizzle fields

17 years agobump up MAX_INSTRUCTIONS and add an assertion to catch emitting too many instructions
Brian [Tue, 23 Oct 2007 16:24:53 +0000 (10:24 -0600)]
bump up MAX_INSTRUCTIONS and add an assertion to catch emitting too many instructions

17 years agoadd directfb glut sources to tarball
Brian [Tue, 23 Oct 2007 14:22:21 +0000 (08:22 -0600)]
add directfb glut sources to tarball

17 years agodon't apply ColorMask to main gc
Brian [Mon, 22 Oct 2007 23:50:17 +0000 (17:50 -0600)]
don't apply ColorMask to main gc

17 years agoglxinfo: Try creating a GLX context using an fbconfig if no visuals are available.
Kristian Høgsberg [Thu, 18 Oct 2007 19:19:08 +0000 (15:19 -0400)]
glxinfo: Try creating a GLX context using an fbconfig if no visuals are available.

17 years agoi915: Add some sanity checks to blit command debugging code.
Michel Dänzer [Thu, 18 Oct 2007 16:30:15 +0000 (18:30 +0200)]
i915: Add some sanity checks to blit command debugging code.

17 years agoFramework for supporting z24_s8 and z32 depth textures on r300.
Ian Romanick [Wed, 17 Oct 2007 20:11:01 +0000 (13:11 -0700)]
Framework for supporting z24_s8 and z32 depth textures on r300.

17 years agoInitial support for ARB_depth_texture
Ian Romanick [Wed, 17 Oct 2007 19:07:04 +0000 (12:07 -0700)]
Initial support for ARB_depth_texture

Currently only GL_DEPTH_COMPONENT16 are supported.  I don't know what the
hardware bits are to select the other formats, but it shouldn't be too hard
to figure out.

17 years agoSupport cards that have ARB_fp but not ARB_shadow.
Ian Romanick [Wed, 17 Oct 2007 19:05:55 +0000 (12:05 -0700)]
Support cards that have ARB_fp but not ARB_shadow.

17 years agomga: Enable (trivial) support for GL_APPLE_vertex_array_object, bump DRIVER_DATE
Ian Romanick [Wed, 17 Oct 2007 17:39:24 +0000 (10:39 -0700)]
mga: Enable (trivial) support for GL_APPLE_vertex_array_object, bump DRIVER_DATE

17 years agomga: Enable (trivial) support for GL_EXT_gpu_program_parameters.
Ian Romanick [Wed, 17 Oct 2007 17:36:48 +0000 (10:36 -0700)]
mga: Enable (trivial) support for GL_EXT_gpu_program_parameters.

17 years agopbutil: Do not require GLX_SGIX_pbuffer for fbconfig only-functions.
Kristian Høgsberg [Wed, 17 Oct 2007 21:03:33 +0000 (17:03 -0400)]
pbutil: Do not require GLX_SGIX_pbuffer for fbconfig only-functions.

17 years agoReplace repeat_remainder() with a simpler macro that just casts args to unsigned.
Brian [Wed, 17 Oct 2007 20:30:18 +0000 (14:30 -0600)]
Replace repeat_remainder() with a simpler macro that just casts args to unsigned.

17 years agoPull workaround for unset GLX_DRAWABLE_TYPE back in.
Kristian Høgsberg [Wed, 17 Oct 2007 19:05:47 +0000 (15:05 -0400)]
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.

17 years agoglxinfo: Also print number of fbconfigs.
Kristian Høgsberg [Wed, 17 Oct 2007 18:43:35 +0000 (14:43 -0400)]
glxinfo: Also print number of fbconfigs.

17 years agoDon't call the driver clear hook when the effective scissor rectangle is empty.
Michel Dänzer [Wed, 17 Oct 2007 16:28:03 +0000 (18:28 +0200)]
Don't call the driver clear hook when the effective scissor rectangle is empty.

17 years agoi915: Don't emit 'empty' blit rectangles.
Michel Dänzer [Wed, 17 Oct 2007 16:26:31 +0000 (18:26 +0200)]
i915: Don't emit 'empty' blit rectangles.

The hardware seems to interpret them differently and produce unexpected
results...

17 years agoFixup a couple of thinkos in glxinfo changes.
Kristian Høgsberg [Wed, 17 Oct 2007 14:14:55 +0000 (10:14 -0400)]
Fixup a couple of thinkos in glxinfo changes.

17 years agoHandle fbconfigs and glx visuals separately.
Kristian Høgsberg [Tue, 16 Oct 2007 20:07:47 +0000 (16:07 -0400)]
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.

17 years agoImplement support for printing glx fbconfigs in glxinfo.
Kristian Høgsberg [Tue, 16 Oct 2007 20:01:34 +0000 (16:01 -0400)]
Implement support for printing glx fbconfigs in glxinfo.

17 years agoglxinfo: Only print visuals that actually support GLX.
Kristian Høgsberg [Tue, 16 Oct 2007 00:12:01 +0000 (20:12 -0400)]
glxinfo: Only print visuals that actually support GLX.

17 years agoReplace symlink generation from i915 with files in intel/ and symlinks there.
Eric Anholt [Tue, 16 Oct 2007 19:25:35 +0000 (12:25 -0700)]
Replace symlink generation from i915 with files in intel/ and symlinks there.

17 years agoi915: Make sure extensions that require TTM actually work.
Michel Dänzer [Tue, 16 Oct 2007 13:48:46 +0000 (15:48 +0200)]
i915: Make sure extensions that require TTM actually work.

17 years agoi915: fixup TTM interfaces to follow drm changes
Dave Airlie [Tue, 16 Oct 2007 11:10:44 +0000 (22:10 +1100)]
i915: fixup TTM interfaces to follow drm changes

17 years agoi915: Re-enable __DRItexOffsetExtension.
Michel Dänzer [Tue, 16 Oct 2007 11:01:44 +0000 (13:01 +0200)]
i915: Re-enable __DRItexOffsetExtension.

This seems to have got lost somehow during the recent DRI interface changes.

17 years agofix fog, rescale_normals bugs (from gallium branch)
Brian [Tue, 16 Oct 2007 00:00:17 +0000 (18:00 -0600)]
fix fog, rescale_normals bugs (from gallium branch)

17 years agoRoll back premature version bump.
Kristian Høgsberg [Mon, 15 Oct 2007 16:16:45 +0000 (12:16 -0400)]
Roll back premature version bump.

17 years agoDont add fbconfigs to array that we didn't allocate for.
Kristian Høgsberg [Thu, 30 Aug 2007 17:05:59 +0000 (13:05 -0400)]
Dont add fbconfigs to array that we didn't allocate for.

17 years agofaster write_rgba_span_front()
Andreas Micheler [Mon, 15 Oct 2007 14:26:03 +0000 (08:26 -0600)]
faster write_rgba_span_front()

17 years agotypo
George Sapountzis [Sun, 14 Oct 2007 17:33:56 +0000 (20:33 +0300)]
typo

17 years agoAdd GL_CORE_WINDOWS define to glcore.h
George Sapountzis [Tue, 25 Sep 2007 09:49:29 +0000 (12:49 +0300)]
Add GL_CORE_WINDOWS define to glcore.h

This is for consistency with glproto. The GL_CORE defines should probably be
dropped.

----

Author: Alexander Gottwald <alexander.gottwald@s1999.tu-chemnitz.de>
Date:   Mon Jun 21 13:35:05 2004 +0000

    Bug 782: Merge native OpenGL for Windows from CYGWIN branch

17 years agoDrop include "dri_interface.h" from xf86dri.h
George Sapountzis [Sun, 14 Oct 2007 16:59:33 +0000 (19:59 +0300)]
Drop include "dri_interface.h" from xf86dri.h

Thanks to dri2, xf86dri no longer uses __DRI types.

17 years agoDo XSync() before resetting error handler.
Kristian Høgsberg [Thu, 30 Aug 2007 17:00:20 +0000 (13:00 -0400)]
Do XSync() before resetting error handler.

17 years agoUncomment GLX_SGIX_pbuffer definition.
Kristian Høgsberg [Mon, 27 Aug 2007 18:15:49 +0000 (14:15 -0400)]
Uncomment GLX_SGIX_pbuffer definition.

17 years agoGet the width and height from the attrib list in glXCreatePbuffer.
Kristian Høgsberg [Mon, 27 Aug 2007 18:16:30 +0000 (14:16 -0400)]
Get the width and height from the attrib list in glXCreatePbuffer.

17 years agoMerge branch 'dri2'
Kristian Høgsberg [Fri, 12 Oct 2007 23:35:04 +0000 (19:35 -0400)]
Merge branch 'dri2'

Conflicts:

src/mesa/drivers/dri/i915/intel_screen.c

17 years agoMerge branch 'master' into i915-superioctl
Dave Airlie [Fri, 12 Oct 2007 01:02:46 +0000 (11:02 +1000)]
Merge branch 'master' into i915-superioctl

17 years agoi915: only enable TTM path if drm minor is > 11 for superioctl
Dave Airlie [Fri, 12 Oct 2007 01:01:17 +0000 (11:01 +1000)]
i915: only enable TTM path if drm minor is > 11 for superioctl

17 years agodri: remove ttm common code since superioctl is device specific
Dave Airlie [Fri, 12 Oct 2007 00:59:38 +0000 (10:59 +1000)]
dri: remove ttm common code since superioctl is device specific

17 years agoi915: fixup reloc header defines
Dave Airlie [Fri, 12 Oct 2007 00:56:25 +0000 (10:56 +1000)]
i915: fixup reloc header defines

17 years agoExample of cooperative rendering into one window by two processes
Brian [Fri, 12 Oct 2007 00:25:12 +0000 (18:25 -0600)]
Example of cooperative rendering into one window by two processes

17 years agoNew glxsnoop demo to display another window's z/stencil/back buffer.
Brian [Thu, 11 Oct 2007 22:39:02 +0000 (16:39 -0600)]
New glxsnoop demo to display another window's z/stencil/back buffer.

17 years agoDrop no longer implemented MESA allocate extension from i915.
Kristian Høgsberg [Thu, 11 Oct 2007 16:49:26 +0000 (12:49 -0400)]
Drop no longer implemented MESA allocate extension from i915.

17 years agoremove unneeded cast
Brian [Thu, 11 Oct 2007 16:33:31 +0000 (10:33 -0600)]
remove unneeded cast

17 years agoAdd a version field to __DRIextension.
Kristian Høgsberg [Thu, 7 Jun 2007 23:35:54 +0000 (19:35 -0400)]
Add a version field to __DRIextension.

17 years agoMove new texOffset extension to the new extension mechanism.
Kristian Høgsberg [Tue, 22 May 2007 16:26:02 +0000 (12:26 -0400)]
Move new texOffset extension to the new extension mechanism.

17 years agoConvert a left-over private void * to __DRIcontext *.
Kristian Høgsberg [Thu, 17 May 2007 20:11:19 +0000 (16:11 -0400)]
Convert a left-over private void * to __DRIcontext *.

17 years agoMove enabling of DRI extensions into glxextensions.c
Kristian Høgsberg [Thu, 17 May 2007 19:47:47 +0000 (15:47 -0400)]
Move enabling of DRI extensions into glxextensions.c

17 years agoRemove now unused getProcAddress from DRIinterfaceMethods.
Kristian Høgsberg [Thu, 17 May 2007 19:33:14 +0000 (15:33 -0400)]
Remove now unused getProcAddress from DRIinterfaceMethods.

17 years agoAdd a DRI_ReadDrawable marker extension to signal read drawable capability.
Kristian Høgsberg [Thu, 17 May 2007 18:39:06 +0000 (14:39 -0400)]
Add a DRI_ReadDrawable marker extension to signal read drawable capability.

17 years agoMove media stream counter entry points to new extension.
Kristian Høgsberg [Wed, 16 May 2007 22:13:41 +0000 (18:13 -0400)]
Move media stream counter entry points to new extension.

17 years agoMove GLX_MESA_swap_frame_usage DRI entry points to the new mechanism.
Kristian Høgsberg [Wed, 16 May 2007 19:50:40 +0000 (15:50 -0400)]
Move GLX_MESA_swap_frame_usage DRI entry points to the new mechanism.

17 years agoMove GLX_MESA_allocate_memory related functions to new extension mechanism.
Kristian Høgsberg [Wed, 16 May 2007 18:10:29 +0000 (14:10 -0400)]
Move GLX_MESA_allocate_memory related functions to new extension mechanism.

17 years agoMove swap_interval to new extension mechanism.
Kristian Høgsberg [Tue, 15 May 2007 20:09:44 +0000 (16:09 -0400)]
Move swap_interval to new extension mechanism.

17 years agoMove the copySubBuffer extension over to the new mechanism.
Kristian Høgsberg [Tue, 15 May 2007 19:17:30 +0000 (15:17 -0400)]
Move the copySubBuffer extension over to the new mechanism.

17 years agoImplement new screen extension API.
Kristian Høgsberg [Tue, 15 May 2007 16:31:31 +0000 (12:31 -0400)]
Implement new screen extension API.

This new API lets the loader examine DRI level extensions provided by the
driver in a forward compatible manner.

Much of the churn in the DRI interface is adding support for new
extensions or removing old, unused extensions.  This new extension
mechanism lets the loader query the extensions provided by the driver
and implement the extensions it knows about.  Deprecating extensions
is done by not exporting that extension in the list, which doesn't
require keeping old function pointers around to preserve ABI.

17 years agoStop passing in unused fbconfigs to createNewScreen.
Kristian Høgsberg [Mon, 14 May 2007 21:07:16 +0000 (17:07 -0400)]
Stop passing in unused fbconfigs to createNewScreen.

17 years agoPull createNewScreen entry point into dri_util.c.
Kristian Høgsberg [Mon, 14 May 2007 20:58:37 +0000 (16:58 -0400)]
Pull createNewScreen entry point into dri_util.c.

This pulls the top level createNewScreen entry point out of the drivers
and rewrites __driUtilCreateNewScreen in dri_util.c to be the new entry point.

The change moves more logic into the common/ layer and changes the
createNewScreen entry point to only be defined in one place.

17 years agoReplace open-coded major, minor, and patch version fields with __DRIversionRec.
Kristian Høgsberg [Mon, 14 May 2007 20:37:19 +0000 (16:37 -0400)]
Replace open-coded major, minor, and patch version fields with __DRIversionRec.

17 years agoConvert all DRI entrypoints to take pointers to __DRI* types.
Kristian Høgsberg [Fri, 11 May 2007 20:43:20 +0000 (16:43 -0400)]
Convert all DRI entrypoints to take pointers to __DRI* types.

The entrypoints take a mix of __DRIscreen * and void * (screen private)
arguments (similarly for contexts and drawables).  This patch does away
with passing the private void pointer and always only passes the fully
typed __DRIscreen pointer and always as the first argument.

This makes the interface more consistent and increases type safety, and
catches a bug where we would pass a screen private to DRIdrawable::getSBC.

17 years agoRemove screenConfigs from __DRIscreen.
Kristian Høgsberg [Fri, 11 May 2007 20:11:23 +0000 (16:11 -0400)]
Remove screenConfigs from __DRIscreen.

The screenConfigs field of __DRIscreen points back to the containing
__GLXscreenConfigs struct.  This is a serious abstraction violation; it
assumes that the loader is libGL and that there *is* a __GLXscreenConfigs
type in the loader.

Using the containerOf macro, we can get from the __DRIscreen pointer to
the containing __GLXscreenConfigs struct, at a place in the stack
where the above is a valid assumption.  Besides, the __DRI* structs shouldn't
hold state other than the private pointer.

17 years agoDrop mostly unused __DRIid typedef.
Kristian Høgsberg [Fri, 11 May 2007 17:54:44 +0000 (13:54 -0400)]
Drop mostly unused __DRIid typedef.

17 years agoAvoid deadlock in GarbageCollectDRIDrawables.
Kristian Høgsberg [Fri, 11 May 2007 17:24:34 +0000 (13:24 -0400)]
Avoid deadlock in GarbageCollectDRIDrawables.

__glXinitialize() can't be called with the GLX lock held.  Just
pass in the __GLXscreenConfigs pointer so we don't have to look it
up in __GLXdisplayPrivate.

17 years agoDrop createContext and destroyContext from DRIinterfaceMethods.
Kristian Høgsberg [Thu, 10 May 2007 22:38:49 +0000 (18:38 -0400)]
Drop createContext and destroyContext from DRIinterfaceMethods.

As for createDrawable and destroyDrawable, these functions immediately
upon entry to driCreateNewContext and immediately before exit from
driDestroyContext.  Instead of passing function pointers back and forth
just obtain the drm_context_t prior to calling DRIscreen::createNewContext
and pass it as a parameter.

This change also lets us keep the DRI context XID in the libGL loader only.

17 years agoDrop createDrawable and destroyDrawable fron DRIinterfaceMethods.
Kristian Høgsberg [Thu, 10 May 2007 21:14:38 +0000 (17:14 -0400)]
Drop createDrawable and destroyDrawable fron DRIinterfaceMethods.

All the DRI driver did was call the createDrawable callback immediately
upon entry to DRIscreen::createNewDrawable to get the drm_drawable_t.
We can just call that before calling into the DRI driver and pass the
returned drm_drawable_t as an argument to the DRI entry point.

Likewise for destroyDrawable.

Also, DRIdrawablePrivate::draw isn't used anywhere, and since the
driver no longer needs the XID of the drawable we can now drop that.

17 years agoKey drm_i915_flip_t typedef off of the ioctl #define instead.
Kristian Høgsberg [Wed, 10 Oct 2007 21:07:01 +0000 (17:07 -0400)]
Key drm_i915_flip_t typedef off of the ioctl #define instead.

17 years agoDrop __DRInativeDisplay and pass in __DRIscreen pointers instead.
Kristian Høgsberg [Thu, 10 May 2007 19:52:22 +0000 (15:52 -0400)]
Drop __DRInativeDisplay and pass in __DRIscreen pointers instead.

Many DRI entry points took a __DRInativeDisplay pointer and a screen
index as arguments.  The only use for the native display pointer was to
pass it back to the loader when looking up the __DRIscreen for the given
screen index.

Instead, let's just pass in the __DRIscreen pointer directly, which
let's drop the __DRInativeDisplay type and the getScreen function.

The assumption is now that the loader will be able to retrieve context
from the __DRIscreen pointer when necessary.