Wined3d State management again

Stefan Dösinger stefandoesinger at
Sat Dec 2 08:03:03 CST 2006

Amorphous made me aware that git can do a full diff against 2 branches, so I 
have a single big diff attached now :-)
> Hi,
> I've done some more work on my state management, and I uploaded an updated
> patch to .
> Ok, so what's updated:
> * Pixel shaders: Should work now
> * GLSL shaders: Working too. Henris shader backend stuff is integrated in a
> messy way.
> * Offscreen rendering: Works with back buffer and pbuffer rendering, fbos
> not yet.
> * Stateblocks: Brute force integration by just scheduling all modified
> states for a reset. No display list yet
> * Blitting, render target unlocking: Enabled again, sets new gl states and
> schedules a reapplication of the modified states. Not a nice solution yet
> What is still missing:
> * Nv register combiners. I haven't found a way yet to build a texture stage
> -> texture unit mapping which I like. All the ways I could think of could
> potentially cause lots of unneccessary state changes.
> One nice thing I have noticed is that this changes give a huge performance
> gain in Half-Life 2(dxlevel 80, and 90). Dxlevel 80 is accelerated to
> approximately 150-200% of the former performance, and especially slow parts
> are faster now. This makes a really huge playability difference :-)
> There are some regressions too, especially related to texture
> loading(3Dmark2000), and some glsl crashes. The good part about this change
> is that I can send it in in very small patches, making regression testing
> much easier, contrary to the huge ddraw rewrite.
> Where to go from here? As long as nobody screams I'd start sending patches
> now. Its easier to catch regressions while sending small patches instead of
> hunting them on the blob I have here(and my messy patch history in my git
> tree). I'm also afraid that I get too far away from the main wined3d
> code(See the shader backend integration). We can discuss the code based on
> the small changes I'll send.
> Stefan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: statemgmt.diff.bz2
Type: application/x-bzip2
Size: 53036 bytes
Desc: not available
Url :

More information about the wine-devel mailing list