Skip to content

Wx 3.3+ behavioral and performance regressions #1672

@Squall-Leonhart

Description

@Squall-Leonhart

Current Behavior

The WxGamelist.h specifies hardcoded kListIconWidth and kIconWidth values which previously behaved fine under Wx 3.2.x but cause a high delay (cpu choke) on loading the emulator at high DPI values when built against 3.3+, a secondary consequence of this change in scaling behavior is that the icon overlaps the name text on dark mode, and is only partially displayed on light mode.

In testing fixed values, i found that 26 and 51 (down from 64 and 128) achieved the expected icon size at 250% dpi, resolving both of these issues, this is obviously unfeasible as the icon width at 100% dpi will be undersized.

With the default values, at 250% dpi, cemu will take its sweet time iterating through the game icons before first displaying them no matter what mode you have the list set to, this can delay readiness by minutes for larger lists as the bitmaps are prepared for display at the scaled size

In starting to look into this, i noticed several other issues.

  1. the icon does not resize with the column, like in other apps that have a similar icon displaying field.
  2. the column can be resized by double clicking the seperator so it adjusts the icon size, but can not be dragged, and does not persist in the cemu configuration.
  3. one of the icon modes can hang permanently because cemu somehow displays clickable blank placeholders with names, before eventually showing the icons finally
  4. Small Icon mode is the same size as Icon mode.

Other Wx 3.3 changes include the oversizing of several UI panels, resulting in extensive unused space on them, and List Scrolling has gone to shit (though this one is a reported, unfixed Wx bug)

Expected Behavior

Steps to Reproduce

System Info (Optional)

Windows 10 / 11, at high dpi's.

Emulation Settings (Optional)

No response

Logs (Optional)

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions