Commit: baf84ecbe4910d91a7e1586f207c575992f582a5
Author: Jeroen Bakker
Date:   Wed Dec 9 12:14:44 2020 +0100
Branches: master
https://developer.blender.org/rBbaf84ecbe4910d91a7e1586f207c575992f582a5

Workaround for Access Violation startup crash on deprecated Radeon GPUs on 
Windows

This is a workaround for T80804.

There's a startup crash that happens on 2.91.0 on Windows, an 
`EXCEPTION_ACCESS_VIOLATION`
on `atio6axx.dll`. It is triggered by `glClear` on the 
`detect_mip_render_workaround`
function. The workaround moves the function after the device/driver workaround 
section and
sets the flag to the affected one to avoid running the check.

It is deprecated hardware that has not meet the minimum requirements since 
2.79, but is
still usable and this extends its usability a bit before the cards are finally 
blacklisted.

Reviewed By: Jeroen Bakker

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

===================================================================

M       release/datafiles/locale
M       release/scripts/addons
M       source/blender/gpu/opengl/gl_backend.cc

===================================================================

diff --git a/release/datafiles/locale b/release/datafiles/locale
index 1c0e9c29fd3..9e40c01dffd 160000
--- a/release/datafiles/locale
+++ b/release/datafiles/locale
@@ -1 +1 @@
-Subproject commit 1c0e9c29fd33963ff42ff9252a64016abda8d2a7
+Subproject commit 9e40c01dffd3f720b23b906d20df8e999d34a4af
diff --git a/release/scripts/addons b/release/scripts/addons
index 7faa6b379fd..1191a172ac3 160000
--- a/release/scripts/addons
+++ b/release/scripts/addons
@@ -1 +1 @@
-Subproject commit 7faa6b379fd818b8af8cf8279ff9f43cbdbb169e
+Subproject commit 1191a172ac389e3d068a8ef7d16f36457e67e3bc
diff --git a/source/blender/gpu/opengl/gl_backend.cc 
b/source/blender/gpu/opengl/gl_backend.cc
index 26ec85ec872..08ad2343ba3 100644
--- a/source/blender/gpu/opengl/gl_backend.cc
+++ b/source/blender/gpu/opengl/gl_backend.cc
@@ -247,10 +247,6 @@ static void detect_workarounds()
     return;
   }
 
-  /* Some Intel drivers have issues with using mips as framebuffer targets if
-   * GL_TEXTURE_MAX_LEVEL is higher than the target mip.
-   * Only check at the end after all other workarounds because this uses the 
drawing code. */
-  GCaps.mip_render_workaround = detect_mip_render_workaround();
   /* Limit support for GLEW_ARB_base_instance to OpenGL 4.0 and higher. NVIDIA 
Quadro FX 4800
    * (TeraScale) report that they support GLEW_ARB_base_instance, but the 
driver does not support
    * GLEW_ARB_draw_indirect as it has an OpenGL3 context what also matches the 
minimum needed
@@ -271,6 +267,7 @@ static void detect_workarounds()
       (strstr(version, "4.5.13399") || strstr(version, "4.5.13417") ||
        strstr(version, "4.5.13422"))) {
     GLContext::unused_fb_slot_workaround = true;
+    GCaps.mip_render_workaround = true;
     GCaps.shader_image_load_store_support = false;
     GCaps.broken_amd_driver = true;
   }
@@ -362,6 +359,13 @@ static void detect_workarounds()
     }
   }
 
+  /* Some Intel drivers have issues with using mips as framebuffer targets if
+   * GL_TEXTURE_MAX_LEVEL is higher than the target mip.
+   * Only check at the end after all other workarounds because this uses the 
drawing code.
+   * Also after device/driver flags to avoid the check that causes pre GCN 
Radeon to crash. */
+  if (GCaps.mip_render_workaround == false) {
+    GCaps.mip_render_workaround = detect_mip_render_workaround();
+  }
   /* Disable multidraw if the base instance cannot be read. */
   if (GLContext::shader_draw_parameters_support == false) {
     GLContext::multi_draw_indirect_support = false;

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to