-
Notifications
You must be signed in to change notification settings - Fork 608
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Latte optimizations and tweaks #706
Conversation
b2e6c61
to
8e36e71
Compare
Perfect most of the time, except for looking into the distance with a telescope or camera. |
this is likely due to incompatibility with existing graphics packs |
I don't pretend to be off-topic, but since here I can see some optimizations on the graphics/vulkan's side, maybe this can be used for Cemu: https://www.khronos.org/blog/you-can-use-vulkan-without-pipelines-today |
Since the effort has already been put in to have the pipeline cache, there isn't any benefit to be had here. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for taking the time to look into it! I was mostly interested in the buy/sell menu bug so I only tested the last commit on top of current main
(i.e. b8dec03).
I definitely noticed improved performance with this fix. In the buy/sell screens I can now reach my target 48FPS no problem:
However, this fix seems to introduce another issue:
Unfortunately, I don't have enough experience to debug this further.
I thought it was the typo in LatteRenderTarget.cpp
, but changing that actually made it worse :(
Happy to test any alternatives if anyone can figure this out.
if (((scissorBoxWidth + 7) & ~7) == colorBufferWidth) | ||
colorBufferWidth = scissorBoxWidth; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I wonder if this is a typo and this was meant instead:
if (((scissorBoxWidth + 7) & ~7) == colorBufferWidth) | |
colorBufferWidth = scissorBoxWidth; | |
if (((colorBufferWidth + 7) & ~7) == colorBufferWidth) | |
colorBufferWidth = scissorBoxWidth; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not a typo
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sorry about the noise then! 😅 Performance is improved and only the graphics pack was to blame for the issue!
The issue you're seeing is because some aspects of graphics packs are not functional on this PR. |
Ah you're right thank you! I had the graphics pack enabled for 1080p. Turning it off resolves the issue 👍 |
@Squall-Leonhart do you have a pointer on which graphics pack is causing this and how to fix it? |
The graphics pack will be updated eventually, Exzap doesn't intend to merge this until 2.1, but its the base resolution pack. |
Widened conditions for accelerated draws Added code for logging buffer contents
8e36e71
to
0454ffa
Compare
Since the color buffer heuristic breaks graphic packs I have disabled it for now. I started updating gfx packs but it will take a while to cover them all. Once those updates are pushed we can enable the heuristic again. |
Graphic packs can now set "colorbufferOptimizationAware = true" to enable the framebuffer texture size optimization mentioned in cemu-project#706. If no graphic packs with texture rules are active then the optimization is enabled automatically.
Graphic packs can now set "colorbufferOptimizationAware = true" to enable the framebuffer texture size optimization added in cemu-project#706. If no graphic packs with texture rules are active then the optimization is enabled automatically now.
Graphic packs can now set "colorbufferOptimizationAware = true" to enable the framebuffer texture size optimization added in cemu-project#706. If no graphic packs with texture rules are active then the optimization is enabled automatically now.
Graphic packs can now set "colorbufferOptimizationAware = true" to enable the colorbuffer texture size optimization added in cemu-project#706. If no graphic packs with texture rules are active then the optimization is enabled automatically now.
The optimization for colorbuffer resolution introduced in PR cemu-project#706 is now enabled. This optimization changes the resolution of certain framebuffer textures, which may conflict with the texture resolution rules set by some graphic packs. As a result, if a graphic pack that specifies texture resolution rules is in use, the optimization will automatically be turned off to prevent any issues. To circumvent this, graphic packs can now include the setting "colorbufferOptimizationAware = true" in their rules.txt. This setting indicates that the pack has been updated to handle the resolution changes introduced by the optimization. Cemu will allow the optimization to remain enabled if resolution packs have this flag set.
The optimization for colorbuffer resolution introduced in PR #706 is now enabled. This optimization changes the resolution of certain framebuffer textures, which may conflict with the texture resolution rules set by some graphic packs. As a result, if a graphic pack that specifies texture resolution rules is in use, the optimization will automatically be turned off to prevent any issues. To circumvent this, graphic packs can now include the setting "colorbufferOptimizationAware = true" in their rules.txt. This setting indicates that the pack has been updated to handle the resolution changes introduced by the optimization. Cemu will allow the optimization to remain enabled if resolution packs have this flag set.
Changes: