Шейдеры (фрагмент) не отображаются на экране при некоторых разрешениях.
Рабочая: 720x1280, 888x1024, 128x128, 1920x1080, 1080x1920, 1125x2436, 500x500
Не работает: 1280x720, 1024x888, 256x256, 512x512, 1024x1024, 1536x1536, 768x768
Во всех примерах, хотя данные о пикселях моих MTKView
CAMetalDrawable
MTLTexture
выглядят хорошо. Для отладки я распечатал сетку ascii art из выбранных пикселей и вижу ожидаемое изображение. Также проверено преобразование текстуры в изображение и добавление его в представление изображения, и просмотр результата.
Также теперь протестировано с преобразованием MTLTexture в UIImage, и все разрешения выглядят хорошо.
Таким образом, рендеринг всегда успешен, хотя вероятность того, что он отобразится на экране, составляет 50/50.
Кто-нибудь видел это раньше?
Вот настройки рендеринга.
Протестировано на iOS 12, Xcode 10 и 10.2, на iPhone X и iPad Pro.