Bug 29386

Summary: 2D performance drops drastically when enabling a 2nd monitor
Product: xorg Reporter: Mohamad <malsaqer>
Component: Driver/nouveauAssignee: Nouveau Project <nouveau>
Status: RESOLVED FIXED QA Contact: Xorg Project Team <xorg-team>
Severity: normal    
Priority: medium    
Version: git   
Hardware: x86 (IA32)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments:
Description Flags
Xorg.0.log
none
messages
none
nv10_pixmap_limits.patch none

Description Mohamad 2010-08-03 10:36:59 UTC
Created attachment 37547 [details]
Xorg.0.log

I have two 1280x1024 identical monitor and nv18 MX 440 older nvidia card. The card has one VGA-1 and one DVI-I outputs. The operating system is Fedora 13 and
xorg-x11-server-Xorg-1.8.2-2.fc13.i686
xorg-x11-drv-nouveau-0.0.16-7.20100423git13c1043.fc13.i686
___________________________
$ lspci -vnn | grep nVidia
VGA compatible controller [0300]: nVidia Corporation NV18 [GeForce4 MX 440 AGP 8x] [10de:0181] (rev a2) (prog-if 00 [VGA controller])
___________________________
$ xrandr -q
Screen 0: minimum 320 x 200, current 1280 x 1024, maximum 4096 x 4096
VGA-1 connected (normal left inverted right x axis y axis)
   1280x1024      60.0 +   75.0  
   1280x960       60.0  
   1152x864       75.0  
   1024x768       85.0     75.1     70.1     60.0  
   832x624        74.6  
   800x600        85.1     72.2     75.0     60.3     56.2  
   640x480        85.0     72.8     75.0     66.7     60.0  
   720x400        70.1  
DVI-I-1 connected 1280x1024+0+0 (normal left inverted right x axis y axis) 376mm x 301mm
   1280x1024      60.0*+   75.0  
   1280x960       60.0  
   1152x864       75.0  
   1024x768       85.0     75.1     70.1     60.0  
   832x624        74.6  
   800x600        85.1     72.2     75.0     60.3     56.2  
   640x480        85.0     72.8     75.0     66.7     60.0  
   720x400        70.1  
TV-1 disconnected (normal left inverted right x axis y axis)
_____________________________________________________________

If I enable the VGA-1 at auto resolution, the 2D performance drops so bad that when I raise a window, I see it gets painted on the screen for a couple of seconds. browser scrolling is so slow and all gui apps as well. Desktop effects are disabled.
The commands I use are:
____________________________________________________
$ xrandr --screen 0 --output VGA-1 --auto
$ xrandr --screen 0 --output VGA-1 --left-of DVI-I-1
____________________________________________________

Direct rendering is enabled according to glxinfo
_______________________________________________
$ glxinfo | grep -i render
direct rendering: Yes
OpenGL renderer string: Mesa DRI nv18 20091015
_______________________________________________

If I clone the monitors, however, performance is not dropped. I also tried lowering the resolutions of the monitors until performance did not drop when I reached the 1024x768 resolution for each screen.

So it is probably the buffer size needed to accommodate the two outputs in one big screen of size.

