Анимированные свойства UIView:
- frame
- bounds
- center
- transform
- alpha
- backgroundColor
- contentStretch
Опишите в: Анимация
isHidden
не является одной из их, так как я вижу это наилучшим образом:Swift 4:
func setView(view: UIView, hidden: Bool) { UIView.transition(with: view, duration: 0.5, options: .transitionCrossDissolve, animations: { view.isHidden = hidden }) }
Цель C:
- (void)setView:(UIView*)view hidden:(BOOL)hidden { [UIView transitionWithView:view duration:0.5 options:UIViewAnimationOptionTransitionCrossDissolve animations:^(void){ [view setHidden:hidden]; } completion:nil]; }
Вы используете большой локальный массив.
__local short temp[24][1080]
2 байта * 24 * 1080 = 50,6 кБ. Некоторые настольные графические процессоры (и их аналоги для ноутбуков) имеют менее доступные ограничения локальной памяти. Например, GTX 1060 поддерживает значение CL_DEVICE_LOCAL_MEM_SIZE
49152 байта. Но adreno 620 либо игнорирует использование массива, либо поддерживает большие локальные массивы, потому что существует вероятность того, что локальные массивы эмулируются внутри глобальных массивов (ограниченных сотнями мегабайт) для этих чипов. Если они поддерживают быструю локальную память внутри чипа, тогда появляется больше возможностей «игнорировать» проблему, или они действительно удвоили пределы локальной памяти по сравнению с последним поколением Adrenos.
Даже когда графический процессор поддерживает точное значение, использование всего этого ограничит параллелизм на уровне потоков в каждом конвейере, что, как правило, значительно снижает потенциальный прирост производительности.
Если последнее поколение графических процессоров Adreno одинаковое,
на этой странице написано
CL_DEVICE_LOCAL_MEM_SIZE
32768
CL_DEVICE_LOCAL_MEM_TYPE
CL_LOCAL
, что это быстро, но это 32 КБ, поэтому игнорирует ошибку или вы пропустили добавление необходимой логики перехвата ошибок или того и другого.