D3D Pixel/Vertex shader discussion (for shader model 2.0+)

Aric Cyr Aric.Cyr at gmail.com
Mon May 8 22:38:00 CDT 2006

Jason Green <jave27 <at> gmail.com> writes:

> On 5/4/06, Raphael <fenix <at> club-internet.fr> wrote:
> Also, I'm not sure of the ramifications of using both GLSL shaders and
> ARB_vertex_program shaders at the same time...  Haven't got that far
> yet, but it's a good question to look into.

You can't use both at the exact same time, but it should be possible to switch
between them.  Also you cannot combine ARB_v_p with GLSL as far as I know.  I
remember reading somewhere in the GLSL spec that states that if a vertex shader
is used an accompanying pixel shader must be used as well (and vice-versa),
implying that you either use all GLSL or all ARB_v_p but can't mix-n-match.

I would think that once GLSL is in use, we shouldn't have a reason to change to
ARB_v_p.  Maybe some apps/games out there use, for example, Pixel Shader 1.4
with Vertex Shader 2.0?  If so, then we would have to have a PS1.4->GLSL path. 
I wouldn't worry about this unless it actually arises though.  (Maybe non-issue,
found this on MSDN: "If you are implementing shaders in hardware, you may not
use vs_3_0 or ps_3_0 with any other shader versions, and you may not use either
shader type with the fixed function pipeline.").

Out of curiosity, is anyone working on a HLSL->GLSL compiler?  This seems like a
large, non-trivial part of shader model 3 that would be required for Wine to
properly implement HLSL.

- Aric

More information about the wine-devel mailing list