GPU: Windows+Intel Selection Fix
authorJeroen Bakker <j.bakker@atmind.nl>
Tue, 14 May 2019 11:55:35 +0000 (13:55 +0200)
committerJeroen Bakker <j.bakker@atmind.nl>
Tue, 14 May 2019 12:55:12 +0000 (14:55 +0200)
On Windows 10 with a post Februari 2019 Intel driver, the box selection
is not working. It only detects the object centers, but not the drawn
triangles of the basic engine.

Reviewed By: fclem

Maniphest Tasks: T62947

Differential Revision: https://developer.blender.org/D4857

source/blender/gpu/intern/gpu_select_sample_query.c

index 3fbc24d60893e6e75c9ca351a4bc3821a77f7583..56f9ef69221844faa508b1809ab85fbe17025083 100644 (file)
@@ -104,8 +104,11 @@ void gpu_select_query_begin(
   /* occlusion queries operates on fragments that pass tests and since we are interested on all
    * objects in the view frustum independently of their order, we need to disable the depth test */
   if (mode == GPU_SELECT_ALL) {
-    glDisable(GL_DEPTH_TEST);
-    glDepthMask(GL_FALSE);
+    /* glQueries on Windows+Intel drivers only works with depth testing turned on.
+     * See T62947 for details */
+    glEnable(GL_DEPTH_TEST);
+    glDepthFunc(GL_ALWAYS);
+    glDepthMask(GL_TRUE);
   }
   else if (mode == GPU_SELECT_NEAREST_FIRST_PASS) {
     glClear(GL_DEPTH_BUFFER_BIT);