[2/2] wined3d: For ps_2_0 and higher, call shader_get_registers_used() in IWineD3DPixelShaderImpl_SetFunction

Stefan Dösinger stefandoesinger at gmx.at
Fri Jun 8 05:39:26 CDT 2007


> No, just filling the register maps. The actual generation of the GL
> shader still happens in CompileShader. It's nothing really
> spectacular, but it still saves us making a pass over the d3d shader
> in CompileShader, which is typically called from inside draw calls.
Sounds good :-)

As some optimization somewhen we could try pre-generate most of the shader in 
SetFunction and just insert a few values based on the stateblock in 
CompileShader. Something like storing offsets / pointers into the char[] 
array which contains the glsl / arb string where a "1" / "2" / "3" or "cube" 
has to be inserted, or comment marks added / removed. The actual GL 
compilation still needs to be done during draw though.



More information about the wine-devel mailing list