@electron_ru

Страница 144 из 177
Ivan
26.06.2018
06:52:09
А как при frameless можно убрать скругление рамки в win 7? Его сразу при запуске нет, а если максимизировать и потом минимизировать обратно, появляется.

Oleh
26.06.2018
11:42:53
Есть сайт в нем есть редактирование картинки в реальном времени при помощи Js так вот подключилолся к нему через Webview, но время от времени оно немного подтормаживает, мб кто знает как мне оптимизировать работу с сайтом этим?

Google
Lev
26.06.2018
12:44:17
не использовать вебвью? сделать свой редактор картинок?

Оно так и будет подтормаживать ибо у тебя рендер через вебвью весьма затратная операция

Max
26.06.2018
13:38:09
@tonyganch Я помню что electron-vibrancy поддерживал регионы ограниченные view которые добавлялись к окну, то есть можно было сделать размытой только боковую панель, а все остальное оставить opaque. Когда все это интегрировалось в электрон, то по моему оставили только возможность выбирать тип vibrancy для всего окна целиком и как то ограничить его действие нельзя? Дело в том, что vibrancy довольно таки не дешевый эффект и если мне нужно сделать только часть окна то как то слишком расточительно выходит делать это для всего окна, а затем маскировать большую облать непрозрачным фоном

Kelin
26.06.2018
17:15:25
мне кажется, что при создании эффекта vibrancy всегда область всегда полностью размывается, а там уже заливается ненужное

Oleh
26.06.2018
17:45:54
если писать браузе на єлектрон, то как лучше вкладки такие как у хрома сделать?

Oleh
26.06.2018
17:51:18
браузер на браузере…
растолкуй, мне нужно просто знать как организовать вкладки, ибо то что я написал, явно говнокод

Max
26.06.2018
18:39:14
просто заливаешь нужный div нужным цветом (background-color)
Я так и делаю. Но меня это не устраивает так как проседает производительность на канвасе раза 4 с full window vibrancy. Я помню экспериментировал с electron-vibrancy, где можно было добавлять регионы и все было в разы производительнее.

Max
26.06.2018
18:39:55
да

Сергей
26.06.2018
18:39:58
лол

Google
Max
26.06.2018
18:42:14
MacBook Pro Late 2014 15". Как ни странно не устраивает. Все хорошо, если у тебя обычный UI на React, разницы никакой, но как только присутствует canvas заполняющий 80% окна, вот в нем отзывчивать падает в ~4 раза в сравнении если делать без vibrancy вообще

Потому что, когда включается vibrancy не только backdrop blur начинает работать, кстати который работает на CPU через vDSP/Accelerate framework, потому что для больших радиусов размытия проже использовать IIR а не FIR фильтр, который еще и несколько раз применяется, что бы сымулировать Gaussian blur. Не суть, все что нужно знать vibrancy нагружает CPU а не GPU на Mac-е

+ vibrancy требет еще и transparancy для окна - следовательно еще и fillrate падает

Max
26.06.2018
18:54:10
А зачем канвас?
Есть Direct Acyclic Graph который быстрее отрисовывть на канвасе а не на svg или DOM

Kelin
26.06.2018
18:55:04
че все так дрочат на vibrancy, говно же ведь

Сергей
26.06.2018
18:55:14
Kelin
26.06.2018
18:55:24
да в чем красиво, ну блюрится фон и блюрится, хз

Сергей
26.06.2018
18:55:40
Есть Direct Acyclic Graph который быстрее отрисовывть на канвасе а не на svg или DOM
Ты там рендером графов эффектора занимаешься что ли?

Kelin
26.06.2018
18:55:56
эта мода уже несколько раз приходила и уходила

Сергей
26.06.2018
18:56:31
что еще
Модификация цветов, контраста, и ещё какой-то эффект, который позволяет белому тексту отображаться нормально, и черному тоже

Kelin
26.06.2018
18:56:54
и весь этот геморр, чтобы тупо картинка на фоне была

кек

Сергей
26.06.2018
18:57:09
Ну да

Max
26.06.2018
18:57:10
Пруфы
Вот, только для iOS: https://github.com/KyoheiG3/DynamicBlurView

Google
Yung
26.06.2018
18:57:21
и весь этот геморр, чтобы тупо картинка на фоне была
во фронтенде 95% работы чтобы картинки красиво показывать

Max
26.06.2018
18:57:31
Да, представь себе на OSX так же

Kelin
26.06.2018
18:57:34
но я не вижу в этом красоты

Yung
26.06.2018
18:57:38
имеем что имеем, лол

Сергей
26.06.2018
18:57:43
Вот, только для iOS: https://github.com/KyoheiG3/DynamicBlurView
Что мне здесь смотреть надо?

Kelin
26.06.2018
18:57:43
это как челка у айфона

Max
26.06.2018
18:58:00
Что мне здесь смотреть надо?
Как это под капотом работает

Сергей
26.06.2018
18:58:12
Как это под капотом работает
Это не значит что во всей системе так

Max
26.06.2018
18:58:37
Вот: https://github.com/KyoheiG3/DynamicBlurView/blob/master/DynamicBlurView/CGImage%2BAccelerate.swift#L39

