Commit graph

2357 commits

Author SHA1 Message Date
Jozufozu
431ff92861 Simplify SBB
- SBB -> ModelTransformer
 - Shader binding the minecraft way
 - Engines are responsible for ending batches
2021-12-16 23:10:24 -08:00
Jozufozu
be3f47dfbd Naive parallelism
- Submit many tasks to executor and then wait for them all to complete.
 - Use WaitGroup
 - SBB no longer stores params, instead accepts Params arg to render
 - SBB keeps scratch variables local
 - CPUInstancer keeps track of default params
 - Separate #setup and #draw... functions in CPUInstancer
 - Combine DirectBufferBuilder#updateAfterWriting with #intoDirectConsumer
 - DirectVertexConsumer#split to distribute work
2021-12-16 10:49:26 -08:00
Jozufozu
3767390c96 Better SBB params
- Transform interface for grouping traits and combined behavior
 - Move transforms to params, impl Transform
 - Pass Params object to BatchingTransformers instead of SBB
2021-12-16 00:11:47 -08:00
Jozufozu
cc707cf66a Batching Engine
- Implement alternate backend using SBBs
2021-12-15 17:12:48 -08:00
Jozufozu
249ec5e5e5 Bump version 0.4.2-rc
- rc so Create 0.4a can still be compatible
 - also still not sure if the accessor bug is fixed
2021-12-15 16:52:58 -08:00
Jozufozu
15ea38ede7 Possible fix(es) for accessor crash
- Haven't been able to reproduce
 - Try forcing PausedPartialTickAccessor to load early
 - Try renaming the method
2021-12-15 16:19:52 -08:00
Jozufozu
cd4d5d1b72 Update forge - 39.0.5 2021-12-15 15:08:06 -08:00
Jozufozu
17fb8d34ed Fix #extension crash on intel 2021-12-15 13:27:06 -08:00
PepperBell
cb5047f677 Sweeping up
- Remove deprecated methods and fields
- Bump pack format
- Fix CI badge link
- Update VanillaInstances javadoc
- Organize imports
2021-12-14 22:00:44 -08:00
Jozufozu
64a7443dde No need for InstancedMaterialRenderer
- Here's to premature abstraction
2021-12-13 21:27:15 -08:00
Jozufozu
d9fd668bbb AMD driver workaround
- Just don't pool models
2021-12-13 19:55:50 -08:00
Jozufozu
d094595f2e Add GPU field to bug report template 2021-12-13 11:38:32 -08:00
Jozufozu
7cf2741e68 Ready for release 2021-12-12 22:53:22 -08:00
Jozufozu
56150b2645 Fix vanishing minecarts 2021-12-12 22:30:46 -08:00
PepperBell
6fede0851e Merge remote-tracking branch 'origin/1.18/dev' into 1.18/fabric/dev
Conflicts:
	README.md
	build.gradle
	gradle.properties
	src/main/java/com/jozufozu/flywheel/backend/RenderWork.java
	src/main/java/com/jozufozu/flywheel/backend/material/MaterialManagerImpl.java
	src/main/java/com/jozufozu/flywheel/config/BooleanConfigCommand.java
	src/main/java/com/jozufozu/flywheel/config/FlwCommands.java
	src/main/java/com/jozufozu/flywheel/config/FlwPackets.java
	src/main/java/com/jozufozu/flywheel/config/SConfigureBooleanPacket.java
	src/main/java/com/jozufozu/flywheel/core/PartialModel.java
	src/main/java/com/jozufozu/flywheel/core/StitchedSprite.java
	src/main/java/com/jozufozu/flywheel/core/model/ModelUtil.java
	src/main/java/com/jozufozu/flywheel/event/ForgeEvents.java
	src/main/java/com/jozufozu/flywheel/event/RenderLayerEvent.java
	src/main/java/com/jozufozu/flywheel/mixin/LeakChunkStorageArrayMixin.java
	src/main/java/com/jozufozu/flywheel/mixin/RenderHooksMixin.java
	src/main/java/com/jozufozu/flywheel/util/ChunkIter.java
	src/main/resources/META-INF/mods.toml
	src/main/resources/flywheel.mixins.json
2021-12-12 17:29:09 -08:00
Jozufozu
a3ee39099a Use GL_ARB_conservative_depth when possible
- Allows the depth test to discard fragments before the fragment shader is run
2021-12-11 22:03:52 -08:00
Jozufozu
46745ae91d Bump version - 0.4.1 2021-12-11 17:32:39 -08:00
Jozufozu
11e5719e0d Cylindrical fog
- having the world position is very nice
 - mojang manages to do multiple matrix multiplications
2021-12-11 17:31:09 -08:00
Jozufozu
3cfbc97dd1 Add issue template
- Read: copy issue template from Create
 - Thanks, caelwarner!
2021-12-11 15:43:11 -08:00
Jozufozu
ebfeff0b54 Fix misaligned contraption light
- That was a pain to debug
 - Idk how that ever worked
2021-12-11 15:06:07 -08:00
Jozufozu
79e61b44e5 1.18.1 2021-12-11 14:18:43 -08:00
Jozufozu
2207da5eed Implemented 2021-12-10 14:50:01 -08:00
Jozufozu
21a23d650f Mapped buffer sanity
- MappedBuffer no longer abstract
 - Mappable interface used within MappedBuffer
 - MappedBuffer is mapped before ctor
 - No more subclasses, no more thin wrapping overrides
 - Use try with resources for buffer mapping
 - Better error handling with mapped buffers
 - Unimplemented exception as a procrastination method
