Войти
ПроектыФорумУтилиты

Космический симулятор SpaceEngine (210 стр)

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

Страницы: 1207 208 209 210 211 212 Следующая »
#3135
11:30, 18 апр. 2019

Neptune
> При создании тех же самых текстурных массивов съедается сразу 4 гигабайта и так
> и не возвращается. Это всё-таки как-то неправильно, раньше такого не было.

сделай минимальный пример - потестим :)


#3136
18:58, 18 апр. 2019

Пример отсюда работает (вернее, крашится на радеоне при создании массива 256*256*2048). Я там внизу отписался, так и не ответили.
https://community.amd.com/thread/218345

Вот, сделал проект для студии 2017. Запускать Debug x86, см. комментарии в коде.
https://drive.google.com/file/d/1-RZzCkgvhe1FdzpSA201dueRHoX_J-b0… w?usp=sharing

#3137
19:11, 18 апр. 2019

шо не зип?

#3138
23:54, 18 апр. 2019

Неужели нечем открыть?

#3139
9:47, 19 апр. 2019

Neptune
> Неужели нечем открыть?

раньше было - сделай зип классический

#3140
11:17, 19 апр. 2019

https://drive.google.com/file/d/1QMWZY8e3Rk54j69c4b3EM6dLV7Odl9CR… w?usp=sharing

#3141
(Правка: 11:41) 11:40, 19 апр. 2019

bad_alloc на glTexStorage3D :)

rx580

2048 max layers

#3142
(Правка: 13:05) 13:02, 19 апр. 2019

Во-во, я о чем и говорю. Скомпиль с LARGEADDRESSAWARE, и посмотри сколько она съест памяти при вызове glTexStorage3D.

Странно что мало кто это репортит. 64-битная версия тоже имеет этот баг, там он ещё более суровый. 5-6 таких массивов, и сжирается 15+ гигабайт памяти, у меня даже драйвер с эксплорером крашнулись из-за такого.

#3143
13:14, 19 апр. 2019

Neptune
> Во-во, я о чем и говорю

но если сделать на 1024 слоя то не крашится

#3144
13:35, 19 апр. 2019

Neptune
> Скомпиль с LARGEADDRESSAWARE, и посмотри

не могу - крашится

#3145
18:02, 19 апр. 2019

>но если сделать на 1024 слоя то не крашится
А если два массива по 1024, крашится. Явно баг в драйвере.

#3146
18:14, 19 апр. 2019

О, идут подвижки какие-то:

dorisyan

сегодня в 8:46

Vladimir Romaniuk
Community
Hi spaceengineer,for this issue"Call to glTexStorage3D causes excessive system memory usage ", in fact, the fix has been given for a long time, we waste too much time discussing on this fix, I will release that soon, thanks for your patience!

#3147
12:11, 20 апр. 2019

Neptune
> А если два массива по 1024, крашится.

вроде нет

#3148
14:58, 21 апр. 2019

Neptune
очевидно что ты астроном , а не программист и похоже не учился на него
хоть и сваял изваяние - но непонятно где хоть какие-то программисты

реальный прямой вариант пока один на горизонте
это брать реестр виндовз и ковырять его , есть целые толмуды по реестру
как книга по программированию так книги-толмуды по реестру

Neptune
всякие ключи и прочее - главное хендлы - то есть ручка от программы
вернее ручки так как хендл это указатель за который виндовз держит программу
и хранит в реестре этот хендл , и далее драйвер как программа или иной вид
циклических программ хранит следующие виды хендлов-ссылок в реестре
тех которые указывают с какого адреса оперативной памяти и по какой адрес
была выделена память - это наверняка есть где-то в двойствнных хеш таблицах
то есть тот хеш который служит для скоростного доступа и
позволяет еще и кэширровать данные

любой путь сведется к получению адресов начала и конца выделения памяти
программой которая это выделяла под свои нужды - можно прямым путем
очистить память так сказать принудительно , но после этого программа
получит от null_ptr и наверняка скрашится - ее можно и так выкинутть тоже
а можно подсократить адресное пространство которое очистить до двух байт
заменив или скорее подменив хендлы новыми адресами

Neptune
лучше писать в самом движке интерфейсовым путем Менеджер Пямяти
который будт под паролем и к которому можно будет доступаться из самой программы
Космического Движка минуя фрейм ОпенГЛ , и контролировать ресурсы

в любом случае без менеджера памяти сам космо движек вроде неподвижной статуи
которую уже никакими методами нельзя будет сдвинуть с места , и именно поэтому
желательно все держать под контролем - конечно , на каждый драйвер не на хакишься
но определенный черный ход на некоторые случаи уже точно будет

Neptune
нужно было бы сделать сначала игру и получить с нее финансы
затем уже впрыгивать в гигантизм реализма поверхностей планет и звезд
в противном случае до настоящего реализма слишком далеко как пешком до Ориона

#3149
18:32, 3 мая 2019

Обещают исправить баг в следующей версии драйвера.

А тем временем, как обойти ограничение размера текстурных массивов - 2048 слоёв (почти на всем современном железе)? А то 2048 получается впиртык для ландшафта на разрешении 1080p, на 4k уже можно было бы поднять качество, если видеопамять позволяет, но все упирается в лимит 2048 текстур.

Разбивать рендер на несколько батчей не хотелось бы, сэмплить в шейдере несколько массивов, переключаясь if-ами, тоже как-то криво... Sparse texture arrays не помогут, там та же фигня: GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS == 2048. Биндлесс текстуры?

Страницы: 1207 208 209 210 211 212 Следующая »
ПроектыФорумУтилиты