Сергей
26.06.2018
18:59:11
Вот: https://github.com/KyoheiG3/DynamicBlurView/blob/master/DynamicBlurView/CGImage%2BAccelerate.swift#L39
Ну сделано так в либе. Это не доказывает что ос обрабатывает так же. Это не доказывает ровно ничего

Max
26.06.2018
19:00:14
Блин, еще раз говорю, в Mac так же, я как то это дебажил на OSX. Там дергается Accelerate framework

Max
26.06.2018
19:01:07
На CPU это выходит дешевле для больших радиусов размтия. Перед этим изображение еще даунсэмплиться в 2-4 раза

Сергей
26.06.2018
19:02:17
Пока ссылку в официальную доку с подтверждением твоих слов, нет смысла говорить об этом

Сергей
26.06.2018
19:03:11
а если это нигде не написано
Ну тогда это не доказано

Но я считаю что бред

Kelin
26.06.2018
19:03:18
заебись

Сергей
26.06.2018
19:03:35
Пруфов нет — разговор ни о чем

Google
Kelin
26.06.2018
19:03:41
это как говорить, что здание по документам не существует, но оно есть = его все равно не существует

не находишь?

Сергей
26.06.2018
19:03:56
Но в нашем случае в сорцы посмотреть не можем

Значит разговор идёт о здании на закрытом острове

Kelin
26.06.2018
19:06:03
которое может там быть, но скрывается

Admin
ERROR: S client not available

Сергей
26.06.2018
19:06:29
которое может там быть, но скрывается
Пока не будет пруфов это лишь сплетни

Max
26.06.2018
19:07:47
Я не собираюсь вдаваться в детали и высылать скрины с трейсами вызовов, может сделаю это как время будет. Я задал конкретный вопрос, а вышло уже на 2 страницы флуда

Сергей
26.06.2018
19:09:08
Я не собираюсь вдаваться в детали и высылать скрины с трейсами вызовов, может сделаю это как время будет. Я задал конкретный вопрос, а вышло уже на 2 страницы флуда
Я работал с приложением и vibrancy. Просадок не видел. У меня так же все открытые приложения имеют vibrancy, и все работает ок

Max
26.06.2018
19:11:19
Возможно у нас просто разные требования к производительности. Какие приложения? Они использовали сложные графы на канвасе? WebGL и svg не в счет. Первый форсирует переключение на дискретный GPU, а второй и так тормозит на сложных графах

Сергей
26.06.2018
19:11:37
Блин, еще раз говорю, в Mac так же, я как то это дебажил на OSX. Там дергается Accelerate framework
То что дёргается этот фреймворк вообще не пруф. Детали реализации опять же скрыты

Max
26.06.2018
19:14:27
Канваса вообще не было. Было дохрена элементов. Ты не думал что тормозит канвас или электрон?
Опять же я замерял с и без vibrancy - результат координально разный. Так же я делал через electron-vibrancy который умеет ограниченные области вставлять. Блин, ну хватит может уже?)

Сергей
26.06.2018
19:15:18
С тормозами не спорю.

Max
26.06.2018
20:52:54




Google
Max
26.06.2018
20:55:01
Так же профайлил CoreImage и MetalDevice. У обоих вызывался лишь surface blit (операция копирования на GPU в back buffer) и все

Найти конкретно vImageBoxConvolve не удалось, но все указывает на то, что все операции не покидали cpu host

Почему используется CPU для размытия с большим радиусом (Core Image + vImage/vDSP), а не GPU хорошо продемострировано здесь: http://www.sunsetlakesoftware.com/2013/10/21/optimizing-gaussian-blurs-mobile-gpu



Для больших радиусов размытия GPU становиться не эффективным

Я думаю что через какое то время Apple перепишет это на Metal Compute Shaders но пока видимо они не делают это из-за совместимости



А вот в Windows Aero используется GPU, но там значительно меньше радиус размытия (примерно 16-24px)

Сергей
26.06.2018
21:32:11
пойду почитывать эти методы

спасибо

Max
26.06.2018
21:38:43
Это методы преобразования color space и перестановки каналов (типа RGB -> BGR). То что они присутствуют на host cpu уровне хорошо доказывает, что буффер с изображением не отправляется на GPU, так как на GPU эти операции как раз таки очень эффективны

Еще одна причина почему размытие происходит на cpu - это довольно таки дорогая операция пересылки данных от GPU к CPU host и обратно, иногда это намного дороже, чем сделать те же операции на чисто CPU расспаралелив и векторизировав их через SSE

Сергей
26.06.2018
21:45:58
За объяснение большое спасибо!

Max
26.06.2018
21:47:33
Да не за что. Я просто довольно плотно когда то занимался image processing и DSP. Поэтому тема с ее проблемами довольно таки знакома)

Создал feature request для этого: https://github.com/electron/electron/issues/13460

Олег Иванович
27.06.2018
12:43:31
как в момент сборки приложения убрать из него DEV зависимости? где почитать?

Max
27.06.2018
13:59:36
Эмм, ты думаешь во время сборки электрон рекомпилиться из исходников?) Насколько я знаю во время сборки скачивается просто уже готовая сборка и то, если необходимо

Страница 144 из 177