I have some simple shaders I made that are working on my Nvidia card but not on my friend's AMD card. They are compiling on his card but not rendering anything. I have heard AMD is stricter than Nvidia on sticking to the specifications but I have followed them as far as I can tell. Any suggestions?
Vertex shader:
#version 150
in vec4 in_Position;
in vec4 in_Color;
in vec2 in_TextureCoord;
uniform int width;
uniform int height;
uniform int xOffset;
uniform int yOffset;
uniform int zOffset;
out vec4 pass_Color;
out vec2 pass_TextureCoord;
void main(void) {
gl_Position.z = in_Position.z + (float(zOffset) / 100.0f);
gl_Position.w = in_Position.w;
gl_Position.x = ((0.5f / float(width)) + ((in_Position.x + float(xOffset)) / float(width))) * 2.0f - 1.0f;
gl_Position.y = ((0.5f / float(height)) + ((in_Position.y + float(yOffset)) / float(height))) * 2.0f - 1.0f;
pass_Color = in_Color;
pass_TextureCoord = in_TextureCoord;
}
Fragment shader:
#version 150
uniform sampler2D texture_diffuse;
uniform int final;
in vec4 pass_Color;
in vec2 pass_TextureCoord;
out vec4 out_Color;
void main(void) {
out_Color = pass_Color;
out_Color = texture(texture_diffuse, pass_TextureCoord);
if(out_Color.w != 0.0f && final == 1){
out_Color.w = 1.0f;
}
}