-
Notifications
You must be signed in to change notification settings - Fork 182
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
[Vulkan 1.2] Implement Bindless rendering #467
Conversation
Needed for bindless UBOs/Uniforms later
Is it not possible to use inline uniforms without a descriptor indexing? |
This is difficult to explain well, so hope this makes sense The Inline Uniform Block feature is mostly used for convenience, and does not really improve performance much afaik They can actually be used without Descriptor Indexing, but doing that adds code bloat and increases the complexity of descriptor management, which is something i wanted to avoid if possible |
Yet another (not crash) log. Now i'm getting really weird errors (had a lot of personal info and launching in ide doesn't give any errors at all, so submitting through mclo) https://mclo.gs/lkJXFf4. Also got this one, but not sure if it's useful |
Ahh fair enough as long as it doesnt do anything to memory complexity I dont expect a perf increase though any memory improvement on riscv can in turn increase perf because rn the memory controllers are rather weak(which will change soon - more powerful socs are coming out). Not that riscv is a supported platform with vulkan mod and even if it was theres some issues with either lwjgl or gradle/fabric that make it where if you specify any linux x86 binaries it will just always use them even if you also specify the riscv variant. Which is an obvious blocker. |
Oh no runtimeDeacriptorArray is also not supported, welp. |
@seji1 thanks for testing this Edit: I was wrong, I incorrectly added The texture and splash load screen issues are due to shader glitches, and only happen on Non-Bindless mode (Bindless mode is fine) Will try to get them fixed later today hopefully |
This comment was marked as outdated.
This comment was marked as outdated.
As just a single data point, on my system (7900XT+RADV and 5600X) there are no performance regressions for frame rate at 64 render distance (no improvements either but given this is still in progress I wasn't expecting any) |
(Sorry this is a bit long, wanted to clarify some details) That's good to know that there are no performance regressions This PR is close to complete, so unfortunately their probably won't be any additional optimizations though To explain the lack of performance improvement, Bindless Rendering is mostly focused on modernizing VulkanMod, adding support for future features (MSAA + Anisotropic Filtering) and removing major CPU bottlenecks with chunk and entity rendering My CPU is quite weak, so the improvement with Bindless Rendering is noticeable |
Didn't realise it was for CPU bound situations, apologies. I turned off Indirect Draw to force myself into a CPU bound situation and there does appear to be a small improvement even on my system, going from 190->200 FPS roughly. |
That's OK, this is my bad as Bindless rendering is a complicated concept and has alot of applications, which makes it difficult to explain properly So in a sense this PR is more of a engine/render rewrite There are actually some GPU improvements as well, but they are mostly micro-optimizations and small tweaks |
f3e603a
to
3c08b19
Compare
Decided to close this as its outdated + had far too many problems Basically Bindless was a solution looking for a problem, and also broke compatiblity with alot of mods in the process (Will give a more detailed explanation + breakdown later) |
(Fixes several design flaws from #461, and allows Bindless mode to be disabled if unsupported)
Enhances VulkanMod's internal engine (i.e. the renderer) by utilizing Vulkan 1.2 features to implement bindless rendering
For compat reasons this is handled with two modes, Bindless and Non-Bindless mode
Bindless mode
Non-Bindless (Bindful) mode
Additional optimizatons
Minor visual bugs
Edit: Removed mention of Anisotropic Filtering and MSAA; recently found that they do not require bindless rendering, so those features will likely show up later in a separate PR