forked from douira/sodium
-
Notifications
You must be signed in to change notification settings - Fork 0
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
upstream #1
Merged
Merged
upstream #1
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This improves terrain rendering performance significantly on Intel Xe-LP graphics under Linux.
The resolution controls would not fit in the allocated space, so the rendering of slider controls was changed to enable rendering the slider bar and the value text on separate lines. Co-authored-by: MeeniMc <68366846+MeeniMc@users.noreply.github.com>
Additionally, adjust the rendering of the controls to be less confusing when disabled, and provide an explanation as to what the option does.
Some core shaders were relying on the model part faces being written out in a specific order. We still don't support core shaders, but the fix here is trivial enough. Fixes #2745
The requested capacity was being multiplied by the vertex stride more than once, which resulted in far too much memory being allocated. Closes #2792
This increases the maximum size of vertex and index buffers to 4 billion elements, since the Uint32 types stored in memory are now safely represented with Int64. For vertex buffers, this increases their maximum size to 80 GiB, and index buffers have a maximum size of 16 GiB, whereas both were limited to 2 GiB prior.
This eliminates 8-13% of the rendered sections at higher render distances on average in testing, and correspondingly reduces graph search time by a similar amount.
This potentially fixes some cases of #2835.
We're no longer a Fabric-exclusive mod, so let's get rid of the suffix.
Co-authored-by: muzikbike <52297970+muzikbike@users.noreply.github.com>
Use the accurate vertex positions for unaligned and aligned (but rotated) quads.
* Shared logic is moved into a build plugin where possible * Build time is significantly improved when the Gradle daemon is warmed * Mixins are remapped in-place now, eliminating the need for refmaps at runtime. This also gets rid of some warning messages at startup. * Module relationships are now correctly represented in IDEA for other source sets (fixes a lot of code analysis features) * Split Java source and resources into different configurations * Run configurations are now consistent between NeoForge/Fabric * The common project is no longer remapped unnecessarily * Updated Gradle and build plugins
These files are only meant to be in the source distribution, and Minecraft doesn't like them.
Some integrated GPUs, such as RDNA3.5, appear to use the PCI_CLASS_DISPLAY_OTHER class.
The bugs with xdg-open have been resolved upstream and most Linux distributions are shipping the patches. Also, make sure we get a successful exit code from the XDG implementation.
This will help to avoid class-load issues and makes the code more hygienic.
Some changes were made to cloud rendering in newer versions that needed to be replicated in Sodium. - The alpha cutoff for clouds was changed to (a < 10). - Texture loading can now gracefully fail, and it is expected that rendering is skipped when this happens. - The movement/positioning of clouds was slightly changed. - The render pass system now needs to be told about render target usages (fixes #2883). This commit also improves mesh building time by around 35% on a fast processor (AMD Ryzen HX AI 370) through various micro-optimizations.
Minecraft 1.21.2 changed some of the rules, and this was causing the faces of transparent blocks to be rendered even when they were hidden by full opaque blocks. Fixes #2850
The NVIDIA driver enables a driver feature called "Threaded Optimizations" when it finds Minecraft, which causes severe performance issues and sometimes even crashes. Newer versions of the driver seem to use a slightly different heuristic which our workaround doesn't address. So, instead, use an alternative method that enables GL_DEBUG_OUTPUT_SYNCHRONOUS. This seems to reliably disable the functionality *even if* the user has configured it otherwise in their driver settings. Additionally, on Windows, we now always indicate to the driver that Minecraft is running, so that users with hybrid graphics don't see regressed performance.
Render sections and regions are sorted after the graph traversal is performed. This decouples their ordering from the graph, which isn't entirely correct for draw call sorting. Fixes #2266
The state of the depth test prior to cloud rendering is undefined. After rendering, it is expected to be disabled again.
Rounding of the values now happens after the 16-bit intermediaries are added together. This affected some animated textures, causing them to exhibit flickering behavior.
This covers the following additional blocks: - Cauldrons - Brewing Stands - Bells Co-authored-by: JellySquid <jellysquid@pm.me>
Avoids rebuilding the render lists and doing a graph search more often than necessary by checking if the section actually changed in a way that's relevant to the graph search. For worlds that update their blocks frequently (every tick or every redstone tick) this avoids half the graph searches. Some graph searches are still necessary to schedule rebuild tasks, but when the task results come back, this doesn't do another graph search unless the section's visibility data or build state changed in a way that needs the render list to be updated.
This fixes some problems where very large block entities in nearby sections may be incorrectly culled. But it does not comprehensively fix the problem for all other sections, since that would require visiting the 27-neighborhood of every section, which is too slow.
The OpenGL ICD name now includes the file extension, which the regex expressions were not matching.
For systems with hybrid graphics, it may be the case that an incompatible graphics driver is installed, but that it isn't used for the OpenGL context. We can avoid showing errors in this situation by checking the vendor string of the context immediately after creation. This is not the most robust check, but in practice, a single system should not have multiple graphics drivers installed from the same vendor, so checking the string should be relatively safe.
Fix section and region sorting by using the correct section coordinate instead of the integer part of the camera transform, which is incorrect near the origin. Closes #2918
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.