Google открыл код SwiftShader, программной реализации OpenGL ES и Direct3D 9

29 июня 2016 года

Компания Google объявила о полном открытии исходных текстов библиотеки SwiftShader, в рамках которой подготовлена система высокопроизводительного рендеринга, предоставляющая реализацию графических API OpenGL ES 1.1/2.0/3.0 и Direct3D 9, выполняемую на CPU. Код открыт под лицензией Apache 2.0.

Целью проекта является предоставление возможности отображения расширенной 3D-графики независимо от используемого оборудования и графических драйверов. SwiftShader уже задействован Chrome для организации работы WebGL на системах без современных GPU или для обхода проблем в графических драйверах, а также предложен в инструментах для разработчиков Android. SwiftShader также может применяться на серверных системах без GPU для организации рендеринга и работы графических приложений в облачных окружениях.

Для достижения должного уровня производительности в SwiftShader применяется ряд технологий для ускорения графических вычислений на CPU. Например, в процессе выполнения приложения применяются динамические методы оптимизации алгоритмов, подстраивающиеся под особенности текущей задачи. Для динамической генерации и специализации кода применяется встраиваемый язык Reactor.

Для рендеринга применяются три базовых обработчика, образующих слой Renderer: VertexProcessor, SetupProcessor и PixelProcessor. Каждый из данных обработчиков формирует процедуры на языке Reactor, обеспечивает кэширование уже созданных процедур и управляет состоянием графики. Для ускорения в SwiftShader также активно применяются векторные инструкции CPU (SIMD) и технологии распараллеливания выполнения в несколько потоков, вовлекающие в работу все имеющиеся ядра CPU.

Для использования библиотеки в Linux не требуется модификация приложения, так как SwiftShader выступает в роли прозрачной замены графических драйверов - достаточно скопировать предоставляемые SwiftShader разделяемые библиотеки libGLES или libEGL в каталог с библиотеками, на который указывает переменная окружения LD_LIBRARY_PATH. В Windows привязка библиотеки к приложению может быть осуществлена через размещения в каталоге программы соответствующей DLL.

Источники

править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Google открыл код SwiftShader, программной реализации OpenGL ES и Direct3D 9», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.