diff --git a/src/rendervulkan.cpp b/src/rendervulkan.cpp index e677443..d9d85d5 100644 --- a/src/rendervulkan.cpp +++ b/src/rendervulkan.cpp @@ -496,14 +496,6 @@ bool CVulkanTexture::BInit( uint32_t width, uint32_t height, VkFormat format, cr importMemoryInfo.pNext = allocInfo.pNext; allocInfo.pNext = &importMemoryInfo; - - // Take another copy to poll for implicit sync completion - m_FD = dup( pDMA->fd[0] ); - if ( m_FD < 0 ) - { - perror( "dup failed" ); - return false; - } } if (vkAllocateMemory(device, &allocInfo, nullptr, &m_vkImageMemory) != VK_SUCCESS) { @@ -679,12 +671,6 @@ bool CVulkanTexture::BInit( uint32_t width, uint32_t height, VkFormat format, cr CVulkanTexture::~CVulkanTexture( void ) { - if ( m_FD >= 0 ) - { - close( m_FD ); - m_FD = -1; - } - if ( m_pMappedData != nullptr ) { vkUnmapMemory( device, g_output.pScreenshotImage->m_vkImageMemory ); @@ -2159,20 +2145,6 @@ uint32_t vulkan_texture_get_fbid( VulkanTexture_t vulkanTex ) return ret; } -int vulkan_get_texture_fence( VulkanTexture_t vulkanTex ) -{ - CVulkanTexture *pTex = g_mapVulkanTextures[ vulkanTex ]; - - if ( pTex == nullptr ) - { - assert( 0 ); - return -1; - } - - return pTex->m_FD; -} - - static void renderer_begin( struct wlr_renderer *renderer, uint32_t width, uint32_t height ) { abort(); // unreachable diff --git a/src/rendervulkan.hpp b/src/rendervulkan.hpp index c256fc4..81eb774 100644 --- a/src/rendervulkan.hpp +++ b/src/rendervulkan.hpp @@ -106,8 +106,6 @@ public: uint32_t m_unRowPitch = 0; uint32_t m_FBID = 0; - - int m_FD = -1; int32_t nRefCount = 1; @@ -124,8 +122,6 @@ int vulkan_init(void); VulkanTexture_t vulkan_create_texture_from_dmabuf( struct wlr_dmabuf_attributes *pDMA ); VulkanTexture_t vulkan_create_texture_from_bits( uint32_t width, uint32_t height, VkFormat format, void *bits ); -int vulkan_get_texture_fence( VulkanTexture_t vulkanTex ); - uint32_t vulkan_texture_get_fbid( VulkanTexture_t vulkanTex ); void vulkan_free_texture( VulkanTexture_t vulkanTex ); diff --git a/src/steamcompmgr.cpp b/src/steamcompmgr.cpp index a106907..5cf492d 100644 --- a/src/steamcompmgr.cpp +++ b/src/steamcompmgr.cpp @@ -346,6 +346,8 @@ retry: } gpuvis_trace_end_ctx_printf( commitID, "wait fence" ); + close( fence ); + { std::unique_lock< std::mutex > lock( listCommitsDoneLock ); @@ -2769,6 +2771,8 @@ void check_new_wayland_res( void ) assert( result == true ); commit_t newCommit = {}; + int fence = dup( dmabuf.fd[ 0 ] ); + assert( fence >= 0 ); bool bSuccess = import_commit( buf, &dmabuf, newCommit ); wlr_dmabuf_attributes_finish( &dmabuf ); @@ -2778,14 +2782,6 @@ void check_new_wayland_res( void ) w->commit_queue.push_back( newCommit ); } - int fence = vulkan_get_texture_fence( newCommit.vulkanTex ); - - if ( fence < 0 ) - { - fprintf (stderr, "no fence for texture\n"); - continue; - } - gpuvis_trace_printf( "pushing wait for commit %lu win %lx", newCommit.commitID, w->id ); { std::unique_lock< std::mutex > lock( waitListLock );