Bug #178

Can't run dual screen while using Nvidia driver

Added by Wael Nasreddine almost 7 years ago. Updated almost 7 years ago.

Status:Not a bug Start date:2011-01-16
Priority:Low Due date:
Assignee:Christoph Kappel % Done:

0%

Category:Bugfix
Target version:-
Votes: 1

Description

Introduction

I'm using nvidia closed-source driver and I cannot run in multihead (TwinView) simply because nvidia does not support Xrand yet, take a look at the xrandr output while I have the two screens attached

xrandr: Failed to get size of gamma for output default
Screen 0: minimum 320 x 175, current 3120 x 1050, maximum 3120 x 1050
default connected 3120x1050+0+0 0mm x 0mm
   1440x900       50.0     52.0     98.0
   1024x768       51.0     52.0     53.0     54.0     55.0
   832x624        56.0
   800x600        57.0     58.0     59.0     60.0     61.0     62.0     63.0     64.0
   720x400        65.0
   700x525        66.0     67.0
   640x512        68.0     69.0     70.0
   640x480        71.0     72.0     73.0     74.0     75.0     76.0
   640x400        77.0
   640x350        78.0
   576x432        79.0
   512x384        80.0     81.0     82.0     83.0     84.0
   416x312        85.0
   400x300        86.0     87.0     88.0     89.0     90.0
   360x200        91.0
   320x240        92.0     93.0     94.0     95.0
   320x200        96.0
   320x175        97.0
   3120x1050      98.0     51.0     53.0*

As you can see, Xrandr actually thinks that the two monitors are one big fat screen..

Fortunately

I have a good lead on how to fix this, I ran into this problem before using Awesome when they reverted one of their commits, fortunately they fixed it by using another method (Please see the next section) if Xrandr nor Xinerama worked (returned one screen)

So I guess for subtle, this method should be added on line 121 of source:src/subtle/screen.c, if both Xrandr and Xinerama found one monitor fallback to the another method

A good read:
https://awesome.naquadah.org/bugs/index.php?do=details&task_id=784
http://thread.gmane.org/gmane.comp.window-managers.awesome.devel/5207
http://article.gmane.org/gmane.comp.window-managers.awesome.devel/5219

Awesome does this (in their respective screen.c) at line 246, they call screen_scan_randr() and screen_scan_xinerama() if both fails they call screen_scan_x11())

Unfortunately

I have never done X11 development, I hope one day I will, and I have no prior experience with XCB, so the another method I was talking about, I couldn't figure out how it works so I have no way of patching subtle myself.

Conclusion

I need a patch to make this work with Nvidia and I need it fast, I'm using Subtle as my main window manager (Simply because it rocks, don't let me start on this topic... :) ), but I require two monitors for my work, so I would really appreciate your hard work on this, very urgent, BUG..

Thank you!!

Regards,
Wael Nasreddine

History

Updated by Christoph Kappel almost 7 years ago

  • Status changed from Unconfirmed to Feedback
  • Priority changed from Immediate to Low

Are you using stable or devel? When devel, did you try to disable RandR with -n? subtle will skip RandR and use xinerama in this case. I know several people with the same problem and -n solved it entirely.

Updated by Wael Nasreddine almost 7 years ago

I'm using the latest version from Git

I'll try -n ASAP

Updated by Wael Nasreddine almost 7 years ago

It seems working, It would be more interesting if it would check Xinerama even if RandR report that only one monitor enabled

Updated by Christoph Kappel almost 7 years ago

Latest version from git? The git repository is horrible outdated, please use the mercurial one on hg.subforge.org. -n or --no-randr in long format tells subtle to use xinerama instead of RandR.

Updated by Wael Nasreddine almost 7 years ago

Christoph Kappel wrote:

Latest version from git? The git repository is horrible outdated, please use the mercurial one on hg.subforge.org. -n or --no-randr in long format tells subtle to use xinerama instead of RandR.

Oops my bad, I meant mercurial, I'm just used to say from git nowadays :)

It's what I tried and it works (I have yet to learn how to switch screen or send clients from screen to another) but the setup seems fairly usable for now..

But like I said, since there are many laptops that comes with Nvidia, you could activate a part of the --no-randr option and that is to check Xinerama if RandR failed to detect more than one screen

Thank you! Keep up the good work !

Updated by Christoph Kappel almost 7 years ago

The problem is that is not usually the case, I heard from many nvidia users especially from users of the nouveau driver, that xrandr detects two screens but with wrongs resolutions, wrong order and problems like that. Adding an option to disable the use of randr seems the better option for me.

I just need to add more docs about this, I started the multihead page, but since you already edited it, it's not even close to finish. Coding usually uses most of my time. ;)

Updated by Christoph Kappel almost 7 years ago

  • Status changed from Feedback to Not a bug

Also available in: Atom PDF