Формы текстур металла

Я объявляю металлическую текстуру в Swift с форматом .bgra8Unorm . Теперь в kernel метаданных я получаю доступ к нему, используя half тип данных (я считаю, что пример Apple сделал это таким образом).

 texture2d<half, access::sample> inTexture [[ texture(0) ]] 

Будет ли доступ к текстуре bgra8Unorm таким образом (через пробоотборник) и / или записать его обратно автоматически упаковывать и распаковывать half значения в 8 битных целых чисел? Что происходит, когда я пишу отрицательную half значения текстуры?

Да . При записи в текстуру с нормализованными целыми числами без знака значения эффективно зажимаются до [0, 1], а затем масштабируются по максимальному значению формата (в данном случае 255).