-
-
Notifications
You must be signed in to change notification settings - Fork 245
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Textures Manager #729
base: master
Are you sure you want to change the base?
Textures Manager #729
Conversation
That's make menu less glitchy
That's fix most of glitches in menu. Add some logs
Это как-то повлияет на рендеры, реализованные внутри клиентской игрокой библиотеки через RenderAPI? |
Нет, не повлияет. Никаких изменений в render api я не вношу принципиально. Сейчас он будет работать некорректно: проксирование методов мной не реализовано. Это сделаю позднее, как дойду до работ в рендере |
@SNMetamorph рендеры наверное зовут что-то типа ref.dllFuncs.GL_LoadTexture? тогда менеджер текстур по идее это перехватывает. |
Эксперименты в mainui попали в данный PR случайно |
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as off-topic.
This comment was marked as off-topic.
Лучше за основу как раз брать ref_gl, а ref_vk уже подпиливать. Я в целом пока рекомендую забить на существование ref_vk, неизвестно насколько корректно он реализован. Mod_ProcessRenderData исключительно рендероспецифичная. То что она наполовину закомментирована ничего страшного -- значит ничего делать. Вызывается при загрузке и выгрузке модели. |
За основу взят общий код для обоих рендеров
Понял. Как мне лучше поступить с ней? Четыре сценария изложил выше |
Ничего не делать. Это загрузка моделей, она не связана с текстурами. Возможно, лучше завести новый коллбэк, который будет оповещать рендер что пора загрузить текстуру в видеопамять и присвоить ей рендероспецифичный handle. |
Вы не правы. При загрузке моделей происходит загрузка и текстур через функцию
Да, так и будет сделано, как буду вырезать управление текстурами из рендера. Сейчас я этого не делаю для упрощения отладки |
Ничего там в обход не происходит. У тебя уже есть LoadTexture в движке, пусть он движковый и вызывает. |
It's isn't beautiful method, but in current situation... Need to implement loading textures from buffer to fix more glitches
Hypothetically broken stub textures, practically broken lightmaps
А ты движок вообще собираешь после своих коммитов? Потому что я ребейзнул и ничего не собирается. По крайней мере под Linux. |
Разреши коммитить в твою ветку мейнтейнерам. На гитхабе есть где-то галочка. Пока залил мелкие исправления в |
У меня на Linux точно так же не собирается по какой-то причине. Жалуется на TRUE/FALSE и incompatible pointers. А на Windows всё хорошо, собираю и тестирую на оном |
Да я и сам хотел ребейзнуть, но случайно разнёс ветку в попытках починить. Думал отложить синхронизацию с мастером до лучших времён...) Я руками там восстановил утерянные изменения в gl_image.c, а больше ничего критичного вроде бы и нет |
Основную пачку разгрёб. Осталось...
Ohhhhh... |
Возьми мою ветку, там под линукс собирается теперь. Эту просто перепиши форспушем. :) |
Какую твою?
Эт шо, мне переносить всё здесь напатченное в 30+ файлах рученьками переносить на другую ветку? Ий историю коммитов потеряю, и долгое |
@zgdump resman_texture. https://github.com/FWGS/xash3d-fwgs/tree/resman_texture Зафетчи fwgs remote, чтобы ветка была.
Нет. Закоммити что ты сделал в свою, возьми мою ветку, черрипикни в неё то что ты накоммитил в своей и форспушни поверх. |
db40812
to
a610b15
Compare
@zgdump any news on this? I really would like to see this upstreamed. |
8135f83
to
6c62136
Compare
Последняя его TODO:
Похоже zgdump не в состоянии уже закончить, но возможно это будет по пути @w23. |
Менеджер текстур
Цель
Данный PR нацелен на создание менеджера текстур для упрощения рендеров и избавления от дублирующего кода
Мотивация
Впервые с необходимостью в отдельном менеджере я столкнулся при переключении рендера на лету. Перезагрузка ресурсов, в частности, текстур -- краеугольный камень для смены рендера без перезапуска движка. В своём черновике для принудительного обновления текстур были применены грязные хаки с флагами и отключением важных проверок. Желая избавится от них была начата работа в этом направлении
Перспектива
Менеджер преимущественно разрабатывается на перспективу.
В недалёком будущем планируется:
План
Работу планирую разделить на два глобальных этапа
Этап 1
Этап нацелен на создание дублирующего слоя: менеджера текстур, работающего полностью идентично текущему
Реализовать релокацию, если текстур больше, чем 4096(пока нет необходимости)Этап 2
Этап нацелен на фиксы и облегчение ref_gl. Этот рендер стабилен, реализует все возможности движка и идеально подходит для экспериментов
Второй этап может выполняться параллельно с первым. Но потребует чужой помощи. Я не разбираюсь в рендерах. И патчинг ref_gl займёт у меня времени больше, чем у знающего человека