[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