2018-06-06 3:32 GMT+02:00 Alistair Leslie-Hughes leslie_alistair@hotmail.com:
Hi Matteo,
On 06/06/18 08:32, Matteo Bruni wrote:
{
GL_EXTCALL(glBindFragDataLocation(program_id, 0, "ps_out"));
checkGLcall("glBindFragDataLocation");
for (i = 0; i < MAX_RENDER_TARGET_VIEWS; ++i)
Is there a reason why MAX_RENDER_TARGET_VIEWS is used instead of "gl_info->limits.buffers"?
Hmm, it was intentional but it looks like it doesn't matter in practice. We only execute that if (!needs_legacy_glsl_syntax()), which means GLSL 1.30+ and thus OpenGL 3.0+. That requires that GL_MAX_DRAW_BUFFERS is >= 8. OpenGL ES apparently only mandates 4 draw buffers so things would be a bit more murky there, except that there is no glBindFragDataLocation() in ES at all (you're supposed to use layout qualifiers in the fragment shader instead - I guess I'll have to rework it again to handle that).
Anyway, I can switch to gl_info->limits.buffers, it shouldn't hurt and I have to resend it anyway...