Replies: 2 comments
-
I've opened an issue #7048 for tracking. I suspect this might be due to a change I made to fix a crash. |
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Good day everyone, I am trying to optimize the Vulkan backend to make its performance similar to that of the OpenGL backend. I have added systrace to the engine code and compared the systrace files of the OpenGL backend and Vulkan backend. I found that the main reason why the Vulkan backend is slower than the OpenGL backend is because the Vulkan backend needs to call collectGarbage, which takes 1-2ms. Is there any way to optimize this?
This is a comparison of the execution time of FEngine::execute for testing. Please see the yellow and red lines, which represent the time taken for the Vulkan backend to draw 500 cubes and the OpenGL backend to draw 1000 cubes, respectively. The times are similar.
Through analysis of the Systrace file, it was found that the collectGarbage function called in the commit of the Vulkan backend takes up to 1-2ms of time, with VulkanDisposer::gc accounting for a significant portion of the time, as shown in the following figure:

Why does VulkanDisposer::gc take so much time? Are there any ways to reduce the time taken for this part? For example, by reusing its resources or moving it to another thread?
Beta Was this translation helpful? Give feedback.
All reactions