Необходимо ли воссоздавать MTLBuffer, MTLTexture или другие металлические ресурсы, когда приложение выводится на передний план? - PullRequest
1 голос
/ 28 апреля 2019

Я реорганизую слой рендеринга cocos2d-x, и новый движок будет использовать Metal на iOS.В оригинальной версии cocos2dx воссоздает все буферы и текстуры, когда приложение выводится на передний план после того, как долгое время оставалось в фоновом режиме.

Я новичок в Metal, и мой вопрос: нужно ли это?воссоздать MTLBuffer, MTLTexture и другие ресурсы Metal как GLES?

1 Ответ

4 голосов
/ 29 апреля 2019

Нет необходимости заново создавать ресурсы Metal, когда приложение возвращается в активное состояние из фонового состояния.

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

...