Войти
ПрограммированиеФорумОбщее

[Win64] Прошу потестировать мои наработки по движку (2 стр)

Advanced: Тема повышенной сложности или важная.

Страницы: 1 2 3 4 5 Следующая »
#15
5:24, 17 дек. 2015

BUzer
> Систему разрешений придумали для того, что однажды определённые разрешения тебе могут и не выдать.
Расшифруй что ты имел ввиду. Я имею ввиду то, что виндовая система привилегий пользователей позволяет работать не только в режиме "пользователь" и "админ", то и гибко управлять правами каждого конкретного пользователя или группы предоставляя им только те привилегии, которые им нужны.

> Там фаллбэк есть, надеюсь?
На выделение памяти? Есть конечно. Ведь её можно не выделить ещё и по причине фрагментации.


#16
10:21, 17 дек. 2015

Bishop
Если в Aion-style dragndropнуть на самого себя, иконка пропадает. Баг или фича?

При запуске оно падает:

+ Показать

Скажи, а нафига было создавать себе проблемы? Чем new не устраивает?

#17
12:09, 17 дек. 2015

Bishop

OnClick form CSCL_CheckBox: 11  10
OnClick form CSCL_CheckBox: 11  10
OnClick form CSCL_ImageButton: 70       8
OnClick form CSCL_ImageToggleButton: 74 8
[+]2015.12.17 12:06:43.679 [0] SE2.Init >> Started
[+]2015.12.17 12:06:43.687 [0] SE2_MemMng.Init >> Started
[E]2015.12.17 12:06:43.687 [0] SE2_MemMng.AllocReg >> Can`t alloc memory via lar
ge pages
[+]2015.12.17 12:06:43.689 [0] SE2_MemMng.Init >> Completed successfully
[+]2015.12.17 12:06:43.690 [0] SE2_TasksIO.Init >> Started
[+]2015.12.17 12:06:43.690 [0] SE2_TasksIO.Init >> Completed successfully
[+]2015.12.17 12:06:43.691 [0] SE2_Resources.Init >> Started
[+]2015.12.17 12:06:43.691 [1] OIOThread.Proc >> Started
[+]2015.12.17 12:06:43.704 [0] SE2_Resources.Init >> Completed successfully
[I]2015.12.17 12:06:43.704 [0] CLoadingScreen.RCPrefetching >> OK
[+]2015.12.17 12:06:43.705 [0] SE2_Application.Init >> Started
[+]2015.12.17 12:06:43.715 [0] SE2_Application.Init >> Completed successfully
[+]2015.12.17 12:06:43.716 [0] SE2DX11.Init >> Started
[C]2015.12.17 12:06:43.834 [0] SE2DX11.Init >> Can`t create swapchain
[+]2015.12.17 12:06:43.834 [0] SE2DX11.Init >> Failed
[+]2015.12.17 12:06:43.834 [0] SE2.Uninit >> Started
[+]2015.12.17 12:06:43.834 [0] SE2_Tasks.Uninit >> Started
[+]2015.12.17 12:06:43.834 [0] SE2_Tasks.Uninit >> Completed
[+]2015.12.17 12:06:43.834 [0] SE2_Audio.Uninit >> Started
[+]2015.12.17 12:06:43.834 [0] SE2_Audio.Uninit >> Completed
[+]2015.12.17 12:06:43.834 [0] SE2DX11SCLRender.Uninit >> Started
[+]2015.12.17 12:06:43.834 [0] SE2DX11SCLRender.Uninit >> Completed
[+]2015.12.17 12:06:43.834 [0] SE2DX11.Uninit >> Started
[+]2015.12.17 12:06:43.858 [0] SE2DX11.Uninit >> Completed
[+]2015.12.17 12:06:43.858 [0] SE2_Application.Uninit >> Started
[+]2015.12.17 12:06:43.861 [0] SE2_Application.Uninit >> Completed
[+]2015.12.17 12:06:43.861 [0] SE2_TasksIO.UnInit >> Started
[+]2015.12.17 12:06:43.861 [1] OIOThread.Proc >> Complited
[+]2015.12.17 12:06:43.862 [0] SE2_TasksIO.UnInit >> Completed
[+]2015.12.17 12:06:43.862 [0] SE2_Resources.Uninit >> Started
[+]2015.12.17 12:06:43.862 [0] SE2_Resources.Uninit >> Completed
[+]2015.12.17 12:06:43.862 [0] SE2_MemMng.Uninit >> Started
[+]2015.12.17 12:06:43.864 [0] SE2_MemMng.Uninit >> Completed
[+]2015.12.17 12:06:43.864 [0] SE2.Uninit >> Completed

