Почему у Metal нет rgb8Unorm MTLPixelFormat? - PullRequest
0 голосов
/ 12 июня 2018

У меня есть несколько текстур, которые не требуют альфа-канала.В настоящее время я загружаю их, используя параметр MTLPixelFormat rgba8Unorm, но это кажется несколько расточительным.Есть ли какая-то опция, которую я пропускаю, или какое-то другое обоснование пропуска формата с 3 8-битными компонентами для данных текстуры?

Ответы [ 2 ]

0 голосов
/ 13 июня 2018

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

Одним из таких предположений является то, что они поддерживают только те пиксельные форматы, которые имеют прямую аппаратную поддержку на обычных графических процессорах.Обратите внимание, что a) часть философии дизайна Metal заключается в устранении неявной работы API и драйвера, что может включать преобразование формата.Такая работа оставлена ​​для выполнения самого кода приложения.И б) не все форматы, которые они поддерживают где-либо, поддерживаются везде.Например, почему BGR5A1Unorm не поддерживается в macOS?Это, безусловно, конвертируется в BGRA8Unorm, но они не.

0 голосов
/ 12 июня 2018

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

...