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