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


Dolphin, the GameCube and Wii emulator - Forums › Dolphin Emulator Discussion and Support › Development Discussion v
« Previous 1 ... 35 36 37 38 39 ... 116 Next »

Custom Texture Loading
View New Posts | View Today's Posts

Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Thread Modes
Custom Texture Loading
03-25-2015, 10:00 AM (This post was last modified: 03-26-2015, 02:59 AM by llafnwod.)
#1
llafnwod Offline
Junior Member
**
Posts: 6
Threads: 3
Joined: Mar 2015
Hi folks,

First things first, been using Dolphin about a month, blah, testament to the open-source model, blah blah. You guys are fantastic.

Trying to work out the way Dolphin handles/will handle loading custom textures. Please correct me if I'm wrong on any point.

So, currently Dolphin loads custom textures into RAM when they're needed, and ditches them when they're not.
This is RAM efficient, but leads to stuttering since textures have to get reloaded every time they come back into use.

Here are the solutions to the stuttering problem I've seen.

1) The Xenoblade Chronicles HD solution:
Use DDS textures, which are (apparently?) loaded straight into RAM. This needs to be done on the level of individual texture packs.
[FUTURE READERS: Nope. They're just compressed and can thus be loaded faster, causing less stuttering.]

2) The RAM drive solution:
My current setup is to have an ISO for each texture pack, load the appropriate one into a virtual RAM drive, and mount the drive to /Textures.
This mean all textures are kept in RAM for the duration and a bit of setup is required, but stutter is eliminated. Most rigs that can run Dolphin will probably have a gig or so of free RAM kicking around anyway.

3) The degasus solution:
As I understand it, degasus's (and, eventually, the main) build *keeps* all textures in RAM after loading the first time.
This will still cause a stutter the first time textures are loaded, but could be more RAM efficient than loading all of them, and won't cause a long delay before starting the game.

Seems a RAM drive (or Dolphin preloading the textures) is the only totally stutter free solution. The degasus build is good, but it ought to be optional once it gets merged with main, or else low RAM systems will be out of luck, and folk like me will have to use a lot of RAM to run stutter-free, since the textures will also be kept loaded by Dolphin. That's the intent, right?

Correction or clarifications on any point, especially how DDS textures/loading work, would be much appreciated.

Thanks!
Find
Reply
03-25-2015, 04:25 PM
#2
degasus Offline
Developer
**********
Developers (Some Administrators and Super Moderators)
Posts: 1,827
Threads: 10
Joined: May 2012
This one already prefetch all textures: https://github.com/dolphin-emu/dolphin/pull/2162 https://dl.dolphin-emu.org/prs/pr-2162-dolphin-latest-x64.7z
But it will crash if you don't have enough RAM.
Find
Reply
03-25-2015, 04:57 PM
#3
StripTheSoul Offline
YouKittenMe?
*******
Posts: 4,639
Threads: 39
Joined: Oct 2009
DDS are not loaded differently than PNGs; they're just compressed and thus easier to load. The quality is a bit lower but it's hard to see a difference.

Yeah, the solution of everything being cached at game start is also my favourite but there's still issues with the implementation because not everyone has 8-16GB RAM (and some packs would need this much).
Intel i5-4690k (Devil's Canyon) @ 3.5 GHz (+Scythe Mugen) / Gainward GTX 1070 Phoenix (OC'd) / ASUS Z97 PRO GAMER / 16GB G.Skill DDR3-2400 CL10 TridentX / X-Fi XtremeMusic / Win10 Pro 64bit / Dell S2716DG Monitor / 3x original WiiMote+MotionPlus+Nunchuk
Find
Reply
03-26-2015, 01:04 AM
#4
AnyOldName3 Offline
First Random post over 9000
*******
Posts: 3,519
Threads: 1
Joined: Feb 2012
(03-25-2015, 04:25 PM)degasus Wrote: This one already prefetch all textures: https://github.com/dolphin-emu/dolphin/pull/2162 https://dl.dolphin-emu.org/prs/pr-2162-dolphin-latest-x64.7z
But it will crash if you don't have enough RAM.

So if we put this in master but with a little tickbox next to the load custom textures option with a warning in the GUI it'd effectively be ready?
OS: Windows 10 64 bit Professional
CPU: AMD Ryzen 5900X
RAM: 16GB
GPU: Radeon Vega 56
Find
Reply
03-26-2015, 01:42 AM (This post was last modified: 03-26-2015, 01:42 AM by llafnwod.)
#5
llafnwod Offline
Junior Member
**
Posts: 6
Threads: 3
Joined: Mar 2015
(03-25-2015, 04:25 PM)degasus Wrote: This one already prefetch all textures: https://github.com/dolphin-emu/dolphin/pull/2162 https://dl.dolphin-emu.org/prs/pr-2162-dolphin-latest-x64.7z
But it will crash if you don't have enough RAM.

Cool. Is the plan eventually merge both the keep-loaded and prefetch solutions into main then, or just the latter?

(03-25-2015, 04:57 PM)StripTheSoul Wrote: DDS are not loaded differently than PNGs; they're just compressed and thus easier to load. The quality is a bit lower but it's hard to see a difference.

Thanks, this is exactly the sort of thing I wanted to know.

(03-25-2015, 04:57 PM)StripTheSoul Wrote: Yeah, the solution of everything being cached at game start is also my favourite but there's still issues with the implementation because not everyone has 8-16GB RAM (and some packs would need this much).

Would it be difficult to run a check for available RAM against the size of the textures to be loaded and throw an error if there's not enough?
Find
Reply
03-26-2015, 02:10 AM (This post was last modified: 03-26-2015, 02:10 AM by masterotaku.)
#6
masterotaku Offline
Picky 3D user
****
Posts: 552
Threads: 7
Joined: Aug 2013
Phew, it looks like my 8GB are enough for the InsaneSlug texture pack for Zelda TP:

Spoiler: (Show Spoiler)
[Image: Yqpb8L.png]

After that, I had between 7100 and 7300 MB of used RAM. I had to close Steam and all Chrome tabs, and just to be sure I moved some optional files that would use some extra RAM, because the first time my RAM was full and it crashed (and I received a beautiful Windows warning).

That's the biggest PNG texture pack I've ever seen, so I think 16GB aren't needed.

I think having the option to store all of them at once or when the game request them is enough. If it fills my RAM, it's my problem  Tongue .
CPU: Intel Core i5 4670k @ 4.4GHz
GPU: GAINWARD GeForce GTX 1080 Phoenix "GLH"
RAM: G.SKILL Ripjaws X DDR3 16GB 1600MHz CL7
OS: Windows 7 Ultimate x64
Find
Reply
03-26-2015, 03:26 AM
#7
StripTheSoul Offline
YouKittenMe?
*******
Posts: 4,639
Threads: 39
Joined: Oct 2009
Yeah, unfortunately, devs have this innate hate for these kinds of solutions with lots of options and warnings and things that work for some and not for others Wink
Intel i5-4690k (Devil's Canyon) @ 3.5 GHz (+Scythe Mugen) / Gainward GTX 1070 Phoenix (OC'd) / ASUS Z97 PRO GAMER / 16GB G.Skill DDR3-2400 CL10 TridentX / X-Fi XtremeMusic / Win10 Pro 64bit / Dell S2716DG Monitor / 3x original WiiMote+MotionPlus+Nunchuk
Find
Reply
« Next Oldest | Next Newest »


  • 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