On Monday 12 June 2006 13:40, Stefan Dösinger wrote:
Hi,
This is an updated version of the VBO patch. The main difference is the integration with IWineD3DDevice::ProcessVertices which gives a nice performance boost for Half-Life 1 and propably Anarchy Online(not tested yet).
It will be better to move VBO creation and binding on vertexbuffer.c. (its why GetMemory didn't provide VBO id before, no need for that) Have you planned to use ti for index buffers too ?
What is missing is work with vertex shaders(awaiting the download of the dx8 sdk for the dolphin demo) and an implementation of IDirect3DVertexbuffer7::ProcessVertices.
The vertex conversion is slow, and it turned out that if the app Locks the Buffer every frame then drawStridedSlow is faster Converting + drawStridedSlow. Because of that VBOs and the conversion aren't used for vertex buffers in system memory and vbs with WINED3DUSAGE_DYNAMIC are not loaded into a vbo.
For that problem i had a prototype who remembered too many lock (in small times) and active the no-VBO flag :)
Cheers, Stefan