diff --git a/src/asahi/vulkan/hk_cmd_buffer.c b/src/asahi/vulkan/hk_cmd_buffer.c index 3d53708e4f4..85317269364 100644 --- a/src/asahi/vulkan/hk_cmd_buffer.c +++ b/src/asahi/vulkan/hk_cmd_buffer.c @@ -294,6 +294,9 @@ hk_CmdPipelineBarrier2(VkCommandBuffer commandBuffer, VK_FROM_HANDLE(hk_cmd_buffer, cmd, commandBuffer); struct hk_device *dev = hk_cmd_buffer_device(cmd); + if (HK_PERF(dev, NOBARRIER)) + return; + perf_debug(dev, "Pipeline barrier"); /* The big hammer. We end both compute and graphics batches. Ending compute diff --git a/src/asahi/vulkan/hk_device.c b/src/asahi/vulkan/hk_device.c index 09a4c338b91..38f3696220e 100644 --- a/src/asahi/vulkan/hk_device.c +++ b/src/asahi/vulkan/hk_device.c @@ -38,6 +38,7 @@ static const struct debug_named_value hk_perf_options[] = { {"notess", HK_PERF_NOTESS, "Skip draws with tessellation"}, {"noborder", HK_PERF_NOBORDER, "Disable custom border colour emulation"}, + {"nobarrier", HK_PERF_NOBARRIER,"Ignore pipeline barriers"}, DEBUG_NAMED_VALUE_END }; /* clang-format on */ diff --git a/src/asahi/vulkan/hk_device.h b/src/asahi/vulkan/hk_device.h index 0ee8a3b7a80..fd1e793ff58 100644 --- a/src/asahi/vulkan/hk_device.h +++ b/src/asahi/vulkan/hk_device.h @@ -114,6 +114,7 @@ VK_DEFINE_HANDLE_CASTS(hk_device, vk.base, VkDevice, VK_OBJECT_TYPE_DEVICE) enum hk_perftest { HK_PERF_NOTESS = BITFIELD_BIT(0), HK_PERF_NOBORDER = BITFIELD_BIT(1), + HK_PERF_NOBARRIER = BITFIELD_BIT(2), }; #define HK_PERF(dev, flag) unlikely((dev)->perftest &HK_PERF_##flag)