https://bugs.winehq.org/show_bug.cgi?id=8051
Stefan Dösinger stefan@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |stefan@codeweavers.com
--- Comment #125 from Stefan Dösinger stefan@codeweavers.com --- (In reply to swswine from comment #124)
The reason is that Sims2 is using some shader compilaton function from d3dx library (which has fancy static linkage in sims2 exe files, so no way to use builtin d3dx.dll). That function requests undocumentated interface from d3d9 through Direct3DShaderValidatorCreate9, and fails if it is not available.
I noticed d3dx9 trying to create a shader validator interface, but so far it has always been happy with the NULL return and just skipped validation. Are you sure it really needs this?
After that, if shader model 3.0 is available, the model stops rendering at all and the trace is full of indications of unsupported features. Not fully supported ProcessVertices implementation goes first, then a few other things like tangent, binormal and vertex blend indices vertex attributes, and some more. These probably should be sorted out one by one.
Horray. A game that actually needs ProcessVertices with shader support. This will be pretty nasty to implement. Our ProcessVertices so far only supports very basic fixed function operations - just transformation, no lighting support. For shader support we'll need to be able to interpret the shader on the CPU, or maybe we can work with one of those OpenGL feedback extensions.
The other stuff is probably RHW vertices + Shader Model 3 shaders. This should be fixable with the fixed function vertex pipeline GLSL shader. I wonder though if this stuff works on any modern Windows driver though. We removed the tests that test the related functionality because we were getting broken behavior on newer drivers. (There are plenty of differences between those old tests and Sims 2 though. One being explicit SWVP, the other is that ProcessVertices + RHW draw is most likely different from just an RHW draw)