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

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

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

1 ответ

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

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

Другие вопросы по тегам