diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2015-09-16 17:17:12 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2015-09-16 17:28:40 +0300 |
commit | 3f05d72a98ba443cd9c2bc25f85a5b77116e87e5 (patch) | |
tree | b0e7d13b680c4625eae07f2381fa4b7a56572442 /intern | |
parent | 182b5736fbfd81eecf8bd6d36d8b74fced2c1f5a (diff) |
Fix T45708: OpenSubdiv crashes on Windows with Intel cards
Disable Intel cards for until we'll go to the root of the issue of the crash.
This will take a bit, so being so close to the release we go safe and disable
unstable GPU, so blender at least doesn't crash.
This could be bypassed by setting OPENSUBDIV_ALLOW_INTEL environment variable.
Diffstat (limited to 'intern')
-rw-r--r-- | intern/opensubdiv/opensubdiv_capi.cc | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/intern/opensubdiv/opensubdiv_capi.cc b/intern/opensubdiv/opensubdiv_capi.cc index 28d1c259246..dbd93a0a5e9 100644 --- a/intern/opensubdiv/opensubdiv_capi.cc +++ b/intern/opensubdiv/opensubdiv_capi.cc @@ -30,6 +30,7 @@ # include "iso646.h" #endif +#include <stdlib.h> #include <GL/glew.h> #include <opensubdiv/osd/glMesh.h> @@ -294,6 +295,28 @@ const struct OpenSubdiv_TopologyRefinerDescr *openSubdiv_getGLMeshTopologyRefine int openSubdiv_supportGPUDisplay(void) { + { + /* Currently Intel GPUs has hard time working on Windows. + * + * For until we've got access to a hardware which demonstrates + * the issue we disable OpenSubdiv on Intel GPUs. + */ + static bool vendor_checked = false; + static bool is_intel = false; + if (!vendor_checked) { + const char *vendor = (const char *)glGetString(GL_VENDOR); + const char *renderer = (const char *)glGetString(GL_RENDERER); + if (strstr(vendor, "Intel")) { + if(getenv("OPENSUBDIV_ALLOW_INTEL") == NULL) { + is_intel = true; + } + } + } + if (is_intel) { + return false; + } + } + return GLEW_EXT_geometry_shader4 && GLEW_ARB_gpu_shader5 && GLEW_ARB_uniform_buffer_object; |