Заморочено как-то все) Мне тоже интересно, чем обусловлен собственный менеджер памяти?

Кстати, App11 на Win 8 не запустилось.

#18
15:50, 17 дек. 2015

Bishop
1) Ты менеджер через Heap(Virtual,Global)Alloc организуешь? о_0 Если собственный менеджер, то зачем эти winapi функции?
2) Все в одном потоке :( Грустно...
3) Элементы "тащатся" за мышью) Отстают, а потом догоняют, жуть как нервирует :) Например при перетаскивании слайдера быстро, он отстает, и как шлейф себя ведет. Так не должно быть.
4) Пчму не ресайзиться главное окно?! :)
5) Когда хватаешь слайдер за крайнюю часть, он "выравнивается" чтоб-мышь-в-середине. Не надо так.

#19
16:31, 17 дек. 2015

Bishop

> пользователя дав ему привилегию "lock pages in memory"
Может быть софт должен быть написан так, чтобы не нужно было трогать политики безопасности ОС?

#20
17:24, 17 дек. 2015

у меня первая игра на хоть и была на Direct Draw двадешая фигня, зато распределяла память загружая kernel mode драйвер, и выделяла физический пул!
но патом я решил что операционке и другим программам проще, когда память аллоцируется стандартно :)

#21
21:00, 17 дек. 2015

2all
Сейчас основное внимание на проблемах со звуком у Che@ter. Суть проблемы понятна, но там действительно есть серьёзные проблемы.

-Eugene-
> Если в Aion-style dragndropнуть на самого себя, иконка пропадает. Баг или фича?
Как именно это выглядит? По идеи если в ячейке есть элемент то он меняется местами с тем что ты тащишь. Если сбрасывать на такой-же элемент то визуально не должно происходить ничего (в тесте то всего 4 типа элементов). Или у тебя вообще завершается перетаскивание с пропаданием элемента? Если да, то попробуй описать способ воспроизведения бага.

