Diablo® III

Stuttering issue AKA loading assets issue

I already added this strange behaviours to my ticket
Posts: 89
Perhaps this has been said many times before, but I'm pretty sure the stuttering has something to do with Diablo 3 accessing the hard drive files mid-play. In general, games normally access and load all data during the loading screen (church doors in Diablo 2). I've noticed that Diablo 3 has no loading screen. That could have been done to try to improve the game play, making it a seamless experience. However, it looks like the game is instead doing real time hdd access, which is causing micro pauses while it fetches the correct piece of data.

Here is a screenshot I took of the Performance Monitor, while playing.

http://i45.tinypic.com/nqslt0.jpg

It clearly shows access of the MPQ files like Sound.mpq and CoreData.mpq. The data retrieved is small (~1mb), as is the response time (~50ms). 50 ms is small, but noticeable, and I believe these stutters are a result of these short trips to the disk to pick up bits of data, like sound clips or textures.

I would much rather suffer through a picture of a church door opening every time we enter a new location, or travel through a waypoint, than play a "load-less" game, and experience these micro pauses every 10-20 seconds.
This is in fact solveable as the FRAPS tricks shows. We are capable of deal with mid game HDD access.
The problem is to make Blizzard realize is their game's bug and they need to solve it instead of forcing me to stress HDD with FRAPS or any other program just to erase stuttering.
Posts: 89
Here is another screenshot

http://i47.tinypic.com/k397qo.jpg

Sound.mpq
ClientData.mpq
Texture.mpq

The game is definitely hitting these files in realtime. That should not happen. Diablo 3 needs loading screens. Or at least some sort of background thread to grab the data before it's needed.
Posts: 89
This is in fact solveable as the FRAPS tricks shows. We are capable of deal with mid game HDD access.
The problem is to make Blizzard realize is their game's bug and they need to solve it instead of forcing me to stress HDD with FRAPS or any other program just to erase stuttering.


