http://bugs.winehq.org/show_bug.cgi?id=32096
--- Comment #7 from guillaum.bouchard@gmail.com 2012-10-30 08:11:21 CDT --- (In reply to comment #5)
Which GPU and Nvidia driver version are you using? GL_ARB_vertex_array_bgra is reported on my GTX 470 with current drivers (and I think it has been since a long time).
GeForce 5 FX with latest driver from Vvidia 173.14.36
I never debugged WoW so I don't know, but is it really going through Draw[Indexed]PrimitiveUP?
Yes, for everything in the GUI and some really small objects (mainly the floor and spell effects). I guess they used *UP* methods for everything quickly moving or too small to be worth a storage in a VRAM buffer.
Wine does not currently use VAOs (I guess caching vertex streams configurations in VAOs may be a performance optimization, but that's unrelated anyway). That piece of code is in apply_format_fixups(), which is called only on wined3d initialization.
Yes, I finally figured it. I called this VAO because I try to put concept I know (ie: OpenGL) on stuff that I don't know (D3D and the wine api)
I'm not saying that the fallback can't be improved, but I'd not expect it to be useful all that much. I mean, I thought GL_ARB_vertex_array_bgra support would be widespread.
Perhaps I'm just annoying you with a really old GPU. If this is the case, I'm ok to just keep my work as a private patch and apply it to wine for my own purpose, but who know, it may helps others. I'll try to submit a clean enough patch today or tomorrow.