Merge pull request #8233 from volzhs/fix-adreno-430

Fix failing to compile shader on Adreno GPU
This commit is contained in:
Juan Linietsky 2017-04-02 17:25:57 +02:00 committed by GitHub
commit 65f8210e50

View file

@ -117,10 +117,10 @@ void main() {
// clip the line to the viewport edges // clip the line to the viewport edges
float scale_max_x = min(1, 0.99 * (1.0 - vp_line_begin.x) / max(1e-5, vp_line_dir.x)); float scale_max_x = min(1.0, 0.99 * (1.0 - vp_line_begin.x) / max(1e-5, vp_line_dir.x));
float scale_max_y = min(1, 0.99 * (1.0 - vp_line_begin.y) / max(1e-5, vp_line_dir.y)); float scale_max_y = min(1.0, 0.99 * (1.0 - vp_line_begin.y) / max(1e-5, vp_line_dir.y));
float scale_min_x = min(1, 0.99 * vp_line_begin.x / max(1e-5, -vp_line_dir.x)); float scale_min_x = min(1.0, 0.99 * vp_line_begin.x / max(1e-5, -vp_line_dir.x));
float scale_min_y = min(1, 0.99 * vp_line_begin.y / max(1e-5, -vp_line_dir.y)); float scale_min_y = min(1.0, 0.99 * vp_line_begin.y / max(1e-5, -vp_line_dir.y));
float line_clip = min(scale_max_x, scale_max_y) * min(scale_min_x, scale_min_y); float line_clip = min(scale_max_x, scale_max_y) * min(scale_min_x, scale_min_y);
line_dir *= line_clip; line_dir *= line_clip;
z_dir *= line_clip; z_dir *= line_clip;
@ -150,9 +150,9 @@ void main() {
//if acceleration > 0, distance between pixels gets larger each step. This allows covering a larger area //if acceleration > 0, distance between pixels gets larger each step. This allows covering a larger area
float accel=1.0+acceleration; float accel=1.0+acceleration;
float steps_taken=0; float steps_taken=0.0;
for(float i=0;i<num_steps;i++) { for(int i=0;i<num_steps;i++) {
pos+=line_advance; pos+=line_advance;
z+=z_advance; z+=z_advance;
@ -232,11 +232,11 @@ void main() {
} }
final_pos = new_pos; final_pos = new_pos;
grad=(steps_taken+subgrad)/num_steps; grad=(steps_taken+subgrad)/float(num_steps);
} else { } else {
#endif #endif
grad=steps_taken/num_steps; grad=steps_taken/float(num_steps);
final_pos=pos; final_pos=pos;
#ifdef SMOOTH_ACCEL #ifdef SMOOTH_ACCEL
} }
@ -259,7 +259,7 @@ void main() {
vec2 cone_dir = final_pos - line_begin; vec2 cone_dir = final_pos - line_begin;
float cone_len = length(cone_dir); float cone_len = length(cone_dir);
cone_dir = normalize(cone_dir); //will be used normalized from now on cone_dir = normalize(cone_dir); //will be used normalized from now on
float max_mipmap = filter_mipmap_levels -1; float max_mipmap = filter_mipmap_levels - 1.0;
float gloss_mult=gloss; float gloss_mult=gloss;
float rem_alpha=1.0; float rem_alpha=1.0;