-
Notifications
You must be signed in to change notification settings - Fork 48
Update SDL and ImGui to newer versions #281
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
base: main
Are you sure you want to change the base?
Conversation
|
I have not checked all draws for assert errors, but on a first pass it looks fine. Some of the coloring seems to have changed slightly when it comes to the background draw, but not sure if it might be related to the new styling options that is in the new ImGui version. Build will fail to complete until https://github.com/goatcorp/XIVLauncher.Core/blob/main/.github/workflows/build.yml#L28-L31 allows for .NET 9 builds which both .NET 8 and 9 comes pre-installed with the Linux runner |
86e574a to
fd60db3
Compare
|
Requesting goat's review for this one since to my knowledge prior work with HexaImGui was done in Dalamud (and I'm not all-to-knowledgable on the specifics). From a first glance though all this looks fine to me |
|
Builds but does not run on bazzite/fedora43. When launched from terminal: Tried with SDL_VIDEODRIVER=x11, and I get: |
|
As of d4cdb5d (fix id assert error), it launches and all the settings tabs work. Still some graphical issues, but the window pops up, and then it successfully launches the game. |
TODO: - Image loading isn't fully working (stride issue) - Font no longer is applied correctly - Remove veldrid and old imgui from code base once the aboves are fully working (currently only debug removes it)
be8e0f2 to
5130e6c
Compare
|
X11 seems to not report scaling correctly (could just be xwayland) so may need to add a scaling override setting if this becomes a problem. Default launches with video driver "wayland" unless explicitly set otherwise. Everything else works as the old XLCore did, just with newer ImGui version and better bindings |
|
Can confirm, aside from slightly wonky X11 scaling when in KDE wayland with "Apps scale themselves", it's working. There may be some edge cases we havent hit yet, but I was able to use all the settings tabs, change settings, save settings. One time password works as well. We need to have a steam deck user do some testing to see how it functions in that environment, though. Need to make sure they can still interact with it, enter info, etc. |
|
I’ll do device testing for steam deck and another set of tests for regular desktop setups as soon as I’m available to do so |
|
seems like it works for me (X11). however, the cursor (in at least the username/password boxes) is very thin and also red, so it's really hard to see. also, this manages to induce really bad coil whine somewhere in my computer, which nothing else has done with this computer ever?? the pitch modulates with window size and changes on different settings tabs, and doesn't reproduce with a screenshot. no idea at all |
Sounds like the frame rate isn’t being capped properly for the launcher UI and thus overworking the GPU? |
|
I just checked with mangohud ( |
|
The current version of the launcher should already be limiting its framerate so we should be able to copy that |
src/XIVLauncher.Core/Program.cs
Outdated
|
|
||
| guiBindings = new ImGuiBindings(graphicsDevice, graphicsDevice.MainSwapchain.Framebuffer.OutputDescription, window.Width, window.Height, storage.GetFile("launcherUI.ini"), Config.FontPxSize ?? 21.0f); | ||
| Log.Debug("ImGui OK!"); | ||
| SDL.SetGPUSwapchainParameters(gpuDevice, window, SDLGPUSwapchainComposition.Sdr, SDLGPUPresentMode.Mailbox); |
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.
This should be changed to SDLGPUPresentMode.Vsync.
|
Changing SDLGPUPresentMode.Mailbox to SDLGPUPresentMode.Vsync does, in fact, reduce the framerate to my monitor refresh rate. I launched the game, and the game runs according to in-game settings. It doesn't accidentally force vsync on the game. So if I disable frame-rate limit, I get greater than my refresh rate at the character select screen. |
Co-authored-by: Rankyn Bass <[email protected]>
Co-authored-by: Rankyn Bass <[email protected]>
|
Went from ImGui version 1.87 to ImGui 1.92 so they introduced a lot more styling params so just find which one should match what value. I just tried to match what they were extending on in a enum. |
Co-authored-by: Rankyn Bass <[email protected]>
Just mess around with the values added here to see if it changes anything since the new ImGui version crashed without them https://github.com/goatcorp/XIVLauncher.Core/pull/281/files#diff-41c55822af90f7032d342bcdaf38a1dff2ce000042eece824fd95016dbdffbe6R117-R125 |

Things changing in this:
.NET 8 -> .NET 9
Serilog 2 -> Serlog 4
ImGui.NET -> Hexa.NET.ImGui
Veldrid -> Hexa.NET.SDL3
.NET update reason:
Pulling in newest XIVLauncher.Common for future additions.
Serilog update reason:
.NET 9 doesn't allow for Serilog 2.
ImGui update reason:
Need better bindings for SDL3.
SDL update reason:
Veldrid is abandoned.
Build pipeline will fail due to the .NET build only having SDK 8.0.x and not SDK 9.0.x