I know this is an older card, but I also know it can handle two screens because I have used it with FC12 and under with nVidia drivers with no performance problems.
Comment 1 Mohamad 2010-08-03 10:38:34 UTC
Created attachment 37548 [details]
messages
Comment 2 Younes Manton 2010-08-03 11:09:32 UTC
On Tue, Aug 3, 2010 at 1:37 PM,  <bugzilla-daemon@freedesktop.org> wrote:
> https://bugs.freedesktop.org/show_bug.cgi?id=29386
>
>           Summary: 2D performance drops drastically when enabling a 2nd
>                    monitor
>           Product: xorg
>           Version: git
>          Platform: x86 (IA32)
>        OS/Version: Linux (All)
>            Status: NEW
>          Severity: normal
>          Priority: medium
>         Component: Driver/nouveau
>        AssignedTo: nouveau@lists.freedesktop.org
>        ReportedBy: malsaqer@gmail.com
>         QAContact: xorg-team@lists.x.org
>
>
> Created an attachment (id=37547)
>  --> (https://bugs.freedesktop.org/attachment.cgi?id=37547)
> Xorg.0.log
>
> I have two 1280x1024 identical monitor and nv18 MX 440 older nvidia card. The
> card has one VGA-1 and one DVI-I outputs. The operating system is Fedora 13 and
> xorg-x11-server-Xorg-1.8.2-2.fc13.i686
> xorg-x11-drv-nouveau-0.0.16-7.20100423git13c1043.fc13.i686
> ___________________________
> $ lspci -vnn | grep nVidia
> VGA compatible controller [0300]: nVidia Corporation NV18 [GeForce4 MX 440 AGP
> 8x] [10de:0181] (rev a2) (prog-if 00 [VGA controller])
> ___________________________
> $ xrandr -q
> Screen 0: minimum 320 x 200, current 1280 x 1024, maximum 4096 x 4096
> VGA-1 connected (normal left inverted right x axis y axis)
>   1280x1024      60.0 +   75.0
>   1280x960       60.0
>   1152x864       75.0
>   1024x768       85.0     75.1     70.1     60.0
>   832x624        74.6
>   800x600        85.1     72.2     75.0     60.3     56.2
>   640x480        85.0     72.8     75.0     66.7     60.0
>   720x400        70.1
> DVI-I-1 connected 1280x1024+0+0 (normal left inverted right x axis y axis)
> 376mm x 301mm
>   1280x1024      60.0*+   75.0
>   1280x960       60.0
>   1152x864       75.0
>   1024x768       85.0     75.1     70.1     60.0
>   832x624        74.6
>   800x600        85.1     72.2     75.0     60.3     56.2
>   640x480        85.0     72.8     75.0     66.7     60.0
>   720x400        70.1
> TV-1 disconnected (normal left inverted right x axis y axis)
> _____________________________________________________________
>
> If I enable the VGA-1 at auto resolution, the 2D performance drops so bad that
> when I raise a window, I see it gets painted on the screen for a couple of
> seconds. browser scrolling is so slow and all gui apps as well. Desktop effects
> are disabled.
> The commands I use are:
> ____________________________________________________
> $ xrandr --screen 0 --output VGA-1 --auto
> $ xrandr --screen 0 --output VGA-1 --left-of DVI-I-1
> ____________________________________________________
>
> Direct rendering is enabled according to glxinfo
> _______________________________________________
> $ glxinfo | grep -i render
> direct rendering: Yes
> OpenGL renderer string: Mesa DRI nv18 20091015
> _______________________________________________
>
> If I clone the monitors, however, performance is not dropped. I also tried
> lowering the resolutions of the monitors until performance did not drop when I
> reached the 1024x768 resolution for each screen.
>
> So it is probably the buffer size needed to accommodate the two outputs in one
> big screen of size.
>
> I know this is an older card, but I also know it can handle two screens because
> I have used it with FC12 and under with nVidia drivers with no performance
> problems.
>
> --

You're probably hitting fallbacks due to hardware limits. IIRC that
card's 3D engine has a 2k*2k limit for textures and two 1280x1024
screens side by side is well over 2k width. The nvidia driver 'works'
because they probably use the 2D engine instead of the 3D engine to do
X rendering and maybe break up their rendering into chunks if that
card's 2D engine has similar limits. Nouveau uses the 3D engine even
for 2D in order to support Xrender.
Comment 3 Mohamad 2010-08-03 11:59:54 UTC
Thank you for the quick reply. Do you whether nouveau is working to impelement a work around like nvidia does or is it not of the interest due to that fact it is an aging hardware?
Comment 4 Francisco Jerez 2010-08-04 12:25:23 UTC
Created attachment 37576 [details] [review]
nv10_pixmap_limits.patch

(In reply to comment #3)
> Thank you for the quick reply. Do you whether nouveau is working to impelement
> a work around like nvidia does or is it not of the interest due to that fact it
> is an aging hardware?

The attached patch may help, it bumps the 2D engine addressing limits to 4096x4096. If you still find it too slow you're probably hitting Composite fallbacks because of the texture dimension limits Younes mentioned.
Comment 5 Mohamad 2010-08-04 13:32:33 UTC
Thank you man. It worked like a charm. I was really about to buy another AGP card, but no need any more. I also get the same glxgears fps as with only one monitor so I guess no draw backs.
Comment 6 Francisco Jerez 2010-08-04 17:35:09 UTC
I've pushed the patch to master. Marking as fixed.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.