WineHQ

World Wine News

All the news that fits, we print.

03/19/2007
by Brian Vincent
Issue: 326

XML source
More Issues...

This is the 326th issue of the Wine Weekly News publication. Its main goal is to buy hamburger buns. It also serves to inform you of what's going on around Wine. Wine is an open source implementation of the Windows API on top of X and Unix. Think of it as a Windows compatibility layer. Wine does not require Microsoft Windows, as it is a completely alternative implementation consisting of 100% Microsoft-free code, but it can optionally use native system DLLs if they are available. You can find more info at www.winehq.org


This week, 193 posts consumed 346 K. There were 68 different contributors. 35 (51%) posted more than once. 41 (60%) posted last week too.

The top 5 posters of the week were:

  1. 12 posts in 11K by dmitry at codeweavers.com (Dmitry Timoshkov)
  2. 12 posts in 12K by hverbeet at gmail.com (H. Verbeet)
  3. 10 posts in 36K by stefandoesinger at gmx.at (Stefan Dösinger)
  4. 10 posts in 10K by dank at kegel.com (Dan Kegel)
  5. 9 posts in 9K by julliard at winehq.org (Alexandre Julliard)

News: Wine 0.9.33, Coverity Changes Archive
News

Time for the bi-monthly Wine release. Wine 0.9.33 fell from the sky last week and the following changes were noted:

  • Many Direct3D fixes and performance improvements.
  • More comctl32 tests and some bug fixes.
  • Compatibility improvements in cmd.exe.
  • Still more fixes to builtin OLE.
  • Support for process control on Solaris.

A Indian technology magazine named Digit wrote an article on in their What Lies Beneath column in their March issue. It's a pretty good overview of Wine and CrossOver. From the article:

There is a way you can save on your OS costs, though. You could still switch to Linux, and thanks to software like CrossOver and Wine you can run your Windows applications within Linux itself. These programs give Windows applications a "friendly environment" to run in, essentially fooling them into believing they're running inside the OS they're supposed to. CrossOver is actually a paid version of Wine, offering you a bunch of extra features and more user-friendliness.

This barely falls in the news category. Coverity changed their scan and promised more updates are on their way. One new feature that looks like it'll get added is graphs. Wine's current bug tally sits at 84 bugs fixed, 26 verified but not fixed, and 297 uninspected on a codebase of 1.5 million lines.


DSound & ALSA Project Archive
Summer of Code 2007 Multimedia

There's been some good proposals for Summer of Code projects this year. Maarten Lankhorst wrote in with a proposal to fix an area of Wine that needs some attention. Maarten already has some familiarity with this which is even better. He wrote:

For the summer of code I'm planning to improve the dsound code and alsa code, to make alsa finally better than OSS, in a way that will get accepted into the wine tree, for that I'm thinking of improving on the following fronts:

Winealsa:

  • Add mixer device and aux controls
  • Implement dsound capture
  • Separate the initialisation of the directsound code from the waveout code, to allow creation of multiple dmix devices.
  • Try to configure alsa to allow arbitrarily big buffers, working around the alsa problem that only up to a certain amount can be allocated for buffers, certain programs (for example winamp) may require more.
  • Remove the queuing thread and use Lock() and Unlock() instead.
  • Make it run so well, people wouldn't want to use OSS anymore.

Both dsound/winealsa:

  • Allow proper usage of Lock() and Unlock() for sound drivers, it's not used properly or even tested in current dsound code.
  • Rework some of the dsound code, to allow mixing to be done in winealsa, and fix possible errors that can be caused by it.
  • Improve the dsound software mixer code to allow mixing and (if possible) be less prone to buffer underruns.

The challenge is to get this working right, without too much of an impact hit. I also will have to work around alsa limitations: I cannot make buffers arbitrarily big, while in windows they can be. It seems no 2 programs use dsound in the same way, so I will have to test with various different programs to get everything working.

I'll try to get in contact with alsa-devel first, if there is a way to change buffer size to something arbitrary, it is worth it in the long run to use that method. A manual fix seems to be close everything using alsa, then echo 256 > /proc/asound/card0/pcm0p/sub0/prealloc, but I am hoping there is an easier way to fix it, in either case I am afraid I will have to put some memory buffer code in winealsa as fallback.

