Рубрика «аппаратное ускорение»

image

Около месяца свободного времени я уделил чтению исходного кода Quake II. Это был удивительный и поучительный опыт, потому что в движок idTech3 внесено большое изменение: Quake 1, Quake World и QuakeGL объединены в одну красивую архитектуру кода. Особенно был интересен способ, которым достигли модульности, несмотря на то, что язык программирования C не обеспечивает полиморфизма.

Quake II во многих отношениях является блестящим образцом программного обеспечения, потому что это был самый популярный (по количеству лицензий) трёхмерный движок всех времён. На его основе было создано более 30 игр. Кроме того, он ознаменовал переход игровой индустрии от программной/8-битной системы цветов к аппаратной/24-битной. Этот переход произошёл примерно в 1997 году.

Поэтому я крайне рекомендую всем, кто любит программирование, изучить этот движок. Как обычно, я вёл бесконечное количество заметок, затем подчистил их и опубликовал как статью, чтобы сэкономить вам несколько часов.

Процесс «подчистки» меня сильно увлёк: в статье теперь более 40 мегабайт видео, скриншотов и иллюстраций. Сейчас я не знаю, стоили ли мои труды того, и нужно ли публиковать в будущем необработанные заметки в ASCII, выскажите своё мнение.
Читать полностью »

Разработка цифровой аппаратуры на C++-SystemC глазами SystemVerilog программиста - 1

SystemC это библиотека для C++ позволяющая моделировать всевозможные аппаратные системы на различном уровне абстракции. Поддерживается как традиционное дискретно-событийное моделирование, привычное программистам на Verilog и VHDL, так и аналоговое моделирование в духе SPICE/Verilog AMS. В комплект также входит библиотека и методология для виртуального прототипирования, библиотеки для написания тестовых окружений и верификации с использованием рандомизированных тестов.

В этой я расскажу о синтезируемом подмножестве SystemC, сравнивая его с синтезируемым SystemVerilog. Сам я пользуюсь SystemC уже где-то 3 года, а до этого несколько лет писал на Verilog/SystemVerilog. Попытаюсь охватить предмет с разных сторон: начиная с философских рассуждений о причинах возникновения SystemC, краткого обзора экосистемы и инструментария и заканчивая практическими примерами синтаксиса и семантики.

Подразумевается, что читатели знакомы с Verilog и C++.Читать полностью »

Пакеты numpy и scipy предоставляют прекрасные возможности для быстрого решения различных вычислительных задач. Концепция универсальных функций (ufunc), работающих как со скалярными значениями, так и с массивами различных размерностей, позволяет получить высокую производительность при сохранении присущей языку Python простоты и элегантности. Универсальная функция обычно используются для выполнения одной операции над большим массивом данных, что идеально подходит для оптимизации с помощью SIMD-инструкций, однако мне не удалось найти готового решения, основанного на свободном программном обеспечении и позволяющего использовать SIMD для вычисления в numpy таких математических функций, как синус, косинус и экспонента. Реализовывать алгоритмы вычисления этих функций с нуля совсем не хотелось, но к счастью в интернете нашлось несколько свободных библиотек на языке «С». Преодолев лень сомнения, я решил написать собственный numpy-модуль, предлагающий универсальные функции для синуса, косинуса и экспоненты. За подробностями и результатами тестов добро пожаловать под кат.
Читать полностью »

В экспериментальный билд XBMC Android добавлена поддержка аппаратного ускорения видео

Хорошая новость для любителей просмотра HD видео на мобильных устройствах с ОС Android. В тестовый вариант XBMC Android добавлена поддержка аппаратного ускорения видео для многих устройств с указанной ОС. Стоит напомнить, кстати, что в первых версиях XBMC для Android была оптимизирована только поддержка процессоров Amlogic AM8726.

Читать полностью »

Для перемещения элемента по экрану есть два основных способа:

  • CSS 2D-преобразования и translate();
  • position:absolute и изменение top/left.

Крис Койер недавно писал, почему лучше и логичнее использовать translate (это быстрее, и свойство position имеет большее отношение к вёрстке, а не к визуальным эффектам и анимации, в отличие от translate).

Я хочу расширить его ответ и привести несколько хороших примеров. Я записал скринкаст, в котором помощью Chrome DevTools timline рассматриваю различия между этими подходами с точки зрения производительности, особенностей рендеринга и композитинга на GPU.

Если вам нужна сокращённая текстовая версия — продолжайте читать.Читать полностью »

Компания Adobe выпустила Flash Player 11.2 и AIR 3.2. Для Flash Player впервые появилось автоматическое обновление в фоновом режиме а-ля Chrome (при установке предложат такой вариант). В новой версии реализовано множество специфичных функций для разработчиков игр: аппаратное ускорение до 60 FPS в 2D и 3D, относительные координаты курсора, события на правую и среднюю кнопки мыши, mouse-lock, многопоточное декодирование видео и т.д. Подробнее об этих нововведениях — на видео.

Но есть и плохая новость. Изменилась лицензия на Flash, так что теперь разработчики игр должны отчислять 9% дохода в компанию Adobe, если используют функции ApplicationDomain.domainMemory и Stage3D.request3DContext для аппаратного ускорения. Отчисления осуществляются только в том случае, если конкретная игра превысила объём дохода $50 тыс., и только с суммы, на которую было превышение.

Adobe не будет брать лицензионные отчисления с игр, которые принесли менее $50K
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js