diff --git a/docs/envvars.rst b/docs/envvars.rst index a88574b9ce0..47c6f935989 100644 --- a/docs/envvars.rst +++ b/docs/envvars.rst @@ -606,6 +606,9 @@ Intel driver environment variables disable fast clears ``noccs`` disable lossless color compression + ``no-resource-barrier`` + disable RENDER_BARRIER instruction usage by falling back to + PIPE_CONTROL ``optimizer`` dump shader assembly to files at each optimization pass and iteration that make progress (Gfx < 9) diff --git a/src/intel/dev/intel_debug.c b/src/intel/dev/intel_debug.c index 74a98fd0fc0..49eae64343c 100644 --- a/src/intel/dev/intel_debug.c +++ b/src/intel/dev/intel_debug.c @@ -111,6 +111,7 @@ static const struct debug_control_bitset debug_control[] = { OPT1("task", DEBUG_TASK), OPT1("mesh", DEBUG_MESH), OPT1("stall", DEBUG_STALL), + OPT1("no-resource-barrier", DEBUG_NO_RESOURCE_BARRIER), OPT1("capture-all", DEBUG_CAPTURE_ALL), OPT1("perf-symbol-names", DEBUG_PERF_SYMBOL_NAMES), OPT1("swsb-stall", DEBUG_SWSB_STALL), diff --git a/src/intel/dev/intel_debug.h b/src/intel/dev/intel_debug.h index 313ae1945c1..b10c931dcf6 100644 --- a/src/intel/dev/intel_debug.h +++ b/src/intel/dev/intel_debug.h @@ -54,6 +54,7 @@ enum intel_debug_flag { DEBUG_URB, DEBUG_CLIP, DEBUG_STALL, + DEBUG_NO_RESOURCE_BARRIER, DEBUG_BLORP, DEBUG_NO_DUAL_OBJECT_GS, DEBUG_OPTIMIZER, diff --git a/src/intel/vulkan/genX_cmd_buffer.c b/src/intel/vulkan/genX_cmd_buffer.c index c7440e98cd4..74c79e3c927 100644 --- a/src/intel/vulkan/genX_cmd_buffer.c +++ b/src/intel/vulkan/genX_cmd_buffer.c @@ -1925,6 +1925,9 @@ can_use_resource_barrier(const struct intel_device_info *devinfo, struct anv_address signal_addr, struct anv_address wait_addr) { + if (INTEL_DEBUG(DEBUG_NO_RESOURCE_BARRIER)) + return false; + if (engine_class != INTEL_ENGINE_CLASS_RENDER && engine_class != INTEL_ENGINE_CLASS_COMPUTE) return false;