Hi.
I've rebased the arb_vertex_program ffp vertex pipeline patchset to 1.1.18.
This time I managed to get the fog correct, and all the d3d9 tests pass.
I also did some benchmarks this time in both 3DMark 2000 and 2001SE, and have attached the results. Generally there's a fairly large slowdown in the fixed-function code, particularly in 3DMark 2000. Some of 2001SE's tests appear unaffected, which isn't surprising since some of them are D3D8 shader-based tests, not FFP tests. The fillrate tests appeared unaffected too.
This is on a Core 2 Duo machine with an nVidia 8600M GT, if it makes a difference.
I wasn't watching too carefully, but I did't notice any visual artefacts in the tests.
As I understand it, Stefan's not got the time or inclination to work on this at the moment, and my knowledge of ARB vertex programs and the D3D fixed-function pipeline is rather limited, so in all likelihood getting this going faster will require someone to get stuck into gen_arbvp_ffp_shader and its callees in arb_program_shader.c and get it feature-complete and sufficiently optimised to be on-par with the ffp-based vertex pipeline. I guess a GLSL-based vertex pipeline might be desired too...?
Then people can add features such as vertex-blending, and get No One Lives Forever 2 and bug #6955 cleared up.
As before, the code is entirely Stefans, but bugs may certainly have been introduced by me. Since it now passes the unit tests, it might be reasonable to actually consider this for mainline, with a registry key or env var to force a specific choice of fixed-function vertex pipeline.