Draft
Conversation
bf1527f to
22cc032
Compare
|
I've tested this and it works well. You should mark this for review. |
Member
Author
|
there is still some work required before i can merge this: most importantly, i need to make heightmap mode actually work with the abstracted API, which i'm currently doing on once that's done, i also still want to do a last round of refactoring in order to minimize the amount of duplicated code between versions, and move more stuff to the |
…fer when using raw memory addresses
…hing again! doesn't seem to render anything, though
apparently the standard preprocessor really can't handle true/false literals, we have to use 1/0 instead
the vertex shader needs to actually feed the right color into the outputs
terrain now renders again! on the other hand, the lightmap texture seems to be misconfigured AGAIN.
whoops! called the wrong function
…ocked from rendering
rather than (quite badly) guessing the size of the OS send window, i've turned it into a system which relies on platform-specific methods to implement flow control. currently, this is only implemented for the following: - local (singleplayer) connections, which use no flow control at all - servers using Epoll (Linux), where Netty exposes an interface to set TCP_NOTSENT_LOWAT on the underlying native socket to a low value, as described in https://blog.cloudflare.com/http-2-prioritization-with-nginx/ other connections currently have no optimizations, and will "flow control" comparatively poorly by simply sending packets until the OS send window fills up. however, this isn't a priority, as the only two platforms in question are Windows and OSX, neither of which are commonly used for hosting servers - likely the only time servers will be run on these platforms is for LAN worlds, where flow control will be less important anyway thanks to a (presumably) fast LAN.
…ead has handled all packets
note to self: it helps if you run your code after you change it. i really need to figure out how to run integration tests on the entire game...
# Conflicts: # common/src/main/java/net/daporkchop/fp2/common/util/alloc/DirectMemoryAllocator.java
...as well as glFlush() and glGetBufferParameteri()
also added a method for getting values from an index writer
wow, this is a lot cleaner! i should start using this everywhere...
…rtices this isn't actually used, but will be useful to have readily available while debugging other issues
This includes the ability to get directly into an array
We still don't actually use this anywhere, but this allows us to split shader compilation/linkage into two phases, which may enable drivers to do much of the expensive work in the background.
also, precompute the version header and store it in the OpenGL context object to save some string concatenations
unfortunately some drivers seem to ignore it, making it rather useless
… in debug mode this makes apitrace output much less overwhelming
this eliminates the need for manually extracting clipping planes from the projection matrix
This is enough to fill exactly one wave on AMD devices, and two warps on Nvidia. In either case this should give the compiler more freedom with regards to register allocation, and so on, as smaller workgroup sizes means that all workgroup resources are freed up immediately when the warp completes. (This should eventually be made dynamic based on GPU type, but for now this is good enough. I really wish OpenGL had some way to say "please choose the best workgroup size for me" for shaders with no communication between threads, though...)
This file contains hidden or 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
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.
This is a huge PR (which, in retrospect, probably should have been broken up into multiple smaller PRs). In combination with #117, it makes the vast majority of the codebase be able to operate entirely independently of the Minecraft version being used.
Additional major changes include:
T_SHIFTand related constants are now toHeightmapConstants/VoxelConstantsFEventBus, which uses a familiar annotation-based event subscription system. It supports a few additional features not commonly found in other event buses, such as the ability to weakly reference a registered handler object, and generic parameter matching.@DebugOnlyannotation is now gone. Debug statistics and related features are now available outside of debug mode.Logger, as are messages which appear in the client-side chat menu.With the exception of the
:glmodule and children (which are handled by #117), nearly everything is affected in some way.Known shortcomings: