PDA

View Full Version : Poor glsl performance



7th
05-09-2005, 12:34 AM
Hi
I am new to shaders and am having problems with performance. I am finding that even when using the simplest of shaders (i.e. replacing OpenGL standard functionality) the framerate of my app takes a significant hit. Should I not see the same perfomance from this?

My app renders large textures (up to 2k x 2k and many of them) on to high resolution screens so my fill requirements are high. However, all I really was looking for was the same level of performance with shaders as without.

Am I missing something?

Thanks

Corrail
05-09-2005, 01:11 AM
The shader performance also depends on the graphics card and the GLSL compiler in the driver. In most cases I think that the compiler will not be able to make an asembler code that is as fast as the fixed function pipeline.
But gernerally using Shader is slower than using fixed function. Escpecially when using GeForce FX graphics card because their shader core is partially seperated from the fixed function pipeline.

7th
05-09-2005, 03:06 AM
My card is 5950 Ultra, but I have seen exactly the same issue from both a 6600 and a Realizm 200, although probably less defined.
I have read that the 6xxx series of nVidia cards have higher performance shader support - does this just mean higher or as high as it would be without the use of shaders?

Thanks

Ffelagund
05-09-2005, 03:13 AM
I'm curious, could you post the shader?

7th
05-09-2005, 03:58 AM
Life doesn't get any easier than with this shader (or does it).......

// Vertex
void main( void )
{
gl_TexCoord[0] = gl_MultiTexCoord0;
gl_Position = ftransform();
gl_FrontColor = gl_Color;
}

// Fragment
uniform sampler2D tex;

void main( void )
{
// Get the fragment colour for the modulated texture
vec4 colour = texture2D(tex, gl_TexCoord[0].st);
gl_FragColor = colour * gl_Color;
}

zed
05-09-2005, 11:09 AM
the biggest framedrop is cause glsl operates at 32bit throughout as standard, fixed function is lower (gffx cards esp have problems at 32bit vs say 16, not so apparent on gf6x cards apparently)