regression - display mode detection - more exanples

Alex Pasadyn ajp at mail.utexas.edu
Sat Sep 27 17:17:29 CDT 2003


hatky wrote:
> gta2 manager now detects these resolutions twice:
> 640x480
> 800x600
> 1024x786
> 1152x864
> 1280x960
> and the 1400x1050 4 times 
> (This manager only displays resolutions without dept)
> 
> Gta2 itself now crashes but I am not sure if that is
> related or not

I tried running the demo for GTA2 but it just puts up a window that says 
"Keyboard type not handled".  I've never seen anything like that before 
(plain US keyboard).  I see the resolutions listed twice in the manager, 
though.  I am guessing they are different depths or something.  What 
kind of crash do you get?

As far as the one mode repeated a bunch of times, that's caused by me 
making sure the original desktop size and the real X desktop size are 
both in the list, and I did not check for duplicates.

> as I said Unreal Tournament 2003 no longer finds any
> valid display modes (I the traces to some of you and
> to wine-devel)

I am still confused by this one.  Can you try setting your Wine desktop 
to 512x384 and see if it still complains?  As I told you before, I 
cannot get the demo for that program to run at all, so I am unable to 
investigate it.  It reports (Object Class ObjectInternal created in 
Class instead of Package).

> and you have the Max Payne problem from Sylvain
> Petreolle
> (http://www.winehq.org/hypermail/wine-devel/2003/09/0948.html)

Now this one I totally understand.  The patch I did changed a couple 
things.  There are now three possible modes: Desktop, XVidMode, and 
NoRes.  In desktop mode, you get a preselected list of modes that the 
Wine Desktop can switch between.  In XVidMode mode, the extension 
provides the list of modes.  In NoRes mode, there is no resolution 
changing allowed.

There is a problem that sometimes happens with desktop windows, and it 
seems that changing their sizes makes it happen more often.  Please see

http://www.winehq.com/hypermail/wine-devel/2003/08/0356.html

I worked around this by adding the following hack in 
dlls/x11drv/window.c right before the if (mask) near the end of 
X11DRV_sync_whole_window_position.

     if ((root_window != DefaultRootWindow(gdi_display)) &&
         (mask&&CWSibling)) {
         ERR("desktop mode -- disabling CWSibling\n");
         mask &= ~CWSibling;
     }

I get the BadMatch error just by trying to run two copies of notepad at 
the same time, and this little hack removes that problem and all other 
ones I've seen with desktop windows.  I'm investigating doing that a 
nicer way.  Can you try that out and see if it helps?

> I really think this should either be fixed somehow or
> reverted (if you want more broken reports you can
> release a version :) )

Well, naturally, it needs to be fixed, but the hard part is identifying 
the real problems.  Before this patch, there were three completely 
different sets of hard-coded resolution and depth lists in the wine 
tree.  I changed it so they all funnel through the same code now.  It's 
just a matter now of cleaning up the pieces so they're all happy.  I 
understand that "the games I ran all worked on my two systems" does not 
help you as much as I'd like, but unless I can get some tests I can run 
it's really hard to fix it.

That said, I'm working on an updated patch that will be more "tolerant" 
than the current one.

Specifically, it will:
- include more choices for the desktop size
- always list all modes as including 8, 16, and 32-bit
- silently ignore you when you try to change the depth
- remove duplicated modes (see above)
- include more TRACE lines for better debugging

-ajp




More information about the wine-devel mailing list