From e7af7cb76dade31b9e40cede7ac21d32bc95831c Mon Sep 17 00:00:00 2001 From: Zhigang Gong Date: Wed, 1 Aug 2012 18:27:29 +0800 Subject: [PATCH] glamor_trapezoid: workaround a glsl like problem. It seems that the following statement cann't run as expected on SNB. bool trap_left_vertical = (abs(trap_left_vertical_f - 1.0) <= 0.0001); Have to rewrite it to another style to let the vertical edge trapezoid to be rendered correctly. Reviewed-by: Junyan He Signed-off-by: Zhigang Gong --- glamor/glamor_trapezoid.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/glamor/glamor_trapezoid.c b/glamor/glamor_trapezoid.c index fd63062f6..7813d825d 100644 --- a/glamor/glamor_trapezoid.c +++ b/glamor/glamor_trapezoid.c @@ -1068,8 +1068,6 @@ glamor_init_trapezoid_shader(ScreenPtr screen) "varying float trap_right_vertical_f; \n" "float x_per_pix = 1.0;" "float y_per_pix = 1.0;" - "bool trap_left_vertical = (abs(trap_left_vertical_f - 1.0) <= 0.0001);\n" - "bool trap_right_vertical = (abs(trap_right_vertical_f - 1.0) <= 0.0001);\n" "\n" "float get_alpha_val() \n" "{ \n" @@ -1077,6 +1075,16 @@ glamor_init_trapezoid_shader(ScreenPtr screen) " float x_bottom_cut_left; \n" " float x_up_cut_right; \n" " float x_bottom_cut_right; \n" + " bool trap_left_vertical;\n" + " bool trap_right_vertical;\n" + " if (abs(trap_left_vertical_f - 1.0) <= 0.0001)\n" + " trap_left_vertical = true;\n" + " else\n" + " trap_left_vertical = false;\n" + " if (abs(trap_right_vertical_f - 1.0) <= 0.0001)\n" + " trap_right_vertical = true;\n" + " else\n" + " trap_right_vertical = false;\n" " \n" " if(trap_left_vertical == true) { \n" " x_up_cut_left = trap_left_x; \n"