Кэш шейдеров: определение и влияние на игровую производительность | ИТИГИК (2024)

Графические процессоры — это такие же процессоры, как и ЦП, но они отличаются тем, что их параллелизм ориентирован на потоки. Вот почему говорят, что графический процессор относится к типу TLP, а центральный — к типу ILP. К этому надо добавить, что пока потоки выполнения в графе ориентированы не на процессы, а на графические примитивы или данные.

Кэш шейдеров: определение и влияние на игровую производительность | ИТИГИК (1)

Другими словами, каждый треугольник, пиксель или фрагмент имеет свою собственную шейдерную программу для каждого этапа 3D-конвейера. Который написан на языке высокого уровня, например HLSL, если мы говорим о DirectX или GLSL, если мы говорим об OpenGL или Vulkan. Хотя есть и такие, которые являются эксклюзивными для определенных систем, например, PSGL от SONY. PlayStation консоли. Что ж, эти программы нужно компилировать и, следовательно, переводить из исходного кода в бинарный.

Что такое шейдерный кэш?

Кэш шейдеров: определение и влияние на игровую производительность | ИТИГИК (2)

Проблема возникает, когда, в отличие от того, что происходит с ЦП, где все они x86, в случае с графическими процессорами набор регистров и инструкций не является общим не между брендами, но и между архитектурами одного и того же бренда. Это означает, что код шейдеров должен компилироваться во время игры, вызывая заикание и проблемы с производительностью. Поэтому сгенерированный бинарник хранится в файле, который при повторной загрузке игры будет перезагружен в видеопамять видеокарты, которую мы знаем как кеш шейдеров или кеш шейдеров.

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

VRAM также занимает место

Кэш шейдеров: определение и влияние на игровую производительность | ИТИГИК (3)

Идея GPU / ГРАФИЧЕСКИЙ ПРОЦЕССОР вашей видеокарты имеет доступ только к системе Оперативная память через интерфейс PCI Express и с помощью своего блока DMA, поэтому кэш шейдеров будет загружаться вместе с визуальной информацией, необходимой для компоновки сцены из блока хранения в ОЗУ и из ОЗУ в видеопамять. Хотя с DirectStorage ожидается, что графическое оборудование сможет напрямую обращаться к SSD, что сократит задержку доступа и проблему зависимости от ЦП.

Многие игры хорошо проработаны и кеш шейдеров занимает мало места, но другие не так много и в итоге занимают большой объем графической памяти. Что означает, что если у драйвера есть связанный лимит или сама игра, мы вдруг обнаруживаем, что новые компиляции заменяют старые и возвращаются первоначальные проблемы с производительностью.

В любом случае мы должны иметь в виду, что если игра, в которую мы играем, требует места в видеопамяти, она отдаст предпочтение рендерингу текущего кадра. Таким образом, он будет пытаться временно получить кэш шейдеров, хранящийся в системной памяти. Также помните, что дампы в единицу хранения делаются непрерывно, так как после того, как шейдер графического примитива будет сгенерирован, нет необходимости делать это снова.

Трассировка лучей и кэш шейдеров

В трассировке лучей наиболее часто задаваемый вопрос о GPU относится к логическому типу. Пересекает ли этот луч данный граф-примитив? Ответ не всегда да и, следовательно, есть условие, что произойдет или нет в зависимости от обстоятельств. Поэтому при первом выполнении этого шейдера необходимо будет скомпилировать и сгенерировать шейдер кэша для всех возможных результатов.

Кэш шейдеров на консолях

Кэш шейдеров: определение и влияние на игровую производительность | ИТИГИК (4)

Игровая консоль всегда будет иметь одни и те же компоненты, от первой модели, покидающей завод, до последней. Хотя прошло несколько лет, его характеристики не изменятся. Например, сегодня можно найти более старые модели, чем самая старая видеокарта. Один из способов воспользоваться аппаратной неизменностью — использовать так называемые шейдеры, уже скомпилированные в установку игры. Это избавляет от необходимости генерировать кеш шейдеров для каждой игры, но это палка о двух концах.

Например, если вы хотите сделать более мощную и обратно совместимую консоль, у вас есть следующие варианты:

  • Экспортируйте ISA на графический процессор новой системы, заставив его работать как надстройку старого. Это то, что AMD сделала в PlayStation 5 и Xbox Series с архитектурой RDNA 2, чтобы плавно запускать игры предыдущего поколения, разработанные для GCN.
  • Интегрируйте все графические схемы предыдущей системы в новую систему. Это то, что Nintendo делала на своих консолях вплоть до 3DS и SONY со своей второй PlayStation и некоторыми моделями третьей.

На уровне эмулятора во многих случаях берут уже скомпилированные шейдеры и выполняют обратный процесс, создавая промежуточный код, который может генерировать кэш шейдеров, сгенерированный для работы с вашей видеокартой. Однако это не точная наука, и вы можете столкнуться с некоторыми графическими сбоями при запуске игр.

Оптимизация для производителей графических процессоров

Кэш шейдеров: определение и влияние на игровую производительность | ИТИГИК (5)

Оба формата NVIDIA и AMD обычно включают оптимизацию в последние версии драйверов для наиболеекрай игры. К ним относятся не только оптимальные настройки для более высокой производительности, но и уже оптимизированный кеш шейдеров для каждой игры и лучшие характеристики, чем у базовой игры. И заключается она в том, что оба производителя заинтересованы в том, чтобы их самая продвинутая видеокарта обладала максимально возможной производительностью в самой мощной игре из всех существующих на сегодняшний день.

Таким образом, они оставляют деньги различным студиям разработки, которые оптимизируют шейдерные программы для определенных графических архитектур и создают кеш шейдеров, который работает лучше, чем тот, который поставляется с базовой игрой. Это делается для поощрения покупки новых моделей и создания программы устаревания, которая необходима для существования потока потребления, поддерживающего отрасль. Вот почему многие игры, в которых почти нет визуальных изменений по сравнению с предыдущими частями, в конечном итоге имеют худшую производительность.

Кэш шейдеров: определение и влияние на игровую производительность | ИТИГИК (2024)

References

Top Articles
Latest Posts
Article information

Author: Rob Wisoky

Last Updated:

Views: 5419

Rating: 4.8 / 5 (48 voted)

Reviews: 95% of readers found this page helpful

Author information

Name: Rob Wisoky

Birthday: 1994-09-30

Address: 5789 Michel Vista, West Domenic, OR 80464-9452

Phone: +97313824072371

Job: Education Orchestrator

Hobby: Lockpicking, Crocheting, Baton twirling, Video gaming, Jogging, Whittling, Model building

Introduction: My name is Rob Wisoky, I am a smiling, helpful, encouraging, zealous, energetic, faithful, fantastic person who loves writing and wants to share my knowledge and understanding with you.