If there's still some time left, I'll also try to get some 3d sound code in, using some openal code, the license seems to be lgpl compatible, or I will try to get support for multiple (4, 5.1 ?) speakers working, it depends a little on how fast I can get this to work in a nice shape.

There were a lot of positive comments about this project.


Winecfg DirectX Options Archive
Configuration

Michael Lothian asked:

Has anyone thought about adding the directx options to the Graphics tab in WineCfg

Just now I've been testing all the work that's been done on the graphics layer on different games so I've been switching on and off GLSL and changing backbuffer to fbo etc using regedit

Would it not be better to change these things easily instead to allow for wider testing.

PS With GLSL and FBO Tomb Raider Legent Opening Level Sequence the cliffs are black

Quite a few people agreed with Michael, but Henri Verbeet replied:

It's not something you should have to configure. Eventually GLSL and FBOs should simply become the defaults, and if it doesn't work that's a bug. I think GLSL is basically at the point where in general it's at least as good as the ARB backend, FBOs will need a bit more work.

Stefan Dösinger disagreed a bit and thought there might be a place for some options:

GLSL is OK IMO, because some drivers (*cough* macos *cough*) have serious problems with glsl. It could be included into the shader dropdown box. The issue that needs to be dealt with is that we can't combine arb vertex shaders and glsl pixel shaders or vice versa.

Video memory size maybe too. There are vendor dependent ways to read it, but implementing them is pretty nasty (requires some private to winex11.drv). Although we had that discussion a number of times already and we only agreed on a registry key so far.

Offscreen rendering should have fbos fixed and made default, otherwise use backbuffer (not pbuffer because backbuffer with aux buffers is cheaper). I don't think it is a good idea to add it to winecfg

I don't think render target locking should be configurable as is. That rendering should be fixed to catch NOP locks some games do (which does the same as glFinish() on windows).

What I have considered is some performance vs correctness slider. With decreased correctness things like render target locking or drawStridedSlow are disabled. If the correctness is decreased even more some properly implemented, but known to be expensive settings could be deactivated, like smooth shading, per pixel fog (ok. not sure if that is expensive). Windows drivers have such a setting, so why shouldn't we :-) . This slider could also cover some software emulated features like vertex blending (if we ever get that). Of course we shouldn't pollute the wined3d code with if (someSetting) statements either.

This seems like a project waiting for someone new to come along and implement.


New Benchmarks Archive
Testing

Benchmarks lie and now we've got some updated ones of our own. Tom Wickline wrote in to let everyone know about some updated benchmarks he ran:

I have some benchmarks posted here:

as well as here:

And I have all the Graphics test in PCMark 04 running, but the app is crashing between test, but if I run them one at a time they will complete.. The quandary is would posting the test results from each test while not run as a whole but separately be of use? and would this be unfair when comparing the results against XP?

Dan Kegel thought it would be fine to either put a disclaimer that the tests were run separately on Linux or to just verify that running the tests separately on Windows didn't produce a different result.


Status of Mac OS X Port Archive
Ports

Rafa Campos wanted to know how the port of Wine to Mac OS X was progressing:

I was looking through the mailing list archives about the status of wine working in Intel-Macs. I'd like to start helping the wine project making some effort in Macintel computer, and i like to reach some 3D approach that works in Mac.

Well, it just so happens that Mac OS X is now a first class citizen when it comes to running Wine. Alexandre replied first, It should work pretty much the same as on Linux. You do need an X11 server since the quartz driver isn't functional yet.

Stefan Dösinger gave move detail about the 3D side of things:

The Direct3D and OpenGL parts are working too, but I am struggling with some driver issues. Namely GLSL shaders are completely broken, but Jason Green tells me that this is MacOS'es fault. Other than that a few handy Nvidia extensions are missing, but apple has its own, so we may want to add a few codepaths for apple exts to wined3d. I did that for GL_APPLE_fence so far, but there are maybe others.

What needs work for getting 3D stuff working better is the quartz backend. I haven't done any comparison benchmarks yet, but I think we're loosing a bit of performance due to the X server (But not as much as many mac users think), and there are some window setup issues because of the X server and quartz-wm.


All Kernel Cousin issues and summaries are copyright their original authors, and distributed under the terms of the
GNU General Public License, version 2.0.