VulkanShader_1.21.10-0.0.4-alpha.jar

Download file
    package net.vulkanmod.mixin.render;

import com.mojang.blaze3d.shaders.ShaderType;
import com.mojang.blaze3d.systems.GpuDevice;
import com.mojang.blaze3d.systems.RenderSystem;
import java.util.function.BiFunction;
import net.minecraft.class_11282;
import net.minecraft.class_2960;
import net.vulkanmod.render.engine.VkGpuDevice;
import net.vulkanmod.vulkan.Renderer;
import net.vulkanmod.vulkan.VRenderSystem;
import org.jetbrains.annotations.Nullable;
import org.joml.Matrix4f;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Overwrite;
import org.spongepowered.asm.mixin.Shadow;

@Mixin({RenderSystem.class})
public abstract class RenderSystemMixin {
   @Shadow
   private static Matrix4f textureMatrix;
   @Shadow
   private static @Nullable Thread renderThread;
   @Shadow
   private static @Nullable GpuDevice DEVICE;
   @Shadow
   private static @Nullable class_11282 dynamicUniforms;
   @Shadow
   private static String apiDescription;

   @Shadow
   public static void assertOnRenderThread() {
   }

   @Overwrite(
      remap = false
   )
   public static void initRenderer(long l, int i, boolean bl, BiFunction<class_2960, ShaderType, String> shaderSource, boolean bl2) {
      renderThread.setPriority(7);
      VRenderSystem.initRenderer();
      DEVICE = new VkGpuDevice(l, i, bl, shaderSource, bl2);
      apiDescription = RenderSystem.getDevice().getImplementationInformation();
      Renderer.initRenderer();
      dynamicUniforms = new class_11282();
   }

   @Overwrite(
      remap = false
   )
   public static void setTextureMatrix(Matrix4f matrix4f) {
      assertOnRenderThread();
      textureMatrix.set(matrix4f);
      VRenderSystem.setTextureMatrix(matrix4f);
   }

   @Overwrite(
      remap = false
   )
   public static void resetTextureMatrix() {
      assertOnRenderThread();
      textureMatrix.identity();
      VRenderSystem.setTextureMatrix(textureMatrix);
   }
}
    
Download file