• Login
  • Register
  • Dolphin Forums
  • Home
  • FAQ
  • Download
  • Wiki
  • Code


Dolphin, the GameCube and Wii emulator - Forums › Dolphin Emulator Discussion and Support › General Discussion v
« Previous 1 ... 83 84 85 86 87 ... 367 Next »

What exactly causes shader cache stuttering?
View New Posts | View Today's Posts

Pages (4): 1 2 3 4 Next »
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Thread Modes
What exactly causes shader cache stuttering?
04-03-2015, 10:34 AM
#1
Gamedominator06 Offline
GP&B
***
Posts: 51
Threads: 1
Joined: Apr 2014
Whether it's loading up a new effect like any character's unique effects in Super Smash Bros. Melee or Brawl or firing off all your beams/using Morph Ball for the first time in Metroid Prime, I've been wondering what's currently unknown in Dolphin's development that causes this. 

This isn't a "Why hasn't this been fixed already?" sort of question, but more of a curiosity in what's preventing accurate emulation to remove these stutters.
Find
Reply
04-03-2015, 11:58 AM (This post was last modified: 04-03-2015, 12:00 PM by Fiora.)
#2
Fiora Offline
x86 JIT Princess
**********
Developers (Some Administrators and Super Moderators)
Posts: 237
Threads: 0
Joined: Aug 2014
It takes time to compile the shaders that represent the current Gamecube GPU pipeline configuration, and since this is done by the graphics driver, there's no direct way around it.

Possible solutions include:

1) Ishiruuka's solution: just don't display the object until its shader is compiled, causing potentially bad graphical glitches but avoiding stutters.

2) Ubershader solution: compile an ubershader (or a set of ubershaders) that can represent any Gamecube GPU pipeline configuration, and load that until the specialized one is finished compiling. Nobody's done this one yet, so it's not certain it would work effectively.

3) Partial ubershader: identify families of shaders which are similar but differ in small ways, and compile slightly more generic versions than currently (but not fully generic) so that a single shader can represent all those slight variations, thus dramatically reducing the number of shaders necessary (and much less stuttering). This would require analysis of how games configure the GPU pipeline and what sort of shaders are typically generated in games that generate very large numbers of shaders, like Metroid.
Website Find
Reply
04-03-2015, 12:29 PM
#3
NaturalViolence Offline
It's not that I hate people, I just hate stupid people
*******
Posts: 9,013
Threads: 24
Joined: Oct 2009
Wait the compiling is done by the drivers not dolphin? There are many games where the stutters often last several seconds, is that entire time seriously spent with the application waiting for the drivers to compile a shader? What on earth could the drivers possibly be doing specifically that would take that long?
"Normally if given a choice between doing something and nothing, I’d choose to do nothing. But I would do something if it helps someone else do nothing. I’d work all night if it meant nothing got done."  
-Ron Swanson

"I shall be a good politician, even if it kills me. Or if it kills anyone else for that matter. "
-Mark Antony
Website Find
Reply
04-03-2015, 12:30 PM
#4
Gamedominator06 Offline
GP&B
***
Posts: 51
Threads: 1
Joined: Apr 2014
So, it's a large scale issue with a lot of research involved in it then. This is a bit of an assumption (as I haven't actually used it), but the Ishiruuka branch exists for the purpose of temporarily getting around these issues in a messier fashion for better performance then? I imagine this is something that won't get a proper workaround for a while although at least its impact isn't substantial.
Find
Reply
04-03-2015, 12:54 PM
#5
Fiora Offline
x86 JIT Princess
**********
Developers (Some Administrators and Super Moderators)
Posts: 237
Threads: 0
Joined: Aug 2014
Compiling lots of code takes a long time! Shader compilers are often optimized for performance -- not compilation speed -- to get maximum framerate in real games.
Website Find
Reply
04-06-2015, 03:07 AM (This post was last modified: 04-06-2015, 03:08 AM by Khronikos.)
#6
Khronikos Offline
Senior Member
****
Posts: 253
Threads: 0
Joined: Mar 2015
I have only stuttering and issues with Mario Kart Wii in games I play atm. I have been wondering if it will get better. Still mostly playable for me and I could probably tweak some settings.
Find
Reply
04-08-2015, 03:47 AM (This post was last modified: 04-08-2015, 03:50 AM by bomblord.)
#7
bomblord Offline
Member
***
Posts: 231
Threads: 32
Joined: Jul 2014
What about pre-compiled shaders? I would be willing to play through a few games and then upload my shader cache. Get enough people and you could have shader packs that people could download. How big do the shader caches typically run? If their not too big you could download them when it detects said game in your library similar to how it downloads a picture that represents the game.
Find
Reply
04-08-2015, 03:57 AM
#8
JosJuice Offline
Developer
**********
Developers (Some Administrators and Super Moderators)
Posts: 8,837
Threads: 7
Joined: Oct 2014
(04-08-2015, 03:47 AM)bomblord Wrote: What about pre-compiled shaders? I would be willing to play through a few games and then upload my shader cache. Get enough people and you could have shader packs that people could download. How big do the shader caches typically run? If their not too big you could download them when it detects said game in your library similar to how it downloads a picture that represents the game.
The compiled shaders are different not only between games but also between Dolphin versions, graphics cards and graphics backends. A shader pack would be useful for so few people that it's not worthwhile. (Also, the pictures for the games are not downloaded.)
Find
Reply
04-08-2015, 03:59 AM
#9
AnyOldName3 Offline
First Random post over 9000
*******
Posts: 3,519
Threads: 1
Joined: Feb 2012
It doesn't actually download the banner image - for GameCube games it's in a certain part of the disk image for every game, and for Wii games it's embedded in the save game.
OS: Windows 10 64 bit Professional
CPU: AMD Ryzen 5900X
RAM: 16GB
GPU: Radeon Vega 56
Find
Reply
04-08-2015, 04:01 AM (This post was last modified: 04-08-2015, 04:02 AM by bomblord.)
#10
bomblord Offline
Member
***
Posts: 231
Threads: 32
Joined: Jul 2014
(04-08-2015, 03:59 AM)AnyOldName3 Wrote: It doesn't actually download the banner image - for GameCube games it's in a certain part of the disk image for every game, and for Wii games it's embedded in the save game.

I didn't know that that's neat.

Quote:The compiled shaders are different not only between games but also between Dolphin versions, graphics cards and graphics backends. A shader pack would be useful for so few people that it's not worthwhile. (Also, the pictures for the games are not downloaded

alright sorry
Find
Reply
« Next Oldest | Next Newest »
Pages (4): 1 2 3 4 Next »


  • View a Printable Version
  • Subscribe to this thread
Forum Jump:


Users browsing this thread: 1 Guest(s)



Powered By MyBB | Theme by Fragma

Linear Mode
Threaded Mode