godotengine / godot

Godot Engine – Multi-platform 2D and 3D game engine
https://godotengine.org
MIT License
89.43k stars 20.25k forks source link

blue circles at the end of y-axis are back (only when compiling with Clang) #11247

Closed novemberist closed 6 years ago

novemberist commented 7 years ago

Operating system or device, Godot version, GPU Model and driver (if graphics related): Arch Linux, Godot 3 master, Mesa 17.2

Issue description: same issue as this one: https://github.com/godotengine/godot/issues/10204 those circles were gone for a while and have started to reappear the last few commits. I'm beginning to wonder if this is even an issue with godot or if mesa is to blame...

ghost commented 7 years ago

I still can't reproduce this in the latest commit cc30e2a.

novemberist commented 7 years ago

I think i found the reason why the blue circles seemingly keep coming and going. I recompiled godot with gcc 7.2 and now they are gone again. i had just recently started using clang again to build godot (around the same time the blue circles appeared), so oddly enough this seems to be a compiler issue...

GiantBlargg commented 7 years ago

I can confirm that these are still present in latest commit a42fbfc when compiled with clang.

reduz commented 6 years ago

this portal may be either a) A floating point precision error in the panorama shader https://github.com/godotengine/godot/blob/master/drivers/gles3/shaders/copy.glsl#L82 b) A floating point precision error or similar in the procedural sky code: https://github.com/godotengine/godot/blob/master/scene/resources/sky_box.cpp#L131

novemberist commented 6 years ago

any ideas why this only appears in godot builds compiled with clang(5.0) but not those compiled with gcc(7.2) ?

reduz commented 6 years ago

My hunch is that the atan2 func is leaning towards dividing by zero in proceduralsky. Bug is likely in the sky .cpp

On Nov 6, 2017 2:56 PM, "novemberist" notifications@github.com wrote:

any ideas why this only appears in godot builds compiled with clang(5.0) but not those compiled with gcc(7.2) ?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/godotengine/godot/issues/11247#issuecomment-342231448, or mute the thread https://github.com/notifications/unsubscribe-auth/AF-Z21qZqHTIaxu-ak-dtuhk9nCXmHB1ks5sz0hagaJpZM4PWoT_ .

keeblebrox commented 6 years ago

I'm unable to replicate this using current master, 2f3c4c94d.

Manjaro Linux 4.9.61-3-MANJARO, Mesa 17.2.5, Clang 5.0.0

Smjert commented 6 years ago

I'm able to replicate it on current master bf45e569c Arch Linux 4.14.3-1-ARCH, Nvidia 387.34-7, Clang 5.0.0-1

Smjert commented 6 years ago

I'm trying to look into it, there's indeed a difference between GCC and Clang when calculating the normal vector with theta and phi 0 (and not only in those cases) GCC:

theta: 0.0000000000 phi: 0.0000000000 normal.y: 0.9999999404 v_angle: 0.0003452670 c y > 0: 0.0002198038 sun_angle: 55.0000076294

LLVM:

theta: 0.0000000000 phi: 0.0000000000 normal.y: 1.0000001192 v_angle: -nan c y > 0: -nan sun_angle: 54.9999885559