Texture Streaming in Echoes of the Atlas

Nice PR post, explaining how the system should work.
But obviously people are mad because it's not working as you wanted it to.
Instead of encountering these blurry stand in textures instead of stuttering on the first load, some users are seeing those blurry stand ins every time! And this broken caching is causing people to still get loading lag for example in boss encounters with many assets..
You could've at least included a footnote that you are investigating these bugs with the new tech.
I'm using a computer with 80GiB only. But that is more than enough to cache whole game in RAM.
My disk is M.2 with transfer rate about 3GiB/s (both read and write).
And only 4-core energy efficient CPU without multi-threading.
With this configuration game is showing textures with delay - not pre-loading them. Textures stream is a good thing but pre-loading in the background (likely tied to free RAM available) would be a good addition. And with Windows OS this RAM should be quickly released when window is minimized.

And initial release was crashing a lot on vulcan (thus I had to switch back to DX). Good you have fixed at least this part.

Good improvement but much still to do.
Last edited by adderek on Jan 30, 2021, 6:35:33 AM
"
ZaoFishbones wrote:
"
FutureFear wrote:
@GGG & Chris,
Now when we open a zone (maps, town, heist,...) your "low" res textures load during the loading screen, which is faster true; BUT THEN after loading is done ALL those HIGH res textures start loading while we are already in the zone which means my FPS drops to 0 and spikes to 60 again with each texture that gets loaded. -> Makes the first 2 minutes unplayable, and each texture that isn't loaden after walking 5 meters is loaded after walking those 5 meters -> really fun to play right?

Please explain?


I'm not Chris, but you can read in their original post that the low-res textures are pre-loaded on client startup. They are tiny in size, right now a total of like 113 megabytes.

They are always there and don't unload or reload for area transitions.

As I understand it, the dynamic that has kind of changed here is that the load screens cover less time and only load essentials - the rest is possible to stream in while the player regain control.

There's obviously a bit of tuning that needs to be done on how things are evicted and streamed in, as well as what might be considered important enough for actual load screens, but this is a great first step in getting information on how actual computers out with the players behave, and improve from that.

I strongly believe that they didn't intentionally ship something they knew would behave oddly on so many people's computers - there's just so much strangeness out in the world that you just can't find in-house like driver revisions, OS versions, antivirus, malware, hardware combinations.

It's no hit-and-run drop of functionality that's considered perfect. It'll improve and evolve but at some point in time it has to actually be deployed to players, and that point has apparently come.

While it is of little comfort to you, not all players experience the kind of framerate hitching that you do, and I'm sure that there will be effort spent in making it run good for your type of setup as well.



