gitextract_d9366gy4/ ├── .gitattributes ├── .github/ │ └── workflows/ │ └── build.yml ├── .gitignore ├── LICENSE ├── README.md ├── build.gradle ├── changelogs/ │ ├── changelog-1.0.0.md │ ├── changelog-1.0.1.md │ ├── changelog-1.0.2.md │ ├── changelog-1.0.3.md │ ├── changelog-1.0.4.md │ ├── changelog-1.0.5.1.md │ ├── changelog-1.0.5.md │ ├── changelog-1.0.6.md │ ├── changelog-1.0.7.md │ └── changelog-1.0.8.md ├── gradle/ │ └── wrapper/ │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradle.properties ├── gradlew ├── gradlew.bat ├── images/ │ ├── LOGO.psd │ └── benchmark.psd ├── settings.gradle └── src/ └── main/ ├── java/ │ └── com/ │ └── github/ │ └── argon4w/ │ └── acceleratedrendering/ │ ├── AcceleratedRenderingModEntry.java │ ├── compat/ │ │ ├── AbstractCompatMixinPlugin.java │ │ ├── curios/ │ │ │ ├── CuriosCompatFeature.java │ │ │ └── mixins/ │ │ │ └── CuriosLayerMixin.java │ │ ├── immediatelyfast/ │ │ │ └── mixins/ │ │ │ ├── BatchableBufferSourceMixin.java │ │ │ ├── BatchingBuffersMixin.java │ │ │ └── WrappedRenderLayerMixin.java │ │ └── iris/ │ │ ├── IrisCompatBuffers.java │ │ ├── IrisCompatBuffersProvider.java │ │ ├── IrisCompatFeature.java │ │ ├── environments/ │ │ │ └── IrisBufferEnvironment.java │ │ ├── interfaces/ │ │ │ ├── IIrisAcceleratedBufferBuilder.java │ │ │ ├── IIrisMeshInfo.java │ │ │ └── IIrisMeshInfoCache.java │ │ ├── mixins/ │ │ │ ├── acceleratedrendering/ │ │ │ │ ├── AcceleratedBufferBuilderMixin.java │ │ │ │ ├── AcceleratedBufferSourceMixin.java │ │ │ │ ├── AcceleratedRenderingModEntryMixin.java │ │ │ │ ├── CoreBuffersProviderMixin.java │ │ │ │ ├── FlattenMeshInfoCacheMixin.java │ │ │ │ ├── IBufferEnvironmentPresetsMixin.java │ │ │ │ ├── MeshUploaderMixin.java │ │ │ │ ├── MeshUploadingProgramDispatcherMixin.java │ │ │ │ ├── RenderTypeUtilsMixin.java │ │ │ │ ├── SimpleMeshInfoCacheMixin.java │ │ │ │ ├── SimpleMeshInfoMixin.java │ │ │ │ └── UnsafeMemoryMeshInfoCacheMixin.java │ │ │ ├── iris/ │ │ │ │ ├── FullyBufferedMultiBufferSourceMixin.java │ │ │ │ ├── HandRendererMixin.java │ │ │ │ ├── IrisVertexFormatsMixin.java │ │ │ │ ├── ModelToEntityVertexSerializerMixin.java │ │ │ │ └── ShadowRendererMixin.java │ │ │ ├── plugin/ │ │ │ │ └── IrisCompatMixinPlugin.java │ │ │ └── vanilla/ │ │ │ └── LevelRendererMixin.java │ │ └── programs/ │ │ ├── IrisPrograms.java │ │ ├── culling/ │ │ │ ├── IrisCullingProgramDispatcher.java │ │ │ └── IrisCullingProgramSelector.java │ │ └── processing/ │ │ └── IrisPolygonProcessor.java │ ├── configs/ │ │ ├── FeatureConfig.java │ │ ├── FeatureStatus.java │ │ └── PipelineSetting.java │ ├── core/ │ │ ├── CoreBuffers.java │ │ ├── CoreBuffersProvider.java │ │ ├── CoreFeature.java │ │ ├── CoreStates.java │ │ ├── backends/ │ │ │ ├── DebugOutput.java │ │ │ ├── GLConstants.java │ │ │ ├── Sync.java │ │ │ ├── VertexArray.java │ │ │ ├── buffers/ │ │ │ │ ├── EmptyServerBuffer.java │ │ │ │ ├── IClientBuffer.java │ │ │ │ ├── IServerBuffer.java │ │ │ │ ├── ImmutableBuffer.java │ │ │ │ ├── MappedBuffer.java │ │ │ │ └── MutableBuffer.java │ │ │ ├── programs/ │ │ │ │ ├── BarrierFlags.java │ │ │ │ ├── ComputeProgram.java │ │ │ │ ├── ComputeShader.java │ │ │ │ └── Uniform.java │ │ │ └── states/ │ │ │ ├── EmptyBindingState.java │ │ │ ├── FramebufferBindingState.java │ │ │ ├── IBindingState.java │ │ │ ├── buffers/ │ │ │ │ ├── BlockBufferBindingStateType.java │ │ │ │ ├── BufferBlockType.java │ │ │ │ ├── SimpleBlockBufferBindingState.java │ │ │ │ └── cache/ │ │ │ │ ├── BlockBufferBindingCacheType.java │ │ │ │ ├── FlattenBlockBufferBindingCache.java │ │ │ │ ├── IBlockBufferBindingCache.java │ │ │ │ ├── SimpleBlockBufferBinding.java │ │ │ │ ├── SimpleBlockBufferBindingCache.java │ │ │ │ └── UnsafeMemoryBlockBufferBindingCache.java │ │ │ ├── scissors/ │ │ │ │ ├── MojangScissorBindingState.java │ │ │ │ ├── OpenGLScissorBindingState.java │ │ │ │ └── ScissorBindingStateType.java │ │ │ └── viewports/ │ │ │ ├── MojangViewportBindingState.java │ │ │ ├── OpenGLViewportBindingState.java │ │ │ └── ViewportBindingStateType.java │ │ ├── buffers/ │ │ │ ├── AcceleratedBufferSources.java │ │ │ ├── EmptyAcceleratedBufferSources.java │ │ │ ├── accelerated/ │ │ │ │ ├── AcceleratedBufferSource.java │ │ │ │ ├── AcceleratedRingBuffers.java │ │ │ │ ├── IAcceleratedBufferSource.java │ │ │ │ ├── IAccelerationHolder.java │ │ │ │ ├── builders/ │ │ │ │ │ ├── AcceleratedBufferBuilder.java │ │ │ │ │ ├── AcceleratedEntityOutlineGenerator.java │ │ │ │ │ ├── AcceleratedSheetedDecalTextureGenerator.java │ │ │ │ │ ├── AcceleratedSpriteCoordinateExpander.java │ │ │ │ │ ├── AcceleratedVertexConsumerWrapper.java │ │ │ │ │ ├── BufferSourceExtension.java │ │ │ │ │ ├── IAcceleratableBufferSource.java │ │ │ │ │ ├── IAcceleratedVertexConsumer.java │ │ │ │ │ ├── IBufferGraph.java │ │ │ │ │ └── VertexConsumerExtension.java │ │ │ │ ├── layers/ │ │ │ │ │ ├── LayerDrawType.java │ │ │ │ │ ├── LayerKey.java │ │ │ │ │ ├── functions/ │ │ │ │ │ │ ├── CustomLayerFunction.java │ │ │ │ │ │ ├── EmptyLayerFunction.java │ │ │ │ │ │ └── ILayerFunction.java │ │ │ │ │ └── storage/ │ │ │ │ │ ├── ILayerContexts.java │ │ │ │ │ ├── ILayerStorage.java │ │ │ │ │ ├── LayerStorageType.java │ │ │ │ │ ├── SeparatedLayerStorage.java │ │ │ │ │ ├── SimpleLayerContexts.java │ │ │ │ │ ├── empty/ │ │ │ │ │ │ ├── EmptyLayerContexts.java │ │ │ │ │ │ └── EmptyLayerStorage.java │ │ │ │ │ └── sorted/ │ │ │ │ │ ├── SortedLayerContexts.java │ │ │ │ │ └── SortedLayerStorage.java │ │ │ │ ├── pools/ │ │ │ │ │ ├── DrawContextPool.java │ │ │ │ │ ├── ElementBufferPool.java │ │ │ │ │ ├── StagingBufferPool.java │ │ │ │ │ └── meshes/ │ │ │ │ │ ├── FlattenMeshInfoCache.java │ │ │ │ │ ├── IMeshInfoCache.java │ │ │ │ │ ├── MeshInfoCacheType.java │ │ │ │ │ ├── MeshUploaderPool.java │ │ │ │ │ ├── SimpleMeshInfo.java │ │ │ │ │ ├── SimpleMeshInfoCache.java │ │ │ │ │ └── UnsafeMemoryMeshInfoCache.java │ │ │ │ └── renderers/ │ │ │ │ ├── DecoratedRenderer.java │ │ │ │ ├── IAcceleratedRenderer.java │ │ │ │ ├── IBufferDecorator.java │ │ │ │ └── SheetedDecalTextureRenderer.java │ │ │ ├── environments/ │ │ │ │ ├── IBufferEnvironment.java │ │ │ │ └── VanillaBufferEnvironment.java │ │ │ └── memory/ │ │ │ ├── IMemoryInterface.java │ │ │ ├── IMemoryLayout.java │ │ │ ├── NullMemoryInterface.java │ │ │ ├── SimpleDynamicMemoryInterface.java │ │ │ ├── SimpleMemoryInterface.java │ │ │ └── VertexLayout.java │ │ ├── meshes/ │ │ │ ├── ClientMesh.java │ │ │ ├── EmptyMesh.java │ │ │ ├── IMesh.java │ │ │ ├── MeshType.java │ │ │ ├── ServerMesh.java │ │ │ ├── collectors/ │ │ │ │ ├── CulledMeshCollector.java │ │ │ │ ├── IMeshCollector.java │ │ │ │ └── SimpleMeshCollector.java │ │ │ └── data/ │ │ │ ├── MeshData.java │ │ │ └── cache/ │ │ │ ├── IMeshDataCache.java │ │ │ ├── IgnoreMeshDataCache.java │ │ │ ├── MeshDataCacheType.java │ │ │ ├── MeshDataCaches.java │ │ │ └── SimpleMeshDataCache.java │ │ ├── mixins/ │ │ │ ├── GameRendererMixin.java │ │ │ ├── LevelRendererMixin.java │ │ │ ├── buffers/ │ │ │ │ ├── BufferBuilderMixin.java │ │ │ │ ├── BufferSourceMixin.java │ │ │ │ ├── EntityOutlineGeneratorMixin.java │ │ │ │ ├── MinecraftMixin.java │ │ │ │ ├── OutlineBufferSourceMixin.java │ │ │ │ ├── SheetedDecalTextureGeneratorMixin.java │ │ │ │ ├── SpriteCoordinateExpanderMixin.java │ │ │ │ ├── VertexConsumerMixin.java │ │ │ │ ├── VertexDoubleConsumerMixin.java │ │ │ │ └── VertexMultipleConsumerMixin.java │ │ │ └── compatibility/ │ │ │ ├── MinecraftMixin.java │ │ │ ├── ParticleEngineMixin.java │ │ │ ├── RenderTypeMixin.java │ │ │ └── WindowMixin.java │ │ ├── programs/ │ │ │ ├── ComputeShaderDefinition.java │ │ │ ├── ComputeShaderProgramLoader.java │ │ │ ├── ComputeShaderPrograms.java │ │ │ ├── LoadComputeShaderEvent.java │ │ │ ├── culling/ │ │ │ │ ├── ICullingProgramDispatcher.java │ │ │ │ ├── ICullingProgramSelector.java │ │ │ │ ├── LoadCullingProgramSelectorEvent.java │ │ │ │ ├── PassThroughCullingProgramDispatcher.java │ │ │ │ └── PassThroughCullingProgramSelector.java │ │ │ ├── dispatchers/ │ │ │ │ ├── EmptyProgramDispatcher.java │ │ │ │ ├── FixedPolygonProgramDispatcher.java │ │ │ │ ├── IPolygonProgramDispatcher.java │ │ │ │ ├── MeshUploadingProgramDispatcher.java │ │ │ │ └── TransformProgramDispatcher.java │ │ │ ├── overrides/ │ │ │ │ ├── IShaderProgramOverride.java │ │ │ │ ├── IShaderProgramOverrides.java │ │ │ │ ├── ITransformShaderProgramOverride.java │ │ │ │ ├── IUploadingShaderProgramOverride.java │ │ │ │ ├── LoadShaderProgramOverridesEvent.java │ │ │ │ └── OverrideProgramType.java │ │ │ └── processing/ │ │ │ ├── EmptyPolygonProcessor.java │ │ │ ├── IPolygonProcessor.java │ │ │ └── LoadPolygonProcessorEvent.java │ │ └── utils/ │ │ ├── CullerUtils.java │ │ ├── DirectionUtils.java │ │ ├── EmptyIterator.java │ │ ├── FastColorUtils.java │ │ ├── FuzzyMatrix4f.java │ │ ├── IntArrayHashStrategy.java │ │ ├── LoopResetPool.java │ │ ├── MemUtils.java │ │ ├── MutableSize.java │ │ ├── PackedVector2i.java │ │ ├── PoseStackExtension.java │ │ ├── RegistryFilter.java │ │ ├── RenderTypeUtils.java │ │ ├── ResourceLocationUtils.java │ │ ├── SimpleCachedArray.java │ │ ├── SimpleResetPool.java │ │ ├── SimpleTextureTarget.java │ │ ├── TextureUtils.java │ │ └── Vertex.java │ └── features/ │ ├── culling/ │ │ ├── OrientationCullingFeature.java │ │ ├── OrientationCullingProgramDispatcher.java │ │ ├── OrientationCullingProgramSelector.java │ │ └── OrientationCullingPrograms.java │ ├── emf/ │ │ ├── IEMFModelVariant.java │ │ └── mixins/ │ │ ├── EMFModelPartMixin.java │ │ └── EMFModelPartWithStateMixin.java │ ├── entities/ │ │ ├── AcceleratedEntityRenderingFeature.java │ │ ├── AcceleratedEntityShadowRenderer.java │ │ └── mixins/ │ │ ├── EntityRenderDispatcherMixin.java │ │ └── InventoryScreenMixin.java │ ├── filter/ │ │ ├── FilterFeature.java │ │ ├── FilterType.java │ │ └── mixins/ │ │ ├── AbstractContainerScreenMixin.java │ │ ├── BlockEntityRenderDispatcherMixin.java │ │ ├── ClientHooksMixin.java │ │ ├── ItemRendererMixin.java │ │ └── LevelRendererMixin.java │ ├── ftb/ │ │ └── mixins/ │ │ └── BaseScreenMixin.java │ ├── geckolib/ │ │ └── mixins/ │ │ ├── GeoBoneMixin.java │ │ └── GeoRendererMixin.java │ ├── items/ │ │ ├── AcceleratedItemRenderingFeature.java │ │ ├── AcceleratedQuadsRenderer.java │ │ ├── BakedModelExtension.java │ │ ├── IAcceleratedBakedModel.java │ │ ├── IAcceleratedBakedQuad.java │ │ ├── colors/ │ │ │ ├── BlockLayerColors.java │ │ │ ├── EmptyBlockColor.java │ │ │ ├── EmptyItemColor.java │ │ │ ├── FixedColors.java │ │ │ ├── ILayerColors.java │ │ │ └── ItemLayerColors.java │ │ ├── contexts/ │ │ │ ├── AcceleratedModelRenderContext.java │ │ │ ├── AcceleratedQuadsRenderContext.java │ │ │ └── DecorationRenderContext.java │ │ ├── gui/ │ │ │ ├── GuiBatchingController.java │ │ │ ├── GuiRenderTypes.java │ │ │ ├── contexts/ │ │ │ │ ├── BlitDrawContext.java │ │ │ │ ├── DecoratorDrawContext.java │ │ │ │ ├── FillDrawContext.java │ │ │ │ ├── GradientDrawContext.java │ │ │ │ ├── HighlightDrawContext.java │ │ │ │ ├── IGuiElementContext.java │ │ │ │ ├── ItemRenderContext.java │ │ │ │ └── string/ │ │ │ │ ├── ComponentStringDrawContext.java │ │ │ │ ├── FormattedStringDrawContext.java │ │ │ │ ├── IStringDrawContext.java │ │ │ │ ├── Outline8StringDrawContext.java │ │ │ │ └── RawStringDrawContext.java │ │ │ └── renderer/ │ │ │ ├── AcceleratedBlitRenderer.java │ │ │ ├── AcceleratedFillRenderer.java │ │ │ └── AcceleratedGradientRenderer.java │ │ └── mixins/ │ │ ├── ItemRendererMixin.java │ │ ├── ModelBlockRendererMixin.java │ │ ├── accessors/ │ │ │ ├── BlockColorsAccessor.java │ │ │ └── ItemColorsAccessor.java │ │ ├── compatibility/ │ │ │ ├── ClientHooksMixin.java │ │ │ └── GuiLayerManagerMixin.java │ │ ├── gui/ │ │ │ ├── AbstractContainerScreenMixin.java │ │ │ ├── FontMixin.java │ │ │ ├── GuiGraphicsMixin.java │ │ │ └── GuiMixin.java │ │ └── models/ │ │ ├── BakedCompositeModelMixin.java │ │ ├── BakedModelMixin.java │ │ ├── BakedQuadMixin.java │ │ ├── BakedSeparateTransformsModelMixin.java │ │ ├── MultipartBakedModelMixin.java │ │ ├── SimpleBakedModelMixin.java │ │ └── WeightedBakedModelMixin.java │ ├── modelparts/ │ │ └── mixins/ │ │ └── ModelPartMixin.java │ ├── simplebedrockmodel/ │ │ └── mixins/ │ │ └── BedrockPartMixin.java │ ├── text/ │ │ ├── AcceleratedBakedGlyphRenderer.java │ │ ├── AcceleratedTextRenderingFeature.java │ │ └── mixins/ │ │ ├── BakedGlyphEffectMixin.java │ │ └── BakedGlyphMixin.java │ └── touhoulittlemaid/ │ └── mixins/ │ ├── GeoBoneMixin.java │ └── IGeoRendererMixin.java └── resources/ ├── META-INF/ │ ├── accesstransformer.cfg │ └── neoforge.mods.toml ├── acceleratedrendering.compat.curios.mixins.json ├── acceleratedrendering.compat.immediatelyfast.mixins.json ├── acceleratedrendering.compat.iris.mixins.json ├── acceleratedrendering.core.mixins.json ├── acceleratedrendering.feature.entities.mixins.json ├── acceleratedrendering.feature.entitymodelfeature.mixins.json ├── acceleratedrendering.feature.filter.mixins.json ├── acceleratedrendering.feature.ftb.mixins.json ├── acceleratedrendering.feature.geckolib.mixins.json ├── acceleratedrendering.feature.items.mixins.json ├── acceleratedrendering.feature.modelparts.mixins.json ├── acceleratedrendering.feature.simplebedrockmodel.mixins.json ├── acceleratedrendering.feature.text.mixins.json ├── acceleratedrendering.feature.touhoulittlemaid.mixins.json └── assets/ └── acceleratedrendering/ ├── lang/ │ ├── en_us.json │ └── zh_cn.json └── shaders/ ├── compat/ │ ├── culling/ │ │ ├── iris_block_quad_culling_shader.compute │ │ ├── iris_block_triangle_culling_shader.compute │ │ ├── iris_entity_quad_culling_shader.compute │ │ └── iris_entity_triangle_culling_shader.compute │ ├── processing/ │ │ ├── iris_block_quad_processing_shader.compute │ │ ├── iris_block_triangle_processing_shader.compute │ │ ├── iris_entity_quad_processing_shader.compute │ │ ├── iris_entity_triangle_processing_shader.compute │ │ ├── iris_glyph_quad_processing_shader.compute │ │ └── iris_glyph_triangle_processing_shader.compute │ ├── transform/ │ │ ├── iris_block_vertex_transform_shader.compute │ │ ├── iris_entity_vertex_transform_shader.compute │ │ └── iris_glyph_vertex_transform_shader.compute │ └── uploading/ │ ├── iris_block_mesh_uploading_shader.compute │ ├── iris_entity_mesh_uploading_shader.compute │ └── iris_glyph_mesh_uploading_shader.compute └── core/ ├── culling/ │ ├── block_quad_culling_shader.compute │ ├── block_triangle_culling_shader.compute │ ├── entity_quad_culling_shader.compute │ ├── entity_triangle_culling_shader.compute │ ├── pass_through_quad_culling_shader.compute │ ├── pass_through_triangle_culling_shader.compute │ ├── pos_tex_color_quad_culling_shader.compute │ ├── pos_tex_color_triangle_culling_shader.compute │ ├── pos_tex_quad_culling_shader.compute │ └── pos_tex_triangle_culling_shader.compute ├── transform/ │ ├── block_vertex_transform_shader.compute │ ├── entity_vertex_transform_shader.compute │ ├── pos_color_tex_light_vertex_transform_shader.compute │ ├── pos_color_vertex_transform_shader.compute │ ├── pos_tex_color_vertex_transform_shader.compute │ ├── pos_tex_vertex_transform_shader.compute │ └── pos_vertex_transform_shader.compute └── uploading/ ├── block_mesh_uploading_shader.compute ├── entity_mesh_uploading_shader.compute ├── pos_color_mesh_uploading_shader.compute ├── pos_color_tex_light_mesh_uploading_shader.compute ├── pos_mesh_uploading_shader.compute ├── pos_tex_color_mesh_uploading_shader.compute └── pos_tex_mesh_uploading_shader.compute