* [Bug 28383] New: Cloned screens with different res/refresh cause problems with mesa demos since new dri2 vsync.
@ 2010-06-04 11:28 bugzilla-daemon
2010-06-04 15:49 ` [Bug 28383] " bugzilla-daemon
0 siblings, 1 reply; 3+ messages in thread
From: bugzilla-daemon @ 2010-06-04 11:28 UTC (permalink / raw)
To: dri-devel
https://bugs.freedesktop.org/show_bug.cgi?id=28383
Summary: Cloned screens with different res/refresh cause
problems with mesa demos since new dri2 vsync.
Product: Mesa
Version: git
Platform: x86 (IA32)
OS/Version: Linux (All)
Status: NEW
Severity: normal
Priority: medium
Component: Drivers/DRI/R600
AssignedTo: dri-devel@lists.freedesktop.org
ReportedBy: lists@andyfurniss.entadsl.com
I think this is linked to the new dri2 vsync but mat be wrong...
rv670 mesa git, ddx git xorg git (2 weeks ago) drt kernels.
Not just latest drt and unrelated to tiling patches.
I am starting with a TV connected @ 1024x768 + vga monitor @ 1920x1080 so the
top left section of the monitor screen gets tv(50Hz) vsync - monitor is 60Hz.
If I start a mesa demo and it starts in the TV area it will sync to 50HZ if I
move it outside the top left area it will sync to 60Hz.
The problem is if I then move it back to the TV area it will stop rendering and
become unresponsive. I can <ctrl><c> it but the window will remain. If I the
move the window around enough I can get xserver to segfault.
This doesn't happen with UMS or a drt from 29th April (uses old vsync).
It doesn't happen if I disable TV with xrandr.
[ 489.682] 0: /home/andy/Src/Xorg-git/modular/bin/Xorg (xorg_backtrace+0x3b)
[0x80da21b]
[ 489.682] 1: /home/andy/Src/Xorg-git/modular/bin/Xorg (0x8048000+0x59ca5)
[0x80a1ca5]
[ 489.682] 2: (vdso) (__kernel_rt_sigreturn+0x0) [0xffffe40c]
[ 489.682] 3: /home/andy/Src/Xorg-git/modular/bin/Xorg (LocalClient+0x41)
[0x809d8d1]
[ 489.682] 4:
/home/andy/Src/Xorg-git/modular/lib/xorg/modules/extensions/libdri2.so
(0xb73ce000+0x309b) [0xb73d109b]
[ 489.682] 5: /home/andy/Src/Xorg-git/modular/bin/Xorg (0x8048000+0x25198)
[0x806d198]
[ 489.682] 6: /home/andy/Src/Xorg-git/modular/bin/Xorg (0x8048000+0x1a86a)
[0x806286a]
[ 489.682] 7: /lib/libc.so.6 (__libc_start_main+0xd0) [0xb7495380]
[ 489.682] 8: /home/andy/Src/Xorg-git/modular/bin/Xorg (0x8048000+0x1a481)
[0x8062481]
[ 489.682] Segmentation fault at address 0x18
--
Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
^ permalink raw reply [flat|nested] 3+ messages in thread[parent not found: <mailman.44.1275660143.18030.dri-devel@lists.freedesktop.org>]
* Re: [Bug 28383] New: Cloned screens with different res/refresh cause problems with mesa demos since new dri2 vsync.
[not found] <mailman.44.1275660143.18030.dri-devel@lists.freedesktop.org>
@ 2010-06-08 20:05 ` Mario Kleiner
0 siblings, 0 replies; 3+ messages in thread
From: Mario Kleiner @ 2010-06-08 20:05 UTC (permalink / raw)
To: dri-devel
[-- Attachment #1: Type: text/plain, Size: 1944 bytes --]
On Jun 4, 2010, at 4:02 PM, dri-devel-request@lists.freedesktop.org
wrote:
> Message: 2
> Date: Fri, 4 Jun 2010 04:28:02 -0700 (PDT)
> From: bugzilla-daemon@freedesktop.org
> Subject: [Bug 28383] New: Cloned screens with different res/refresh
> cause problems with mesa demos since new dri2 vsync.
> To: dri-devel@lists.freedesktop.org
> Message-ID: <bug-28383-502@http.bugs.freedesktop.org/>
> Content-Type: text/plain; charset="UTF-8"
>
> https://bugs.freedesktop.org/show_bug.cgi?id=28383
>
> Summary: Cloned screens with different res/refresh cause
> problems with mesa demos since new dri2 vsync.
> Product: Mesa
> Version: git
> Platform: x86 (IA32)
> OS/Version: Linux (All)
> Status: NEW
> Severity: normal
> Priority: medium
> Component: Drivers/DRI/R600
> AssignedTo: dri-devel@lists.freedesktop.org
> ReportedBy: lists@andyfurniss.entadsl.com
>
>
> I think this is linked to the new dri2 vsync but mat be wrong...
>
> rv670 mesa git, ddx git xorg git (2 weeks ago) drt kernels.
>
> Not just latest drt and unrelated to tiling patches.
>
> I am starting with a TV connected @ 1024x768 + vga monitor @
> 1920x1080 so the
> top left section of the monitor screen gets tv(50Hz) vsync -
> monitor is 60Hz.
>
> If I start a mesa demo and it starts in the TV area it will sync to
> 50HZ if I
> move it outside the top left area it will sync to 60Hz.
>
> The problem is if I then move it back to the TV area it will stop
> rendering and
> become unresponsive. I can <ctrl><c> it but the window will remain.
> If I the
> move the window around enough I can get xserver to segfault.
>
> This doesn't happen with UMS or a drt from 29th April (uses old
> vsync).
> It doesn't happen if I disable TV with xrandr.
Diagnosis by treatment: Can you try if the attached patch fixes the
problem for you?
[-- Attachment #2: xserver-dualheadvsyncfix.patch --]
[-- Type: application/octet-stream, Size: 828 bytes --]
diff --git a/hw/xfree86/dri2/dri2.c b/hw/xfree86/dri2/dri2.c
index d33b0d1..39ab20a 100644
--- a/hw/xfree86/dri2/dri2.c
+++ b/hw/xfree86/dri2/dri2.c
@@ -806,6 +806,13 @@ DRI2SwapBuffers(ClientPtr client, DrawablePtr pDraw, CARD64 target_msc,
* number of pending swaps.
*/
*swap_target = pPriv->last_swap_target + pPriv->swap_interval;
+
+ /* Hack hack! Always use a swap_target of 1 to avoid hangs if window
+ * is moved between crtc's with different refresh rate. This effectively
+ * limits swap_interval settings to 0 and 1 for non-vsync'ed vs. vsync'd
+ * swaps. Larger swap_intervals are silently clamped to 1.
+ */
+ *swap_target = 1;
} else {
/* glXSwapBuffersMscOML could have a 0 target_msc, honor it */
*swap_target = target_msc;
[-- Attachment #3: Type: text/plain, Size: 1129 bytes --]
best,
-mario
>
> [ 489.682] 0: /home/andy/Src/Xorg-git/modular/bin/Xorg
> (xorg_backtrace+0x3b)
> [0x80da21b]
> [ 489.682] 1: /home/andy/Src/Xorg-git/modular/bin/Xorg (0x8048000
> +0x59ca5)
> [0x80a1ca5]
> [ 489.682] 2: (vdso) (__kernel_rt_sigreturn+0x0) [0xffffe40c]
> [ 489.682] 3: /home/andy/Src/Xorg-git/modular/bin/Xorg
> (LocalClient+0x41)
> [0x809d8d1]
> [ 489.682] 4:
> /home/andy/Src/Xorg-git/modular/lib/xorg/modules/extensions/libdri2.so
> (0xb73ce000+0x309b) [0xb73d109b]
> [ 489.682] 5: /home/andy/Src/Xorg-git/modular/bin/Xorg (0x8048000
> +0x25198)
> [0x806d198]
> [ 489.682] 6: /home/andy/Src/Xorg-git/modular/bin/Xorg (0x8048000
> +0x1a86a)
> [0x806286a]
> [ 489.682] 7: /lib/libc.so.6 (__libc_start_main+0xd0) [0xb7495380]
> [ 489.682] 8: /home/andy/Src/Xorg-git/modular/bin/Xorg (0x8048000
> +0x1a481)
> [0x8062481]
> [ 489.682] Segmentation fault at address 0x18
>
> --
> Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?
> tab=email
> ------- You are receiving this mail because: -------
> You are the assignee for the bug.
>
>
> ------------------------------
[-- Attachment #4: Type: text/plain, Size: 159 bytes --]
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/dri-devel
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2010-06-08 20:05 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-06-04 11:28 [Bug 28383] New: Cloned screens with different res/refresh cause problems with mesa demos since new dri2 vsync bugzilla-daemon
2010-06-04 15:49 ` [Bug 28383] " bugzilla-daemon
[not found] <mailman.44.1275660143.18030.dri-devel@lists.freedesktop.org>
2010-06-08 20:05 ` [Bug 28383] New: " Mario Kleiner
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.