mandarine3ds / mandarine

A Citra fork with extra options for more performance
GNU General Public License v2.0
476 stars 12 forks source link

Compile shaders before starting #57

Closed TwistedTempest closed 4 months ago

TwistedTempest commented 5 months ago

Is there an existing issue for this?

What feature are you suggesting?

This is just a bump of fordel-0's suggestion from PabloMK7's Citra distro upon which this is based. Essentially, if this were possible to implement in a similar way to the feature in Dolphin or Cemu it would be nice to be able to compile shaders at runtime instead of just-in-time.

Why would this feature be useful?

Games such as the gen 6 Pokémon games that compile their shaders as they become needed have long breaks when transitioning between 3D environments and would benefit greatly from the ability to compile and preload these shaders ahead of time.

Ishan09811 commented 5 months ago

@TwistedTempest if you mean to compile shaders before starting a game then citra already do this

TwistedTempest commented 5 months ago

@TwistedTempest if you mean to compile shaders before starting a game then citra already do this

It can compile already cached shaders but still needs to compile them in real time if they haven't been used before (i.e. using Eon Flute). The stutter is absolved by using async shader compilation but then there is the issue of visual glitching

TwistedTempest commented 4 months ago

Closing as the method used to achieve this functionality in Dolphin, Ubershaders, is fundamentally different from what I have described and according to their documentation compiling shaders before starting is not possible.