diff options
author | Juan Linietsky <reduzio@gmail.com> | 2017-04-02 17:25:57 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-04-02 17:25:57 +0200 |
commit | 65f8210e503dd6cc8fdfcae7de5cb7d9a1bed854 (patch) | |
tree | 2fc9ae60d3a41b0aaa529d40538f6a1bfc697967 /drivers | |
parent | dee7fb5ab5b1870400b2ae2fe383d995d5e76476 (diff) | |
parent | e65b8b666caf94d977d065445b1a31e4c67d31c3 (diff) |
Merge pull request #8233 from volzhs/fix-adreno-430
Fix failing to compile shader on Adreno GPU
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/gles3/shaders/screen_space_reflection.glsl | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/drivers/gles3/shaders/screen_space_reflection.glsl b/drivers/gles3/shaders/screen_space_reflection.glsl index e4ba712de6..8eec71ecb6 100644 --- a/drivers/gles3/shaders/screen_space_reflection.glsl +++ b/drivers/gles3/shaders/screen_space_reflection.glsl @@ -117,10 +117,10 @@ void main() { // 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_y = min(1, 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_y = min(1, 0.99 * vp_line_begin.y / max(1e-5, -vp_line_dir.y)); + 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, 0.99 * (1.0 - vp_line_begin.y) / max(1e-5, vp_line_dir.y)); + 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, 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); line_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 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; z+=z_advance; @@ -232,11 +232,11 @@ void main() { } final_pos = new_pos; - grad=(steps_taken+subgrad)/num_steps; + grad=(steps_taken+subgrad)/float(num_steps); } else { #endif - grad=steps_taken/num_steps; + grad=steps_taken/float(num_steps); final_pos=pos; #ifdef SMOOTH_ACCEL } @@ -259,7 +259,7 @@ void main() { vec2 cone_dir = final_pos - line_begin; float cone_len = length(cone_dir); 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 rem_alpha=1.0; |