I've recently rebuild shaders for my program and it stopped "working" ( black screen ) on OS X ( El Capitan ), but it's ok on Linux. What could be the cause?
There are no shader compilation errors, and here is my shader code:
https://github.com/Marqin/YuriaViewer/blob/master/vertex.glsl
Keep in mind that this software worked on El Capitan with OpenGL 4.1 before shader rewrite. Here are my glfw hints:
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 4);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 1);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
My program also is checking for GL_ARB_gpu_shader_fp64 and it's available on my Macbook ( Macbook Air 2013 mid ).
EDIT1:
I've "debugged" it a little and it looks that i is always lesser than vis on OS X, that's why it's black.
EDIT2:
I made a simple test - I've typed all uniform values in shader by hand and now it wasn't black, but I've got some gibberish on screen. Then I've changed every dvec3 and dvec2 to float versions and it showed nice fractal. So it looks like double is not working on OS X. But how can it be? It's saying that GL_ARB_gpu_shader_fp64 is available and it even doesn't complain when I request it in vertex shader.
EDIT3:
It works on iMac with R9 M395. So it's problem with Intel hardware ( or problem with OS X Intel driver ).
color()do you see anything? If so, then the problem's probably with thehsv2rgb()function. Otherwise it's probably with thecolor()function. Also, are you producing anyNaNorInfs? There's a lot of divides in there. Are any of them dividing by 0? Different drivers handle that differently. \$\endgroup\$iis always<thanvis, so it's always black. About 0 - w, h, zoom, posX, posY are never 0 before sending them to GPU. Maybe Uniform Buffer works differently on OS X and shader sees some 0's there on OS X? \$\endgroup\$doubleis the culprist. \$\endgroup\$