Ok, so if they can pre-load low res textures (I don't need) when my client starts up, why can't they pre-load the actual texture quality I have chosen in my graphics options?

If the goal is to make it better, faster, getting rid of stutters, etc. I still can't grasp why load in textures twice.
Despite them being really small, it still takes recourses away, it obviously still can contain errors too.

As for releasing such "improvements", why do it at the start of a new league, with tons of new content that quite a lot of players can't enjoy because of this issue...?

As for testing, they could easily make a test server and let people test such things before an official release, but instead, they decide we are all beta testers for their game. -> with all the ranting, quitting, negative comments as a result, every new league again and again and again...

I'm also well aware that not everyone has the same issues, I even managed to get rid of mine (mostly). Although still getting issues with delirium or going to town...

High-res-texture loading just shouldn't happen when I'm in a playable state (able to use skills, run/walk,..) yet it does. As mentioned before, I don't care If have to wait a bit longer in a loading screen so nothing has to load after walking 5 meters, and the next.

Path of exile is a fast passed game, with skills and builds that can clear maps in less than 2 minutes. The entire community and economy are built around getting to end-game faster. To get that special item first and either use it or sell it to buy/craft the item you need.
With that in mind, I can't see/understand the logic/reason behind the choice to load in texture as they do now. Especially because there wasn't an issue before, with the exception of sometimes a black NPC (Oak for example).

It would however make more sense to me, to pre-load texture that are more common/used in the game and directly load the "high-res" during a loading screen, so when I enter a zone it's immediately playable. Without first seeing low res textures, and getting more stutters as before while my high res textures are loading while buying damn fusings in town, which I can't see because of a low res really blurry image the first minute after entering the zone; OR when entering your 100% T16 delirium map to clear it as fast possible to do as many as you can in an hour to make more profit.

I guess they are slowing down the pace, since they removed all movement speed from ascendancies too, you know. So let's stream/load several high-res textures during their gameplay too, you know so the loading screen is shorter and their FPS drops to zero with each new texture to slow them down. Oh, and if it's too large to load, crash their game without an error message, yep that seems okay. (add some sarcasm to it)
As trash as ever and only getting worse, much consistency so wow.

Did you know that shaper influence starry sky is always rendered over the whole atlas at all times? That's why everything works ass backwards - because implementation is ass backwards.

"
FutureFear wrote:

Ok, so if they can pre-load low res textures (I don't need) when my client starts up, why can't they pre-load the actual texture quality I have chosen in my graphics options?


You still don't get what kind of unoptimized shit you are dealing with, do you? It would take 20 minutes on the fastest ssd that's why
Last edited by Black__Dawn on Jan 30, 2021, 12:31:03 PM
This is utterly bad for players with high end computers. Never had problems with the game's performance until this new expansion. I get extreme FPS stutters jumping between 55-70fps on a high end pc (RTX2080 and i-9, Samsung 980 pro m.3). Assets take forever to load (up to 10 seconds, and yes that is forever considering the pace of POE's gameplay), I died to this so many times. I can not imagine what hardcore players must be going through. Initially I thought that my graphics card was dying but testing on other games resulted otherwise. It seems like this technology should never have been released.
Chris:
"
Texture Streaming is the backbone of an ongoing memory usage improvement project that will help make Path of Exile 2 perform well with its higher-detail assets.


I dont give a something about higher detail assets. I just wanna play game with 60 fps on my 1300$ PC. EVEN WITHOUT textures.
Just make it playable not fancy 10 fps game. Just that.
Last edited by dark_elvis on Jan 30, 2021, 1:16:07 PM
"
FutureFear wrote:
Ok, so if they can pre-load low res textures (I don't need) when my client starts up, why can't they pre-load the actual texture quality I have chosen in my graphics options?


There's magnitudes too many textures to load everything up-front, something like 34+ gigs in total, and the knowledge about your characters and where they are is not known until the actual load.

The regular texture qualities are not in distinct files. There's one full-quality file which have to be fully or partially loaded to produce the requested texture quality preset.

If there was such a scheme catering toward people who had way too much RAM and running on low settings (somewhat rare), it'd have to be optional and configurable, increasing the different paths that had to be maintained forever. That's seldom desirable, compared to spending the engineering resources on getting the One True Way working for everyone.

When working as intended, the feature is great in that it ought to reduce load time while still having a playable experience after loading. That some computers seem to stall greatly is interesting and feels a bit unforeseen, and I'm sure they've got their best minds on sorting out what causes those problems.
"
Black__Dawn wrote:
As trash as ever and only getting worse, much consistency so wow.

Did you know that shaper influence starry sky is always rendered over the whole atlas at all times? That's why everything works ass backwards - because implementation is ass backwards.

"
<snipped about loading everything up-front>


You still don't get what kind of unoptimized shit you are dealing with, do you? It would take 20 minutes on the fastest ssd that's why


Hi!

Could you and the rest of gamer-kind please erase the notion that games are "unoptimized" from your vocabulary?

It's super tiresome to see something as complex as how a modern game runs distilled down to "lazy devs didn't optimize lol" and it doesn't help anything but build animosity.

Every single program made has some sort of legacy constraint in how the assets are made, how the renderer is structured, how the file formats are done.

You got me curious and it takes me around 2 minutes on one thread with a cold file cache to decompress and upload all the textures from the game files, even the ones that are currently unused. My personal codebase is less optimal than one would want and it's still one order of magnitude better than your estimate :D


I don't know how you've sourced your claim on that "the shaper influence is always rendered" but worst case that's what, a handful of textures, one material, a few effect graphs, producing no pixels?

If there are situations like that, have you considered reporting the divergences that you see and get it looked at, instead of keeping it as trivia to fuel an argument?


Everything in games has tradeoffs between implementation complexity, developer time, how it works on the extreme variety of computers out there, how it interacts with external factors, how historical assets have been made, how people's workflow are, how tools are designed, and much much more.

From the sounds of it, there's radical improvements made in the tech of PoE 2, partly due to that it doesn't have to always be working perfectly and it doesn't impact a player's weekend when something they try out has funny side effects.

This particular new functionality feels like it's something that has been in that codebase for a good while and I strongly believe that they in good faith decided that it was worth the additional work to port it back to regular PoE in the belief that it was working well enough across the board.

Everyone wants to make as good a game as they can within the constraints they have, it's the responsible way and it's why to this day PoE and the company is alive and thriving.
ALL/Especially GGG:

There should not be any problems on startup. There's a fundamental step that is not being taken. Once the game is running, the developer has access to the full bandwidth of the SSD/HD. Everything needed at full resolution should start to be be read and prepared for the GPU en masse using worker threads started before and working even while the GGG animation plays.

This time should be taken advantage of for loading everything for the renderer and include compiling the shaders (if they aren't already pre-compiled) and preparing all renderer data structures, ready to go.

This means that everything normally being staged with low res mipmaps now: textures/materials, shaders, geometry, etc. should be ready to go with plenty of time to spare.

The key to this simple technique is to start as soon as possible. It doesn't matter if it's a weak system. There are a couple of dozen seconds for base startup material to be prepared. If there is a slow old system, a countdown animation might be needed to give the renderer pipeline time to cache, rather than showing the user what looks like a single pixel mipmap as data caches fill.

My machine is blazing fast and I should never see low mipmap rendering. There was no problem on my machine before this low mipmap staging technique was used.

Matt
Last edited by MateoAce on Jan 30, 2021, 3:28:56 PM
pls keep ban bots!
Affliction master craft service Affliction My IGN TreeOfDead
https://www.pathofexile.com/forum/view-thread/2037371 Vouch
Affliction veiled crafting all service all crafts mods
Affliction SC master craft service Affliction SC craft mod!
Veiled crafting Service Affliction craft PM: TreeOfDead

Report Forum Post

Report Account:

Report Type

Additional Info