The apitrace didn’t catch the glSignalSemaphoreEXT, but it’s there between the barriers.
const GLenum src_layouts = GL_LAYOUT_GENERAL_EXT; glSignalSemaphoreEXT(gpu_vnc_hook.external_objects->sem_tex_provided, 0, NULL, 2, textures, &src_layouts);
There is also glTexStorageMem2DEXT after glTexParameteri calls and before glClearTexImage.
glTexStorageMem2DEXT(GL_TEXTURE_2D, 1, GL_RGBA8, width, height, memory_object, 0);
But the image is still empty when using it in the Vulkan shader in the destination process immediately after waiting on the semaphore. What am I missing?