mirror of
https://github.com/ZDoom/gzdoom-gles.git
synced 2024-11-30 16:01:49 +00:00
- added workaround for GLSL noise functions on macOS
There is no chance that Apple will fix their OpenGL drivers The only viable solution is to preprocess these functions out, and put zeroes instead of them
This commit is contained in:
parent
1bc67cf7b9
commit
3185e359b9
1 changed files with 11 additions and 1 deletions
|
@ -321,6 +321,16 @@ bool FShader::Load(const char * name, const char * vert_prog_lump, const char *
|
||||||
i_data += "#define brighttexture texture2\n";
|
i_data += "#define brighttexture texture2\n";
|
||||||
i_data += "#endif\n";
|
i_data += "#endif\n";
|
||||||
|
|
||||||
|
#ifdef __APPLE__
|
||||||
|
// The noise functions are completely broken in macOS OpenGL drivers
|
||||||
|
// Garbage values are returned, and their infrequent usage causes extreme slowdown
|
||||||
|
// Also, these functions must return zeroes since GLSL 4.4
|
||||||
|
i_data += "#define noise1(unused) 0.0\n";
|
||||||
|
i_data += "#define noise2(unused) vec2(0)\n";
|
||||||
|
i_data += "#define noise3(unused) vec3(0)\n";
|
||||||
|
i_data += "#define noise4(unused) vec4(0)\n";
|
||||||
|
#endif // __APPLE__
|
||||||
|
|
||||||
int vp_lump = Wads.CheckNumForFullName(vert_prog_lump, 0);
|
int vp_lump = Wads.CheckNumForFullName(vert_prog_lump, 0);
|
||||||
if (vp_lump == -1) I_Error("Unable to load '%s'", vert_prog_lump);
|
if (vp_lump == -1) I_Error("Unable to load '%s'", vert_prog_lump);
|
||||||
FMemLump vp_data = Wads.ReadLump(vp_lump);
|
FMemLump vp_data = Wads.ReadLump(vp_lump);
|
||||||
|
@ -824,4 +834,4 @@ void gl_DestroyUserShaders()
|
||||||
// todo
|
// todo
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue