rendervulkan: remove 'fence' concept

Doesn't make sense now that we poll() the DMA-BUF fd directly. We can
do that directly from steamcompmgr. Vulkan's fence used to be an actual
fence we made up with an empty submission.
This commit is contained in:
Pierre-Loup A. Griffais 2021-05-05 18:44:04 -07:00
parent e25f871d87
commit 074ee9c719
3 changed files with 4 additions and 40 deletions

View file

@ -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

View file

@ -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 );

View file

@ -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 );