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:
authorJeroen Bakker <jeroen@blender.org>2022-09-26 10:41:50 +0300
committerJeroen Bakker <jeroen@blender.org>2022-09-26 10:41:50 +0300
commit0210c4df1793799a09a35e44be286dfca88769dc (patch)
tree23d7ce3f97d9692d7da48dc8098c303856b13e74 /source/creator/creator_args.c
parent6075b04cf970d7ae2d7a7be0e0180ccaedfe83cf (diff)
GPU: Disable SSBO support from commandline.
In heavy scenes containing many hairs/curves and volumetrics using SSBO can overwrite the binding information of the volumetric resolve shader. This has been detected during project Heist and is only reproducable on NVIDIA platform. This patch adds an debug option to disable SSBOs from the command line to replace the --debug-gpu-force-workarounds that has been used as a workaround on the render farm. Reason is that force workarounds will also add other limitations as well (number of texture binds for example)
Diffstat (limited to 'source/creator/creator_args.c')
-rw-r--r--source/creator/creator_args.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/source/creator/creator_args.c b/source/creator/creator_args.c
index fe2e14e0367..e0fea8a4686 100644
--- a/source/creator/creator_args.c
+++ b/source/creator/creator_args.c
@@ -579,6 +579,7 @@ static int arg_handle_print_help(int UNUSED(argc), const char **UNUSED(argv), vo
BLI_args_print_arg_doc(ba, "--debug-wintab");
BLI_args_print_arg_doc(ba, "--debug-gpu");
BLI_args_print_arg_doc(ba, "--debug-gpu-force-workarounds");
+ BLI_args_print_arg_doc(ba, "--debug-gpu-disable-ssbo");
BLI_args_print_arg_doc(ba, "--debug-wm");
# ifdef WITH_XR_OPENXR
BLI_args_print_arg_doc(ba, "--debug-xr");
@@ -990,6 +991,9 @@ static const char arg_handle_debug_mode_generic_set_doc_depsgraph_uuid[] =
static const char arg_handle_debug_mode_generic_set_doc_gpu_force_workarounds[] =
"\n\t"
"Enable workarounds for typical GPU issues and disable all GPU extensions.";
+static const char arg_handle_debug_mode_generic_set_doc_gpu_disable_ssbo[] =
+ "\n\t"
+ "Disable usage of shader storage buffer objects.";
static int arg_handle_debug_mode_generic_set(int UNUSED(argc),
const char **UNUSED(argv),
@@ -2212,6 +2216,11 @@ void main_args_setup(bContext *C, bArgs *ba)
"--debug-gpu-force-workarounds",
CB_EX(arg_handle_debug_mode_generic_set, gpu_force_workarounds),
(void *)G_DEBUG_GPU_FORCE_WORKAROUNDS);
+ BLI_args_add(ba,
+ NULL,
+ "--debug-gpu-disable-ssbo",
+ CB_EX(arg_handle_debug_mode_generic_set, gpu_disable_ssbo),
+ (void *)G_DEBUG_GPU_FORCE_DISABLE_SSBO);
BLI_args_add(ba, NULL, "--debug-exit-on-error", CB(arg_handle_debug_exit_on_error), NULL);
BLI_args_add(ba, NULL, "--verbose", CB(arg_handle_verbosity_set), NULL);