summaryrefslogtreecommitdiff
path: root/glx
AgeCommit message (Collapse)AuthorFilesLines
2011-09-21Remove unnecessary #undefs of [f]abs and old commentsMatt Turner1-6/+0
Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com> Tested-by: Jeremy Huddleston <jeremyhu@apple.com> Reviewed-by: Daniel Stone <daniel@fooishbar.org> Signed-off-by: Matt Turner <mattst88@gmail.com>
2011-07-07glx: Remove a few lingering traces of __GLXscreen.GLXVersionJon TURNEY1-1/+0
The GLXversion member of the __GLXscreen struct is just cruft since commit ad5c0d9efa47476ed5cf75c82265c73919e468b4, when we started returning the minimum GLX version supported by all of the screens on the display, rather than the maximum version supported by the server. Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com> Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
2011-06-29Merge remote-tracking branch 'jturney/master'Keith Packard2-3/+10
2011-06-29Merge remote-tracking branch 'jbarnes/master'Keith Packard1-5/+4
2011-06-29glx: Move GLX extension string utility functionsJon TURNEY1-3/+3
Move GLX extension string utility functions from the DRI1 convenience library into the GLX extension convenience library, so other DDX which don't have DRI can use them. This is probably also needed if anyone actually tries to build an Xorg DDX with only DRI2 support... Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk> Reviewed-by: Kristian Høgsberg <krh@bitplanet.net>
2011-06-29DRI2/GLX: use new swap event typesJesse Barnes1-4/+3
Use the new event types so we can pass a valid SBC value to clients. Fix up the completion calls to use CARD32 instead of CARD64 to match the new field size. Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2011-06-29GLX/DRI2: pass drawable correctly for indirect swap eventsJesse Barnes1-1/+1
Pass the right drawable pointer as data to the swap complete function. Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
2011-06-29glx: Fix fbconfigs with no corresponding visualAdam Jackson1-0/+7
There are, in general, more fbconfig depths than visual depths. fbconfigs need not support Window rendering, however any that do must have an associated visual ID (which we got right), and any that do not must not claim GLX_WINDOW_BIT in GLX_DRAWABLE_TYPE (which we got wrong). Fixes piglit/glx-fbconfig-sanity, assuming you have a sufficiently recent piglit, as that test formerly wrongly required pixmap-capable fbconfigs to have a visual. v2: Additional check for fbconfigs that didn't have GLX_WINDOW_BIT in the first place, from previous patch by Jon TURNEY; also, also clear ->visualID. Reviewed-by: Jon TURNEY <jon.turney@dronecode.org.uk> Signed-off-by: Adam Jackson <ajax@redhat.com>
2011-06-28Guard use of backtrace() with HAVE_BACKTRACEJon TURNEY1-0/+6
Guard the use of backtrace() with HAVE_BACKTRACE, since we already have the autoconf machinery for setting that. For the moment, assume dladdr() is available when backtrace() is Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk> Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
2011-06-15glx: Add _glapi_create_table_from_handleJeremy Huddleston3-0/+7587
_glapi_create_table_from_handle was recently added to mesa to ease creation of a _glapi_table. This commit brings this API over to xserver for use in XQuartz (next commit). The API was generated with scripts from current mesa followed by various script-foo to remove entries that are not in the server and add those which are still in the server but not in mesa (CullParameterdvEXT and CullParameterfvEXT) Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com> Reviewed-by: Adam Jackson <ajax@redhat.com>
2011-04-29Merge remote-tracking branch 'jturney/remove-opengl-spec-download'Keith Packard1-1/+1
2011-04-27Merge remote-tracking branch 'jeremyhu/master'Keith Packard3-8/+4
2011-04-26configure: Let configure --enable/disable-aiglx control building of AIGLX ↵Jon TURNEY1-1/+1
for all DDXs Let configure --enable/disable-aiglx control building of AIGLX for all DDXs. Currently we can't use --enable/disable-aiglx to control if Xwin DDX is built with AIGLX enabled, as at the moment it's forced off if we aren't building the X.Org DDX DRI or DRI2 loader Rearrange things a bit, introducing a new automake conditional, AIGLX_DRI_LOADER to specifically indicate if the X.Org DDX DRI/DRI2 loader convenience library should be built, and replace the previous X.Org DDX-specific uses of the AIGLX conditional with that As before, AIGLX_DRI_LOADER is only enabled if --enable-glx, --enable-aiglx and at least one of --enable-dri or --enable-dri2 are enabled This allows the general conditional AIGLX to control if AIGLX is built for the XWin DDX as well The C #define AIGLX set by AC_DEFINE(AIGLX) seems to be obsolete, I can't find anything which checks it Updated for ajax's "glx: Make --disable-dri not disable AIGLX" patch, which allows DRI2 to be enabled independently of DRI1 Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk> Reviewed-by: Colin Harrison <colin.harrison@virgin.net> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
2011-04-25glx: Silence warnings when building with clangJeremy Huddleston3-8/+4
This replaces AX_TLS (GPL3) with XORG_TLS (MIT) In file included from glapi.c:46: In file included from ./glapi.h:51: ./glthread.h:237:20: error: unknown attribute 'tls_model' ignored [-Werror,-Wunknown-attributes] __attribute__((tls_model("initial-exec"))); ^ In file included from glapi.c:46: ./glapi.h:92:20: error: unknown attribute 'tls_model' ignored [-Werror,-Wunknown-attributes] __attribute__((tls_model("initial-exec"))); ^ glapi.c:82:20: error: unknown attribute 'tls_model' ignored [-Werror,-Wunknown-attributes] __attribute__((tls_model("initial-exec"))) = NULL; ^ glapi.c:85:20: error: unknown attribute 'tls_model' ignored [-Werror,-Wunknown-attributes] __attribute__((tls_model("initial-exec"))); ^ 4 errors generated. Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com> Tested-by: Jamey Sharp <jamey@minilop.net> Acked-by: Alan Coopersmith <alan.coopersmith@oracle.com> Reviewed-by: Ian Romanick <ian.d.romanick@intel.com>
2011-04-22Add RegionInitBoxes(), and fix some buggy callers of RegionInit().Søren Sandmann Pedersen1-4/+13
The interface to RegionInit(): RegionInit (RegionPtr pReg, BoxPtr rect, int size); is very confusing because it doesn't take a list of boxes, it takes *one* box, but if that box is NULL, it initializes an empty region with 'size' rectangles preallocated. Most callers of this function were correctly passing either NULL or just one box, but there were three confused cases, where the code seems to expect a region to be created from a list of boxes. This patch adds a new function RegionInitBoxes() and fixes those instances to call that instead. And yes, the pixman function to initialize a region from a list of boxes is called init_rects() because pixman is also awesome. V2: Make RegionInitBoxes() return a Bool indicating whether the call succeeded, and fix the callers to check this return value. Reviewed-by: Keith Packard <keithp@keithp.com> Signed-off-by: Søren Sandmann <ssp@redhat.com>
2011-04-15glx: Make --disable-dri not disable AIGLXAdam Jackson1-1/+4
Either the DRI1 or DRI2 loaders are sufficient. Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> Signed-off-by: Adam Jackson <ajax@redhat.com>
2011-04-15glx: Use 0 rather than garbage for unknown INTEL_swap_event typesAdam Jackson1-0/+1
Otherwise the garbage you return could well be numerically identical to one of the swap type tokens, and apps which rely on us to tell the truth would be in trouble. Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org> Signed-off-by: Adam Jackson <ajax@redhat.com>
2011-04-15glx: Fix lifetime tracking for pixmapsAdam Jackson2-13/+20
GLX pixmaps take a reference on the underlying pixmap; X and GLX pixmap IDs can be destroyed in either order with no error. Only windows need to be tracked under both XIDs. Fixes piglit/glx-pixmap-life. Reviewed-by: Michel Dänzer <michel@daenzer.net> Signed-off-by: Adam Jackson <ajax@redhat.com>
2011-03-28glx: minor cast cleanupAdam Jackson1-4/+3
Reviewed-by: Eric Anholt <eric@anholt.net> Signed-off-by: Adam Jackson <ajax@redhat.com>
2011-03-28glx: dead variable removalAdam Jackson2-10/+0
Reviewed-by: Eric Anholt <eric@anholt.net> Signed-off-by: Adam Jackson <ajax@redhat.com>
2011-03-28glx: Remove some obfuscatory macrosAdam Jackson6-25/+17
Reviewed-by: Eric Anholt <eric@anholt.net> Signed-off-by: Adam Jackson <ajax@redhat.com>
2011-03-28glx: Remove ->forceCurrent from the context vtableAdam Jackson5-45/+1
All the implementations of makeCurrent and forceCurrent are identical, so just use makeCurrent everywhere. Reviewed-by: Eric Anholt <eric@anholt.net> Signed-off-by: Adam Jackson <ajax@redhat.com>
2011-03-28glx: Reimplement context tagsAdam Jackson3-112/+24
This would let you do a constant-time context lookup, but if that's your performance problem you have two problems. Just use the context's XID as the tag value instead. In order to do this, we have to defer destroying a context until it actually goes unreferenced, as you're allowed to mention a context tag after you've (ostensibly) destroyed the context, as long as it's still your current context. Thus, change DestroyContext to merely mark the context as dead if it's a current context, and call down to actual resource destruction (and XID reclamation) in StopUsingContext. Also, stop trying to delete context state from DrawableGone. This was always broken, as GLX does not say that contexts are destroyed when their drawables are destroyed. But with the above change to defer context destruction, this would trigger a server crash on client exit as we'd free the context state twice. Reviewed-by: Eric Anholt <eric@anholt.net> Signed-off-by: Adam Jackson <ajax@redhat.com>
2011-03-28glx: Fix _glapi_add_dispatchAdam Jackson1-200/+20
We never need to generate stubs, because those conditions can't happen in the server. Yank that code out, but keep the bookkeeping for which extension functions are registered so the DRI driver doesn't get confused. As a pleasant bonus, we're now friendlier for environments like selinux that make runtime code generation difficult, and we're portable to more arches since we don't have to port the assembly stubs. Fixes the following clutter conformance tests (indirect rendering, llvmpipe driver): test-cogl-backface-culling test-cogl-materials test-cogl-readpixels test-cogl-texture-mipmaps test-cogl-texture-get-set-data test-cogl-viewport test-cogl-offscreen Reviewed-by: Dave Airlie <airlied@redhat.com> Signed-off-by: Adam Jackson <ajax@redhat.com>
2011-03-28glx: Flatten -DXFree86ServerAdam Jackson2-44/+0
Always defined by the makefile, so, just get rid of it. Reviewed-by: Dave Airlie <airlied@redhat.com> Signed-off-by: Adam Jackson <ajax@redhat.com>
2011-03-28glx: Update some glapi commentsAdam Jackson1-32/+6
Reviewed-by: Dave Airlie <airlied@redhat.com> Reviewed-by: Julien Cristau <jcristau@debian.org> Signed-off-by: Adam Jackson <ajax@redhat.com>
2011-03-28glx: Lobotomize _glapi_get_proc_addressAdam Jackson1-34/+7
This isn't a meaningful thing in the indirect glx loader, so just warn if it ever happens and move on. But also, mark it PUBLIC, so if the driver does ever call it we merely warn instead of aborting because ld.so can't find the symbol. Reviewed-by: Dave Airlie <airlied@redhat.com> Signed-off-by: Adam Jackson <ajax@redhat.com>
2011-03-28glx: Remove noop dispatch tableAdam Jackson4-6752/+2
We can never hit this, because the indirect GLX dispatch code always forces a current context and checks that it's non-NULL before calling into the dispatch table. If it's _not_ null, then _glapi_set_context will call into the driver, which is responsible for calling _glapi_set_dispatch to make sure the dispatch table is non-NULL. Also remove _glapi_set_warning_func and friends, since we can no longer call them even from dead code. Reviewed-by: Dave Airlie <airlied@redhat.com> Signed-off-by: Adam Jackson <ajax@redhat.com>
2011-03-23GLX: Support TLS with better portabilityJeremy Huddleston3-4/+4
AX_TLS detects when toolchains support __thread or __declspec(thread), but existing code assumed __thread. This also adds a check to configure.ac to error out if TLS is requested but unsupported. Found-by: Tinderbox http://tinderbox.x.org/builds/2011-03-22-0007 Regression-from: 82b1eaa6cad20f39dbf15573bdb3d62acbcd91f9 Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com> Reviewed-by: Tom Fogal <tfogal@alumni.unh.edu> Reviewed-by: Dan Nicholson <dbn.lists@gmail.com>
2011-03-14glx: Use PATH_MAX as size of filename bufferChristopher James Halse Rogers1-1/+1
Reviewed-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
2011-03-14glx: Factor out glxProbeDriver function.Christopher James Halse Rogers5-110/+77
DRI, DRI2 and swrast all had near-identical driver probing logic. Pull it into glxdricommon. [ajax: warning fix] Reviewed-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
2011-03-14glx: Add texbuffer2 support to swrastAdam Jackson1-0/+8
Reviewed-by: Julien Cristau <jcristau@debian.org> Signed-off-by: Adam Jackson <ajax@redhat.com>
2011-03-08glx: Remove unused _glapi_get_proc_nameAdam Jackson2-52/+0
Reviewed-by: Julien Cristau <jcristau@debian.org> Signed-off-by: Adam Jackson <ajax@redhat.com>
2011-03-08glx: Simplify _glapi_check_multithreadAdam Jackson1-45/+4
We can guarantee that the X server does not call DRI driver services from multiple threads, so _glapi_check_multithread need never do anything special. As a result, ThreadSafe is always false, so remove it and simplify expressions where it appeared to match. Reviewed-by: Julien Cristau <jcristau@debian.org> Signed-off-by: Adam Jackson <ajax@redhat.com>
2011-03-08glx: unifdef BEOS_THREADSAdam Jackson2-42/+1
We don't support BeOS, so, no. Reviewed-by: Daniel Stone <daniel@fooishbar.org> Signed-off-by: Adam Jackson <ajax@redhat.com>
2011-03-08glx: unifdef USE_XTHREADSAdam Jackson2-96/+1
xthreads is an ancient wrapper around a half dozen or so common thread APIs, including pthreads. Just use pthreads directly if you have it; if you don't, get with the times. Reviewed-by: Julien Cristau <jcristau@debian.org> Signed-off-by: Adam Jackson <ajax@redhat.com>
2011-03-08glx: unifdef SOLARIS_THREADSAdam Jackson2-94/+1
Solaris 7 and older are not supported; Solaris 8 and later have (and use) pthreads. Acked-by: Alan Coopersmith <alan.coopersmith@oracle.com> Signed-off-by: Adam Jackson <ajax@redhat.com>
2011-03-08glx: Remove unused _glapi_get_proc_offset and friendsAdam Jackson2-126/+0
Reviewed-by: Julien Cristau <jcristau@debian.org> Signed-off-by: Adam Jackson <ajax@redhat.com>
2011-02-15glx: Work around wrong request lengths sent by mesaJulien Cristau2-9/+22
mesa used to send too long requests for GLXDestroyPixmap, GLXDestroyWindow, GLXChangeDrawableAttributes, GLXGetDrawableAttributes and GLXGetFBConfigsSGIX. Fixes a regression introduced in ec9c97c6bf70b523bc500bd3adf62176f1bb33a4 X.Org bug#33324 <https://bugs.freedesktop.org/show_bug.cgi?id=33324> Reported-by: xunx.fang@intel.com Signed-off-by: Julien Cristau <jcristau@debian.org> Reviewed-by: Adam Jackson <ajax@redhat.com>
2011-02-15glx: fix BindTexImageEXT length checkJulien Cristau2-2/+14
The request is followed by a list of attributes. X.Org bug#33449 Reported-and-tested-by: meng <mengmeng.meng@intel.com> Signed-off-by: Julien Cristau <jcristau@debian.org> Reviewed-by: Adam Jackson <ajax@redhat.com>
2011-02-15glx: fix request length check for CreateGLXPbufferSGIXJulien Cristau2-2/+2
The request is followed by an attribute list. Signed-off-by: Julien Cristau <jcristau@debian.org> Reviewed-by: Adam Jackson <ajax@redhat.com>
2011-01-10glx: validate numAttribs field before using itJulien Cristau2-0/+45
Reviewed-by: Kristian Høgsberg <krh@bitplanet.net> Reviewed-by: Daniel Stone <daniel@fooishbar.org> Signed-off-by: Julien Cristau <jcristau@debian.org>
2011-01-10glx: swap the request arrays entirely, not just half of themJulien Cristau1-5/+5
Various glx requests include a list of pairs of attributes. We were only swapping the first half. Reviewed-by: Kristian Høgsberg <krh@bitplanet.net> Reviewed-by: Daniel Stone <daniel@fooishbar.org> Signed-off-by: Julien Cristau <jcristau@debian.org>
2011-01-10glx: check request length before swappingJulien Cristau1-5/+130
Reviewed-by: Kristian Høgsberg <krh@bitplanet.net> Reviewed-by: Daniel Stone <daniel@fooishbar.org> Signed-off-by: Julien Cristau <jcristau@debian.org>
2011-01-10glx: validate request lengthsJulien Cristau2-9/+135
Reviewed-by: Adam Jackson <ajax@redhat.com> Reviewed-by: Kristian Høgsberg <krh@bitplanet.net> Reviewed-by: Daniel Stone <daniel@fooishbar.org> Signed-off-by: Julien Cristau <jcristau@debian.org>
2011-01-10glx: make sure screen is non-negative in validGlxScreenJulien Cristau1-1/+1
Reviewed-by: Adam Jackson <ajax@redhat.com> Reviewed-by: Kristian Høgsberg <krh@bitplanet.net> Reviewed-by: Daniel Stone <daniel@fooishbar.org> Signed-off-by: Julien Cristau <jcristau@debian.org>
2010-12-31glx: warning fixesAdam Jackson1-1/+1
render2.c: In function ‘__glXDisp_Map2d’: render2.c:127: warning: ‘u1’ may be used uninitialized in this function render2.c: In function ‘__glXDisp_Map1d’: render2.c:90: warning: ‘u1’ may be used uninitialized in this function Remove unnecessary test, and change memcpy to memmove as all users were doing overlapping copies. Signed-off-by: Adam Jackson <ajax@redhat.com> Reviewed-by: Daniel Stone <daniel@fooishbar.org>
2010-12-31GLX: DRI2: Fix mismatched-types warningDaniel Stone1-1/+1
All the DRI extension types have a base extension type as their first member to avoid exactly these types of warning. Signed-off-by: Daniel Stone <daniel@fooishbar.org> Reviewed-by: Mark Kettenis <kettenis@openbsd.org> Reviewed-by: Cyril Brulebois <kibi@debian.org>
2010-11-30glx: Remove swap barrier and hyperpipe supportAdam Jackson12-355/+1
Never implemented in any open source driver. The implementation assumed explicit DDX driver knowledge of how the client-side driver worked, since at the time the server's GL renderer was not a DRI driver. But now, it is, so any implementation of these should be done with additional DRI driver API, like the swap control extension. Reviewed-by: Julien Cristau <jcristau@debian.org> Signed-off-by: Kristian Høgsberg <krh@bitplanet.net> Signed-off-by: Adam Jackson <ajax@redhat.com>
2010-11-10Merge remote branch 'whot/for-keith'Keith Packard3-11/+4