In Filesystem.cpp KernelPread(): Call Seek() only if needed. (improves the loading)
GPUMemory.cpp calc_hash(): Use XXH3_64 instead (improves fps a bit)
Label.cpp (Is the name correct?): Just some fyi:
In worms two "Labels" are created at startup only and are not deleted.
The Labels-callbacks 1 and 2 have to be called at the end of the pipeline.
Calling them directly in LabelManager::Set() causes artifacts
Waiting for the fence only still causes artifacts
The program submits the flip() after the Label-callbacks are called.
=> vkGetEventStatus returns VK_EVENT_RESET sometimes. It's faster to check the Status first and if Reset -> Wait and try again.
I don't know if it may freeze if the second vkGetEventStatus() returns Reset aswell. It may happen if WaitForFence() waits for the next frame, which is impossible, since flip() is not called.
Calling WaitForFence() only once and sleep() the next time, should avoid this theoretical freeze.
The changes to Label.cpp speed up the call to WindowDrawBuffer (~600 us faster).
In Filesystem.cpp KernelPread(): Call Seek() only if needed. (improves the loading) GPUMemory.cpp calc_hash(): Use XXH3_64 instead (improves fps a bit)
Label.cpp (Is the name correct?): Just some fyi:
=> vkGetEventStatus returns VK_EVENT_RESET sometimes. It's faster to check the Status first and if Reset -> Wait and try again. I don't know if it may freeze if the second vkGetEventStatus() returns Reset aswell. It may happen if WaitForFence() waits for the next frame, which is impossible, since flip() is not called. Calling WaitForFence() only once and sleep() the next time, should avoid this theoretical freeze.
The changes to Label.cpp speed up the call to WindowDrawBuffer (~600 us faster).