(15.01.2020 18:19)111 писал(а): (15.01.2020 08:46)SWAT писал(а): Частично это вроде как реализовано в новом GL драйвере, который писал Фантом, но там есть еще куда расти да и не все там опять же есть и вообще хоршо оптимизировано.
не, там только store queue'ы (я помню, что он где-то когда-то спрашивал про dma, но в итоге пришли в выводу, что толку от него не будет). И куча глюков. И жрет оно 5мб рам. И давно мертво. Свой проект я делал на нем, потому и облом вышел.
Актуальным щас считается GLdc, но оно не намного лучше (по скорости).
(15.01.2020 08:46)SWAT писал(а): ...DMA...ASIC...
там все очень удобно и просто, в отличии от того, что понаписано в KOS.
вопрос только один: можно ли как-то этим всем пользоваться, не разбираясь, как оно работает?
В случае с store queue'ами все относительно просто (подставляешь что надо в макросы и пользуешься) и мною проверялось,
https://dcemulation.org/phpBB/viewtopic....9&t=105407
про dma в последнем посте есть что-то, но я не вижу там каких-то качественных отличий и все равно там используются эти SQ т.е. не больше 32 байт за раз идет.
Да SQ в том виде в котором его используют маловато толку дает. Ну да чуть быстрее копирование в память происходит нежели чем туда напрямую процем ходить, но главный недостаток по сути это PIO, который никуда не девается. Проц хоть и простаивает по сути, но этот простой никак не используется. Это создает дополнительный лаг.
В KATANA же, на сколько я знаю, все это работает асинхронно, простои минимизированны. Причем там нет тредов как таковых, там один ивент луп синхронизированный по частоте развертки + прерывания. Хотя в поздних версиях SDK начали треды прикручивать.
Ну а пользоваться этим не разбираясь не получится, только хардкор
(15.01.2020 18:19)111 писал(а): (14.01.2020 11:13)SWAT писал(а): Ага. Только в случае с GDI там 2 трека.
вот только и для сборки GDI тоже ничего нет.
лол
Что-то есть, погугли.
(15.01.2020 22:07)megavolt85 писал(а): кстати касательно KOS, вот пример ошибки в реверсе на основании которого писалась KOS
http://mc.pp.se/dc/syscalls.html#vecB8
Код:
FLASHROM_READ (r7=1)
Read data from the system flashrom.
Args:
r4 = read start position, in bytes from the start of the flashrom
r5 = pointer to destination buffer
r6 = number of bytes to read
Returns: number of read bytes if successful, -1 if read failed
на самом же деле этот сискол возвращает 0 в случае успешного чтения, но никак не количество считанных байт
Может в его биосе было именно так

))