Skip to content

Commit 8caaf5c

Browse files
authored
Merge pull request #1314 from SamuelCho/macDeferredLightingFix
Reorder fragment shader destination binds to fix Mac deferred lighting.
2 parents caaaf32 + 7db1861 commit 8caaf5c

File tree

1 file changed

+7
-7
lines changed

1 file changed

+7
-7
lines changed

code/graphics/opengl/gropenglshader.cpp

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -582,6 +582,13 @@ int opengl_compile_shader(shader_type sdr, uint flags)
582582
glBindAttribLocation(program->getShaderHandle(), i, GL_vertex_attrib_info[i].name.c_str());
583583
}
584584

585+
// bind fragment data locations before we link the shader
586+
glBindFragDataLocation(program->getShaderHandle(), 0, "fragOut0");
587+
glBindFragDataLocation(program->getShaderHandle(), 1, "fragOut1");
588+
glBindFragDataLocation(program->getShaderHandle(), 2, "fragOut2");
589+
glBindFragDataLocation(program->getShaderHandle(), 3, "fragOut3");
590+
glBindFragDataLocation(program->getShaderHandle(), 4, "fragOut4");
591+
585592
if (do_shader_caching()) {
586593
// Enable shader caching
587594
glProgramParameteri(program->getShaderHandle(), GL_PROGRAM_BINARY_RETRIEVABLE_HINT, GL_TRUE);
@@ -602,13 +609,6 @@ int opengl_compile_shader(shader_type sdr, uint flags)
602609

603610
opengl_shader_set_current(&new_shader);
604611

605-
// bind fragment data locations
606-
glBindFragDataLocation(new_shader.program->getShaderHandle(), 0, "fragOut0");
607-
glBindFragDataLocation(new_shader.program->getShaderHandle(), 1, "fragOut1");
608-
glBindFragDataLocation(new_shader.program->getShaderHandle(), 2, "fragOut2");
609-
glBindFragDataLocation(new_shader.program->getShaderHandle(), 3, "fragOut3");
610-
glBindFragDataLocation(new_shader.program->getShaderHandle(), 4, "fragOut4");
611-
612612
// initialize uniforms and attributes
613613
for (auto& unif : sdr_info->uniforms) {
614614
new_shader.program->Uniforms.initUniform(unif);

0 commit comments

Comments
 (0)