Module: Mesa Branch: 10.3 Commit: 6fa07d1d4842169906155c6de58475fefe780204 URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=6fa07d1d4842169906155c6de58475fefe780204
Author: Marek Olšák <[email protected]> Date: Thu Oct 16 16:21:54 2014 +0200 glsl_to_tgsi: fix the value of gl_FrontFacing with native integers We must convert it to boolean from the DX9 float encoding that Gallium specifies. Later, we should probably define that FACE should be 0 or ~0 if native integers are supported. Cc: 10.2 10.3 <[email protected]> Reviewed-by: Eric Anholt <[email protected]> (cherry picked from commit 9ec305ead7750c7f91c79b043584c1997bacd9a7) --- src/mesa/state_tracker/st_glsl_to_tgsi.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp index 34f7e9c..57416d1 100644 --- a/src/mesa/state_tracker/st_glsl_to_tgsi.cpp +++ b/src/mesa/state_tracker/st_glsl_to_tgsi.cpp @@ -4818,15 +4818,19 @@ emit_wpos(struct st_context *st, * saturating the value to [0,1] does the job. */ static void -emit_face_var(struct st_translate *t) +emit_face_var(struct gl_context *ctx, struct st_translate *t) { struct ureg_program *ureg = t->ureg; struct ureg_dst face_temp = ureg_DECL_temporary(ureg); struct ureg_src face_input = t->inputs[t->inputMapping[VARYING_SLOT_FACE]]; - /* MOV_SAT face_temp, input[face] */ - face_temp = ureg_saturate(face_temp); - ureg_MOV(ureg, face_temp, face_input); + if (ctx->Const.NativeIntegers) { + ureg_FSGE(ureg, face_temp, face_input, ureg_imm1f(ureg, 0)); + } + else { + /* MOV_SAT face_temp, input[face] */ + ureg_MOV(ureg, ureg_saturate(face_temp), face_input); + } /* Use face_temp as face input from here on: */ t->inputs[t->inputMapping[VARYING_SLOT_FACE]] = ureg_src(face_temp); @@ -4946,7 +4950,7 @@ st_translate_program( } if (proginfo->InputsRead & VARYING_BIT_FACE) - emit_face_var(t); + emit_face_var(ctx, t); /* * Declare output attributes. _______________________________________________ mesa-commit mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-commit