Good call. I didn't see that post. Unfortunately, I don't have a monster harddrive to allow fraps to chug away recording me shooting barrels, and overturning corpses. :( I guess I could just delete the videos every 30 mins or so.
Wow, that's under 2GB. Wouldn't a quick fix be to cache those entire files to RAM? I know some people have tried RAMdisk to no avail, but what I mean is a change in the actual code.

Or make it even smarter and split the files into smaller pieces, perhaps per act. This would surely allow the code to load the entire act mpq's into RAM so to reduce access times...
Wow, that's under 2GB. Wouldn't a quick fix be to cache those entire files to RAM? I know some people have tried RAMdisk to no avail, but what I mean is a change in the actual code.

Or make it even smarter and split the files into smaller pieces, perhaps per act. This would surely allow the code to load the entire act mpq's into RAM so to reduce access times...


I don't think they need to do that, again based on the fraps trick. This means that our hardwares are capable of dealing with game the wait it is now with all the HDD loading without consuming more RAM.
The problem is that they have some issue on game coding dealing with HDD loads when HDD is not overwhelmed or something similar to this.
Posts: 4
Hi guys,

Thanks for your reports. The "loading assets" bug I believe you are referencing is the issue from the Beta, which does not happen in our live build. The VERY FIRST time an asset is loaded, you will stutter for a split second, but it is not as drastic as what you are describing.

I do not have any information for you guys outside what has been given in Tech Support (which I gather has not been a lot), but we are working on performance improvements for our future patches. Keep trying posted workarounds, keep an eye on the Tech Support forums, and stay tuned for more updates.

Thanks for your patience.


Cmon! This is far beyond a split second stutter. Im sick of bliz support asking people to post their PC system specs as if thats the issue. The vast majority of people with this issue have high end PC's, its not something about our thousands of different individual specs, we're all having the same issues so just fix the game. How does blizzard not encounter this? Doesn't anyone ever think like "hey let me go get a pc of the shelf in a store and run this and see what happens." Sounds like a good QC idea to me. If you did you would see the unplayable mess this is for so many of us. Doesn't anyone from bliz have a friend or family member saying "hey uhh this thing runs like crap dude..." Just address the issue. Say "we know, we're trying to fix it" and tell me when its fixed so I know when to bother trying to play again. Thats all we want.
OK, I have been gathering information in various threads about this issue and think I've found the best workaround (for me) at this point. I will share my configuration and if anyone else wants to give it a shot and post back results that would be awesome. There's no doubt a performance issue but I think I've eliminated it quite a bit with the following methods. Keep in mind it's not 100% and I still saw stutter occasionally but this seemed to massively help the problem.

My Setup:
i3 3GHz CPU
GTX 550Ti (950Mhz edition)
Nvidia 296.10 drivers
Windows 7 64-bit
8GB RAM

Nvidia Control Panel Settings (Specific for Diablo III):
Power Management: Max Performance (default is Adaptive)
Triple Buffering: ON (default is off)
Vsync: Let app. decide (I tried forcing this on, and leaving in-game off, but I think in-game vsync gave me better results)

Diablo III Settings:
Resolution: Full-screen windowed (my windows res is 1920x1200)
Vsync: ON
Max Foreground FPS: OFF
Textures: High
Shadowns: Med
Physics: High
Clutter: High
Anti-Aliasing: ON
Low FX: OFF
Sound: Med (64 chan)

With these settings I was seeing a lot of stutter still, and maybe my monitor sucks but I can't stand the tearing w/ vsync off, so unfortunately I'm kind of locked to 60fps. I was messing around a lot initially with shadows, and the one thing that blew me away with these settings is that if I highlighted over an item/person my framerate would hold at 30fps! It's almost like the text is more intensive than the graphics!!! This didn't happen all the time, but a lot of the time. Curious to see if anyone else noticed this. Turning down shadows to low/off seemed to help, but overall noticable stuttering was still occuring in the game. I tried cranking down the res, and again, the game performed even better, but it didn't matter, it would still stutter.

On a side note, for those of you who are experiencing real performance issues, ie. your machine can't handle the game and it's slow all the time, turning down the resolution will help greatly. But if you're like me and you try to run anything out of native, the blurriness that comes with is just unbearable. Windowed mode is one solution but I found it took away the immersion of the game. I found a workaround for this as well. If you have an Nvidia card go into the control panel and under Display, choose Adjust desktop size and position. Now change the settings to: No scaling, Perform scaling on GPU, and check Override the scaling mode... What you will get is a 1:1 representation of the resolution that you choose. Of course this means the game will have black bars around it depending on what res you select, but for me that was 100x better than blurry up-scaled crap.

Minor improvements:
-Triple buffering ON
-Full-screen windowed or windowed: ON (it seems to lock the 60fps much better and isn't jumping around so much)
-FRAPS recording (this takes away stutter but I think is also deceiving because then you are locked to 30fps and overall the game slows down but does not chop here and there)


Major improvements:
-Vsync ON
-***MPQ Ramdisk***


Obviously most of us don't want to fill our HDD w/ recordings so we can play the game smoothly... I took a look at MileyNydus' post (http://us.battle.net/d3/en/forum/topic/5235703994?page=6#104) of HDD utilization which pointed to 3 mpq files: ClientData.mpq, Sound.mpq and Texture.mpq and decided to tackle the ramdisk route. After putting these 3 files on a ramdisk the stutter was almost 100% gone! It's hard to say if the remaining issues were because of that fact I pretty much had no free RAM after doing this, so if there's anyone out there with more than 8GB of RAM this might clear the issue up completely. Until there is a real fix though, this by far has yielded the best results.

And here's how I did it:
-Download ImDisk install package (http://www.ltr-data.se/opencode.html/#ImDisk)
-Install and go into your control panel and create a new disk. Leave the image field blank and make the size approx 6GB. (It doesn't look like it the empty space on the ramdisk uses memory but these files were around 5GB for me so if you don't have 5GB ***OF MEMORY/RAM*** free I don't know how well this work.)
-Go to Progfiles\Diablo III\Data_D3\PC\MPQs and make a new folder called something like "bak"
-Cut and Paste ClientData.mpq, Sound.mpq and Texture.mpq into the folder you created
-Now COPY the 3 files to your new ramdisk (you should see it appear in "Computer", mine was D:
-Open up an administrative command prompt and again navigate to your mpqs folder:
cd "\Program Files (x86)\Diablo III\Data_D3\PC\MPQs"
or
cd "\Program Files\Diablo III\Data_D3\PC\MPQs"

-Now make links for the 3 files, for example if your ramdisk was D:
mklink ClientData.mpq D:\ClientData.mpq
mklink Sound.mpq D:\Sound.mpq
mklink Texture.mpq D:\Texture.mpq

-Exit your command prompt and close any other open windows

If you did everything right the game should launch without a hitch and you should see a substantial performance improvement as I did. I would really like to see if this helped anyone else. Also if you are tight on RAM, try experimenting by moving only 1 or 2 of the mpq files to RAM and see if that helps.

MAKE SURE YOU MOVE THE FILES OFF OF THE RAMDISK BEFORE REBOOTING OR THEY WILL BE LOST!!! THIS IS WHY I ADDED THE EXTRA STEPS TO MAKE BACKUPS IN CASE YOU FORGET.

If anyone is willing to read this long-winded post, try it out, and post back I'd love to hear your results! Again this obviously a temporary solution but it seems to work the best for me.

GOOD LUCK!

*** Thanks to Valcros, MileyNydus and everyone else for digging into this problem. Hopefully a patch/driver update will come soon! ***
Edited by minuteZERO#1907 on 5/18/2012 12:57 PM PDT
Very nice guide to create a ramdisk for those 3 archives. I will try it and comment back with my results.

EDIT: just minor tweaks to the guide for the people that are not familiar with this stuff. On control panel, the program you will launch is called ImDisk Virtual Disk Driver.
A window will pop-up. You will click on mount new. Then leave all as it is except on the parte that says Size of virtual disk, where you will set it on GB and write the number 5.
Leave the rest as it is and click ok. The ramdisk will be created and windows will tell you that you need to format it. Leave all as it is and name it and then click ok and your ramdisk will be ready to use.
Edited by Valcros#2423 on 5/18/2012 1:42 PM PDT
You can also load the other MPQ files, total is about 8 GB.
This might even improve performance further.
If i had 32 GB ram, I would just load the whole game in my RAM.
I also did this with D2.
Posts: 308
I only have 4gb-- I will try it with 1 of the MPQ files. Since sound seems to be a common culprit, I'll give it a go.
Well I tried it and unfortunately at elast for me ramdisk + vsync didn't work (I also tried decreasing fps to 30).
Still FRAPS is the only one that worked for me.

But thanks for your guide and I bet that it will work for many others here.
After reading Phroster's post I picked up another 8GB of RAM to bring me to up 16 (for $48!!! I remember when RAM upgrades used to break the bank!). I will do some more testing and post results.

BTW, does anyone else feel stupid sinking all this money, time, and effort into a GAME??!?
...yeah me neither :)
After reading Phroster's post I picked up another 8GB of RAM to bring me to up 16 (for $48!!! I remember when RAM upgrades used to break the bank!). I will do some more testing and post results.

BTW, does anyone else feel stupid sinking all this money, time, and effort into a GAME??!?
...yeah me neither :)


No, I just feel stupid doing all this work for Blizzard and then get an answer like - It's because you have a notebook. Get a desktop PC -
Well I tried it and unfortunately at elast for me ramdisk + vsync didn't work (I also tried decreasing fps to 30).
Still FRAPS is the only one that worked for me.

But thanks for your guide and I bet that it will work for many others here.


Hey Valcros, what are your sys specs again?
Edited by minuteZERO#1907 on 5/18/2012 2:40 PM PDT
Well I tried it and unfortunately at elast for me ramdisk + vsync didn't work (I also tried decreasing fps to 30).
Still FRAPS is the only one that worked for me.

But thanks for your guide and I bet that it will work for many others here.


Hey Valcros, what are your sys specs again?


Notebook model - HP Pavilion dv7-4295us (http://h10025.www1.hp.com/ewfrf/wc/document?docname=c02770424&tmp_task=prodinfoCategory&cc=us&dlc=en&lc=en&product=5094565)

GPU - 2nd generation Intel Core i7-2630QM Processor 2.00GHz with Turbo Boost Technology up to 2.90 GHz
RAM - 8GB
Video card - ATI Mobility Radeon HD 6570 graphics (or ATI Radeon HD 6570M) (http://www.notebookcheck.net/AMD-Radeon-HD-6570M.41479.0.html)
SO - Windows 7 Ultimate x64
Latency - mostly 280 (green)


Hey Valcros, what are your sys specs again?


Notebook model - HP Pavilion dv7-4295us (http://h10025.www1.hp.com/ewfrf/wc/document?docname=c02770424&tmp_task=prodinfoCategory&cc=us&dlc=en&lc=en&product=5094565)

GPU - 2nd generation Intel Core i7-2630QM Processor 2.00GHz with Turbo Boost Technology up to 2.90 GHz
RAM - 8GB
Video card - ATI Mobility Radeon HD 6570 graphics (or ATI Radeon HD 6570M) (http://www.notebookcheck.net/AMD-Radeon-HD-6570M.41479.0.html)
SO - Windows 7 Ultimate x64
Latency - mostly 280 (green)


Try RAMDISK, no vsync, and windowed mode (not fullscreen/windowed). Keep an eye on your framerate and see what you get. My old laptop can only do 30fps at best so I run it in windowed mode on that, with pretty much all settings off and it seems to help. But it's 4 years old now so I can't see why your machine wouldn't be able to handle it (and why FRAPS fixes it). Actually... what FPS do you get w/out FRAPS? Another thought is keep settings as-is force to 30FPS and vsync on, but you will have to force triple buffering in your catalyst control center to see the benefit.
I did it on window mode and first I tried without vsync but didn't work
I had this issue on the first day before I turned off Windows ReadyBoost.

Aka its a hard drive problem. In certain windows configurations your hard drive will swap your pagefile to either memory or flash memory every so often (if the flash memory isinstalled in your system to speed up applications; or if you have too small of a pagefile). Or in other words Windows is trying to move data around to be more efficient but it is not smart enough to know when it is going to cause bottlenecks.

Im not sure there is a universal solution since for me it was as easy as only using "readydrive" instead of "readyboost". I have a 2GB Intel Turbo Memory controller to speed up boot times, etc which helps get around this, but others who just have a hard drive without a "ramdisk" it might take some more fiddling.

You either have to increase your pagefile or disable any programs that may be using your hard drive while the game is running. This could be task schedulers, anti virus, automatic defragmenters, or programs that are trying to auto update.

Of course a SSD drive will "brute force" past these problems to the point you won't notice any issues. But most people have 7400RPM harddrives that will get bogged down in certain situations and cause lockups and stutters while playing.

You can run "resource monitor" to show you what your hard drive is doing while the game is stuttering(it will show you what files are being read by the hardrive, and how much data is being read), that can help you narrow down exactly what is causing the problem.
Edited by Ritual#1634 on 5/18/2012 4:12 PM PDT
This topic has reached its post limit. You may no longer post or reply to posts for this topic.

Please report any Code of Conduct violations, including:

Threats of violence. We take these seriously and will alert the proper authorities.

Posts containing personal information about other players. This includes physical addresses, e-mail addresses, phone numbers, and inappropriate photos and/or videos.

Harassing or discriminatory language. This will not be tolerated.

Forums Code of Conduct

Report Post # written by

Reason
Explain (256 characters max)

Reported!

[Close]