On Wed, Mar 31, 2010 at 11:56 AM, Stefan Dösinger stefandoesinger@gmx.at wrote:
Hi,
I think writing (yet another) D3D benchmark isn't going to help a lot, there are already numerous benchmarks out there.
I have built a very hacky set of cxtest and php scripts that run a bunch of benchmarks and games(3DMark, Half Life 2, UT 2004, Team Fortress), store the results on a server and generate some graphs with gnuplot. Extending this and making it easier for others to run would be more useful than implementing another benchmark.
If you want to get familiar with the D3D code writing tests is a good start. If you want to implement some small new functionality, maybe Nvidia's Depths Bound extension( NVDB, see http://aras-p.info/texts/D3D9GPUHacks.html ) might be a possible weekend project.
Btw, the above webpage might have some other d3d9 "extensions" that are more work could be suitable for Gsoc projects, maybe DF16, DF24, INTZ, RAWZ, NULL and ATOC.
Optimizing wined3d is certainly an idea as well, but it's not an easy task. We're beyond the point where you can get reasonable performance gains from simply fixing a loop or two. Some performance issues are known bugs(sRGB switching, sRGB write correction in HW, thread synchronization), others require tedious debugging to find out what specific 3D drivers don't like about our GL calls.
Perhaps the long talked about fixed function vertex shader replacement could be an option though. It would fix vertex blending but it might also improve performance (some people were complaining about poor GL T&L performance http://forum.winehq.org/viewtopic.php?t=7975). Further it might be more efficient for modern drivers anyway, especially open source DRI ones since they are mostly investing in shaders.
Roderick