Page 1 of 1

[Solved] Windows 7 compatibility

PostPosted: Sat Sep 26, 2009 3:32 pm
by rstralberg
Hi

Windows 7 Enterprise Release
L3DT Pro 2.7 17-Feb-2009 /Torque version/
Graphics card GTX280 1GB
Latest nVidia drivers

With this version on Windows 7 no maps
are rendered on screen. They are OK when
looking at the files saved on disk though.

PostPosted: Sun Sep 27, 2009 1:12 pm
by Aaron
Hi Roland,

Thank you for the bug report. I have not yet had the opportunity to test L3DT on Windows 7, but I will endeavour to do so the moment I can get my hands on a license.

Can I ask you to try a more recent developmental build? I shall PM you the download link.

Best regards,
Aaron.

PostPosted: Mon Oct 26, 2009 6:26 pm
by bcotton
I'm also running into a Windows 7 issue. Anyone else trying to run L3DT on Win7 and not getting graphics device reset errors? Whenever importing or calcing a heightmap the gfx device will reset, leaving a L3DT in weird state, that most times requires a reset.

Windows 7 Ultimate
L3DT Pro 2.7 17-Feb-2009 /Torque version/
Graphics Card - NVIDIA GeForce 9800 GT
Lastest Nvidia drivers (tried older versions too)

thanks

-B

PostPosted: Tue Oct 27, 2009 9:02 am
by Aaron
Hi bcotton,

Thank you for your bug report also.

Some reading suggests that the problem could relate to the change in from WDDM 1.0 in Vista to WDDM 1.1 in Windows 7. Under WDDM 1.0, all calls to GDI (such as blitting a bitmap to the screen, as done in the L3DT map display) were handled in software. Now, in WDDM 1.1, such GDI calls are hardware accelerated, and are therefore dependent on your graphics drivers.

My guess is that somewhere in the L3DT display code there is a dubious call to GDI that didn't cause problems with the software rasterizer, but is now tripping up the new hardware-accelerated GDI driver. I will look into this.

As for possible work-arounds, you might first like to try running L3DT in compatibility mode for Windows Vista.

Failing that, it could work if you change your selected display graphics adapter to the "Standard VGA Graphics Adapter" option. This is generally undesirable as it will disable all hardware accelerated graphics, but it may be useful as a short-term fix if deadlines are short.

I should be getting a Win7 box in the next couple of days, and I expect to have a proper fix going later this week. I'll let you know how it goes.

I apologise for any inconvenience caused.

Best regards,
Aaron.

PostPosted: Sun Nov 01, 2009 9:29 pm
by Aaron
Hi Guys,

I've updated my development PC to Windows 7 Professional 64, and I'm sorry to say that I can see no graphics glitches or buggy behaviour from L3DT at all. Both the 2D and 3D map displays are working as they did in XP and Vista.

In the absence of any better theory, I think we must now suspect the problem is a graphics driver or configuration issue on your systems.

One option that might work for you is to open the properties page for the L3DT desktop link, select the 'compatibility tab', and check the 'disable desktop composition' checkbox. This should disable hardware acceleration of the main L3DT window.

For reference, I'm running an NVIDIA GeForce 9600 GT (512MB) with driver version 8.15.11.9038 dated 14/07/2009. AeroGlass is enabled, the DPI is 96, ClearType text is enabled, the resolution is 1280x1024, and the UI font is 9 point Segoe UI.

Best regards,
Aaron.

PostPosted: Tue Nov 03, 2009 6:54 pm
by bcotton
This worked. I had tried to run in various compatibility modes but saw no changes. Disabling Desktop Composition did fix my issue with the graphics card when dealing with height-maps. I'll post again if it hit any other Win7 awesomeness.

thanks
-B

[Solved]Windows 7 compability

PostPosted: Mon Nov 16, 2009 7:01 pm
by rstralberg
Hi.

My Windows 7 problem was solved
by enabling AeroGlass.

PostPosted: Mon Nov 16, 2009 9:28 pm
by Aaron
Hi Roland,

Thanks for the follow-up. I can confirm that the display malfunctions when AeroGlass is disabled on my system too. This still smells like a GDI/WDDM bug, but I will nonetheless try to find a workaround to avoid triggering the bug. Thanks again.

Best regards,
Aaron.

PostPosted: Fri Feb 12, 2010 5:32 am
by PuriPuri
I've found that if I use dual monitors (1920x1200 and 1024x768, side-by-side through nVidia driver 195.62 in Windows 7 Ultimate 64-bit) I do not get the "video device driver reset" error any more, and L3DT works exactly as it did in XP.

If I go back to a single 1920x1200 monitor the maps do not update properly and I get the black screen for a second with the error message just like the first post.

I could not get single-monitor mode to work properly with any combination of Aero and compatibility settings, but dual-monitor mode works fine with Aero off and standard settings.

PostPosted: Fri Feb 12, 2010 8:45 am
by Aaron
Hi PuriPuri,

Thanks for the report; fixing the problem by using multiple monitors was such an unexpected and outlandish workaround that I just had to have a look. Via a rather circuitous route, I ended up tracking down the problem (not my fault, I think!), and added a 'fix' to L3DT.

But first, the description...

I could reproduce this problem on my Win7 system if I use the non-Aero themes, and viewed a map where the map dimensions were larger than the screen dimensions. If I zoomed in on the map, the problem went away. The critical factor seemed to be the 'size' of a pixel in the bitmap in terms of screen pixels. The display was fine if a map pixel was being stretched over one or more screen pixels, such as is the case with a) a small map (e.g. design map), or b) a large screen or multiple monitors, or c) when zoomed in. If the map pixels were being stretched over an an area of less than one screen pixel, the MS Windows 'StretchBlt' function was failing. Well, that's not quite true; it's return value indicates success, but depending on your system, you might get a blank or un-refreshed display in L3DT, black / white screen in Windows, the graphics driver may reset, or perhaps some other behaviour. Upon reviewing the code, I noticed that when the map pixels cover one or more screen pixels, I was using the the simple COLORONCOLOR mode in StretchBlt, but when map pixels were smaller than a screen pixel, I was using the HALFTONE mode so as to have nice smooth blending. If I disabled HALFTONE blending, and always used COLORONCOLOR, the problem went away.

In conclusion, under certain reproducible circumstances in Windows 7, stretched halftone bitmap blitting will fail. I know not why, since it works just fine in Windows 2000 / XP / Vista as well as Linux+Wine. Nonetheless, there's no great harm in always using COLORONCOLOR blending*, so that's what I'll do.

In the latest developmental build of L3DT (v2.8 build 11) - which is on the downloads page now - I have disabled halftone blending. However, whilst this bugfix eliminated all display problems on my system, I cannot guarantee that all the Windows 7 display problems were due to this exact cause (i.e. halftone blending). Display driver problems tend to be system-specific, so other users may find other problems. Please let me know if this build does or does not fix the problem for you.

Best regards,
Aaron.

* its slightly less pretty in some circumstances, but you may not even notice.

PostPosted: Fri Feb 12, 2010 9:47 am
by PuriPuri
Just tried out build 2.8.0.11 Pro Dev version, and the issue is resolved for single-monitor mode without Aero -- if I run it with Aero effects enabled I still get the black screen with the video driver stopped working message. Multi-monitor mode is still working perfectly with build 11. Thanks for the fix Aaron! :)