Add Support for Vulkan

Synthesia is a living project. You can help by sharing your ideas.
Search the forum before posting your idea. :D

No explicit, hateful, or hurtful language. Nothing illegal.
Post Reply
tcyrus
Posts: 1

Post by tcyrus »

I think it would be nice to add support for Vulkan as an alternative to OpenGL.
Nicholas
Posts: 13137

Post by Nicholas »

We'll look into Vulkan support when the majority (>99%) of our users have hardware that supports it. That is only barely true for OpenGL 2.0 (ratified in 2004) with the release of Synthesia 10.3 this year. Rather than spending engineering resources on maintaining multiple rendering back-ends -- we just removed classic OpenGL and DirectX, leaving only shader-based OpenGL across all our platforms -- I prefer to wait until everyone has the next thing and shift everything over at once.

So, if I had to guess, it'll be another 8-10 years before the switch to Vulkan.
KaleidonKep99
Posts: 58

Post by KaleidonKep99 »

I think working on a single multiplatform 3D API (OpenGL) that is supported by the vast majority of computers would be a better idea.
Nicholas already had problems on keeping the Direct3D support up-to-date with the Mac OS X/Android/iOS (?) OpenGL one, until he agreed with my idea of ditching Direct3D and using the same engine on all platforms.

So yeah, not a great idea (for now).
Arceles
Posts: 4

Post by Arceles »

Nicholas wrote:We'll look into Vulkan support when the majority (>99%) of our users have hardware that supports it. That is only barely true for OpenGL 2.0 (ratified in 2004) with the release of Synthesia 10.3 this year. Rather than spending engineering resources on maintaining multiple rendering back-ends -- we just removed classic OpenGL and DirectX, leaving only shader-based OpenGL across all our platforms -- I prefer to wait until everyone has the next thing and shift everything over at once.

So, if I had to guess, it'll be another 8-10 years before the switch to Vulkan.
This would explain why in my surface pro 4 synthesia performance is good but choppy in ocations, as there is no way to change the renderer. It only happens in synthesia, basically I'm trying to play a song and sudently synthesia decides to stop by a few seconds, then resumes. This pretty much messes my practice songs as it is rather unpredictable.

To give you an idea of how interesting this is, I can easily play heroes of the storm at 60fps, low quality, which has way more polygons... than synthesia. Note that synthesia 9 does not show any of this behaviour.
Nicholas
Posts: 13137

Post by Nicholas »

Arceles wrote:... stop by a few seconds, then resumes.
This is almost certainly something else running in the background that is stealing your processor for a few seconds. Try closing anything else that's running (including apps in the notification area at the lower-right).
Arceles
Posts: 4

Post by Arceles »

No, nothing like that. Clean install done by myself. Again, simply switching to Synthesia 9 works wonders, as the renderer is set to direct x9. It also makes the surface pro 4 go totally silent. I suggest to the synthesia team to try the program on any computer with a 6th gen Core I5 or I7 U series processor with no dedicated graphics. It is simply choppy as the opengl renderer is often left behind by intel, not so with direct x.
Nicholas
Posts: 13137

Post by Nicholas »

I just tried on an i5-4250U @ 1.3GHz (an Intel NUC with no discrete graphics). Windows 10 / Synthesia 10.3.4096.

Firing up the built-in "FNaF2, It's Been So Long" and pressing F6 to see the frame rate at the top-left, it hovers around 65 fps. It's a little stuttery near the beginning of the song while the Microsoft synth is still loading sounds. (Rewinding to the beginning and playing again, those are gone.)

There is a visible hitching/wavy artifact where the notes look like they're stuttering on their way down, skipping a frame every few frames.

Changing the Intel driver to enforce Vertical Sync and restarting Synthesia, it's a little better. Frame rate hovers around 56 fps. Pressing Alt-Enter to go full-screen, things switch to a flat 60 fps and everything is buttery smooth.

(Checking in Task Manager, all of that was with some goofy "Windows Modules Installer Worker" eating 30% of the CPU and the Windows Update service eating 87% of the disk's performance in the background because I haven't booted this machine in ages. :lol: )

So, those might be worth a try:
  • Enforce V-sync in the Intel driver
  • Alt-Enter for full screen, which seems to hint to Windows that you're more interested in that process's performance.
Arceles
Posts: 4

Post by Arceles »

That did not worked either.
Nicholas
Posts: 13137

Post by Nicholas »

I stick by my initial idea that there is some other process on your machine causing trouble.

We've got a Core 2 Duo E8400 here from 2008 that can run the current version at 60 fps using the integrated graphics. That's not usually the bottleneck. (Really, there isn't a usual bottleneck. Just about every PC, Mac, iPad, and... most Android devices can run Synthesia at their display's refresh rate. If not max, then certainly never a multi-second delay.)
Arceles
Posts: 4

Post by Arceles »

Try it on a surface pro 4. I repair computers for a living so... let me asure you, it is not exactly software related.
Nicholas
Posts: 13137

Post by Nicholas »

There is no hardware that introduces seconds of delay. That will always be software (even if that software is the operating system or some driver).

Perhaps you'll have some luck finding the offending process with Process Monitor. It might show some activity during the stops.
Post Reply