hoverbike1 / TOTK-Mods-collection

Mod repo for Tears of The Kingdom (TOTK) for Switch and Switch Emulation
Apache License 2.0
3.02k stars 202 forks source link

Suggesting ASTC recompression is probably misguided #98

Closed UdonOli closed 1 year ago

UdonOli commented 1 year ago

According to everything I've seen on the matter, ASTC recompression is designed for 4GB (BC3) and 2GB (BC1) cards. Whilst using BC3 may have some small stability gain, it comes with an equal small decrease to texture quality. BC1 also seems to generally have instability issues afaik and may not be worth using at all given the quite large decrease in texture quality. It is, after all, an experimental feature. If you have an 8GB+ card I would not be recommending any recompression.

I should also note that no-matter what you do, yuzu will take all your VRAM up, as it is programmed to not clean up memory until it hits 85-95% usage. When yuzu starts trying to clean memory up, it always has the chance of crashing (it has been known to clean up memory that is in use - great job who ever wrote their memory cleaner), and all recompression is doing is delaying the inevitable. This is an inherent issue with yuzu.

Also extra note - when the LOD Improvement mod becomes recommended - make sure to say that it may decrease performance by quite a bit.

InfiniteParallel commented 1 year ago

Can you provide links to what you read?

From what I have read since TotK was released is that running it on 2x resolution puts VRAM usage at nearly 7 GB. If that is correct, it makes sense to me that BC3 recompression would be used by anyone starting at 6GB.

SpockBauru commented 1 year ago

About ASTC Recompression recommendation It was based on the recommendation from Yuzu team itself, and since its on mainline seems to be stable enough. I will paste here the Yuzu team comments on the release:

- Adds a new setting to recompress ASTC textures, currently supporting BC1 and BC3 formats (Found in Graphics > Advanced Graphics). 
  - BC1 provides lower quality textures, but saves 8X more memory than Uncompressed. BC1 is the recommended format for 2GB and AMD igpu users. (In internal tests, a GTX 750 2GB was able to achieve playable speeds in The Legend of Zelda: Tears of the Kingdom with 0.5 scaling and BC1 recompression). Note that Bayonetta 3, Metroid Prime Remastered, Fire Emblem Engage will look very bad with BC1 recompression.
  - BC3 provide medium quality textures, while saving 4x more memory than Uncompressed. This option doesn't produce a significant downgrade of texture quality compared to BC1, and is the recommended option for 4gb ~ 8gb users.

About LOD Improvement mod The version 1.0 really have a hit on performance, but the recently released v2.0 seems to not have any negative performance loss. I will make more tests before make it recommended.

About the Recommended Mods I personally test each mod in two systems: A new PC with an i7 12700k + RTX 3080, and a old system with an i7 4770 + GTX 1070. The mod must work as intended and not have drawbacks on both systems to become recommended. Example: The combo DynamicFPS + fps limiter have clear benefits on both systems:

UdonOli commented 1 year ago

Can you provide links to what you read?

From what I have read since TotK was released is that running it on 2x resolution puts VRAM usage at nearly 7 GB. If that is correct, it makes sense to me that BC3 recompression would be used by anyone starting at 6GB.

I was referring to using it at 1x res. The recommendation for running the game at 1x should probably be Uncompressed, but for 2x, yeah it should be BC3.

The suggestion in general was just BC3 which is a bit misleading. For cards with ~8GB VRAM and performance not high enough to run at 2x scale it is probably a good idea to leave it uncompressed.

UdonOli commented 1 year ago

About ASTC Recompression recommendation It was based on the recommendation from Yuzu team itself, and since its on mainline seems to be stable enough. I will paste here the Yuzu team comments on the release:

- Adds a new setting to recompress ASTC textures, currently supporting BC1 and BC3 formats (Found in Graphics > Advanced Graphics). 
  - BC1 provides lower quality textures, but saves 8X more memory than Uncompressed. BC1 is the recommended format for 2GB and AMD igpu users. (In internal tests, a GTX 750 2GB was able to achieve playable speeds in The Legend of Zelda: Tears of the Kingdom with 0.5 scaling and BC1 recompression). Note that Bayonetta 3, Metroid Prime Remastered, Fire Emblem Engage will look very bad with BC1 recompression.
  - BC3 provide medium quality textures, while saving 4x more memory than Uncompressed. This option doesn't produce a significant downgrade of texture quality compared to BC1, and is the recommended option for 4gb ~ 8gb users.

About LOD Improvement mod The version 1.0 really have a hit on performance, but the recently released v2.0 seems to not have any negative performance loss. I will make more tests before make it recommended.

About the Recommended Mods I personally test each mod in two systems: A new PC with an i7 12700k + RTX 3080, and a old system with an i7 4770 + GTX 1070. The mod must work as intended and not have drawbacks on both systems to become recommended. Example: The combo DynamicFPS + fps limiter have clear benefits on both systems:

* On the new PC makes the game run at 60fps when using the limiter 60fps Static.

* On the old PC it makes the game not lock at 20fps, but run at 30fps with occasional dips when using the limiter 30fps Static.

From what i've seen with some people running the game on 2-4GB cards, they actually seem to get better performance with BC3 in TOTK - not sure if this has changed since but it's kind of weird.

InfiniteParallel commented 1 year ago

From what i've seen with some people running the game on 2-4GB cards, they actually seem to get better performance with BC3 in TOTK - not sure if this has changed since but it's kind of weird.

Better performance with BC3? That might actually be possible in some cases. The cost of recompression using BC1 might actually be a larger strain on performance than using BC3 despite the difference in VRAM utilization. I honestly don't know the algorithms being utilized in enough detail to know about potential difference in work between the two. We would need the input of someone who knows them in depth to comment, or for someone to run a test case in a configuration that may produce the anticipated result.

SpockBauru commented 1 year ago

The suggestion in general was just BC3 which is a bit misleading.

The suggestion in general is NOT just BC3, there's a table with the recommended settings according to the vRAM using the recommendations from Yuzu team on both guides (did you only saw the example picture?). image

From what i've seen with some people running the game on 2-4GB cards, they actually seem to get better performance with BC3 in TOTK - not sure if this has changed since but it's kind of weird.

I prefer to use the recommendation from the people who actually programmed the emulator.

SpockBauru commented 1 year ago

The ASTC recommendations are following the Yuzu team guidelines.