Learn OpenGL, extensive tutorial resource for learning Modern OpenGL
LearnOpenGL — это подробный онлайн-курс по современной (core-profile) версии OpenGL, ориентированный на пошаговое обучение с понятными примерами. Курс охватывает всё: от основ рендеринга и работы с вершинными буферами до продвинутых техник вроде освещения, пост-обработки и загрузки 3D-моделей. Он подходит как новичкам, так и опытным разработчикам, избегая устаревших подходов вроде immediate mode и фокусируясь на реальных практиках, применимых в играх и графических приложениях. Особенность — встроенный проект по созданию мини-игры, который помогает закрепить знания на практике.
Контент полностью бесплатен онлайн, но доступен и в печатном виде — как физическая книга (около $60) и как бесплатный PDF-файл с оптимизированной для офлайн-чтения версткой. Обе версии идентичны по содержанию, но PDF и печатное издание лишены интерактивных элементов вроде всплывающих подсказок, чтобы сохранить читаемость без интернета. Автор регулярно обновлял материал семь лет, превратив его в один из самых надёжных ресурсов по современному OpenGL. Поддержка печатного издания помогает продолжать развитие проекта.
Комментарии (109)
OpenGL остаётся актуальной и полезной технологией, особенно для начинающих и многих практических задач, несмотря на появление Vulkan. Его активно поддерживают и используют. Рекомендуется начинать с OpenGL, затем переходить к Vulkan или CUDA. LearnOpenGL — хороший ресурс, но полезно также изучать Real Time Rendering и Physically Based Rendering.
FEX-emu – Run x86 applications on ARM64 Linux devices 🔥 Горячее
FEX-Emu — быстрый эмулятор пользовательского режима x86 и x86-64 для Linux, позволяющий запускать x86-приложения на ARM64-устройствах. Он обеспечивает широкую совместимость с 32- и 64-битными бинарными файлами и может использоваться совместно с Wine/Proton для запуска Windows-игр. Эмулятор поддерживает перенаправление вызовов API в библиотеки хост-системы (OpenGL/Vulkan) для снижения накладных расходов, а также экспериментальный кэш кода для минимизации зависаний в играх.
В основе FEX лежит продвинутый бинарный рекompiler, поддерживающий все современные расширения набора инструкций x86(-64), включая AVX/AVX2. Используемая в нем собственная промежуточная репрезентация (IR) позволяет генерировать более оптимизированный код, чем традиционный splatter JIT. Модульная архитектура включает в себя комплексный слой трансляции системных вызовов, реализующий даже нишевые возможности вроде seccomp, и позволяет использовать FEX как бэкенд WoW64/ARM64EC в Wine.
Комментарии (117)
- FEX позволяет запускать x86-64 игры на ARM64-устройствах, используя Wine/Proton, но сталкивается с проблемами совместимости из-за различий в модели памяти и DRM.
- Valve спонсирует FEX, что может быть частью стратегии по переходу игровой экосистемы на ARM.
- Проблемы с DRM и анти-чит системами, а также с производительностью графических API, таких как DirectX, которые не могут быть напрямую перенаправлены на хост-систему.
- Несмотря на это, FEX демонстрирует высокую производительность и совместимость с большинством игр, включая Cyberpunk 2077.
- Возможность запуска Windows игр на ARM64-устройствах с помощью FEX и Wine/Proton может быть ограничена из-за отсутствия поддержки ARM ноутбуков и отсутствия графических драйверов.
OpenGL: Mesh shaders in the current year
Khronos одобрила расширение GL_EXT_mesh_shader для OpenGL, и это первый шаг к полному Mesh Shaders в линейке Mesa. Реализация уже влили в mesa, а вот драйвер RadeonSI ждёт своей очереди. Релиз ожидается в ближайшие дни.
Это первая крупная фича для OpenGL за долгое время, и она привнесёт геометрические шейдеры в core Mesa. Работа велась под эгидой AMD, при поддержке Qiang Yu и Shihao Wang.
Комментарии (118)
- Обсуждение в основном вращается вокруг будущего OpenGL и его расширений, включая GL_EXT_mesh_shader и GL_EXT_descriptor_buffer, а также их влияние на Minecraft и другие проекты.
- Участники обсуждают, что новые расширения делают возможным использование шейдеров накладки и дескрипторов буферов, что может быть полезно для таких проектов, как Minecraft.
- Также обсуждается, что OpenGL всё ещё используется в Minecraft и других проектах, и что новые расширения могут помочь в разработке игр.
- Некоторые участники выражают обеспокоенность по поводу того, что OpenGL может быть вытеснен Vulkan и другими API, и что поддержка OpenGL может быть прекращена в будущем.
- В обсуждении также затрагиваются такие темы, как эволюция графических API и их влияние на разработку игр и будущее OpenGL.
Dissecting the Apple M1 GPU, the end 🔥 Горячее 💬 Длинная дискуссия
В декабре 2020-го Хектор Мартин запустил Asahi Linux, а я, работая над Panfrost, лишь хотел подсказать. В итоге купил Mac mini и начал реверсить GPU. Через пару недель нарисовал треугольник, потом — компилятор шейдеров, а после сессии за несколько дней поднял OpenGL-драйвер.
Год улучшал драйвер, пока игры не пошли под macOS. Параллельно Asahi Lina писала kernel-драйвер; в декабре 2022-го у нас впервые заработала графика в Linux.
В 2023-м, заканчивая универ, я решил:
- довести M1-драйвер до ума;
- сделать полноценный OpenGL 4.6 и Vulkan;
- запустить Proton-игры.
Через месяц после выпуска — OpenGL 3.1, затем ES 3.1. Добавил эмуляцию geometry/tessellation, в январе 2024-го сдал OpenGL 4.6. Vulkan 1.3 прошёл за пару недель, 1.4 вышел в день публикации спецификации. Karol Herbst добавил OpenCL 3.0. Подключил sparse-текстуры — заработал Direct3D 12 через Proton.
Цели выполнены: драйверы в Mesa, игры идут, миф о несовместимости Vulkan с Apple развеян.
Комментарии (158)
- Alyssa за 5 лет с нуля довела Vulkan-драйвер для Apple Silicon до upstream, чем вдохновила всё open-source-сообщество.
- Учёба, работа в Collabora и «хобби»-проект — комментаторы поражаются, как она всё успевала.
- С августа она в Intel и, судя по резюме, занимается open-source-графикой Xe-HPG.
- Многие жалеют, что она уходит из Asahi, но считают переход новым вызовом, а не «уходом».
- Появились вопросы о будущем Asahi на M3/M4 и о том, почему Apple не мешает проекту, в отличие от других.