diff --git a/glamor/glamor_core.c b/glamor/glamor_core.c index d4588e28a..3609600bc 100644 --- a/glamor/glamor_core.c +++ b/glamor/glamor_core.c @@ -151,10 +151,11 @@ glamor_init_finish_access_shaders(ScreenPtr screen) "}\n"; const char *fs_source = + GLAMOR_DEFAULT_PRECISION "varying vec2 source_texture;\n" "uniform sampler2D sampler;\n" - "uniform int no_revert;" - "uniform int swap_rb;" + "uniform int no_revert;\n" + "uniform int swap_rb;\n" "void main()\n" "{\n" " if (no_revert == 1) \n" @@ -174,10 +175,11 @@ glamor_init_finish_access_shaders(ScreenPtr screen) "}\n"; const char *set_alpha_source = + GLAMOR_DEFAULT_PRECISION "varying vec2 source_texture;\n" "uniform sampler2D sampler;\n" - "uniform int no_revert;" - "uniform int swap_rb;" + "uniform int no_revert;\n" + "uniform int swap_rb;\n" "void main()\n" "{\n" " if (no_revert == 1) \n" diff --git a/glamor/glamor_fill.c b/glamor/glamor_fill.c index cbd2b59f6..0b3d5fddf 100644 --- a/glamor/glamor_fill.c +++ b/glamor/glamor_fill.c @@ -112,6 +112,7 @@ glamor_init_solid_shader(ScreenPtr screen) " gl_Position = v_position;\n" "}\n"; const char *solid_fs = + GLAMOR_DEFAULT_PRECISION "uniform vec4 color;\n" "void main()\n" "{\n" diff --git a/glamor/glamor_priv.h b/glamor/glamor_priv.h index 1f3e8c464..4feb0048e 100644 --- a/glamor/glamor_priv.h +++ b/glamor/glamor_priv.h @@ -36,7 +36,6 @@ #include "glamor.h" #ifdef GLAMOR_GLES2 - #define GL_BGRA GL_BGRA_EXT #define GL_COLOR_INDEX 0x1900 #define GL_BITMAP 0x1A00 @@ -77,9 +76,15 @@ #ifdef GLAMOR_GLES2 #include #include + +#define GLAMOR_DEFAULT_PRECISION \ + "precision mediump float;\n" + #else #include #include + +#define GLAMOR_DEFAULT_PRECISION #endif diff --git a/glamor/glamor_render.c b/glamor/glamor_render.c index cec6c8d25..bc6347883 100644 --- a/glamor/glamor_render.c +++ b/glamor/glamor_render.c @@ -71,12 +71,14 @@ static GLuint glamor_create_composite_fs(struct shader_key *key) { const char *source_solid_fetch = + GLAMOR_DEFAULT_PRECISION "uniform vec4 source;\n" "vec4 get_source()\n" "{\n" " return source;\n" "}\n"; const char *source_alpha_pixmap_fetch = + GLAMOR_DEFAULT_PRECISION "varying vec2 source_texture;\n" "uniform sampler2D source_sampler;\n" "vec4 get_source()\n" @@ -84,6 +86,7 @@ glamor_create_composite_fs(struct shader_key *key) " return texture2D(source_sampler, source_texture);\n" "}\n"; const char *source_pixmap_fetch = + GLAMOR_DEFAULT_PRECISION "varying vec2 source_texture;\n" "uniform sampler2D source_sampler;\n" "vec4 get_source()\n" @@ -91,12 +94,14 @@ glamor_create_composite_fs(struct shader_key *key) " return vec4(texture2D(source_sampler, source_texture).rgb, 1);\n" "}\n"; const char *mask_solid_fetch = + GLAMOR_DEFAULT_PRECISION "uniform vec4 mask;\n" "vec4 get_mask()\n" "{\n" " return mask;\n" "}\n"; const char *mask_alpha_pixmap_fetch = + GLAMOR_DEFAULT_PRECISION "varying vec2 mask_texture;\n" "uniform sampler2D mask_sampler;\n" "vec4 get_mask()\n" @@ -104,6 +109,7 @@ glamor_create_composite_fs(struct shader_key *key) " return texture2D(mask_sampler, mask_texture);\n" "}\n"; const char *mask_pixmap_fetch = + GLAMOR_DEFAULT_PRECISION "varying vec2 mask_texture;\n" "uniform sampler2D mask_sampler;\n" "vec4 get_mask()\n" @@ -111,21 +117,25 @@ glamor_create_composite_fs(struct shader_key *key) " return vec4(texture2D(mask_sampler, mask_texture).rgb, 1);\n" "}\n"; const char *in_source_only = + GLAMOR_DEFAULT_PRECISION "void main()\n" "{\n" " gl_FragColor = get_source();\n" "}\n"; const char *in_normal = + GLAMOR_DEFAULT_PRECISION "void main()\n" "{\n" " gl_FragColor = get_source() * get_mask().a;\n" "}\n"; const char *in_ca_source = + GLAMOR_DEFAULT_PRECISION "void main()\n" "{\n" " gl_FragColor = get_source() * get_mask();\n" "}\n"; const char *in_ca_alpha = + GLAMOR_DEFAULT_PRECISION "void main()\n" "{\n" " gl_FragColor = get_source().a * get_mask();\n" diff --git a/glamor/glamor_tile.c b/glamor/glamor_tile.c index 8fe4b3891..c184dac26 100644 --- a/glamor/glamor_tile.c +++ b/glamor/glamor_tile.c @@ -50,6 +50,7 @@ glamor_init_tile_shader(ScreenPtr screen) " tile_texture = v_texcoord0.xy;\n" "}\n"; const char *tile_fs = + GLAMOR_DEFAULT_PRECISION "varying vec2 tile_texture;\n" "uniform sampler2D sampler;\n" "void main()\n"