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

idek bro #10

Merged
merged 90 commits into from
Jan 3, 2025
Merged

idek bro #10

merged 90 commits into from
Jan 3, 2025

Conversation

ThatMG393
Copy link
Owner

``

IMS212 and others added 30 commits September 14, 2024 13:42
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 <[email protected]>
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.
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.
jellysquid3 and others added 29 commits December 2, 2024 23:18
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
* Added "Pale Oak Leaves" for Minecraft 1.21.4.
* Reduced the file size of all block textures.
This fixes a regression caused by 26f4263.

The underlying problem is that accessing Java's AWT *after*
LWJGL3 has initialized is not possible.

Minecraft has a utility class which uses rundll32 internally,
but we cannot access that due to classloader restrictions on
NeoForge.

That leaves us with having to implement the call ourselves,
and simply using Shell32 directly (like we do for other
Windows APIs) seems easiest.
The world may not be assigned to the renderer at
initialization, which is the case for non-terrain
rendering (i.e. block entities.)

Likely, there is no performance benefit to caching
this data in the first place, so the easiest solution
is to just remove the code.
Custom models which extended these base models would not properly have their textures applied, as the texture references were accidentally changed.
This is anywhere from 10 to 15% faster depending
on what entities are being rendered.

Most of the improvements come from more efficiently
laying out the cuboid data and coalescing neighboring
32-bit values into 64-bit words.

Furthermore, vertex positions are calculated by
extracting vectors from the pose matrix and adding
them to the origin vertex, which avoids many
matrix multiplications.

Co-authored-by: MoePus <[email protected]>
The billboard geometry can be computed using the
camera's left and up vectors, saving some cycles.

When rendering thousands of billboard particles, this
was ~10% faster than baseline in my observation.

Co-authored-by: MoePus <[email protected]>
@ThatMG393 ThatMG393 merged commit 7e19b98 into ThatMG393:dev-mergeonly Jan 3, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants