The open source OpenXR runtime
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

comp/vk: Put queue mutex around vkDeviceWaitIdle calls.

+10
+2
src/xrt/compositor/client/comp_vk_client.c
··· 163 163 if (c->vk.cmd_pool != VK_NULL_HANDLE) { 164 164 // Make sure that any of the command buffers from this command 165 165 // pool are n used here, this pleases the validation layer. 166 + os_mutex_lock(&c->vk.queue_mutex); 166 167 c->vk.vkDeviceWaitIdle(c->vk.device); 168 + os_mutex_unlock(&c->vk.queue_mutex); 167 169 168 170 c->vk.vkDestroyCommandPool(c->vk.device, c->vk.cmd_pool, NULL); 169 171 c->vk.cmd_pool = VK_NULL_HANDLE;
+2
src/xrt/compositor/main/comp_layer_renderer.c
··· 688 688 if (vk->device == VK_NULL_HANDLE) 689 689 return; 690 690 691 + os_mutex_lock(&vk->queue_mutex); 691 692 vk->vkDeviceWaitIdle(vk->device); 693 + os_mutex_unlock(&vk->queue_mutex); 692 694 693 695 comp_layer_renderer_destroy_layers(self); 694 696
+4
src/xrt/compositor/main/comp_renderer.c
··· 668 668 * 669 669 * This is done after a swap so isn't time critical. 670 670 */ 671 + os_mutex_lock(&r->c->vk.queue_mutex); 671 672 r->c->vk.vkDeviceWaitIdle(r->c->vk.device); 673 + os_mutex_unlock(&r->c->vk.queue_mutex); 672 674 } 673 675 674 676 static void ··· 735 737 * make sure that validation doesn't complain. This is done 736 738 * during resize so isn't time critical. 737 739 */ 740 + os_mutex_lock(&vk->queue_mutex); 738 741 vk->vkDeviceWaitIdle(vk->device); 742 + os_mutex_unlock(&vk->queue_mutex); 739 743 740 744 comp_target_create_images( // 741 745 r->c->target, //
+2
src/xrt/compositor/main/comp_swapchain.c
··· 240 240 * validation doesn't complain. This is done during image destruction so 241 241 * isn't time critical. 242 242 */ 243 + os_mutex_lock(&vk->queue_mutex); 243 244 vk->vkDeviceWaitIdle(vk->device); 245 + os_mutex_unlock(&vk->queue_mutex); 244 246 245 247 clean_image_views(vk, image->array_size, &image->views.alpha); 246 248 clean_image_views(vk, image->array_size, &image->views.no_alpha);