-
Notifications
You must be signed in to change notification settings - Fork 330
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
Fix various GLFW Vulkan Linux issues #430
Conversation
Hey, nice to see new contributors. And sounds like an interesting project. I don't have a way to test Vulkan on Linux myself right now, so contributions here are very much welcome. All of this looks good to me. As for number 3: Yeah, right now we assume all values and operations are done in sRGB nonlinear color space. There will be improvements here for RmlUi 6.0 (currently I don't have any meaningful contributions to the other issues. I'll happily take further commits, or we can make more fixes in new PRs too. Let me know when you are happy with this, and I'll merge it. I like to ensure that every commit builds correctly, so I will just squash and merge them, unless you want to fixup the commits that didn't build correctly. |
I am happy with it for the things it fixes, I can do separate PRs for the other things.
This is fine, I do so on my repo's as well because it makes the history cleaner. Would you be fine with simply always setting |
Yeah, this seems perfectly fine to me. I haven't seen these visual issues myself on Windows, maybe there are some driver/implementation differences, in any case I'd like to ensure that it works correctly for everyone. |
Absolutely possible. Linux tends to be a bit more unforgiving in those cases. I also noticed that on my desktop PC using a discrete AMD gpu the I added the commit to change the load op so from my side this is good to merge. PS: I'd like to optimize the rendering overhead by only re rendering the view if anything actually changed. This is easy for simple views (render on any input event), but quickly breaks down with animations, lottie and the blinking cursor for text input. Any hints on where to get started to detect if anything in the scene changed ? |
Thanks a lot, these changes look good to me!
This is something other users have requested too. See e.g. this discussion thread and this post for some ideas. I don't think there is any simple way around it, other than considering all parts of the library that can trigger rendering changes. I think you've already mentioned the most important triggers. Obvious things to check for are layout and position changes. But this is not sufficient, e.g. next up would be rendering properties, like color. And then custom elements like input and lottie. It would be nice to have a built-in way to detect this, but I hope it can be done without being too invasive. |
This is an attempt to make rmlui usable on linux with vulkan.
We intend to build an app based on vulkan because we need to do lot of gpgpu/shader processing, but we also need to present a normal UI to the user.
Trying out RmlUi on linux I ran in a number of issues.
I fixed this in commit 2 by simply ignoring the second queue create if they are identical. Everything else still is the same, rmlui will simply get the same queue for compute and graphics.
There are more issues though which I am not sure about:
vkQueueWaitIdle
to wait for the rendering to complete before present hides the issue, but is obviously no real solution. From my preliminary check I could not find any issues in how fences/semaphores are setup, but I'll dig further and append an 4 commit if I find something.Let me know what you think about it or if you want me to test something else.