diff --git a/src/broadcom/common/v3d_debug.h b/src/broadcom/common/v3d_debug.h index d9593252461..efa26975870 100644 --- a/src/broadcom/common/v3d_debug.h +++ b/src/broadcom/common/v3d_debug.h @@ -60,6 +60,12 @@ extern uint32_t V3D_DEBUG; #define V3D_DEBUG_RA (1 << 16) #define V3D_DEBUG_DUMP_SPIRV (1 << 17) +#define V3D_DEBUG_SHADERS (V3D_DEBUG_TGSI | V3D_DEBUG_NIR | \ + V3D_DEBUG_VIR | V3D_DEBUG_QPU | \ + V3D_DEBUG_FS | V3D_DEBUG_GS | \ + V3D_DEBUG_VS | V3D_DEBUG_CS | \ + V3D_DEBUG_RA) + #ifdef HAVE_ANDROID_PLATFORM #define LOG_TAG "BROADCOM-MESA" #if ANDROID_API_LEVEL >= 26 diff --git a/src/broadcom/vulkan/v3dv_pipeline.c b/src/broadcom/vulkan/v3dv_pipeline.c index 80a64e2b905..a82735ef238 100644 --- a/src/broadcom/vulkan/v3dv_pipeline.c +++ b/src/broadcom/vulkan/v3dv_pipeline.c @@ -2993,8 +2993,12 @@ v3dv_CreateGraphicsPipelines(VkDevice _device, const VkAllocationCallbacks *pAllocator, VkPipeline *pPipelines) { + V3DV_FROM_HANDLE(v3dv_device, device, _device); VkResult result = VK_SUCCESS; + if (unlikely(V3D_DEBUG & V3D_DEBUG_SHADERS)) + mtx_lock(&device->pdevice->mutex); + for (uint32_t i = 0; i < count; i++) { VkResult local_result; @@ -3010,6 +3014,9 @@ v3dv_CreateGraphicsPipelines(VkDevice _device, } } + if (unlikely(V3D_DEBUG & V3D_DEBUG_SHADERS)) + mtx_unlock(&device->pdevice->mutex); + return result; } @@ -3146,8 +3153,12 @@ v3dv_CreateComputePipelines(VkDevice _device, const VkAllocationCallbacks *pAllocator, VkPipeline *pPipelines) { + V3DV_FROM_HANDLE(v3dv_device, device, _device); VkResult result = VK_SUCCESS; + if (unlikely(V3D_DEBUG & V3D_DEBUG_SHADERS)) + mtx_lock(&device->pdevice->mutex); + for (uint32_t i = 0; i < createInfoCount; i++) { VkResult local_result; local_result = compute_pipeline_create(_device, @@ -3162,5 +3173,8 @@ v3dv_CreateComputePipelines(VkDevice _device, } } + if (unlikely(V3D_DEBUG & V3D_DEBUG_SHADERS)) + mtx_unlock(&device->pdevice->mutex); + return result; }