Skip to content
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

Fixing for Rml 5.* releases Vulkan issues #593

Merged
merged 7 commits into from
Feb 7, 2024
Merged

Conversation

wh1t3lord
Copy link
Contributor

Finally, I got two free hours and made this!

So, I added new file in vulkan's folder for debugging because modern Vulkan API requires to use version api higher or equal to 1.1 otherwise we will get in log validation error, but still we keep original vulkan.h that was generated for vulkan 1.0 for supporting maximum 'devices' (and probably users).

Fix was simple, as I said, so we had render pass and function that clearing depth stencil it calls outside but by our design it supposed to be inside obviously I used inside version of that function and now all works fine.

And minor thing is I changed initialization flags for depth stencil because it forces to use only two variants of flags so yeah Vulkan API changes quite fast...

Thanks again for reporting by @skaarj1989 and @DrJedikiah

#581
#558

…g, but keep original header for version 1.0 for maximum supporting of wide range devices and user base; fixing all validation errors, the problem was in function that used for outside usage, but our case was that we need to use inside in our render pass instance.
…lad header for vulkan 1.3 version); returned debugging to default state (not so detailed).
@wh1t3lord
Copy link
Contributor Author

About using new version of vulkan.h is simple. In folder where vulkan.h is located there is one file called 'vulkan_modern.h' just rename it to vulkan.h (but before that rename the original vulkan.h file) and than just compile your solution.

And I added preprocessor to header file that is called RMLUI_VK_API_VERSION just set from VK_API_VERSION_1_0 to VK_API_VERSION_1_1. After debugging restore the things to original state.

Copy link
Owner

@mikke89 mikke89 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for the fixups! This seems to be working well for me. I only saw the validation issues, not the glitches, so I would be interested to hear from others too.

About the vulkan_modern.h header: I don't think we should add this unused header. Its purpose will be unclear to others, and it will most likely sit around and become stale.

If it helps with debugging, I don't mind bumping the Vulkan minimum to 1.1. Looks like it is very widely supported for GPUs that support Vulkan. Otherwise, we can simply remove it for now.

Backends/RmlUi_Renderer_VK.cpp Outdated Show resolved Hide resolved
@mikke89 mikke89 added the backends Platforms and renderers label Feb 5, 2024
@wh1t3lord
Copy link
Contributor Author

@mikke89 my corrections I pushed

@mikke89 mikke89 merged commit 55d18ed into mikke89:master Feb 7, 2024
18 checks passed
@mikke89
Copy link
Owner

mikke89 commented Feb 7, 2024

Thanks a lot for the pull request! Looks good to me, and fixes the validation errors on my end. Hopefully it fixes the glitches that others experienced too.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
backends Platforms and renderers
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Vulkan] ValidationLayers error in the transform demo Vulkan Renderer Win32 Glitching
2 participants