On 02/26/2013 08:05 AM, Paul Berry wrote:
On 26 February 2013 01:47, Madan Mohan Chinnam <[email protected] <mailto:[email protected]>> wrote:Hi, I am trying to use "normalize" method at fragment test shader in my Open GL es2 application. precision mediump float; varying vec4 color; void main (void) { vec4 tmp_Color = color + vec4(0.25); gl_FragColor = vec4(normalize(tmp_Color.r), 0.0, 0.0, 1.0); } With above shader, my app colour is changed to "White". In the reference shader test case, gl_FragColor = vec4(tmp_Color.r / length(tmp_Color.r), 0.0, 0.0, 1.0); With above shader, the app colour becomes Red. When I saw normalize.ir <http://normalize.ir> in src\glsl\builtins\ir folder, from line no: 5 for float argument ((return (expression float sign (var_ref arg0))))) With above expression, normalize should produce expected behaviour. Not known about the reason for unexpected behaviour. When I changed the code in normalize.ir <http://normalize.ir> for float argument as like below, application is behaving as expected (Red colour). ((return (expression float / (var_ref arg0) (expression float abs (var_ref arg0)))))) Is any known bug present in mesa for float argument normalize, or am I missing any thing? Thanks & Regards Madan This is unexpected, and not caused by any bug that I'm aware of. A few questions: - What version of Mesa are you using? - What graphics hardware are you using? - Can you send us a small test program that demonstrates the bug (not just the fragment shader, but a full C program that creates a window, sets up the shaders, and draws the incorrect image)?
Or maybe a piglit shader_runner script? -Brian _______________________________________________ mesa-dev mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-dev
