Оптимизировать фрагментный шейдер - PullRequest
0 голосов
/ 28 сентября 2018

Я хочу оптимизировать производительность фрагментного шейдера.В настоящее время мой фрагментный шейдер имеет вид

fragment half4 fragmen_shader_texture(VertexOutTexture vIn [[stage_in]],
                                       texture2d<half> texture [[texture(0)]]){

    constexpr sampler defaultSampler;

    half4 color =  half4(texture.sample(defaultSampler, vIn.textureCoordinates));


    return color;
}

Задача состоит в том, чтобы вернуть цвет текстуры.Во всяком случае, оптимизировать больше, чем это.

1 Ответ

0 голосов
/ 28 сентября 2018

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

  • Сокращение использования полосы пропускания за счет использования более компактного формата текстур (565 или 4444 вместо 8888, или еще лучше 4-битный или2-битный PVRTC).
  • Убедитесь, что альфа-смешивание отключено, если альфа-смешивание не требуется.
  • Если в текстуре много «пустого пространства» (например, думайте, что текстура частицы с центральнымкруговое пятно и пустые углы), тогда вы можете убедиться, что геометрия соответствует ему более плотно, визуализируя его, например, как восьмиугольник, а не как квад.
  • Включите отображение, если есть вероятность, что изображение можно свернуть.Отключите более дорогие параметры отображения, такие как трилинейная / анизотропная фильтрация.
...