Pages

Friday, September 6, 2013

Direct3D Performance Improvements Coming To Wine

Stefan Dösinger of CodeWeavers has been working on some Direct3D performance improvements for Wine by creating a separate command stream / worker thread for WineD3D. This work moves OpenGL calls into a separate thread in order to improve performance while also fixing some outstanding bugs. This work can yield 50~100% performance improvements and in some cases making the games under Wine faster than on Windows.

If you want to help support this work consider purchasing a copy of CrossOver  12.5 from CodeWeavers. You can use promo code TOM23 and receive a instant 20% discount off the normal selling price.

Stefan's email sent to the wine Development mailing list :


Hi,

In the past months I have been working on a command stream / worker
thread for wined3d. It moves most OpenGL calls into a separate thread
to improve performance (bug 11674) and fix some bugs that are
otherwise hard to fix (24684).

You can test the attached patches by applying them (git am
/path/to/patches/*) and setting HKCU/Software/Wine/Direct3D/CSMT =
"enabled". Make sure to disable StrictDrawOrdering. It is no longer
required with those patches and will destroy any performance gains.
(It might be useful for debugging though). The patches apply on top of
Wine 1.7.1.

Please test those patches with your games. I'm interested in any
successes or failures and performance differences. Performance numbers
with plain Wine 1.7.1, this patchset with CSMT off and on, and Wine
1.7.7 + bugzilla attachment 44420 and __GL_THREADED_OPTIMIZATIONS
would be greatly appreciated.

A notes for non-developers:
*) GPU limited games don't see any improvement. If you're GPU limited
heavilly depends on your hardware

*) So far I have not tested anything but Nvidia hardware. It should
work on all GPUs and drivers though.

*) Yes, this is essentially the same as Nvidia's
__GL_THREADED_OPTIMIZATIONS. Just driver independent, under our
control, and thus easier to fix bugs.

*) A lot of games see 50%-100% performance improvements and now run as
fast as on Windows or even faster. Examples are Source-Engine based
games, StarCraft 2, 3DMark 2001.

*) Call of Duty Modern Warfare 2 is improved a lot because you no
longer need StrictDrawOrdering. It's still not as good as it could be,
because it uses dynamic surfaces, which aren't properly implemented in
the patchset yet.

*) Some games have CPU-side bottlenecks outside d3d. Mass Effect 2
seems to be one of those.

*) Some games have CPU-side bottlenecks in the GL driver, and
comparably little game logic on their own. I think this applies to Civ
V, which doesn't see much improvement with those patches.

Some implementation notes:
*) One of the big design decisions is to do all OpenGL calls from one
thread, including resource creation and buffer maps. This is faster
than using glFlush calls to synchronize anything we do from the main
thread, and easier than trying to sync everything in a performant
fashion with ARB_sync. This means I need the priority command queue.
This is not yet fully implemented though, so you see GL calls from the
main thread as well.

*) There seem to be driver bugs when calling into GL from two threads,
even though those are two different contexts. Remember, we don't have
the GL lock any longer.

*) The other controversial design decision is that the command stream
does not hold any references to objects stored in pending commands or
its own state structure. This prevents the client libraries and
applications from "seeing" the CS via delayed destruction of objects
and freeing of application private data.

*) Currently resource destruction waits for the CS to execute all
pending commands. The goal is to handle private resources and removal
from the device's resource list in the main thread and freeing of GL
resources, freeing of resource->heap_memory and freeing of the main
structure in the worker thread.

*) A big issue that needs fixing is that there isn't a clear
separation between functions that are called from the main thread and
functions that are called from the worker thread. The plan is to
introduce comments similar to those that clarify who is responsible
for context activation.

*) Buffers are double-buffered and use glBufferSubData when the
multithreaded CS is in use. This is necessary because we can't draw
from a mapped buffer. In the long run GL_ARB_buffer_storage should be
able to fix this.

*) You can roughly see how surface and volume handling is going to
work in the volume code. I am not entirely happy with the code yet, I
hacked it together in the past few days...

*) The plan behind wined3d_device_get_bo and wined3d_device_release_bo
is to cache created GL BOs. Before I do that I have to write a
benchmark for dynamic volumes to verify that this is really a
performance improvement.

*) Before this can be merged, surfaces need a cleanup similar to
volumes. It's going to be a lot trickier though.

*) The tests should run with the single-threaded and multi-threaded
command stream.

*) There should not be any temporary regressions with the
single-threaded CS. If something's broken, git bisect should work with
CSMT off.

*) With CSMT on, there are a few known regressions and test failures.
The d3d9 and ddraw tests fail between patch 18 and 71. Occlusion
queries are broken between 22 and 108. In general nothing's working
right between 80 and 99. Some of those problems can be fixed or their
impact reduced, but I will not be able to completely avoid them. The
ddraw test failure is a driver bug and GL occlusion queries break by
design when used from a different thread. So if you try to bisect a
regression in this patch series with CSMT on YMMV.

*) This work was originally started by Henri. Some patches in the
series are from him and either unmodified or with minor adjustments.
Some patches are based on his work, but with heavy modifications.

Cheers,
Stefan
 
 

Saturday, August 31, 2013

New International Pricing for CodeWeavers CrossOver Save up to 75% off full retail

Save up to 75% off CodeWeavers CrossOver with their new international pricing, click on the image below to see the new pricing. Keep in mind you can save a additional 20% off CrossOver by using TOM23 as your promo code in CodeWeavers store. The new prices are automatically calculated based on your IP number, So why wait go and get a copy of CrossOver for as low as $11.00 now!



Putty for Mac
Putty for Mac
$15.00

https://winereviews.onfastspring.com/putty-for-mac



Run Windows apps on both OS X & Linux with CrossOver 12.5

Most Mac and Linux users think anything Windows can do their operating systems can do better. Often, they're right, but then there comes that day when they really need to run that one special Windows application and then they're stuck.

Run Windows programs from your Linux desktop or Mac? With CrossOver, it's easy.
There are many ways of handling this. Some people keep old Windows PC around; others dual boot their computers; and quite a few run virtual machines (VM)s of Windows on their Linux PCs and Macs. That's all fine, but it's also a fair amount of trouble.


Then, there's CodeWeaver's approach: Use a program, CrossOver, which enables you to install and run the one or two Windows applications you need on your favorite operating system.
CrossOver is based on the open-source project Wine, an implementation of the Windows application programming interface (API) on top of the Unix/Linux operating system family. For each application, CrossOver/Wine creates a small Windows virtual machine just for that program.

You actually don't need CrossOver to run Windows applications on Linux or a Mac. You can do it with Wine alone -- if you know precisely what you're doing. What CrossOver gives you is easy, automated installation of Windows applications, and technical support. And in this latest version, the CrossOver interface has been improved so it's easier than ever to install and manage Windows applications.
The latest version -- CrossOver 12.5, which is based on Wine 1.6 -- supports  thousands of Windows programs. These include: Quicken, Adobe Photoshop, various versions of the Microsoft Office suite; and, of course lots and lots of games. On the fun side of computing, CrossOver supports Guild Wars, World of Warcraft, Star Wars: The Old Republic, and thousands of others.

Not all programs run equally well. Before you invest in buying CrossOver, which runs $59.95, you'll want to take CodeWeavers up on its offer of a free two-week trial to make sure that your particular must-have program will run right with it.

In particular, this latest version offers better support for Microsoft Outlook, Quicken, Internet Explorer 7, and improved compatibility with the Microsoft Office suite. The company has also fixed several crashes and made numerous usability improvements.

This edition also offers a real improvement in its interoperability with Mac OS X. CrossOver 12.5, which will run with Snow Leopard or later, now has the"Mac Driver" technology enabled by default for all applications. The company claims that this brings improved integration with the OS X desktop environment and improves functions such as drag-and-drop, command-tab switching, Dock and Menu Bar integration, and window transparency. In my limited testing with my Mountain Lion-powered Mac Mini, Mac Driver lived up to these claims.

On Linux, CrossOver boasts a new user interface. This makes it much easier to launch your installed Windows applications. I also found it easier in general to install Windows apps on Linux with CrossOver 12.5.

CrossOver isn't perfect. Many Windows applications won't run properly with it. But, many will work with it, and if you only need a couple of Windows apps to make your Linux or Mac computing life complete then CrossOver may well be exactly what you need.

Run Microsoft Windows Applications and Games on Mac, Linux or ChromeOS save up to 20% off  CodeWeavers CrossOver+ today.

Friday, August 30, 2013

Wine 1.7.1 Released

The Wine development release 1.7.1 is now available.
What's new in this release:
  • Support for keyed event objects.
  • Support for the "init once" synchronization mechanism.
  • Activation context support for DLLs, typelibs, and COM classes.
  • Support for loading 32-bit typelibs on 64-bit.
  • Various Mac driver fixes.
  • Some fixes for serial port devices.
  • Various bug fixes.
The source is available now. Binary packages are in the process of being built, and will appear soon at their respective download locations.

 Bugs fixed in 1.7.1 (total 56):

   3456  Gazillionaire Game Background not fully drawn.
  11837  Popup has magenta background - should be transparent
  12272  Aliens Versus Predator 2 1.0.9.6 mouse axis problem
  15032  Problems with Webpage content in Station Launcher
  16576  Warlords Battlecry III crashes on exit.
  20265  TR4W program starts if I go into terminal mode ctrl-alt-F1 and then back to GUI ctrl-alt-f7
  21146  safari's welcome page crashes in d3d
  22097  Starcraft II has a crash on exit in win7 mode (but not XP)
  22136  Starcraft II - very slow on ultra shaders (fps 1/4 that in windows)
  23362  The Starcraft 2 Editor crashes when you open the terrain view after opening and closing the previewer.
  23421  unimplemented function SHLWAPI.dll.AssocGetPerceivedType (affects Windows Live Photo Gallery)
  25212  piwigo ploader can't connect to the net
  25994  Process Hacker 2.x needs ntdll.dll.NtCreateKeyedEvent
  26076  shdocvw/shdocvw tests show a memory leak in winemenubuilder?
  26077  setupapi/misc tests show a memory leak in winemenubuilder?
  26084  Total Commander: Incorrect character appears instead of backslash in the UI
  26089  MS Office 2003 install needs msi.Migrate10CachedPackagesW
  26245  DC++: "Select text style" in "Colors and sounds" settings crashes
  26254  King School computer aided course will not execute
  26495  Some games crash with Gstreamer issues
  27034  USB-over-Network installer crashes on destination folder selection (_BrowseProperty not handled)
  27691  Star Wars Battlefront II renders textures incorrectly on certain maps
  28143  GODS-Lands of Infinity: foliage of trees has graphical glitches
  29448  GameShield/SoftwareShield protected apps/games won't start (SetCurrentDirectoryA calling W API causes detours recursion)
  29720  Eclipse (Europa) crashes when tries to display welcome window
  30004  Scrollbars flicker while searching in regedit
  30813  1by1 player crashes by jumping to the next song
  31319  Age of Mythology: slow performance
  31435  git lastest version(1.5.10) don't show korean text
  31487  kernel32.dll.InitOnceExecuteOnce needed for several MS installer (Office2013 / Windows Essentials 2012 / .NET Framework 4.5 / Skydrive / ARM Applications)
  31756  Borderlands 2 crash on startup (once ingame)
  31773  Torchlight 2 shadows are rendered incorrectly on some areas
  31917  vb6 fails to open project after wine's update
  32132  Starcraft 2 crashes on startup
  32794  Batman: Arkham City missing text in launcher
  32976  TaxAct 2012: tax forms do not display correctly on screen
  33378  measuring/painting strings needs better tests
  33573  Trillian Basic v.5.3.0.15: Crashes when trying to launch it
  33657  Garena didn't start with ADMINISTRATOR privileges
  34037  XNA 4 install does not recognize wine mono
  34057  .Net Framework 3.0 installer fails
  34077  Sins of a Solar Empire Font Size Regression
  34102  It is not drawn when specify 0 for the width and height in GdipDrawString.
  34142  Nullsoft installer appearance is broken
  34162  CGDirectPaletteRef has been deprecated so winemac.drv can't be compiled in Mavericks.
  34177  -pipe makes mingw-g++ work unreliably
  34188  crash when creating a new wineprefix with winemac.drv
  34190  number.c could not compile due to "dtoa" naming conflict in Cygwin
  34211  strncpy C library function doesn't compliant C standard.
  34214  Printing from notepad crashes
  34275  Louisiana Adventure Demo fails with 'OLE error 80004001' (HTMLStyleSheet_GetIDsOfNames is a stub)
  34276  native msvc* stopped working
  34305  League of Legends 3.10.13_07_26_19_59: page fault in read_map()
  34316  The Guild 2: loading screen is blank (white)
  34353  The Ur-Quan Masters fails to start
  34378  ePub DRM Removal crashes importing files

Run Microsoft Windows Applications and Games on Mac, Linux or ChromeOS save up to 20% off  CodeWeavers CrossOver+ today.

Tuesday, August 13, 2013

CODEWEAVERS LAUNCHES CROSSOVER 12.5 FOR LINUX AND MAC

Update includes Wine 1.6, new Linux UI, better MS Outlook support, and full support for Chinese
 
SAINT PAUL, Minn (August 13, 2013) — CodeWeavers, Inc., developer of CrossOver software which enables Mac and Linux users to run Windows software on their computers without the need of a Microsoft license, announced today the release of its new software, CrossOver 12.5.

Although a point release, CrossOver 12.5.0 is a major step forward from previous versions of CrossOver. The new version incorporates the latest version of Wine - the Windows compatibility technology which underlies CrossOver. Wine 1.6 brings thousands of improvements to application compatibility.
On Linux, CrossOver has a new user interface. A list of launchers for all installed Windows applications is present in CrossOver's main application window, which improves usability with modern Linux desktop environments.

We have spent substantial time improving our support for Microsoft Outlook. Outlook users who run on laptops may notice that their Outlook connections remain active when their laptops change networks or awake from sleep. CrossOver 12.5.0 also includes improved support for Quicken, Internet Explorer 7, and improved compatibility with the Microsoft Office suite.\

Finally, CrossOver 12.5.0 has improved Chinese language support, and runs more popular Chinese applications than ever before. We have fixed crashes in the Chinese versions of Microsoft Office 2010; we have added Chinese language titles to our application database, and CrossOver is fully translated into Chinese. CodeWeavers has now begun selling CrossOver directly in China.
CrossOver is immediately available at www.CodeWeavers.com

Change Log For CrossOver

12.5.0 CrossOver - August 13, 2013
  • Mac OS X:
    • CrossOver's "Mac Driver" is now on by default. Because of this, CrossOver now supports better desktop integration on OS X, including:
      • Drag and Drop.
      • System Tray Icons in the Mac Menu Bar.
      • Shaped windows and transparency.
      • Better mouse handling for many games.
      • Support for command-tab switching in full-screen mode.
      • Better integration with the OS X Dock, and features such as Expose and Spaces.
      • Better international keyboard support.
      • Improved clipboard (cut and paste) support.
      • Support for mice with more than three buttons.
      • Fixes for many window ordering problems.
      • Force-feedback joysticks are supported.
      • Improved input method support for non-Latin characters.
  • Linux:
    • The GUI on Linux has changed substantially. In particular, it now includes a menu of launchers for all installed Windows applications, which can be customized by the user.
  • Application Support:
    • Microsoft Outlook:
      • Microsoft Outlook will now maintain its connection when the computer sleeps or the network configuration changes.
      • Improved auto-discovery for Exchange account setup.
      • Outlook will no longer crash if the Exchange server is unavailable.
      • Fixed a crash when editing contacts.
      • Right-click to format will now work.
      • Improved NTLM authentication - you can now change your password if you have 'smbpasswd' installed.
      • Improved SharePoint list display in profile.
      • Characters can now be inserted from the character palette.
      • Fixed printing of calendar items.
      • Attachment preview will now work.
      • Outlook Today can now be customized.
      • Phone numbers now accept a '+' character for international notation.
    • Microsoft Excel:
      • Fixed a crash when copying a worksheet.
      • Improved macro support.
      • Fixed a problem opening read-only files.
      • Fixed garbage when opening xlsx documents.
    • Quicken:
      • Fixed display of help topics in Quicken 2012.
      • Fixed a bug in the 'Change Assumptions' function of Quicken 2013.
    • Internet Explorer 7:
      • More websites will now work.
      • Fixed a bug which sometimes caused failure during installation.
      • Fixed a crash in the print dialog.
    • World of Tanks:
      • Fixed a crash connecting to the server on certain Macs.
      • Fixed a crash when zooming in on targets.
    • Microsoft Office: Fixed problems in which drop-down menus could not be dismissed.
    • Microsoft Office 2010 Simplified Chinese Edition will now install.
    • Fixed a bug which caused Microsoft Office 2007 to fail to install on some machines.
    • Fixed an installation conflict between .Net 4.0 and DirectX 9.
    • Fixed an installation problem with Microsoft Money 2001.
    • Fixed an issue where Microsoft Visio 2010 would not open .vxd files.
    • Fixed installation problems with .Net 3.5.
    • Fixed graphical glitches in Wizard101.
    • Fixed problems with the patcher in Pirate101.
    • Fixed a crash on login in StarCraft II.
    • Fixed crashes on install of Rift's Storm Legion expansion.
    • Fixed Rift graphics bugs on NVIDIA hardware.
    • Fixed various errors in ChemSketch 12.
    • Fixed a crash in Baseball Mogul 2013 and 2014.
  • Other Improvements:
    • CrossOver 12.5.0 is based on the new stable Wine 1.6 release. This includes innumerable fixes for various Windows applications.
    • CrossOver can be configured for compatibility with Windows 7.
Run Microsoft Windows Applications and Games on Mac, Linux or ChromeOS save up to 20% off  CodeWeavers CrossOver+ today.