Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2015-09-16 17:17:12 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2015-09-16 17:28:40 +0300
commit3f05d72a98ba443cd9c2bc25f85a5b77116e87e5 (patch)
treeb0e7d13b680c4625eae07f2381fa4b7a56572442 /intern/opensubdiv
parent182b5736fbfd81eecf8bd6d36d8b74fced2c1f5a (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/opensubdiv')
-rw-r--r--intern/opensubdiv/opensubdiv_capi.cc23
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;