[PATCH xserver] glamor: Declare "pos" in the composite glyph GLSL 1.20 vertex shader

Michel Dänzer michel at daenzer.net
Thu Aug 18 00:43:58 UTC 2016


From: Michel Dänzer <michel.daenzer at amd.com>

Fixes shader compile failure:

 Failed to compile VS: 0:13(43): error: `pos' undeclared
0:13(14): error: operands to arithmetic operators must be numeric
0:13(13): error: operands to arithmetic operators must be numeric

 Program source:
#define ATLAS_DIM_INV 0.000976562500000000
attribute vec2 primitive;
attribute vec2 source;
varying vec2 glyph_pos;
uniform vec2 fill_offset;
uniform vec2 fill_size_inv;
varying vec2 fill_pos;
uniform vec4 v_matrix;
void main() {
       gl_Position.xy = primitive.xy * v_matrix.xz + v_matrix.yw;
       gl_Position.zw = vec2(0.0,1.0);
       glyph_pos = source.xy * ATLAS_DIM_INV;
       fill_pos = (fill_offset + primitive.xy + pos) * fill_size_inv;
}
 (EE) Fatal server error:
 (EE) GLSL compile failure

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=97300
Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
---
 glamor/glamor_composite_glyphs.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/glamor/glamor_composite_glyphs.c b/glamor/glamor_composite_glyphs.c
index cc0aa6f..b651274 100644
--- a/glamor/glamor_composite_glyphs.c
+++ b/glamor/glamor_composite_glyphs.c
@@ -199,7 +199,8 @@ static const glamor_facet glamor_facet_composite_glyphs_120 = {
     .vs_vars = ("attribute vec2 primitive;\n"
                 "attribute vec2 source;\n"
                 "varying vec2 glyph_pos;\n"),
-    .vs_exec = (GLAMOR_POS(gl_Position, primitive)
+    .vs_exec = ("       vec2 pos = vec2(0,0);\n"
+                GLAMOR_POS(gl_Position, primitive.xy)
                 "       glyph_pos = source.xy * ATLAS_DIM_INV;\n"),
     .fs_vars = ("varying vec2 glyph_pos;\n"),
     .fs_exec = ("       vec4 mask = texture2D(atlas, glyph_pos);\n"),
-- 
2.9.3



More information about the xorg-devel mailing list