diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2019-09-29 22:04:05 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2019-09-29 22:10:12 +0300 |
commit | 24be998b986cb3bdc86527bfcbd792a5c4e7155e (patch) | |
tree | 2498750e53fed362e9e12f9a4c415197cada7c59 /source/blender | |
parent | 56fe8239abea80c8a9ab8e86f7dd5616ca78d18c (diff) |
Fix T70345: wrong transforms of objects after recent NVIDIA workaround
This reverts commit 44d042094e21b519b38a3d78761b64bb5ceeb350 and adds a
simpler workaround for just the node links display issue. There are other
issues though so this is not a full workaround.
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/editors/space_node/drawnode.c | 5 | ||||
-rw-r--r-- | source/blender/gpu/intern/gpu_extensions.c | 9 |
2 files changed, 4 insertions, 10 deletions
diff --git a/source/blender/editors/space_node/drawnode.c b/source/blender/editors/space_node/drawnode.c index 93121a6bef9..4f4ea182da9 100644 --- a/source/blender/editors/space_node/drawnode.c +++ b/source/blender/editors/space_node/drawnode.c @@ -47,6 +47,7 @@ #include "GPU_batch.h" #include "GPU_batch_presets.h" +#include "GPU_extensions.h" #include "GPU_immediate.h" #include "GPU_matrix.h" #include "GPU_state.h" @@ -3889,7 +3890,9 @@ static void nodelink_batch_draw(SpaceNode *snode) void nodelink_batch_start(SpaceNode *UNUSED(snode)) { - g_batch_link.enabled = true; + /* TODO: partial workaround for NVIDIA driver bug on recent GTX/RTX cards, + * that breaks instancing when using indirect drawcal (see T70011). */ + g_batch_link.enabled = !GPU_type_matches(GPU_DEVICE_NVIDIA, GPU_OS_ANY, GPU_DRIVER_ANY); } void nodelink_batch_end(SpaceNode *snode) diff --git a/source/blender/gpu/intern/gpu_extensions.c b/source/blender/gpu/intern/gpu_extensions.c index d3259b93b5c..7b6759c44bf 100644 --- a/source/blender/gpu/intern/gpu_extensions.c +++ b/source/blender/gpu/intern/gpu_extensions.c @@ -355,15 +355,6 @@ void gpu_extensions_init(void) GG.glew_arb_base_instance_is_supported = GLEW_ARB_base_instance; gpu_detect_mip_render_workaround(); - /* XXX TODO a nasty nvidia driver bug on GTX & RTX 10X0 / 20X0 is breaking instancing when using - * indirect drawcall. (see T70011) */ - if (GPU_type_matches(GPU_DEVICE_NVIDIA, GPU_OS_ANY, GPU_DRIVER_ANY)) { - if (strstr(renderer, "RTX 10") || strstr(renderer, "RTX 20") || strstr(renderer, "GTX 10") || - strstr(renderer, "GTX 20")) { - GG.glew_arb_base_instance_is_supported = false; - } - } - if (G.debug & G_DEBUG_GPU_FORCE_WORKAROUNDS) { printf("\n"); printf("GPU: Bypassing workaround detection.\n"); |