-Eugene-
> [C]2015.12.17 10:19:58.962 [0] SE2DX11.Init >> Can`t create swapchain
А вот это уже интерестно. Мне пока не очень ясно откуда вообще у такого ноги растут. Опиши свою конфигурацию (видюхи, как подключен монитор и какое разрешение экрана + глубина цвета, сколько мониторов, какой-то surround и т.д.). Плюс позже добавлю билд с более детальным анализом этого места. Т.к. по идеи именно там вообще глючить нечему.

> [A]2015.12.17 10:19:58.963 [0] Unhandled exception ESIGSEGV
Исправил

Osiris
Тоже самое что и -Eugene- про swapchain. Пока ума не приложу в чём дело.

P.S. Остальным отвечу позже, щас всё внимание багам.

#22
22:29, 17 дек. 2015

Добавил второй патч: http://download.catcompany.org/tmp/SE2Test-16.12.2015-patch2.rar
Прошу протестировать его Che@ter, -Eugene- и Osiris.

-Eugene-
> Скажи, а нафига было создавать себе проблемы? Чем new не устраивает?
Да очень много чем: выравнивание (ряд операций требует выравнивания 512 байт или вообще страница), непредсказуемая скорость работы, outofmemory или своп когда вздумается и т.д.

Zloten
> 1) Ты менеджер через Heap(Virtual,Global)Alloc организуешь? о_0 Если собственный менеджер, то зачем эти winapi функции?
Ты читал что я написал ранее? VirtualAlloc, откуда ты слово Heap взял?
Вот тебе кусок кода (условный, т.к. в реальности там несколько хитрее) отвечающий за выделение основного объёма памяти:

+ Показать

> 2) Все в одном потоке :( Грустно...
А запускающему приложению больше и не надо (у системы обновления работы с диском по AIO). А вот в AppDX11 там полная многопоточка (та же память реально комитится не в основном потоке, т.к. отработка региона в 16ГБ занимает ~3 сек)

> 3) Элементы "тащатся" за мышью) Отстают, а потом догоняют, жуть как нервирует
> :) Например при перетаскивании слайдера быстро, он отстает, и как шлейф себя
> ведет. Так не должно быть.
Вот с этим проблема. Окно перерисовывается со скоростью ~30 FPS, а курсор мыши аппаратный. Я спецом смотрел, даже когда таскаю большую иконку в винде по рабочему столу такой эффект есть. Хотя и чуть меньше чем у меня :( Что с этим делать пока не знаю, рассмотрю любые предложения :)

> 4) Пчму не ресайзиться главное окно?! :)
А оно и не должно. У лаунчера в этом нет необходимости. А у основного приложения обычно полноэкранный режим (там всё задаётся). Это же просто пример, поэтому все размеры захардкодены.

> 5) Когда хватаешь слайдер за крайнюю часть, он "выравнивается" чтоб-мышь-в-середине. Не надо так.
Это не баг. Пока так и планировалось. Но я не настаиваю что так верно. Готов выслушать твои аргументы почему не надо, и если они разумные - внесу изменение этого поведения в список своих задач.

#23
22:40, 17 дек. 2015

Bishop
> Как именно это выглядит? По идеи если в ячейке есть элемент то он меняется
> местами с тем что ты тащишь
Не на такой же, а на самого себя. Воспроизведение очевидно.

> Да очень много чем: выравнивание (ряд операций требует выравнивания 512 байт
> или вообще страница), непредсказуемая скорость работы, outofmemory или своп
> когда вздумается и т.д.
Если ты выделяешь несколько больших блоков в начале, то не пофиг ли? Подровнять память можно и ручками, если вдруг надо - не так уж и жалко пару кило(мега?)байт из 2 ГБ.

> А вот это уже интерестно. Мне пока не очень ясно откуда вообще у такого ноги
> растут. Опиши свою конфигурацию (видюхи, как подключен монитор и какое
> разрешение экрана + глубина цвета, сколько мониторов, какой-то surround и
> т.д.). Плюс позже добавлю билд с более детальным анализом этого места. Т.к. по
> идеи именно там вообще глючить нечему.
Ноутбук, Intel HD + GTM 840, обычный монитор 1368x768.

+ Показать

PS: Принудительный запуск на NVidia не помог. Не мудришь ли ты часом с выбором адаптера?..

#24
23:11, 17 дек. 2015

Ghost2
> Может быть софт должен быть написан так, чтобы не нужно было трогать политики безопасности ОС?
Ну достали :) Сейчас развёрнуто напишу по 2-м фишкам в моём движке, которые этого требуют. Почему они это требуют и почему в ОС это не включено по умолчанию.

SeLockMemoryPrivilege
Суть этой привилегии в том, что её обладатель может тем или иным способом размещать в памяти страницы, которые невозможно сбросить в своп. Почему это привилегия - потому что такими страницами в теории можно очень сильно замедлить систему заставив все остальные процессы очень активно использовать своп. Мало того, механизм свопа Windows не умеет свопить страницы отличные от 4КБ (хотя технически это возможно, и пусть для страниц в 1ГБ это глупо, но для 2МБ вполне может быть юзабельно (посмотрите на линейную скорость и кол-во IOPS обычных дисков - им что 4КБ что 2МБ)). Мало того, сейчас большинство вообще выключает своп, т.к. он очень вредит потребительским SSD (хотя конечно если у тебя в компе стоит нормальный SSD от 1-2к$ то это не проблема, но тогда у тебя и RAM будет от 64ГБ).

Кроме того фокус ещё и в том, что ресурсоёмкая игра подразумевает что она работает на компьютере одна (системные процессы не в счёт, т.к. по нынешним размерам ОЗУ их не много надо). Я не буду рассматривать случаи профессионального использования когда запущены сразу много тяжелых приложений, т.к. это не об играх. Собственно поэтому у меня практически вся память выделяется сразу и не отдаётся назад до конца работы приложения.

Теперь о больших страницах. Сейчас размеры ОЗУ уже давно даже не 128-256МБ. А когда страничная память только появилась (и был заложен размер страницы 4КБ) на дворе был 386-й процессор. Кол-во страниц было небольшим и кеши MMU справлялись с этим хорошо. Современный процессор имеет кеш MMU всего на 64 элемента (для страниц 4КБ и 2МБ и 4 элемента для страниц 1ГБ - из-за этого их пока использовать стрёмно). Это 256КБ ОЗУ (а ещё помним про асоциативность, так что не факт что все линейки будут использованы). Блин, да это размер L2 кеша, у процессоров уже L3 кеш в МБ (не серверные процы с 20МБ кеша - реальность). В таких уже разумно использовать страницы большего размера.

Чтобы не быть голословным. Обычный TouchMem, читающий по 1 байту с начала каждой страницы (реально по 64 байта, т.к. процессор мыслит линейками) на регионе памяти всего в 16ГБ занимает около 42мс при обычных страницах и около 33мс при 2МБ. А ведь это очень простой пример, т.к. чтение линейно. В реальных приложениях достигали прироста в 5% просто за счёт изменения размера страниц (никакого изменения кода самого приложения).

SeManageVolumePrivilege
Эта шутка нужна системе обновлений (в этом билде не используется). Если будет сильно интересно потому опишу и про неё (а то уже писать устал).

А кроме того ещё и работа с приоритетом потоков (и Windows и Linux прекрасно могут мягкое реальное время, именно мягкое), но т.к. этим можно при желании сильно мешать других программам, то для этого нужны привилегии.

P.S. Поймите, что многие вещи в ядре ОС сделаны из расчёта на работы в среде корпорации, а то и вообще на сервере. Там работают разные пользователи и есть секретные данные, а потому нужно не допускать утечек (это про SeManageVolumePrivilege), но там же есть и админы, которые настроят всё что нужно. Дома админов нет, но и секретов тоже. Собственно поэтому я считаю что дома всем нужно работать из под админа и UAC - зло. Оно не для дома, оно для офиса.

#25
23:15, 17 дек. 2015

Win7, лаунчер работает а приложение
Untitled | [Win64] Прошу потестировать мои наработки по движку

Ну и да, из-за того что требует админа его без бубна с дискретной видеокартой не запустить (то ли надо панель нвидиа "as administrator" запускать, то ли делать дискретную карту картой по умолчанию и перезагружаться), ну а на интегрированной наверняка не пойдет.
---
А хотя стоп, у меня и дискретная не DX11, тогда пофиг.

#26
23:30, 17 дек. 2015

-Eugene-
> Не на такой же, а на самого себя. Воспроизведение очевидно.
Воспроизвёл, понял, фиксю.

> Если ты выделяешь несколько больших блоков в начале, то не пофиг ли? Подровнять
> память можно и ручками, если вдруг надо - не так уж и жалко пару
> кило(мега?)байт из 2 ГБ.
Дык я и выделяю в начале. А дальше режу своим менеджером. У меня в первую очередь это система ресурсов. Нам блоки в 1-16МБ в основном. И их много и они меняются в процессе работы. Хип винды он для другого (и я его использую немного, но там смешные объёмы). Кстати, чтобы все знали, винда ОЧЕНЬ плохо переносит запрос большого кол-ва блоков памяти у ОС (именно у ОС, т.е. VirtualAlloc, а не HeapAlloc), вплоть до синего экрана.

> Не мудришь ли ты часом с выбором адаптера?..
Создаю девайс на каждом, для графики используется первый. Эта схема работы с мульти-GPU (только я её для нескольких дискретных видях делал) у меня со времён выхода GF8800. Вообще с мульти-GPU всегда мороки было и чую что до Dx12 она и будет :( Возможно вообще придётся отказаться от автоматического запуска и требовать распределения видюх юзером вручную. Я просто никогда не имел дело с CPU в которых встроена видюха, поэтому наверное где-то и накосячил.

P.S. Ошибка DXGI_ERROR_INVALID_CALL, гениально. Впрочем я уже начинаю понимать откуда ноги растут.

#27
23:31, 17 дек. 2015

kipar
> Win7, лаунчер работает а приложение
Всё нормально, так и должно быть. Т.к. до Win8 Futex`а в винде нету.

#28
23:40, 17 дек. 2015

Bishop
> Воспроизвёл, понял, фиксю.
Исправил, но пока новый лаунчер не завилаю. Разберусь с проблемами графики и звука, полностью пересоберу проект и залью.

-Eugene-
Попробуй ещё этот вариант: http://download.catcompany.org/tmp/AppDX11.exe, буду пытаться понять что ему не нравиться.

#29
0:06, 18 дек. 2015

Bishop
Заработало, звука нет.

+ Показать

А хардварный звук не трогай. Никогда.
Во первых, если на фоне играет музыка, а громкость стоит в 5%, потому что ночь (а я так часто делаю, например), захочется взять и уебать.
Во вторых, у меня не работают кнопки регулирования громкости. А это - засранство наравне с блокированием Alt-Tab.

Страницы: 1 2 3 4 5 Следующая »
ПрограммированиеФорумОбщее

Тема в архиве.