Fixing Path of Exile's Mangled Text Bug

If you got time for this you got time for image reconstruction.

Best tech in the industry and lets you make the game prettier, more stable or more performance or any combination in between.

Long live fake pixels screw native rendering, what a waste.

on a 3080 (still not enough nothing ever is)

come at me bros
Last edited by Nuttyhater on Jun 2, 2022, 6:08:09 AM
congratulation for fixing this, for me it was kind a funny to see this from time to time.
[Blessed by Support]
Nicely done Ben, well played sir. And very neatly described, just the right level of detail! Really interesting post.

Bloody hell, I always thought this problem was on my end... Nice one Ben.
Awesome writeup, I love it!

Pointers are always a mission to trace.

Thanks guys!! <3
It is not a bug, it is a feature ... "still sane exile !!! "
"
Trilkk wrote:
"
Googlenysh wrote:
Am I the only one bothered by the idea that SCRIPT_CACHE* still isn't unloaded from the memory, even if you unloaded the font? :)
Thinking of exactly the same thing. If the SCRIPT_CACHE is allocated here and never removed, doesn't this mean that unloading and reloading fonts would endlessly allocate new SCRIPT_CACHE objects that never experience cleanup.

From the bug we all encountered, we know that it did not crash PoE, the cache always still existed. From this perspective, the quote:
"
...there were a few ways to go about fixing this: You could move the SCRIPT_CACHE object to belong to the Resource::Font object, delete the old SCRIPT_CACHE whenever the font gets unloaded, or swap the lookup value from the memory address to be instead be based on the typeface, size and styling of the font, which is what actually makes a font unique. All these options work but each has its own pros and cons and should be weighed based on how it fits into the larger systems.
seems a bit dubious. I have no idea how large the caches are, but if we take the explanation at face value, all solutions that are not "delete the old SCRIPT_CACHE whenever the font gets unloaded" end up slowly leaking memory.

Of course, if the cache would be keyed on the font identity and settings, there would be some theoretical maximum amount of elements in the cache. But it still sounds kind of dubious.

Could I please get a clarification on this?

isn't that the very reason for having cashe in games, to spare the limitless loading of materials each time they are needed ?
That's why GGG is the best gaming developer company, you don't see this kind of communication out there, even among the best developers.
Thanks for the write-up.
A bit disappointing that it was "just" a pointer pointing at overwritten data which I would have expected to be more obvious but as you said, difficult to reproduce to tinker on it.

I hope you guys and gals can figure out the sound crashes on consoles soon. I suspect it's something similar. Resources getting tight and overwritten (since it happens in resource heavy situations especially Heist with all of it's voice lines), sound manager tries to play something that isn't a sound and crashes.
... is not a troll

Report Forum Post

Report Account:

Report Type

Additional Info