D3D performance debugging report

Stefan Dösinger stefandoesinger at gmx.at
Sun May 1 09:10:09 CDT 2011


On Sunday 01 May 2011 14:34:53 Emanuele Oriani wrote:
> Indeed, I've written a spinlock with GCC extension and replaced the
> EnterCriticalSection in the x11 drv file.
> Apart that the lock has got to be recursive, so I implemented a quick
> (but incorrect) recursive spinlock for the purpose of running SC2 and
> difference was barely negligible.
How much was the difference?

> The biggest issue imho is that in this case we have to call a
> function...
I don't think so. I did some tests for the call overhead, and it is fairly 
small. Specifically I tried to export the wined3d lock from wined3d and call 
EnterCriticalSection / LeaveCritSection directly from d3d9. The difference 
wasn't even measurable with my hyper-sensitive self-written test apps.

> I can try a spinlock for the BKL-like which is wined3d lock. I hope this
> hasn't got to be recursive, right?
> I'm asking this because in case of a recursive lock I'm performing an
> extra syscall:
The wined3d lock doesn't have to be recursive I think. But note that getting 
those changes committed into Wine are next to zero. It's more likely to get an 
optimization of EnterCriticalSection / LeaveCriticalSection itself into wine.

> Please keep in mind this is a test code, but apparently it's working.
> Again, performance in case of SC2 isn't that much... but probably should
> test better/with other games?
No, as I explained in my mail the individual optimizations don't magically fix 
all the performance woes we have. We'll probably have to collect a dozen or 
more such little fixes to start seeing movement.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 836 bytes
Desc: This is a digitally signed message part.
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20110501/742bf50b/attachment.pgp>


More information about the wine-devel mailing list