[2/8] wined3d: Select the right shader backend when creating the device

H. Verbeet hverbeet at gmail.com
Tue Nov 28 02:48:25 CST 2006


On 28/11/06, Ivan Gyurdiev <ivg231 at gmail.com> wrote:
> http://oss.sgi.com/projects/ogl-sample/registry/ARB/vertex_shader.txt
>
> Interactions with ARB_vertex_program and ARB_fragment_program
>
>     Mixing a high level ARB_vertex_shader shader with a low level
>     ARB_fragment_program shader is allowed. However, a high level
>     ARB_vertex_shader shader and a low level ARB_vertex_program shader
>     cannot be active at the same time.
>
> http://oss.sgi.com/projects/ogl-sample/registry/ARB/fragment_shader.txt:
>
> Interactions with ARB_vertex_program and ARB_fragment_program
>
>     Mixing a high level ARB_fragment_shader shader with a low level
>     ARB_vertex_program shader is allowed. However, a high level
>     ARB_fragment_shader shader and a low level ARB_fragment_program shader
>     cannot be active at the same time.
>
"Allowed" is not quite the same as "useful" though.

Another issue that comes up when trying to mix eg a software vertex
shader with a hardware pixel shader is that you can't actually pass
varyings from the software vertex shader to the hardware pixel shader.

> >> allowing the mixing of types probably leads to a more complete feature
> >> set in the end.
> > Except that there are no actual meaningful combinations to make.
> Well, at least you can turn the pixel and vertex shaders off
> individually, rather than turn off shaders completely (using the NONE
> backend). I think up until a few releases ago pixel shaders were off by
> default.
Note, when you read the patch, that the "none" backend is only used
when *both* vertex and pixel shaders are disabled. Turning of
individual shaders is completely separate from the backend being used.
Currently the ps_selected / vs_selected flags are used for that, but
the idea is to turn that into a flag specific for turning on/off the
respective shader type.



More information about the wine-devel mailing list