Ну, это ещё 2.5-2.7D пока ;-)
Наконец-то вернутся к оптимизации кода? А то ставил недавно консольную утилиту на мегабайт, так она час обновляла Винду и установила полтора гига библиотек.
Вид для печати
Основаная модель в "промышленном программировании" - выкатить результат к релизу, затративши минимальное количество работы. Потому имеем то, что имеем. Не всегда в этой "потогонке" есть возможность остановиться, пораскинуть мозгами, переделать то, что "работает".
Внутри DC302 очень много двунаправленных шин и bus-holders на них, ввиду чего шины могут работать как кратковременные латчи при низком CLK. И это достаточно сильно затрудняло анализ, было непонятно направление передачи данных и в какой момент. Пришлось нарисовать относительно высокоуровневую блок-схему и раскрасить ее согласно рабочей фазе тактового сингала:
https://www.1801bm1.com/files/images/dc302.png
Теперь стало принципиально понятно где что бегает и можно допиливать асинхронную модель F11.
Не потребляй :)
Может быть после завершения проекта выкладывать исходники (хотя бы частично) и тогда народ займётся оптимизацией?
Как пример – первый Doom оптимизировали недавно.
Дописал начерно асинхронную модель F11 в мнималке - KDF11A + DC302 + DC302. Пока без MMU (там еще схему доделывать) и FPP (там надо шлифовать, фотографировать, матрицы верифицировать, еще очень много работы). Можно приступать к отладке :).
Вот тут выложил двухстраничный tiff, показывающий сколько ошибок было исправлено в процессе рисования схемы и написания модели (если переключаться между страничками - то хорошо будет видно дельту).
Это спорный пример. Там исходно код неправильно написан. Doom на самом деле нормально рисует только вертикальные стены. А полы и потолки -- это зазоры между стен, которые условно считаются, как стены, затем пересортируются в специальные структуры под названием visplane (которых иногда бывает not enough :D ), и вконец рисуются отдельным специальным образом. Всё это медленно.
В Quake всё гораздо лучше. Собственно, сам Кармак говорил, что если технологии вставить оттуда туда, то скорость Doom должна вырасти на 25% примерно. Я прикидывал на пальцах -- вроде верно.
В видео оптимизация сводится к отказу от тестурирования полов. Ну ясное дело, так быстрее.