Skip to content

Ixeris Mod pour Minecraft 1.21.1, 1.16.5

Entrée brute mise en mémoire tampon et interrogation d'événements multithreadée

à partir de decce6 · Modrinth
téléchargements
30 téléchargements
vues
146 vues
Mis à jour
Mis à jour 19.10.2026

Ixeris

Présentation

Ixeris est un mod qui optimise l'interrogation des événements pour améliorer les performances du client.

Vous avez peut-être remarqué une baisse visible des FPS lorsque vous déplacez votre souris. Une partie de cette baisse est due au fait que le jeu a des tâches supplémentaires à effectuer lorsqu'on tourne la caméra, comme le calcul de la visibilité des chunks. Cependant, en raison de l'inefficacité du code natif qui interroge les événements et de la surcharge des appels JNI, une partie du temps CPU qui pourrait être utilisée pour le rendu est inutilement consacrée à l'interrogation des événements. C'est particulièrement visible sous Windows, surtout lorsque votre souris a une fréquence d'interrogation élevée.

Ixeris résout le problème principalement par deux mesures :

  • Interrogation des événements en thread séparé. Au lieu d'effectuer le rendu et l'interrogation des événements sur le même thread, Ixeris effectue l'interrogation des événements sur le thread principal et déporte le rendu vers un thread de rendu séparé.
  • Entrée brute mise en mémoire tampon (Windows uniquement). Remplace la méthode utilisée pour l'interrogation des entrées, la peu efficace GetRawInputData (un appel pour chaque événement d'entrée), par GetRawInputBuffer qui permet de lire les messages d'entrée brute par lots (un appel pour tous les événements). De plus, effectuer ce travail en code Java nous a permis d'éliminer la surcharge des appels JNI.

Benchmarks

Ces tests sont réalisés après que le monde est entièrement chargé et que la fréquence d'images s'est stabilisée.

Test 1 : en jeu

Ce test compare les performances lorsque la souris est capturée, c'est-à-dire lorsque le curseur est invisible. Ce test est effectué dans un monde superflat sans entités.

Ce test est réalisé sous Windows, où Ixeris utilise par défaut l'entrée brute mise en mémoire tampon pour améliorer les performances. La colonne « Ixeris, non bufferisé » indique les FPS avec cette option désactivée.

Fréquence d'interrogation - Sans Ixeris - Ixeris, non bufferisé - Ixeris, bufferisé

8000 Hz - 12 FPS - 83 FPS (6,9x) - 121 FPS (10,1x) 2000 Hz - 76 FPS - 114 FPS (1,50x) - 135 FPS (1,78x) 500 Hz - 134 FPS - 145 FPS (1,08x) - 151 FPS (1,13x)

Test 2 : dans les menus

Ce test compare les performances lorsque la souris n'est pas capturée, c'est-à-dire lorsque le curseur est visible, comme dans l'écran de pause F3+Échap. Dans ce cas, l'entrée brute n'est jamais utilisée car le jeu a besoin de connaître la position réelle du curseur, et non le mouvement relatif brut. La fréquence d'interrogation est de 1000 Hz.

La colonne « FPS au repos » indique les FPS lorsqu'on ne bouge pas la souris, et les deux colonnes suivantes indiquent les FPS lorsqu'on déplace rapidement la souris au-dessus de la fenêtre du jeu, sans Ixeris puis avec Ixeris, respectivement. Notez que ce test a été réalisé lors de la version initiale d'Ixeris, et que de nombreuses améliorations ont été apportées depuis.

FPS au repos - Sans Ixeris - Avec Ixeris

Windows - 233 FPS - 133 FPS - 165 FPS (1,24x) Linux (X11) - 358 FPS - 320 FPS - 355 FPS (1,11x) Linux (Wayland) - 364 FPS - 289 FPS - 298 FPS (1,03x)

Détails techniques

Sûreté des threads

Dans son état actuel, Ixeris ne devrait pas compromettre la sûreté des threads. Les callbacks enregistrés avec glfwSetCallback sont exécutés sur le thread de rendu. Les appels aux fonctions GLFW qui doivent être appelées sur le thread principal, s'ils sont effectués sur d'autres threads, sont redirigés vers le thread principal. Ces appels peuvent retourner immédiatement s'ils peuvent être retardés en toute sécurité, ou sinon bloquer l'appelant jusqu'à ce que l'appel soit terminé.

Depuis la version 3.1.0, les exigences de sûreté des threads de la documentation GLFW sont strictement respectées.

Mise en cache de l'état GLFW

La plupart des fonctions GLFW doivent être appelées depuis le thread principal. Cependant, de nombreux mods peuvent les appeler depuis le thread de rendu. Pour éviter la dégradation des performances introduite par les communications entre threads, Ixeris met en cache les états GLFW fréquemment utilisés pour un accès rapide depuis n'importe quel thread, sans avoir à rediriger l'appel vers le thread principal. Les caches sont sûrs et n'introduisent pas de latence supplémentaire.

Limiteur de FPS amélioré

Le limiteur de FPS vanilla (avant 26.1) est défectueux, car il utilise glfwWaitEventsTimeout pour attendre. Cette fonction ne peut cependant pas être appelée depuis le thread de rendu et ne fonctionne donc pas de manière optimale avec Ixeris.

Ixeris réécrit le limiteur de FPS de manière hybride, en dormant précisément et en commençant une attente active lorsque le temps d'attente est très faible.

Glossaire

  • Le thread principal est le thread sur lequel le jeu est démarré. La plupart des fonctions GLFW doivent être appelées sur ce thread, et il est responsable de l'interrogation des événements.
  • Le thread de rendu fait tout ce que le jeu fait normalement, sauf l'interrogation des événements.

Ces deux termes sont synonymes dans Minecraft vanilla.

Comment installer Ixeris

With Millida Launcher

  1. Install Millida Launcher

    The launcher is free: download it at millida.net/launcher and sign in with any nickname.

  2. Click “Install” on this page

    The launcher opens and installs the mod for Minecraft 1.16.5–26.3 on Fabric, Forge, NeoForge or Quilt automatically.

  3. Launch the game

    A profile with it appears in the launcher: click “Play”.

Manually

  1. Install Fabric, Forge, NeoForge or Quilt

    The loader must match the game version of the mod file, for example Minecraft 26.3. After installing it, a separate profile appears in your launcher.

  2. Download the file for your version

    In the version list above, pick the file Ixeris-4.6.10+26.3-neoforge.jar (677 KB) for your game version and loader.

  3. Put it in the mods folder

    The folder is inside .minecraft (Windows: %appdata%\.minecraft\mods). If it does not exist, create it.

  4. Launch the loader profile

    Open “Mods” in the main menu: Ixeris should be in the list.

Ixeris works on the player’s side only: there is no need to install it on a server.

Versions

Avec dépendances

MinecraftLoaderFichierDateActions
26.3NeoForge26.3677 Ko
26.3Fabric, Quilt26.3751 Ko 5
26.2NeoForge26.2680 Ko
26.2Fabric, Quilt26.2754 Ko 5
26.1.2NeoForge26.1.2679 Ko
26.1.2Fabric, Quilt26.1.2753 Ko
1.21.11Forge1.21.111.5 Mo 2
1.21.11NeoForge1.21.11680 Ko

Avis

Soyez le premier à noter Ixeris

Commentaires 0

Connectez-vous pour commenterSe connecter

Mods similaires

Tous les mods

En savoir plus

Auteur : decce6Licence : LGPL-3.0-onlyCode source

Êtes-vous l'auteur ? Contactez-nous — nous le retirerons sous 48 heures.