Regression in patch wined3d: Implement D3DSIO_MOVA in ARB backend.

Ivan Gyurdiev ivg231 at gmail.com
Mon Oct 30 00:23:46 CST 2006


Mirek wrote:
> Ok, i just found why is it not working with this patch, and why is it
> working without this patch. It is based on position of definition MOVA
> in vertexshader.c, if MOVA is on "after patch" position it is not
> working, but if i move line "
> {WINED3DSIO_MOVA, "mova",  NULL, 1, 2, vshader_mova, vshader_hw_map2gl,
> shader_glsl_mov, WINED3DVS_VERSION(2,0), -1}," to position of definition
> before patch, evrything is working.
...
that's because Jason seems to have introduced order requirements on the 
table that weren't previously there. The mnxn implementation will 
attempt to access the table as an array, which will break once MOVA is 
moved before DP3:

glsl_shader.c:            tmpArg.opcode = 
&IWineD3DVertexShaderImpl_shader_ins[WINED3DSIO_DP4];
glsl_shader.c:            tmpArg.opcode = 
&IWineD3DVertexShaderImpl_shader_ins[WINED3DSIO_DP3];

The instruction table currently does not support this, and it only 
happens to work for the first few instructions [ which the MOVA change 
breaks ].




More information about the wine-devel mailing list