Пример отсюда работает (вернее, крашится на радеоне при создании массива 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
шо не зип?
Неужели нечем открыть?
Neptune
> Неужели нечем открыть?
раньше было - сделай зип классический
bad_alloc на glTexStorage3D :)
rx580
2048 max layers
Во-во, я о чем и говорю. Скомпиль с LARGEADDRESSAWARE, и посмотри сколько она съест памяти при вызове glTexStorage3D.
Странно что мало кто это репортит. 64-битная версия тоже имеет этот баг, там он ещё более суровый. 5-6 таких массивов, и сжирается 15+ гигабайт памяти, у меня даже драйвер с эксплорером крашнулись из-за такого.
Neptune
> Во-во, я о чем и говорю
но если сделать на 1024 слоя то не крашится
Neptune
> Скомпиль с LARGEADDRESSAWARE, и посмотри
не могу - крашится
>но если сделать на 1024 слоя то не крашится
А если два массива по 1024, крашится. Явно баг в драйвере.
О, идут подвижки какие-то:
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!
Neptune
> А если два массива по 1024, крашится.
вроде нет
Neptune
очевидно что ты астроном , а не программист и похоже не учился на него
хоть и сваял изваяние - но непонятно где хоть какие-то программисты
реальный прямой вариант пока один на горизонте
это брать реестр виндовз и ковырять его , есть целые толмуды по реестру
как книга по программированию так книги-толмуды по реестру
Neptune
всякие ключи и прочее - главное хендлы - то есть ручка от программы
вернее ручки так как хендл это указатель за который виндовз держит программу
и хранит в реестре этот хендл , и далее драйвер как программа или иной вид
циклических программ хранит следующие виды хендлов-ссылок в реестре
тех которые указывают с какого адреса оперативной памяти и по какой адрес
была выделена память - это наверняка есть где-то в двойствнных хеш таблицах
то есть тот хеш который служит для скоростного доступа и
позволяет еще и кэширровать данные
любой путь сведется к получению адресов начала и конца выделения памяти
программой которая это выделяла под свои нужды - можно прямым путем
очистить память так сказать принудительно , но после этого программа
получит от null_ptr и наверняка скрашится - ее можно и так выкинутть тоже
а можно подсократить адресное пространство которое очистить до двух байт
заменив или скорее подменив хендлы новыми адресами
Neptune
лучше писать в самом движке интерфейсовым путем Менеджер Пямяти
который будт под паролем и к которому можно будет доступаться из самой программы
Космического Движка минуя фрейм ОпенГЛ , и контролировать ресурсы
в любом случае без менеджера памяти сам космо движек вроде неподвижной статуи
которую уже никакими методами нельзя будет сдвинуть с места , и именно поэтому
желательно все держать под контролем - конечно , на каждый драйвер не на хакишься
но определенный черный ход на некоторые случаи уже точно будет
Neptune
нужно было бы сделать сначала игру и получить с нее финансы
затем уже впрыгивать в гигантизм реализма поверхностей планет и звезд
в противном случае до настоящего реализма слишком далеко как пешком до Ориона
Обещают исправить баг в следующей версии драйвера.
А тем временем, как обойти ограничение размера текстурных массивов - 2048 слоёв (почти на всем современном железе)? А то 2048 получается впиртык для ландшафта на разрешении 1080p, на 4k уже можно было бы поднять качество, если видеопамять позволяет, но все упирается в лимит 2048 текстур.
Разбивать рендер на несколько батчей не хотелось бы, сэмплить в шейдере несколько массивов, переключаясь if-ами, тоже как-то криво... Sparse texture arrays не помогут, там та же фигня: GL_MAX_SPARSE_ARRAY_TEXTURE_LAYERS == 2048. Биндлесс текстуры?
Neptune
попробуй почитать раздел графика на форуме и поспрашивать там
http://gamedev.ru/code/forum/?id=130683&page=4&m=1916453#m56
2048*2048 + пирамида. 60-110+фпс даёт
что только не пишут , а это же 2010 год и лица все теже в смысле знакомые все лица
Neptune
там на 5 странице вроде AleksGusarov один из создателей Космических Рейнджеров
вроде он , так сказать сложно , но что-то писал это точно :)