diff --git a/src/freedreno/vulkan/tu_device.c b/src/freedreno/vulkan/tu_device.c index e5f35a1ecb2..89c27245fed 100644 --- a/src/freedreno/vulkan/tu_device.c +++ b/src/freedreno/vulkan/tu_device.c @@ -336,6 +336,7 @@ static const struct debug_control tu_debug_options[] = { { "flushall", TU_DEBUG_FLUSHALL }, { "syncdraw", TU_DEBUG_SYNCDRAW }, { "dontcare_as_load", TU_DEBUG_DONT_CARE_AS_LOAD }, + { "rast_order", TU_DEBUG_RAST_ORDER }, { NULL, 0 } }; diff --git a/src/freedreno/vulkan/tu_pipeline.c b/src/freedreno/vulkan/tu_pipeline.c index 49332f367c8..0d916647475 100644 --- a/src/freedreno/vulkan/tu_pipeline.c +++ b/src/freedreno/vulkan/tu_pipeline.c @@ -3181,6 +3181,9 @@ tu_pipeline_builder_parse_rasterization_order( VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM); } + if (unlikely(builder->device->physical_device->instance->debug_flags & TU_DEBUG_RAST_ORDER)) + pipeline->raster_order_attachment_access = true; + /* VK_EXT_blend_operation_advanced would also require ordered access * when implemented in the future. */ diff --git a/src/freedreno/vulkan/tu_private.h b/src/freedreno/vulkan/tu_private.h index 1bd88a34782..46b9f51b6e2 100644 --- a/src/freedreno/vulkan/tu_private.h +++ b/src/freedreno/vulkan/tu_private.h @@ -261,6 +261,7 @@ enum tu_debug_flags TU_DEBUG_SYNCDRAW = 1 << 11, TU_DEBUG_DONT_CARE_AS_LOAD = 1 << 12, TU_DEBUG_GMEM = 1 << 13, + TU_DEBUG_RAST_ORDER = 1 << 14, }; struct tu_instance