[Bf-blender-cvs] [e2806b7429c] master: Revert "Fix T71576 Mesh error on mutimaterial Meshes on legacy nvidia drivers"

Clément Foucault noreply at git.blender.org
Thu Dec 5 11:31:34 CET 2019


Commit: e2806b7429c7d001687ae42e5173827989bb8e42
Author: Clément Foucault
Date:   Thu Dec 5 12:02:24 2019 +0100
Branches: master
https://developer.blender.org/rBe2806b7429c7d001687ae42e5173827989bb8e42

Revert "Fix T71576 Mesh error on mutimaterial Meshes on legacy nvidia drivers"

This reverts commit cf77b67c459d481f6d8d34d13e14d22a6cad0842.

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

M	source/blender/draw/intern/shaders/common_view_lib.glsl
M	source/blender/gpu/GPU_extensions.h
M	source/blender/gpu/intern/gpu_extensions.c
M	source/blender/gpu/intern/gpu_shader.c

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

diff --git a/source/blender/draw/intern/shaders/common_view_lib.glsl b/source/blender/draw/intern/shaders/common_view_lib.glsl
index 182a4c72fe5..1a28a307163 100644
--- a/source/blender/draw/intern/shaders/common_view_lib.glsl
+++ b/source/blender/draw/intern/shaders/common_view_lib.glsl
@@ -80,7 +80,7 @@ uniform int baseInstance;
 #  if defined(IN_PLACE_INSTANCES) || defined(INSTANCED_ATTRIB)
 /* When drawing instances of an object at the same position. */
 #    define instanceId 0
-#  elif defined(GPU_DEPRECATED_AMD)
+#  elif defined(GPU_DEPRECATED_AMD_DRIVER)
 /* A driver bug make it so that when using an attribute with GL_INT_2_10_10_10_REV as format,
  * the gl_InstanceID is incremented by the 2 bit component of the attrib.
  * Ignore gl_InstanceID then. */
@@ -115,11 +115,8 @@ flat in int resourceIDFrag;
 #  define resource_id resourceIDFrag
 #endif
 
-#if !defined(GPU_INTEL) && !defined(GPU_DEPRECATED_AMD) && !defined(GPU_DEPRECATED_NVIDIA)
-#  define USE_INDEXED_MODELMAT
-#endif
-
-#if defined(USE_INDEXED_MODELMAT) && !defined(OS_MAC) && !defined(INSTANCED_ATTRIB)
+#if !defined(GPU_INTEL) && !defined(GPU_DEPRECATED_AMD_DRIVER) && !defined(OS_MAC) && \
+    !defined(INSTANCED_ATTRIB)
 struct ObjectMatrices {
   mat4 drw_modelMatrix;
   mat4 drw_modelMatrixInverse;
diff --git a/source/blender/gpu/GPU_extensions.h b/source/blender/gpu/GPU_extensions.h
index 692cd159fbf..245f7f47510 100644
--- a/source/blender/gpu/GPU_extensions.h
+++ b/source/blender/gpu/GPU_extensions.h
@@ -48,7 +48,6 @@ bool GPU_mip_render_workaround(void);
 bool GPU_depth_blitting_workaround(void);
 bool GPU_unused_fb_slot_workaround(void);
 bool GPU_context_local_shaders_workaround(void);
-bool GPU_legacy_nvidia_driver(void);
 bool GPU_crappy_amd_driver(void);
 
 bool GPU_mem_stats_supported(void);
diff --git a/source/blender/gpu/intern/gpu_extensions.c b/source/blender/gpu/intern/gpu_extensions.c
index 7eb2cd61fda..33f918559f7 100644
--- a/source/blender/gpu/intern/gpu_extensions.c
+++ b/source/blender/gpu/intern/gpu_extensions.c
@@ -93,8 +93,6 @@ static struct GPUGlobal {
   /* Some crappy Intel drivers don't work well with shaders created in different
    * rendering contexts. */
   bool context_local_shaders_workaround;
-  /* Unmaintained NVIDIA drivers contain certain bugs we need to workaround. */
-  bool legacy_nvidia_driver;
 } GG = {1, 0};
 
 static void gpu_detect_mip_render_workaround(void)
@@ -218,11 +216,6 @@ bool GPU_context_local_shaders_workaround(void)
   return GG.context_local_shaders_workaround;
 }
 
-bool GPU_legacy_nvidia_driver(void)
-{
-  return GG.legacy_nvidia_driver;
-}
-
 bool GPU_crappy_amd_driver(void)
 {
   /* Currently are the same drivers with the `unused_fb_slot` problem. */
@@ -288,14 +281,6 @@ void gpu_extensions_init(void)
   GG.glew_arb_base_instance_is_supported = GLEW_ARB_base_instance;
   gpu_detect_mip_render_workaround();
 
-  if (GPU_type_matches(GPU_DEVICE_NVIDIA, GPU_OS_ANY, GPU_DRIVER_OFFICIAL)) {
-    char *driver_version_str = strstr(version, "NVIDIA ") + 7;
-    int driver_major_version = (int)strtol(driver_version_str, NULL, 10);
-    if (driver_major_version > 0 && driver_major_version < 400) {
-      GG.legacy_nvidia_driver = true;
-    }
-  }
-
   if (G.debug & G_DEBUG_GPU_FORCE_WORKAROUNDS) {
     printf("\n");
     printf("GPU: Bypassing workaround detection.\n");
diff --git a/source/blender/gpu/intern/gpu_shader.c b/source/blender/gpu/intern/gpu_shader.c
index adbb978dded..ae2c7864e36 100644
--- a/source/blender/gpu/intern/gpu_shader.c
+++ b/source/blender/gpu/intern/gpu_shader.c
@@ -243,14 +243,11 @@ static void gpu_shader_standard_defines(char defines[MAX_DEFINE_LENGTH])
   if (GPU_type_matches(GPU_DEVICE_ATI, GPU_OS_ANY, GPU_DRIVER_ANY)) {
     strcat(defines, "#define GPU_ATI\n");
     if (GPU_crappy_amd_driver()) {
-      strcat(defines, "#define GPU_DEPRECATED_AMD\n");
+      strcat(defines, "#define GPU_DEPRECATED_AMD_DRIVER\n");
     }
   }
   else if (GPU_type_matches(GPU_DEVICE_NVIDIA, GPU_OS_ANY, GPU_DRIVER_ANY)) {
     strcat(defines, "#define GPU_NVIDIA\n");
-    if (GPU_legacy_nvidia_driver()) {
-      strcat(defines, "#define GPU_DEPRECATED_NVIDIA\n");
-    }
   }
   else if (GPU_type_matches(GPU_DEVICE_INTEL, GPU_OS_ANY, GPU_DRIVER_ANY)) {
     strcat(defines, "#define GPU_INTEL\n");



More information about the Bf-blender-cvs mailing list