summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2011-02-04glx: Cleanup DRI2DrawableDRI2Drawable_refcntPauli Nieminen1-0/+6
glx should cleanup DRI2Drawable when GLXDrawable is destroyed. Signed-off-by: Pauli Nieminen <ext-pauli.nieminen@nokia.com>
2011-02-04dri2: copy front to fake front in SwapBuffersPauli Nieminen1-14/+20
DRI2SwapComplete is too late for front to fake front copy if swap is completed asynchronously. Client could be able to use fake front already before swap completes. Moving front to fake front solves the problem but requires that driver is capable to copy from new front to fake front immediately after ScheduleSwap hook returns. Signed-off-by: Pauli Nieminen <ext-pauli.nieminen@nokia.com>
2011-02-04dri2: Send events only to known clientsPauli Nieminen1-8/+16
If client disconnects and new client gets same id DRI2 events may end to wrong client. DRI2 reference list can be checked to see if the client still owns the DRI2Drawable. Signed-off-by: Pauli Nieminen <ext-pauli.nieminen@nokia.com>
2011-02-04DRI2: Reference count buffers across SwapBuffersChristopher James Halse Rogers2-15/+66
The SwapBuffers request requires that we trigger the swap at some point in the future. Sane drivers implement this by passing this request to something that will trigger a callback with the buffer pointers at the appropriate time. The client can cause those buffers to be freed in X before the trigger occurs, most easily by quitting. This leads to a server crash in the driver when trying to do the swap. See http://bugs.freedesktop.org/show_bug.cgi?id=29065 for Radeon and https://bugs.freedesktop.org/show_bug.cgi?id=28080 for Intel. Signed-off-by: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com> Signed-off-by: Pauli Nieminen <ext-pauli.nieminen@nokia.com>
2011-02-04dri2: Keep DRI2Drawable resource allocated until creator frees itPauli Nieminen3-18/+35
EGLImage requires that image siblings stay valid until all of them has been freed. Base EGLImage is only required for creating new siblings. http://www.khronos.org/registry/egl/extensions/KHR/EGL_KHR_image_base.txt To keep DRI2Drawable until all siblings has been destroyed we need to extent life time of DRI2Drawable beyond the Drawable. We can keep the fake dri2 resource allocated. DRI2 can then searched for fake resource if client tries to use DRI2Drawable after Drawable was destroyed. Signed-off-by: Pauli Nieminen <ext-pauli.nieminen@nokia.com>
2011-02-04dri2: Add reference counting to DRI2Pauli Nieminen1-2/+30
Asynchronous request like SwapBuffers can still reference Drawable after the Drawable has been freed. DRI2Drawable cleanup should be delayed until all asynchronous operations have completed. Reference counted DRI2Drawable helps to keep DRI2Drawable around until all request on it has completed. Signed-off-by: Pauli Nieminen <ext-pauli.nieminen@nokia.com>
2011-02-04dri2: Change driver interface to support DRI2DrawablePauli Nieminen2-36/+58
To let DRI2Drawable exists longer than Drawable driver has to use DRI2DrawablePtr to complete swaps and MSC waits. This allows DRI2 to clean up after all operations complete without accessing the freed DrawablePtr. Signed-off-by: Pauli Nieminen <ext-pauli.nieminen@nokia.com>
2011-02-04dri2: Refactor interface to take DRI2DrawablePtrPauli Nieminen4-146/+169
DRI2 swaps may complete after Drawable has been destroyed. This causes memory management problems as DRI2 internal state is tighly coupled with Drawable. DRI2DrawablePtr can be used to access DRI2 functionality. This provides option that DRI2 drawable can live longer than underlying Drawable. Signed-off-by: Pauli Nieminen <ext-pauli.nieminen@nokia.com> Reviewed-By: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
2011-02-04DRI2: Free DRI2 drawable references in DRI2DestroyDrawablePauli Nieminen3-2/+35
If client calls DRI2CreateDrawable multiple times for same drawable DRI2 creates multiple references. Multiple references cause DRI2 send multiple invalidate events for same client. Problem is triggered because client side EGL implementation is using DRI2 directly. DRI2 code in server doesn't handle DRI2DestroyDrawable that leaks references. If client recreates rendering target EGL destroys and creates DRI2 drawable. In that case DRI2DestroyDrawable leaks DRI2 drawable references. To fix this memory leak/performance problem server has to free the reference when client requests for it. Signed-off-by: Pauli Nieminen <ext-pauli.nieminen@nokia.com> Reviewed-By: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
2011-02-02Merge remote branch 'whot/for-keith'Keith Packard6-48/+44
2011-02-02xfree86/modes: Be sure to only use new EDID for physical output dimensionsEvan Broder1-0/+2
The EDID processing regards physical dimensions of 0mm x 0mm as invalid. Previously the old values for height and width would be preserved if none of the physical dimension specifications in the new EDID were considered valid. This will come up in particular if first a monitor is connected to an output, and then a projector is connected. Since projectors generally report physical dimensions of 0mm x 0mm, this would result in the projector claiming to have the physical dimensions of the monitor. Signed-off-by: Evan Broder <ebroder@mokafive.com> Reviewed-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Keith Packard <keithp@keithp.com>
2011-02-02xserver: enable TLS even if AIGLX is not enabledSamuel Thibault1-1/+1
This aligns the xorg server build with the mesa build, which is needed on systems where aiglx with dri support is not enabled. Else the following error is obtained when trying to load the software raster: (EE) AIGLX error: dlopen of /usr/lib/dri/swrast_dri.so failed (/usr/lib/dri/swrast_dri.so: undefined symbol: _glapi_tls_Context) (EE) GLX: could not load software renderer (II) GLX: no usable GL providers found for screen 0 because mesa always enables TLS use in GLX, even if dri is not available. Signed-off-by: Samuel Thibault <samuel.thibault@ens-lyon.org> Signed-off-by: Julien Cristau <jcristau@debian.org> Signed-off-by: Keith Packard <keithp@keithp.com>
2011-02-02exa/mixed: Exclude frontbuffer from deferred pixmap handling.Maarten Maathuis1-4/+13
- Apps like xterm can trigger a lot of fallback rendering. - This can lead to (annoyingly) high latencies, because you have to wait for the block handler. - You need a driver that doesn't directly access the front buffer to trigger this (NV50+ nouveau for example). - Repeatingly doing dmesg on an xterm with a bitmap font will reveal that you never see part of the text. - I have recieved at least one complaint in the past of slow terminal performance, which was related to core font rendering. - This does sacrifice some throughput, roughly 33% slower. Reviewed-by: Michel Dänzer <michel@daenzer.net> Signed-off-by: Maarten Maathuis <madman2003@gmail.com> Signed-off-by: Keith Packard <keithp@keithp.com>
2011-02-02exa: Only call driver FinishAccess hook if PrepareAccess hook succeeded.Maarten Maathuis1-1/+2
Reviewed-by: Michel Dänzer <michel@daenzer.net> Signed-off-by: Maarten Maathuis <madman2003@gmail.com> Signed-off-by: Keith Packard <keithp@keithp.com>
2011-02-02exa/driver: set pExaPixmap->use_gpu_copy to the right valueMaarten Maathuis1-0/+2
- Not sure if it was causing problems, but you never know. Reviewed-by: Michel Dänzer <michel@daenzer.net> Signed-off-by: Maarten Maathuis <madman2003@gmail.com> Signed-off-by: Keith Packard <keithp@keithp.com>
2011-02-02Merge remote branch 'jeremyhu/master'Keith Packard55-5852/+7387
2011-02-02Merge remote branch 'jturney/master'Keith Packard1-45/+44
2011-02-02Merge remote branch 'dbn/build-fixes'Keith Packard3-5/+85
2011-02-02xselinux: Fix GetDrawableContextAdam Jackson1-4/+2
M_DRAWABLE_PIXMAP is the lookup mask to dixLookupDrawable, and _not_ the type value in the drawable itself. Signed-off-by: Adam Jackson <ajax@redhat.com> Reviewed-by: Eamon Walsh <ewalsh@tycho.nsa.gov> Signed-off-by: Keith Packard <keithp@keithp.com>
2011-01-28XQuartz: Localization UpdatesJeremy Huddleston52-5846/+7358
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
2011-01-27xfree86/dga: Remove DGAIsDgaEvent()Ville Syrjala2-13/+0
DGAIsDgaEvent() is not used anymore. Signed-off-by: Ville Syrjala <syrjala@sci.fi> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
2011-01-27xfree86/dga: Only send DGA events for master devicesVille Syrjala1-0/+3
Signed-off-by: Ville Syrjala <syrjala@sci.fi> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
2011-01-27xfree86/dga: Remove useless ifdefsVille Syrjala1-13/+7
Move some variables to the scope where they are used. Signed-off-by: Ville Syrjala <syrjala@sci.fi> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
2011-01-27xfree86/dga: DGAProcessKeyboardEvent() forgot ET_InternalVille Syrjala1-0/+1
Signed-off-by: Ville Syrjala <syrjala@sci.fi> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
2011-01-27xfree86/dga: Remove DGAMouseX and DGAMouseYVille Syrjala1-13/+0
Previously some sort of absolute coordinates were sent out in the padding of the DGA2 Motion and Button events. DGAMouseX and DGAMouseY were used to keep track of said coordinates. libXxf86dga doesn't use that data for anything, and at least git history didn't show any past usage either. So let's just remove the last remnants of of this mess. Signed-off-by: Ville Syrjala <syrjala@sci.fi> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
2011-01-27xfree86/dga: DGA2 events are missing the dx/dy informationVille Syrjala1-4/+4
Copy dx/dy from the internal event to the DGA2 Motion/Button events. Do the same for Key events for the sake of keeping the code consistent. Signed-off-by: Ville Syrjala <syrjala@sci.fi> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
2011-01-27xfree86/dga: Make mieq_install BoolVille Syrjala1-4/+4
mieq_installed is used as a boolean, so why not make it such. Also it's a static variable, so the the explicit zero initialization can be removed. Signed-off-by: Ville Syrjala <syrjala@sci.fi> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
2011-01-27xfree86/dga: Remove the ET_DGAEvent handler only if it was installedVille Syrjala1-2/+3
Remove the handler only if it was installed. Also mark it as uninstalled, otherwise it wouldn't get reinstalled after a server reset. Signed-off-by: Ville Syrjala <syrjala@sci.fi> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
2011-01-27xfree86/dga: Install the DGA event handler when DGA2 is usedVille Syrjala1-0/+5
The ET_DGAEvent handler is only installed when a client requests relative events via DGA1. Do it also when a client requests DGA2 events. Signed-off-by: Ville Syrjala <syrjala@sci.fi> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
2011-01-27xfree86/input: Restore DGAStealKeyEvent()Ville Syrjala1-0/+13
DGA key event support was lost in commit 8da0ff2d51086666d10ca7330d428e8610a4a0e3. Bring it back. Signed-off-by: Ville Syrjala <syrjala@sci.fi> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
2011-01-27include: Fix a copy/paste error in a commentVille Syrjala1-1/+1
Signed-off-by: Ville Syrjala <syrjala@sci.fi> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
2011-01-27xfree86: bump input minor ABIPeter Hutterer1-1/+1
The new valuator_mask_free() call requires a minor bump. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2011-01-27xkb: Cancel a key's repetition when its autorepeat is disabled.Erkki Seppälä1-1/+6
When XkbChangeEnabledControls is called to disable key repetition of a certain key (or keys), currently ongoing repetition of that key was not cancelled. It was cancelled if ChangeKeyboardControl was used to disable key repetition globally. Reviewed-by: Rami Ylimäki <rami.ylimaki@vincit.fi> Reviewed-by: Dirk Wallenstein <halsmit@t-online.de> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2011-01-25Fix compilation of xf86bigfont.cJon TURNEY1-45/+44
xf86bigfont.c: In function 'XFree86BigfontExtensionInit': xf86bigfont.c:146: error: 'ProcXF86BigfontDispatch' undeclared (first use in this function) xf86bigfont.c:147: error: 'SProcXF86BigfontDispatch' undeclared (first use in this function) It seems this has been broken since commit cbd4d5dbb70db62ba1cb79c7b904e6fa11f62d7e "delete pervasively use of DISPATCH_PROC" (2010-09-28), which is a bit worrying as that presumably indicates that no tinderbox is configuring with --enable-xf86bigfont. In a similar fashion to that commit, fix by moving XFree86BigfontExtensionInit() below the definitions of the static dispatch functions it references. Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk> Reviewed-by: Julien Cristau <jcristau@debian.org>
2011-01-23XQuartz: Use the default signal handlerJeremy Huddleston1-0/+21
This allows better interaction with CrashTracer Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
2011-01-23XQuartz: Call RRScreenSizeNotify after handling externally-generated ↵Jeremy Huddleston2-2/+4
XP_EVENT_DISPLAY_CHANGED We get an XP_EVENT_DISPLAY_CHANGED event when our display configuration is changed. If this change was caused by hotplugging a monitor or Mac Display Preferences changes by the user, we need to call RRScreenSizeNotify in order to ensure new connections get the correct screen size. http://xquartz.macosforge.org/trac/ticket/460 Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
2011-01-23XQuartz: Bump version string to 2.6.1Jeremy Huddleston1-2/+2
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
2011-01-23XQuartz: Update copyright dates in bundle's plistJeremy Huddleston1-2/+2
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
2011-01-20Merge remote branch 'ajax/for-keithp'Keith Packard6-79/+42
2011-01-20Merge remote branch 'whot/for-keith'Keith Packard14-147/+170
2011-01-20Merge remote branch 'jturney/jturney-framebuffer-resize-for-master'Keith Packard20-700/+1026
2011-01-20Add xorg.conf.d shadow man page pointing to xorg.conf man pageAlan Coopersmith2-1/+2
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> Reviewed-by: Gaetan Nadon <memsize@videotron.ca> Tested-by: Gaetan Nadon <memsize@videotron.ca> Reviewed-by: Dan Nicholson <dbn.lists@gmail.com> Signed-off-by: Keith Packard <keithp@keithp.com>
2011-01-20resource: Fix indentationAdam Jackson1-14/+14
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com> Reviewed-by: Daniel Stone <daniel@fooishbar.org> Signed-off-by: Adam Jackson <ajax@redhat.com>
2011-01-20resource: Remove expectID hackAdam Jackson1-7/+0
This is clearly meant to short-circuit the (modestly) expensive resource lookup in LegalNewID. The problem is that long-lived clients will eventually run completely through their XID space and start asking XC-MISC for IDs to reuse. Once that happens, the comparison against expectID will always be true, and we'll no longer catch XID collisions at all. Reviewed-by: Daniel Stone <daniel@fooishbar.org> Signed-off-by: Adam Jackson <ajax@redhat.com>
2011-01-20resource: s/NullResource/NULL/gAdam Jackson1-4/+3
Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com> Reviewed-by: Daniel Stone <daniel@fooishbar.org> Signed-off-by: Adam Jackson <ajax@redhat.com>
2011-01-20os: Reduce smart scheduler setup callsAdam Jackson1-3/+9
We can return from WaitForSomething with no clients ready for any number of reasons. There's no reason to set up the scheduler timer when this happens. Reviewed-by: Keith Packard <keithp@keithp.com> Signed-off-by: Adam Jackson <ajax@redhat.com>
2011-01-20xdmxconfig: warning fixAdam Jackson1-1/+1
xdmxconfig.c: In function ‘dmxConfigCanvasDraw’: xdmxconfig.c:299:23: warning: ‘maxHeight’ may be used uninitialized in this function Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Adam Jackson <ajax@redhat.com>
2011-01-20dmx: warning fixesAdam Jackson1-5/+4
dmxinputinit.c: In function ‘dmxBlockHandler’: dmxinputinit.c:610:44: warning: cast from pointer to integer of different size dmxinputinit.c: In function ‘dmxWakeupHandler’: dmxinputinit.c:637:41: warning: cast from pointer to integer of different size dmxinputinit.c: In function ‘dmxInputInit’: dmxinputinit.c:1041:36: warning: cast to pointer from integer of different size Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Adam Jackson <ajax@redhat.com>
2011-01-20dmx: warning fixAdam Jackson1-31/+0
dmxinputinit.c: At top level: dmxinputinit.c:135:29: warning: ‘DMXCommonOth’ defined but not used DMXCommonOth is actually mentioned in a #if 0 block, so delete it and the block that references it. If anyone needs it, git remembers. Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Adam Jackson <ajax@redhat.com>
2011-01-20dmx: warning fixAdam Jackson1-6/+1
dmxgc.c: In function ‘dmxChangeClip’: dmxgc.c:386:5: warning: case label value exceeds maximum value for type dmxgc.c:387:5: warning: case label value exceeds maximum value for type dmxgc.c:388:5: warning: case label value exceeds maximum value for type dmxgc.c:389:5: warning: case label value exceeds maximum value for type Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Adam Jackson <ajax@redhat.com>