Răsfoiți Sursa

Merge pull request #94095 from clayjohn/GLES3-drawbuffers

Use `GL_COLOR_ATTACHMENT` in depth prepass when using Multiview.
Rémi Verschelde 1 an în urmă
părinte
comite
c10fde6137
1 a modificat fișierele cu 3 adăugiri și 1 ștergeri
  1. 3 1
      drivers/gles3/rasterizer_scene_gles3.cpp

+ 3 - 1
drivers/gles3/rasterizer_scene_gles3.cpp

@@ -2499,7 +2499,9 @@ void RasterizerSceneGLES3::render_scene(const Ref<RenderSceneBuffers> &p_render_
 		glColorMask(0, 0, 0, 0);
 		RasterizerGLES3::clear_depth(0.0);
 		glClear(GL_DEPTH_BUFFER_BIT);
-		glDrawBuffers(0, nullptr);
+		// Some desktop GL implementations fall apart when using Multiview with GL_NONE.
+		GLuint db = p_camera_data->view_count > 1 ? GL_COLOR_ATTACHMENT0 : GL_NONE;
+		glDrawBuffers(1, &db);
 
 		uint64_t spec_constant = SceneShaderGLES3::DISABLE_FOG | SceneShaderGLES3::DISABLE_LIGHT_DIRECTIONAL |
 				SceneShaderGLES3::DISABLE_LIGHTMAP | SceneShaderGLES3::DISABLE_LIGHT_OMNI |