From a82d76ca464481bbcaad012202aab32efd525018 Mon Sep 17 00:00:00 2001 From: Tropical <42101043+tropicaaal@users.noreply.github.com> Date: Wed, 25 Mar 2026 12:43:41 -0500 Subject: [PATCH] refactor: `Tesselator` thread-local storage --- Minecraft.Client/Rendering/Tesselator.cpp | 7 +++---- Minecraft.Client/Rendering/Tesselator.h | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/Minecraft.Client/Rendering/Tesselator.cpp b/Minecraft.Client/Rendering/Tesselator.cpp index 35e472a45..25d9014b2 100644 --- a/Minecraft.Client/Rendering/Tesselator.cpp +++ b/Minecraft.Client/Rendering/Tesselator.cpp @@ -24,15 +24,14 @@ int normal; */ -unsigned int Tesselator::tlsIdx = TlsAlloc(); +thread_local Tesselator* Tesselator::m_thread_instance = nullptr; Tesselator* Tesselator::getInstance() { - return (Tesselator*)TlsGetValue(tlsIdx); + return m_thread_instance; } void Tesselator::CreateNewThreadStorage(int bytes) { - Tesselator* instance = new Tesselator(bytes / 4); - TlsSetValue(tlsIdx, instance); + Tesselator::m_thread_instance = new Tesselator(bytes / 4); } // she tessalate my vertices till i render diff --git a/Minecraft.Client/Rendering/Tesselator.h b/Minecraft.Client/Rendering/Tesselator.h index 02d43a12c..bd9edecc2 100644 --- a/Minecraft.Client/Rendering/Tesselator.h +++ b/Minecraft.Client/Rendering/Tesselator.h @@ -41,7 +41,7 @@ public: static void CreateNewThreadStorage(int bytes); private: - static unsigned int tlsIdx; + static thread_local Tesselator* m_thread_instance; public: static Tesselator* getInstance();