2021-12-10 14:45:18 -08:00
Jozufozu
fd8d436640 Worlds are bigger now pt 2
- Stop clamping Y in [0, 256)
2021-12-10 12:31:57 -08:00
Jozufozu
931fffb5f1 Worlds are bigger now
- Stop clamping Y in [0, 256)
2021-12-10 00:28:32 -08:00
Jozufozu
99e15cbcd9 Debugging changes
- MapBufferRange compat layer not needed, missed that
 - Don't need MappedFullBuffer anymore
 - Add guard for size in GPULightVolume#bind
 - LightVolume#getStride not needed
 - Replace usaged of GlError#poll with #pollAndThrow
 - VecBufferConsumer doesn't need a format
2021-12-10 00:07:52 -08:00
Jozufozu
0d388b0094 Update changelog 2021-12-09 18:51:09 -08:00
Jozufozu
b892f602cb Whoops remove imports 2021-12-09 16:40:01 -08:00
Jozufozu
5374baf241 No more material spec, everything is StructType 2021-12-09 16:34:32 -08:00
Jozufozu
eee9b3fb51 Move api package 2021-12-09 15:27:56 -08:00
Jozufozu
da55941e4f Add RecordingVertexConsumer
- Very basic and untested
2021-12-09 15:19:48 -08:00
Jozufozu
7b3bab6647 Reorganize, rename, refactor, 0.4.0
- Move most user facing interfaces to flywheel.api package
 - Refactor InstanceData to have no package private classes
 - Remove 'I' prefix from many interfaces
 - ILightUpdateListener -> LightListener
 - IMultiProgram -> ContextAwareProgram
 - IFlatLight -> FlatLit
 - All materials use the same vertex format: UNLIT_MODEL
2021-12-09 00:42:27 -08:00
Jozufozu
47b110c48c Fix shulker box rendering 2021-12-08 12:48:18 -08:00
Jozufozu
9fe0bae2ad #tick and #beginFrame on creation
- Fixes weird delay in object appearance when reloading chunks
2021-12-08 12:28:22 -08:00
Jozufozu
aaaccc47ee Add instances when chunks are built for rendering
- RIP ChunkIter, may you rule over the depths of hell in peace
 - Fix memory leak when instance worlds get reset
 - Server worlds are not flywheel worlds
 - Nothing to do on world load anymore
2021-12-08 12:16:01 -08:00
Jozufozu
b4fe00a314 Fix potential nullpointer rendering breaking overlay
- Should backport for #52
2021-12-07 23:53:13 -08:00
Jozufozu
ef5de609a2 Groups store their types again
- Fix crash rendering breaking overlay
2021-12-07 23:40:45 -08:00
Jozufozu
a70adc8bba Update README.md 2021-12-07 23:03:35 -08:00
Jozufozu
36f32ececc VAO state clearing handled in InstancingEngine#render 2021-12-07 23:00:32 -08:00
Jozufozu
97949ab1da Cull legacy compat boilerplate
- Minecraft is on GL32 now!
2021-12-07 22:47:05 -08:00
Jozufozu
a90e6a1f56 Quick fix for create's contraptions 2021-12-07 22:45:10 -08:00
Jozufozu
fd0343c48b Merge branch '1.17/dev' into 1.18/dev 2021-12-07 21:29:38 -08:00
Jozufozu
f7c45e5486 Get started on a batching engine
- An Engine is a MaterialManager and a RenderDispatcher
 - Refactor InstanceManager's ctor to use the MaterialManager interface instead of the concrete type
 - MaterialManagerImpl -> InstancingEngine
 - Add skeleton for BatchingEngine
 - Hack in InstanceWorld to switch between the 2
 - Rename/move existing MaterialManager impl to new package
2021-12-06 23:36:14 -08:00
Jozufozu
ca459dd2ca Update to 1.18 2021-12-06 21:29:21 -08:00
Jozufozu
7813eedf61 Miscellaneous gl changes while debugging
- Only unbind at the end of MaterialManagerImpl#render
 - Add GlBufferType#bind and #unbind
 - Make GlVertexArray#unbind static
2021-12-06 21:11:51 -08:00
PepperBell
621ce2b43c Merge remote-tracking branch 'origin/1.17/dev' into 1.17/fabric/dev
Conflicts:
	src/main/java/com/jozufozu/flywheel/Flywheel.java
	src/main/java/com/jozufozu/flywheel/core/model/BlockModel.java
	src/main/resources/flywheel.mixins.json
2021-12-06 17:22:55 -08:00
Jozufozu
e08633af3c Do a 180
- Fix inconsistency in minecart model
2021-12-06 17:19:21 -08:00
Jozufozu
b9352bc3a4 Vanillaization
- IModels now accept a VertexConsumer
 - IRenderState -> RenderType
 - AbstractInstancer for dealing with InstanceData tidyness
 - Alter crumbling renderer to match new system
 - Add hack to keep track of bound atlas textures
2021-12-06 15:23:26 -08:00
PepperBell
e7ef9291c7 Merge remote-tracking branch 'origin/1.17/dev' into 1.17/fabric/dev
Conflicts:
	build.gradle
	gradle.properties
2021-12-05 18:42:30 -08:00
Jozufozu
c54514cf47 No more InstanceData#write 2021-12-02 20:13:55 -08:00