Парные статусы в ВК для лучших подруг
Главная » Другое
Статусы в вк, это отдельная тема для разговора, ведь они вышли на такой уровень, что скоро смогут считаться самостоятельным искусством. Благодаря им девушка или парень может выразить свое отношение к той или иной теме, поделиться переживаниями, рассказать о личных отношениях. Отдельное место занимают парные статусы, которые выражают мнение двух влюбленных людей. Согласитесь, что иногда мало одного слова – любовь, порой хочется кричать о своих чувствах.
Мы постарались собрать интересные статусы для вк парные парня и девушки, которые касаются практически всех сторон совместной жизни.
Короткие и красивые статусы про любовь.
Лучшие парные статусы в вк для подруг
- Трое подруг, созданы для того… чтобы пока одной нет, другие две её обсуждали…
- Без тебя бы меня не было
- Самая лучшая в мире Такой подруги как у меня не-кому не найти Она такая одна красивая, милая, добрая скромная, и просто она самая, самая
- – А ты не подарок! – Да и ты не праздник!
- Как бы ни была серьёзна жизнь, всегда необходим человек, с которым можно подурачиться.
- Девушка может выпить бутылку виски, избить мужика сумочкой и идти домой по темной улице одна, но в туалет она пойдет с подружкой.
- Я была нормальной. Честно. До тех пор, пока не встретила эту психопатку, которую я называю своей лучшей подругой!!
- Для женских слез нужна подушка, для женских праздников – цветы, а для меня нужна подружка, такая клевая, как ты!
- Ссора между подругами заканчивается тогда, когда одной из них не с кем будет пойти в клуб
- Мы как черный и белый шоколад – мы сладкие, но с горчинкой. Как недостающие кусочки одного целого. Мы просто лучшие подруги!
- Подруга не та, кто прыгнет за тобой из окна, а та, кто скажет, что выход из квартиры в другой стороне.
- Преданная подруга та, которая видит дальше твоих неудач и может перенести твой успех.
- Настоящая подруга как духи – чтобы выбрать одну, приходиться перепробовать сотню.
- Подруга — это служба новостей, кафе, антидепрессант и центр психологической поддержки.
- Лучшей подруге и рассказывать ничего не надо, она и по глазам видит, что ты натворила.
- Если ты упадёшь, лучшая подруга тебя обязательно поможет встать. Как только перестанет ржать.
- Подруга может делать чего угодно, важно только, чтобы в трудный час она была рядом.
- Лучшая подруга знает твое прошлое, верит в твое будущее, а сейчас принимает тебя такой, какая ты есть.
- Моя подруга так много обо мне знает, что мне придется либо уехать из города, либо дружить с ней всю жизнь.
Вот кто вместе и в радости, и в горести
Жизнь становится тусклой, и наполненной не до конца, если между вами что-то не так. Устанавливайте статусы про сестру и брата со смыслом для того, чтобы как можно больше людей задумались о том, что отношение друг к другу всегда можно изменить…
- Она всю жизнь была для меня маленькой крошкой. Прошли годы, и, знаете, ничего не изменилось.
- Нужно вовремя возобновлять общение, уступать и идти навстречу. А то когда-нибудь обязательно будет поздно…
- Мы такие разные, но нам и не нужно так уж совпадать друг другу. Мы же братья!
- Количество подзатыльников в детстве равняется количеству подкалываний сейчас. Да, сестрёнка?
- Она – чуть молчаливая, я – через чур разговорчивая. Я любила мультфильмы, она – сериалы. И как мы вообще уживались в одной комнате?
- Поругаться с сестрой – вещь, которая в принципе не беспокоит. Помиримся же через минуту!
- Поговорить с брательником – дело святое. Даже жена не прерывает в это время.
- Он значительно старше меня, и мы в принципе жили немного в разных мирах. Но как же здорово встречаться время от времени!
Статусы на двоих для подруг
- Лучшая подруга – это человек, который выскажет тебе в глаза все, что ее бесит в тебе, а всем скажет, что ты – самый замечательный человек на Земле!
- Мы как черный и белый шоколад – мы сладкие, но с горчинкой. Как недостающие кусочки одного целого. Мы просто лучшие подруги!
- Моя подруга так много обо мне знает, что мне либо придется ее убить, либо дружить с ней до смерти
- Лучшая подруга – это как муж, единственная и любимая. Это та, с кем разговоры не надоедают. Это та, чья боль тебе как собственная. Это та, кто может поднять тебе настроение, когда хочется плакать…
- Лучшая подруга никогда не спросит – зачем? Она просто сходит в магазин, купит, принесёт, откроет и нальёт.
- Настоящая подруга не позволит тебе совершать глупости в одиночку!
- Переписка с моей лучшей подругой – компромат про всю мою жизнь
- Твоя лучшая и единственная подруга – это собственное отражение в зеркале.
- Терять подругу – это хуже, чем терять парня. Потому что парней может быть много, а самая лучшая подруга – это та, с которой рядом всю жизнь.
- Лучшая подруга – это человек, который выскажет тебе в глаза все, что ее бесит в тебе, а всем скажет, что ты – самый замечательный человек на Земле!
- Другой подруги не ищу, Ты лучше всех на всей планете, Ты солнца луч, когда грущу. Как тонко чувствуем друг друга, Одна душа.
- Очень трудно найти лучшую подругу – ведь самая лучшая уже моя.
- Статусы про подругу – Лучшая подруга – человек, которому и рассказывать ничего не надо, она и по глазам видит, что ты идиотка натворила…
- Ревность лучшей подруге к нашей общей подруге – самая ужасная ревность.
- Если муж убежал с вашей лучшей подругой, вам будет очень ее не хватать.
- Как здорово иметь настоящую подругу. Когда устаешь от предательства, от очередной боли, от целого мира можно просто прийти к ней без слов, упасть на кровать и молча закрыть глаза.
- Лучшая подруга бывает только раз в жизни. Хоть иногда она тебя бесит, и ты хочешь её убить. Но ты понимаешь, что кроме неё, никого так не полюбишь.
- Я отдам свою подругу только в те руки, которые будут её любить больше, чем я.
- У нормальной девушки одна лучшая подруга, а не миллион
- Лучшая подруга-это та которая поймет в любой ситуации, даже если ты несешь бред.
- С лучшей подругой и помолчать есть о чем!
- Лучшая подруга-эта та, которой звонишь, а у нее занято. И ты ужасно психуешь, а оказывается, что она звонила тебе
- Лучшая подруга бывает только раз в жизни. Хоть она тебя бесит, и ты хочешь её убить. Но ты понимаешь, что кроме неё, никого так не полюбишь.
- Лучшие подруги никогда не поссорятся на всю жизнь, а даже если это случится, то через некоторое время снова помирятся.
- Лучшая подруга – это та, которая радуется твоим победам. Та, которая отложит все дела ради тебя.
- Лучшая подруга-это тот человек, которому ты можешь доверить не только свои секреты, но и саму себя
- Как не крути, но без лучшей подруги жизнь-не жизнь!
- Подруг много не бывает, но есть настоящая, которая никогда тебя не кидает
- Лучшая подруга – это та, к которой ты можешь прийти без звонка, забыв ключи от дома, и точно знать, что она дома.
- Лучшая подруга – это человек, с которым ты идешь по улице и смеёшься на весь район, и тебе всё равно на мнения других, вам и вдвоем хорошо…
- Женская дружба заканчивается там, где появляется парень.
- Только подруга понимает все с одного взгляда.
- Настоящие подруги не соревнуются между собой и не завидуют, а помогают и искренне радуются друг за друга…
- Подруги – это те люди, которые знают какая ты на самом деле сволочь, но все равно дружат с тобой
- Лучшая подруга – не злится на тебя из-за мелочей, не обижается по пустякам, не замечает твоих недостатков… Но, тем не менее, не стоит проверять на прочность ее хорошее к тебе отношение.
- Самая одинокая женщина в мире – это женщина, у которой нет близкой подруги. – Статусы о подругах
- Так классно, когда ты со своей лучшей подругой с детства вместе, тогда есть что вспомнить, от смешных моментов до позорно – смешных.
- Красоту девушки можно сравнить только с умом её подруги
- Явные недостатки подруги способны сделать твои менее заметными
- Подруга как духи – чтобы выбрать одну приходиться перепробовать сотню.
- У меня такие друзья, что я порой готова пристрелить их. но если бы не они, давно бы уже пристрелилась сама.
- Настоящая дружба умножает радость на два, а печали делит напополам.
- Приятно, когда есть рядом такие люди, которым не важно кто ты, пофиг — какая ты… а просто важно, что ты есть…
Статусы про подруг на двоих
- Друг — это человек, которому больше всего верят, когда он говорит о нас плохо.
- Кто стал дружить с тобой для обретенья благ, Не друг надежный твой, а самый страшный враг.
- Друг всем — никому не друг.
- Как мало друзей остались бы друзьями, если бы они могли полностью узнать мысли друг друга.
- Н е говори о друзьях плохо – скорее всего, это правда.
- Дружба не услуга, за нее не благодарят.
- Если хочешь завести друзей – заведи их подальше
- Только в одном случае нам нечего бояться оскорбить друга — это когда дело идет о том, чтобы высказать ему правду и таким образом доказать ему свою верность.
- Никто не становится другом женщины, если может быть ее любовником
- Противник, вскрывающий ваши ошибки, гораздо полезнее, чем друг, скрывающий их.
- Никогда счастье не ставило человека на такую высоту, чтобы он не нуждался в друге.
- Человек — не остров в океане. Человек не может без друзей.
- Друг — такое маленькое слово и так легко его сказать, а сколько в нем светлого большого и им не каждый может стать
- Цитаты про друзей – В мире мало дружбы – и меньше всего среди равных.
- Твой истинный друг, кто укажет в пути Препятствия все и поможет пройти. Льстецов причислять опасайся к друзьям. Тот истинный друг твой, кто честен и прям.
- Доверие – первое условие дружбы
- В наши дни дружба – это нечто дешевое, легко заменяемое. Войдите в Интернет – и вы сможете обзавестись хоть тысячью «друзей».
- Чем богаче ваши друзья, тем дороже вам это обходится.
- Лесть порождает друзей, правда — ненавистников.
- Даже если вы идёте разными путями, всегда хорошо, когда у тебя есть друг.
- Где бы мы ни были, с друзьями всегда чувствуем себя как дома.
- Каждый наш друг — это целый мир для нас, мир, который мог бы и не родиться и который родился только благодаря нашей встрече с этим человеком.
- Иметь общие желания и общие отвращения — именно в том состоит прочная дружба.
- Наслаждаться общением — главный признак дружбы.
- Взор истинной дружбы обращён к сердцу.
- Самое возмутительное преступление – это злоупотребление доверием друга.
- Лучше во тьме пребывать, чем без друга.
- Важные друзья — для важных дел… Поэтому иметь важных друзей и уметь их сберечь — важней, чем деньги иметь.
- Друг — это другой я
- Друг — это самое лучшее, что у тебя может быть, и самое лучшее, чем можешь быть ты.
- Если друг отнимет у вас любовницу, не следует ссориться с ним окончательно, дабы встречаться с ним, когда почувствуете к нему за это признательность.
- Не говори своему другу того, что не должен знать твой враг.
- Стоит лучу солнца упасть на вас, и вы видите возле себя друзей. Друзья — это термометр, по которому можно измерять температуру успеха.
- Никакой дорогой, даже самой правильной, нельзя проходить мимо того, кому нужен друг.
- Друзья — как хорошее здоровье: не ценишь, пока не потеряешь.
- Дружба как верёвка: если порвёшь, то никогда не свяжешь так, чтобы не было узла
- Выбирай себе друзей тщательнее, а враги выберут тебя сами.
- С такими друзьями враги не нужны.
- О друзьях должно помнить не только в их присутствии, но и в их отсутствии.
- В беседах с глазу на глаз между близкими друзьями мудрейшие люди очень часто высказывают весьма слабые суждения, потому что разговор с другом — это то же самое, что мысли вслух.
- В дружбе нет никаких иных расчетов и соображений, кроме нее самой.
- Искренность отношений, правда в общении – вот дружба.
- Друга своего хваля, себя хвалишь.
- 3а свою жизнь я убедился, что всего больше и всего незаметней отнимают время разговоры с друзьями; друзья великие грабители времени…
- В радости друзья узнают нас, в несчастье мы узнаем их.
- Для преданного друга нельзя никогда сделать слишком много.
- Лучший друг – враг. Он убивает наверняка.
- Друзья – это не обязательно те, с кем нам хорошо. Это могут быть и те, без кого нам плохо.
- Искренних друзей очень мало. Да и спрос на них невелик.
- Льстецы похожи на друзей, как волки на собак.
- Нам нужны старые друзья, чтобы вместе стареть, и новые — чтобы оставаться молодыми.
- Со радость, а не сострадание создает друга.
- Люди с пылким характером редко бывают постоянны в дружбе.
- Даже болеть приятно, когда знаешь, что есть люди, которые ждут твоего выздоровления, как праздника.
- Дружба одного разумного человека дороже дружбы всех неразумных.
- Бескорыстная дружба возможна только между людьми с одинаковыми доходами.
- Быть может, чтобы вполне оценить дружбу, нужно сперва пережить любовь.
- Хороший друг должен на веселие являться по зову, на бедствие же друга приходить без зова.
- Будь чистосердечен с друзьями твоими, умерен в своих нуждах и бескорыстен в своих поступках.
- Друг, потерявший власть, — вновь обретённый друг.
Улыбайся!
Забавные и смешные парные статусы в ВК для подруг – удиви друзей.
- Проверять прочность дружбы – не самая светлая мысль, которая могла посетить наши трезвые головы…
- Смешно, стыдно и немного грустно – наше типичное утро. А у вас как вчерашний вечер прошёл?
- Моя красота сравнится только с интеллектом моей подружки…
- Подруги не обращают внимания на недостатки друг друга… они ими пользуются!
- Подружки и чихуахуа имеют немного общего… и те и другие – состоят из злости и любви.
- Нам нужна третья, чтобы было кого стебать…
- Она мне не соперница, потому что её вкусы весьма специфичны…
- Все лгут и продаются! Только не мы, на нас у вас денег не хватит!
- Вот ничего плохого про нас нельзя сказать. Ну, кроме того, что я красивая, а она… умная!
- Лучшие подружки ходят парами!
Cтатусы про подруг со смыслом парные
- Подруга – это та, которая видела тебя без макияжа, но всё равно считает тебя красивой.
- Подруга – это человек, понимающий тебя с полуслова, и говоря ей он козел, ты знаешь, что она поймет, о ком ты говоришь.
- Подруга детства поможет тебе переехать на новую квартиру, а хорошая подруга поможет замести следы преступления.
- Подруга не обязана быть совершенством, достаточно того, что бы в трудный час она была рядом.
- Подруга не та, кто прыгнет за тобой из окна, а та, кто скажет, что выход из квартиры в другой стороне.
- Подруга отбила у нее мужа и портниху. Последнего она не могла простить.
- «Эмиль Кроткий»
- Это истинное чудо встретить человека, с которым у тебя будут родственные души, который будет уважать тебя таким, какой ты есть. Такой человек сможет разбудить твою кровь и побудить тебя к новым свершениям.
- Это правда, что самые лучшие подруги могут довести до белого каления, но без них наша жизнь не так богата. «Сплетница»
- Этот статус для самой лучшей подруги! Спасибо, что ты у меня есть!
- Я была нормальной. Честно. До тех пор, пока не встретила эту психопатку, которую я называю своей лучшей подругой!
Я не могла понять, подруга я для нее или нет. Где тот таинственный критерий, по которому можно судить, приняли тебя в подруги или нет.
«Амели Нотомб»
- Скажи всем, что ты заболела. Скажи, что ты разорена. Скажи, что ты потеряла интерес к жизни. Оглянись вокруг – те люди, которые все еще рядом с тобой, и есть твои настоящие подруги!
- Спасибо, что ты есть у меня, даже если тебе самой этого не очень хочется! Ты потрясающая подруга.
- Ссора между подругами заканчивается тогда, когда одной из них не с кем будет пойти в клуб.
Тайна, которой она не поделилась с подругой, была для нее тем же, что платье, без пользы висящее в гардеробе.
«Эмиль Кроткий»
- Такова участь подруги: радоваться, когда другая заканчивает незамужнюю жизнь, даже если это сулит тебе одиночество.
- Те годы, на которые женщина уменьшает свой возраст, никогда не пропадают даром: она добавляет их к возрасту своих подруг.
- Терять подругу – это хуже, чем терять парня. Потому что парней может быть много, а самая лучшая подруга – это та, с которой рядом всю жизнь.
- Только рука подруги может вырвать шипы из сердца.
- Девушка, которая не участвует в сплетнях, просто не имеет приятельниц, которых бы стоило обсудить.
- Для женских слез нужна подушка, для женских праздников – цветы, а для меня нужна подружка, такая клевая, как ты!
Для женщины нет большей сласти, чем сострадать любимой подруге.
«Юрий Трифонов»
Для многих женщин пережить любовь — значит обсудить ее с подругой.
«Лешек Кумор»
- Для преданной подруги нельзя сделать слишком много.
- Дружба двух женщин – всегда заговор против третьей.
- Дружба между женщинами — всего лишь пакт о ненападении.
Дружба невозможна между двумя женщинами, одна из которых одевается очень хорошо.
«Лори Колвин»
- Как бы ни была серьёзна жизнь, всегда необходим человек, с которым можно подурачиться.
- Как иногда хочется выпить и поплакать, но с моими подругами получается нажраться и поржать.
- Когда теряешь лучшую подругу, весь мир катится к чертям вместе с ней.
Когда я была девочкой, у меня было всего две подружки, да и то воображаемые. И играли они только друг с другом.
«Рита Руднер»
- Конечно, у меня есть хорошие подруги, только вот привязанность между нами слабая.
Рейтинг
( 2 оценки, среднее 5 из 5 )
Понравилась статья? Поделиться с друзьями:
для подруг, пар, для ЛП, ВК
Парные статусы для подруг из Тик Тока — оригинальные фразы, которые два пользователя социальной сети устанавливают в специальное поле своего профиля. К примеру, девушки показывают, что находятся в дружеских отношениях. Парный статус могут устанавливать и парень с девушкой, которые встречаются, помолвлены или уже женаты. Ниже рассмотрим, какие бывают статусы, в чем их особенности и приведем ТОП-20 лучших вариантов.
Что это
Статусы из Тик Ток — специальные надписи, известные с других социальных сетей, таких как ОК или ВК. Такие фразы могут быть только для одного человек, для ЛП или для двоих. При этом не обязательно использовать одинаковые фразы. Главное, чтобы они были похожими по смыслу и показывали близость взаимоотношений. Они бывают дружескими (с подругой, другом) или любовными, философскими и простыми, прикольными и грустными.
Продолжаем знакомить вас с разными интересными аккаунтами — читайте про тиктокера Ивана Ржевского.
Как поставить
Чтобы поставить парный статус в Тик Ток, каждый из пользователей должен сделать ряд шагов:
- Выбрать подходящий парный статус для подруг или пары.
- Войти в Тик Ток.
- Перейти в раздел «Я».
- Нажать на кнопку «Изменить профиль».
- Войти в раздел «Описание».
- Введите парный статус, в размере до 80 символов.
- Сохраните данные.
Как результат, получается выбрать подходящий статус с парнем / девушкой / подругой и установить его в Тик Ток применением приведенной выше инструкции.
Как украсить
При желании можно не ограничиваться одной только фразой, а украсить парные статусы для подруг в Тик Ток с помощью специальных инструментов. Здесь можно использовать следующие варианты:
- Смайлики. Для их добавления необходимо установить эмодзи на клавиатуре, копировать нужные данные и включить их в текст.
- Шрифты. Эту информацию также можно менять, но здесь могут возникнуть определенные проблемы с кодировкой. Здесь можно использовать разные варианты и смотреть, как они отображаются.
Помните, что внешний вид парного статуса не менее важен, чем сам текст описания. При этом допускается применение и других оригинальных идей. Их можно легко реализовать с помощью имеющихся символов на клавиатуре — точек, двоеточий, скобок и т. д.
Примеры для Тик Ток
Теперь приведем несколько примеров парных статусов для подруг и пар, пользующихся наибольшим спросом в Тик Ток.
Для подруг:
- «Я была отличной девушкой. Честно. Пока не встретила эту психопатку».
- «Подруга — та девушка, у которой хранится половина твоей одежды».
- «Друг знает о твоих минусах и периодически о них напоминает. Разве не сволочь?».
- «Лучшая подружка — как муж. Единственная и любимая».
- «Дружба — как старое вино, которое с годами становится только вкуснее».
- «Подружка — та, кто сразу начинает есть из холодильника, пока вы даже не успели раздеться».
- «Дружба хороша и тем, что можно вместе помолчать и будет комфортно».
- «У девушки может быть только одна подруга, а не миллион».
- «Да, ты не подарок. Да, ты не праздник».
- «Я в тебя верю, и ты верь в меня».
Для девушки и парня:
- «Настоящая любовь реальна. Это когда частичка твоей души находится в другом человеке».
- «Любовь — чувство, способное разбить сердце и быстро его починить».
- «Прощение — лучшее лекарство для отношений».
- «Мечта на двоих — это реальность».
- «Даже самая крепкая любовь не терпит разлуки».
- «Любовь можно сравнить с двухполосной дорогой, в которой одна всегда на ремонте».
- «Любовь есть везде — просто хорошо поищите ее».
- «Легко любить человека за что-то, а ты полюби просто так».
- «Где бы мы ни были. Если мы вдвоем — мы дома».
- «Не люби того человека, который относится к тебе, как к обыденности.
Таких примеров очень много. В дальнейшем можно использовать парные статусы в ВК из Tik Tok, или в других социальных сетях. Главное — быть оригинальным и постараться добавить в профиль по-настоящему близкую фразу.
В комментариях расскажите, планируете ли вы ставить парный статус в Тик Ток, и какой вариант больше всего нравится (в том числе не из приведенного списка).
Событийный потенциал: обзор – PMC
1. Блэквуд Д.Х.Р., Мьюир В.Дж. Когнитивные потенциалы мозга и их применение. Британский журнал психиатрии. 1990; 157: 96–101. [PubMed] [Google Scholar]
2. Bramon E, Rabe-Hesketh S, Shama P, et al. Метаанализ сигналов Р300 и Р50 при шизофрении. Исследования шизофрении. 2004; 70: 315–329. [PubMed] [Google Scholar]
3. Клеменц Б. А., Гейер М. А., Брафф Д. Л. Супрессия P50 у пациентов с шизофренией и у здоровых людей: методологический анализ. Биологическая психиатрия. 1997;41:1035–1044. [PubMed] [Google Scholar]
4. Clementz B.A., Geyer M.A., Braff D.L., et al. Плохая супрессия Р50 у больных шизофренией и их биологических родственников первой степени родства. Американский журнал психиатрии. 1998; 155:1691–1694. [PubMed] [Google Scholar]
5. De Pascalis V, Strippoli E, Riccardi P, et al. Личность, потенциал, связанный с событиями (ERP) и частота сердечных сокращений (HR) в эмоциональной обработке текста. Перс. Индивид. Дифф. 2004; 36: 873–891. [Google Scholar]
6. Hansenne M, Pitchot W, Gonzalez-Moreno A, et al. Суицидальное поведение при депрессивном расстройстве, потенциальное исследование, связанное с событием. Биологическая психиатрия. 1996;40:116–122. [PubMed] [Google Scholar]
7. Kornhuber H.H, Deecke L. Электрический признак участия мезиальной «дополнительной» моторной коры в произвольных движениях пальцев человека. Исследования мозга. 1978; 159: 473–476. [PubMed] [Google Scholar]
8. Кутас М., Линдамуд Т., Хиллард С. Корнблюм С., Рекуин Дж. В подготовительных состояниях и процессах. Хиллсдейл, Эрлбаум: 1984. Вероятность слов и связанные с событиями потенциалы при обработке предложений; стр. 217–238. [Академия Google]
9. Лайт Г. А., Брафф Д. Л. Дефицит сенсорных ворот при шизофрении. Можем ли мы проанализировать эффекты лекарств, употребления никотина и изменения клинического состояния? Клинические неврологические исследования. 2003; 3:47–54. [Google Scholar]
10. Metzger L.J., Orr S.P., Lasko N.B., et al. Доказательства уменьшения амплитуды P3 при посттравматическом стрессовом расстройстве. Энн Н.Ю. Академия наук. 1997; 821: 499–503. [PubMed] [Google Scholar]
11. Miltner WHR, Krieschel S, Gutberlet I. P300 — сигнатура для обработки угроз у фобических субъектов. Психофизиология. 2000;37:71. [Академия Google]
12. Милован Д.Л., Барибо Дж., Рот Р.М., и соавт. ERP-исследование предвнимательной слуховой обработки при рефрактерной к лечению шизофрении. Познание мозга 2004;55(2):355–7. [PubMed] [Google Scholar]
13. Näätänen R, Tiitinen H. Обработка слуховой информации, индексированная негативностью несоответствия. В: Сабурин М., Крейк Ф.И.М., Роберт М., редакторы. Достижения в области психологии. Биологические и когнитивные аспекты, 2, Psychology Press/Erlbaum (UK) Taylor and Francis, Hove, UK. 1998. С. 145–170. [Академия Google]
14. Neylan T.C, Fletcher D.J, Lenoci M, et al. Сенсорный шлюз при хроническом посттравматическом стрессовом расстройстве: снижение слухового подавления P50 у ветеранов боевых действий. Биол психиатрия. 1999;46(12):1656–1664. [PubMed] [Google Scholar]
15. O’Donnell S, Hesselbrock V, Tasmann A, et al. Амплитуда P3 в двух разных задачах снижена у молодых мужчин с отцовским алкоголизмом в анамнезе. Алкоголь. 1987; 4: 320–330. [PubMed] [Google Scholar]
16. O’Donnell B. F, Vohs J. L, Hetrick W. P, et al. Потенциальные аномалии, связанные со слуховыми событиями, при биполярном расстройстве и шизофрении. Международный журнал психофизиологии. 2004; 53:45–55. [PubMed] [Академия Google]
17. Олинси А., Мартин Л. Уменьшенное подавление слухового вызванного потенциала P50 у субъектов с биполярным расстройством с психозом в анамнезе. Американский журнал психиатрии. 2005; 162:43–49. [PubMed] [Google Scholar]
18. Остерхаут Л., Холкомб П. Дж. Потенциалы мозга, связанные с событиями, вызванные синтаксической аномалией. Журнал памяти и языка. 1992; 31: 785–786. [Google Scholar]
19. Патрик С. Дж., Бернат Э. М., Мэлоун С. М., Яконо В. Г., Крюгер Р. Ф., МакГью М. Дж., Бернат Э. М. 2006; 43(1):84–9.2. [Бесплатная статья PMC] [PubMed] [Google Scholar]
20. Peterson N.N, Schroeder C.E, Arezzo J.C, et al. Нейронные генераторы ранних корковых соматосенсорных вызванных потенциалов у бодрствующей обезьяны. Электроэнцефалография и клиническая нейрофизиология. 1995; 96: 248–260. [PubMed] [Google Scholar]
21. Salisbury D. F, Shenton M. E, McCarley R. W. Топография P300 отличается при шизофрении и маниакальном психозе. Биологическая психиатрия. 1999; 45: 98–106. [PubMed] [Google Scholar]
22. Schulze K.K., Hall M.H, McDonald C. et al. P50 подавление слуховых вызванных потенциалов у пациентов с биполярным расстройством с психотическими чертами и их здоровых родственников. Биол психиатрия. 2007;62(2):121–8. [PubMed] [Академия Google]
23. Симлаи Дж., Низами С.Х. Потенциалы, связанные с событиями-P300, CNV, MRCP при шизофрении, ранее не получавшей и не получавшей лекарств. Диссертация представлена в Университет Ранчи, в частичном выполнении требования степени доктора медицины в области психиатрии. 1998 [Google Scholar]
24. Skinner R.D., Rasco L.M., Fitzgerald J, et al. Снижение сенсорного порога потенциала P1 у жертв изнасилования и ветеранов боевых действий с посттравматическим стрессовым расстройством. Подавить тревогу. 1999;9(3):122–30. [PubMed] [Академия Google]
25. Sutton S, Braren M, Zubin J, et al. Вызванные потенциальные корреляты неопределенности стимула. Наука. 1965; 150: 1187–1188. [PubMed] [Google Scholar]
26. Turan T, Esel E, Karaaslan F, et al. Слуховые потенциалы, связанные с событиями, при панических и генерализованных тревожных расстройствах. Биологическая психиатрия. 2002; 26: 123–126. [PubMed] [Google Scholar]
27. Уолтер В. Г. Медленные потенциальные волны в человеческом мозгу, связанные с ожиданием, вниманием и принятием решений. Arch Psychiatr Nervenkr. 1964;206:309–322. [PubMed] [Google Scholar]
28. Винклер И., Кармос Г., Няэтэнен Р. Адаптивное моделирование необслуживаемой акустической среды, отраженное в несоответствии негативного событийного потенциала. Исследования мозга. 1996; 742: 239–252. [PubMed] [Google Scholar]
Блог Khronos — The Khronos Group Inc
Введение
Khronos представила новое расширение под названием VK_EXT_graphics_pipeline_library, которое позволяет компилировать шейдеры намного раньше, чем при полном времени создания объекта состояния конвейера (PSO). Используя это расширение, я смог избежать многих причин зависаний кадров из-за позднего создания PSO во время отрисовки в средстве визуализации Source 2 Vulkan. Спецификация расширения была выпущена сегодня, и вскоре последует поддержка SDK, вы можете отслеживать статус выпуска на https://github.com/KhronosGroup/Vulkan-Docs/issues/1808.
Движок Source 2 в значительной степени был разработан на основе модели Direct3D11, в которой шейдеры создаются независимо, а объекты состояния предоставляются во время отрисовки. Таким образом, существует значительное количество информации, которую наш движок не знает в то время, когда шейдеры предоставляются нашей абстракции рендеринга: спаривание шейдеров на разных этапах, форматы вершин, форматы кадрового буфера, состояние глубины/стенсила, информация об области просмотра, состояние MSAA. , и ряд других. Это означает, что мы откладываем создание PSO до времени отрисовки, что может привести к задержкам, особенно при холодном кеше конвейера.
Прежде чем подробно рассказать о том, как мы интегрировали VK_EXT_graphics_pipeline_library в наш движок, я хочу сделать пару предостережений по поводу этого расширения. Прежде всего следует сказать, что есть очень веская причина, по которой Vulkan был разработан таким образом, чтобы работа по компиляции шейдеров происходила во время создания PSO с полным просмотром всего требуемого состояния. В то время как драйверы Direct3D11 создают иллюзию полной компиляции только с байтовым кодом шейдера, правда в том, что внутри драйверов происходят огромные героические усилия, чтобы сделать это так. Драйверы часто выполняют фоновую компиляцию в нескольких потоках, и на самом деле Direct3D11 не может гарантировать, что компиляция шейдера не произойдет во время отрисовки. Однако на практике поставщики графических процессоров исключительно хорошо справились с этой героической задачей, и типичный пользовательский опыт с драйвером Direct3D11 приводит к значительно меньшим задержкам, чем наш модуль рендеринга Vulkan без полностью предварительно прогретых конвейерных кешей. Тем не менее, приложения Vulkan, которые могут заранее знать все состояния шейдеров и конвейеров, гарантированно избегают задержек, поскольку работа по компиляции шейдеров будет полностью выполняться во время создания PSO. В то время как с Direct3D11 такой гарантии нет.
Второе предостережение заключается в том, что если вы разрабатываете новый движок для Vulkan, вам действительно следует подумать, является ли хорошей идеей иметь большое количество перестановок шейдеров. Некоторые игры, такие как DOOM 2016/DOOM Eternal, сохранили очень небольшое количество PSO. Подробное описание этого пространства проектирования выходит за рамки этого поста в блоге, но я настоятельно рекомендую прочитать эту серию блогов из двух частей, в которой объясняется, почему многие движки имеют большое количество перестановок шейдеров (что является одной из основных причин многих задержек при компиляции во время отрисовки). ): Проблема перестановки шейдеров: как мы к этому пришли?
После всего сказанного Khronos слышал от многих разработчиков (включая нас), что в некоторых сценариях просто невозможно заранее знать все состояние PSO. Частично это привело к созданию нескольких новых расширений (ядро в Vulkan 1.3), которые позволяют сделать гораздо больше динамических состояний PSO. VK_EXT_graphics_pipeline_library делает еще один шаг вперед, позволяя полностью свести шейдеры к машинным инструкциям задолго до начала отрисовки. Благодаря этому расширению движки в стиле Direct3D11, такие как наш, могут обеспечить сравнимые (или даже лучшие!) возможности с компиляцией шейдеров по сравнению с Direct3D11. В следующих разделах я представлю обзор VK_EXT_graphics_pipeline_library и подробно опишу процесс интеграции расширения в движок Source 2.
Обзор библиотеки графических конвейеров
Тем, кто ищет подробный обзор расширения VK_EXT_graphics_pipeline_library, настоятельно рекомендую ознакомиться с документом предложения. Вкратце, расширение разбивает PSO на четыре отдельных этапа конвейера вместо одного монолитного конвейера:
- Vertex Input Interface
- Шейдеры перед растеризацией
- Фрагментный шейдер
- Интерфейс вывода фрагментов
Интерфейс ввода вершин содержит информацию, которая обычно предоставляется объекту состояния полного конвейера с помощью VkPipelineVertexInputStateCreateInfo и VkPipelineInputAssemblyStateCreateInfo.
Для нашего движка эта информация неизвестна до момента отрисовки, поэтому конвейер для этого этапа по-прежнему хэшируется и создается во время отрисовки. Однако этот этап не имеет шейдерного кода и поэтому драйвер может его быстро создать, да и этих объектов тоже довольно мало.Шейдеры перед растеризацией содержат этапы вершинного, мозаичного и геометрического шейдера вместе с состоянием, связанным с VkPipelineViewportStateCreateInfo, VkPipelineRasterizationStateCreateInfo, VkPipelineTessellationStateCreateInfo и VkRenderPass (или динамической отрисовкой). Это может звучать как больше информации, чем ваш движок мог бы знать во время создания шейдера, это определенно было для нас. Однако ключевой момент заключается в том, что при объединении конвейерных библиотек с расширениями динамического состояния единственной информацией, которая действительно необходима для создания шейдера до растеризации, является код SPIR-V и схема конвейера. Это обсуждается более подробно ниже.
Этап фрагментного шейдера содержит фрагментный шейдер вместе с состоянием в VkPipelineDepthStencilStateCreateInfo и VkRenderPass (или динамическом рендеринге — хотя в этом случае требуется только viewMask). Как и на этапе предварительной растеризации, в сочетании с динамическим рендерингом вы можете создать конвейер фрагментного шейдера, используя только SPIR-V и макет конвейера. Это позволяет драйверу выполнять тяжелую работу по снижению аппаратных инструкций для предварительной растеризации и фрагментных шейдеров с очень небольшим количеством информации.
Наконец, есть интерфейс вывода фрагментов, который содержит VkPipelineColorBlendStateCreateInfo, VkPipelineMultisampleStateCreateInfo и VkRenderPass (или динамическую визуализацию). Как и в случае интерфейса ввода вершин, на этом этапе требуется информация, которую мы не знаем до момента отрисовки, поэтому это состояние также хешируется, и конвейер интерфейса вывода фрагментов создается во время отрисовки. Ожидается, что он будет создан очень быстро, а также будет относительно небольшим по количеству.
После создания всех четырех отдельных этапов библиотеки конвейера приложение может выполнить окончательную связь с полным конвейером. Ожидается, что эта последняя ссылка будет очень быстрой — драйвер сделает компиляцию шейдера для отдельных этапов, и поэтому связь может быть выполнена во время отрисовки по разумной цене. Именно здесь проявляется большое преимущество расширения: мы заранее создали все наши прерастровые и фрагментные шейдеры, хешировали небольшое количество входных/выходных интерфейсов вершин и можем по запросу создать быстрый связанный конвейер. библиотеку во время отрисовки, что позволяет избежать ужасной заминки.
Ранняя компиляция шейдеров с конвейерными библиотеками
В нашем движке шейдеры предоставляются нашему уровню абстракции рендеринга во время загрузки наших материалов (что происходит во время запуска или экранов загрузки). В Direct3D11 это напрямую приводит к вызову методов IDirect3D11Device::Create*Shader. В Vulkan, до VK_EXT_graphics_pipeline_library, единственное, что мы могли сделать в то время, это vkCreateShaderModule. Это передает SPIR-V драйверу, но на самом деле не запускает какую-либо значительную компиляцию шейдера, поскольку драйвер Vulkan должен сделать это во время создания PSO, когда известны все этапы шейдера, макеты наборов дескрипторов и требуемое состояние.
Таким образом, наш модуль визуализации Vulkan хранит хэш состояния и создаст полный конвейер во время отрисовки, когда все это состояние будет окончательно известно. С помощью VK_EXT_graphics_pipeline_library мы теперь можем компилировать шейдеры одновременно с Direct3D11. В следующих разделах я опишу изменения, которые были необходимы, чтобы сделать это возможным.
Динамическое состояние
Хотя использование VK_EXT_graphics_pipeline_library не требует, чтобы приложения использовали динамическое состояние, на практике для нашего движка они неразрывно связаны друг с другом. Без использования динамического состояния мы не смогли бы создавать конвейерные библиотеки для этапов предварительной растеризации и фрагментного шейдера во время загрузки материала. Сразу отмечу, что мы создаем пайплайны предрастеризации только для вершинных шейдеров и не заморачиваемся с шейдерами тесселяции и геометрии. У нас не так много случаев, когда мы используем геометрические шейдеры и шейдеры тесселяции, поэтому для целей остальной части этой статьи этап предварительной растеризации для нас относится только к вершинным шейдерам.
Если конвейер использует шейдеры тесселяции или геометрии, мы возвращаемся к полному созданию PSO.Конкретные расширения динамического состояния, которые нам требуются в нашем движке, чтобы иметь возможность использовать VK_EXT_graphics_pipeline_library, следующие:
- VK_EXT_extended_dynamic_state
- ВК_EXT_extended_dynamic_state2
- ВК_ХР_динамический_рендеринг
К счастью, все эти три расширения являются частью Vulkan 1.3, поэтому можно ожидать, что они будут поддерживаться везде, где поддерживается VK_EXT_graphics_pipeline_library.
Для вершинного шейдера (конвейерная библиотека до растеризации) информация в следующей таблице должна быть динамической, чтобы мы могли немедленно создать конвейерную библиотеку. То есть мы не знаем область просмотра, смещение глубины, режим отбраковки, цели рендеринга (или форматы) в то время, когда нам предоставляется вершинный шейдер, поэтому, сделав все это состояние динамическим, мы можем создать конвейерную библиотеку до растеризации.
Динамическое состояние этапа перед растеризацией
Состояние | Динамическое состояние |
---|---|
Вкпайпелиневиевпортстатекреатеинфо | VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT |
VkPipelineRasterizationStateCreateInfo | VK_DYNAMIC_STATE_DEPTH_BIAS VK_DYNAMIC_STATE_CULL_MODE_EXT VK_DYNAMIC_STATE_FRONT_FACE_EXT |
VkRenderPass | Динамический (VK_NULL_HANDLE) с VK_KHR_dynamic_rendering |
Как и в случае с вершинным шейдером, для фрагментного шейдера существует множество состояний, о которых мы не знаем во время загрузки SPIR-V. В частности, мы не знаем состояния глубины/трафарета и рендерпасса, поэтому делаем их динамическими, как описано в следующей таблице.
Динамическое состояние этапа фрагмента
Состояние | Динамическое состояние |
---|---|
VkPipelineDepthStencilStateCreateInfo | VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK VK_DYNAMIC_STATE_STENCIL_WRITE_MASK VK_DYNAMIC_STATE_STENCIL_REFERENCE VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT VK_DYNAMIC_STATE_3WRITE_STATER 6 VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT VK_DYNAMIC_STATE_STENCIL_OP_EXT VK_DYNAMIC_STATE_DEPTH_BOUNDS VK_DYNAMIC_STABLE_DEPTEST_ENABLES |
VkRenderPass | Динамический (VK_NULL_HANDLE) с VK_KHR_dynamic_rendering |
Схема конвейера
С учетом динамических состояний, использованных в предыдущем разделе, единственная дополнительная информация, которая нам нужна для создания библиотек конвейера вершинных/фрагментных шейдеров, — это макет конвейера. На первый взгляд может показаться, что это довольно простая информация для сбора. Из отражения шейдера мы знаем, какие дескрипторы используются в шейдере, поэтому мы должны знать макеты наборов дескрипторов для каждого этапа. Это было бы очень просто, если бы вершинный и фрагментный шейдеры создавались вместе в паре, но это работает иначе (и я не представляю, сколько движков на базе Direct3D11 работает). Хотя оба наших шейдера содержатся в одном и том же файле, до момента отрисовки не известно, какая пара вершинных/фрагментных шейдеров будет использоваться вместе. Например, в проходе только по глубине вершинный шейдер A связан с фрагментным шейдером A (т. е. который извлекает текстуру для выполнения альфа-теста). В прямом проходе вершинный шейдер A будет соединен с фрагментным шейдером B, который выполняет полное прямое освещение. И на самом деле есть много других сценариев, где точная комбинация не известна до момента розыгрыша.
Это создает проблему для библиотеки VK_EXT_graphics_pipeline_library, которой требуется полный макет конвейера, когда мы создаем этап предварительной растеризации или фрагментного шейдера. У нас просто нет этой информации — мы знаем дескрипторы, потребляемые этапом, который мы компилируем, но не другим этапом. К счастью, VK_EXT_graphics_pipeline_library содержит флаг, который позволяет вам создать макет конвейера, в котором каждому этапу нужны только используемые им наборы дескрипторов (VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_KHR). Пока макеты наборов дескрипторов совпадают с любыми общими наборами дескрипторов, мы можем не предоставлять другие макеты наборов дескрипторов этапа во время создания отдельных библиотек этапов.
Один из простых способов справиться с этим — использовать разные наборы дескрипторов для каждого этапа шейдера. Вы просто предоставляете структуру конвейера, содержащую наборы дескрипторов для каждого этапа, для каждой библиотеки. Наше ядро, однако, этого не делает. Причина, по которой мы этого не делаем, частично связана с производительностью (чтобы мы могли выделить/обновить/связать один набор дескрипторов для динамических ресурсов в VS/FS вместо двух) и частично из-за того, что некоторые реализации Vulkan все еще имеют очень маленькую общее количество поддерживаемых наборов дескрипторов (в частности, некоторые мобильные графические процессоры имеют ограничение в 4).
Наборы дескрипторов разделов нашего движка примерно следующие:
- Набор дескрипторов 0 — динамические ресурсы не привязаны до времени отрисовки для всех этапов
- Набор дескрипторов 1 — статические дескрипторы вершинного шейдера
- Набор дескрипторов 2 — статические дескрипторы фрагментного шейдера
- Набор дескрипторов 3 — дескрипторы без привязки (общие для всех этапов)
Таким образом, для библиотек графических конвейеров мы создаем макеты конвейеров следующим образом:
- Набор дескрипторов 0 — «убер-набор», который содержит все возможные потребляемые динамически связанные ресурсы, которые могут совместно использоваться в VS/FS
- Набор дескрипторов 1 — предоставляется только библиотеке предварительной растеризации (вершинному шейдеру), если она используется
- Набор дескрипторов 2 — предоставляется только для библиотеки фрагментных шейдеров, если она используется
- Набор дескрипторов 3 — предоставляется для обоих этапов, если используется
Другими словами, библиотека вершинных шейдеров создается с конвейерной компоновкой, содержащей наборы дескрипторов 0, 1 и 3. Библиотека фрагментных шейдеров создается с конвейерной компоновкой, содержащей наборы дескрипторов 0, 2 и 3. Мы знаем, что наборы 1, 2 и 3 будут иметь идентичные макеты на всех используемых этапах, и мы также гарантировали это для набора дескрипторов 0, сделав его «убер-набором», содержащим все возможные потребляемые ресурсы.
И последнее замечание: схема конвейера должна также содержать неизменяемые сэмплеры и константы push. Для нас push-константа является общим ресурсом для разных стадий, поэтому у нас есть информация, чтобы применить ее к обеим стадиям шейдера при создании макетов для каждой стадии (она уже не может различаться между стадиями из-за того, как мы ее используем). Точно так же неизменяемое состояние сэмплера известно заранее, поэтому мы можем включить его в макет конвейера.
Интерфейс ввода вершин и интерфейс вывода фрагментов
Используя то, что я описал до сих пор, мы теперь можем сразу скомпилировать наши вершинные и фрагментные шейдеры, используя только SPIR-V и компоновку конвейера. Нам нужно построить еще два этапа: входной интерфейс вершины и выходной интерфейс фрагмента. Эти биты информации все еще неизвестны до момента отрисовки, поэтому мы хешируем подмножество информации, необходимой для интерфейса ввода вершины и интерфейса вывода фрагмента. Эти этапы должны быть небольшими по количеству (я измерил менее сорока в рабочей нагрузке нашего движка), а также быстро создаваться. В отличие от других этапов, для компиляции драйвера не требуется кода шейдера.
Окончательный связанный конвейер
Когда все четыре этапа готовы, мы можем создать окончательную библиотеку связанного конвейера непосредственно перед рисованием с использованием нового материала. Есть некоторые решения, которые необходимо принять при создании окончательного связанного конвейера, которые потенциально обменивают быстрое время соединения на ЦП на снижение производительности графического процессора. То есть, если вы создали отдельные библиотеки конвейеров с помощью VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT, вы можете выбрать, хотите ли вы, чтобы драйвер создавал окончательный связанный конвейер с межэтапной оптимизацией. Ожидается, что выполнение кросс-стадийной оптимизации увеличит время ЦП за счет повышения производительности графического процессора.
Наша цель — добиться отсутствия задержек во время отрисовки, поэтому мы изначально создаем наши связанные библиотеки без набора VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT. Ожидается, что без установки этого бита создание связанной конвейерной библиотеки в драйвере будет происходить очень быстро. Это будет особенно быстро в реализациях, которые устанавливают VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT.graphicsPipelineLibraryFastLinking (что верно, по крайней мере, для всех поставщиков настольных компьютеров — NVIDIA, AMD и Intel). Ожидается, что даже в тех реализациях, которые не задают GraphicsPipelineLibraryFastLinking, связывание библиотеки конвейера будет значительно быстрее, чем полное соединение PSO.
После создания конвейерной библиотеки с быстрым связыванием без оптимизации мы запускаем компиляцию конвейерной библиотеки с VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT в фоновом потоке и подкачиваем ее, когда она будет готова. Таким образом, мы избегаем заминок при первом создании конвейерной библиотеки, но можем восстановить полную производительность графического процессора, как только у нас будет время выполнить кросс-стадийную оптимизацию в фоновом режиме. Этот выбор полностью зависит от приложения: некоторые приложения, менее чувствительные к заиканиям, могут всегда создавать конвейерную библиотеку, связанную с несколькими этапами. Они по-прежнему должны ожидать значительного улучшения ЦП по сравнению с созданием полного PSO, поскольку большая часть компиляции будет перемещена раньше.
Заключение
VK_EXT_graphics_pipeline_library позволяет избежать задержек во время отрисовки за счет более ранней компиляции шейдеров. Хотя это связано с рядом компромиссов, мы считаем, что для некоторых движков, ограниченных существующим контентом / дизайном, это будет чрезвычайно полезно для уменьшения основной причины заминок конвейера. Сочетание библиотек графического конвейера и динамического состояния обеспечивает повышенную гибкость, позволяющую движкам избежать задержки компиляции шейдера до времени отрисовки.