Re[4]: Драйверы - зло и лишний элемент!
От: σ  
Дата: 27.10.18 14:34
Оценка:
CC>Я вот времена когда приходилось под каждую видюху свой код писать и её глюки отслеживать и поддерживать вспоминаю с содроганием.
Как будто сейчас что-то поменялось.
Никогда не встречал игр, работающих только на Nvidia? Или не работающих на Radeon? Их полно.
Re[5]: Драйверы - зло и лишний элемент!
От: CreatorCray  
Дата: 28.10.18 06:04
Оценка: +1
Здравствуйте, ?, Вы писали:

?>Никогда не встречал игр, работающих только на Nvidia? Или не работающих на Radeon?
Нет, никогда. Причём от слова "совсем вапще никогда"

?> Их полно.
Будет крайне любопытно ознакомиться со списком этих загадочных зверей.
С указанием что на чём не работает, если можно.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[4]: Драйверы - зло и лишний элемент!
От: alpha21264 СССР  
Дата: 28.10.18 10:20
Оценка: -1 :))
Здравствуйте, elmal, Вы писали:

E>Здравствуйте, alpha21264, Вы писали:


A>>Я подозреваю, что авторы Автокада не просто так поступили таким образом,

A>>на первый взгляд более трудоёмким. Наверное использовать драйверы было ещё труднее.
E>Во первых, в те времена драйверов не было. И разработчики чтоб выполнить простейшие операции вроде нарисовать линию и вывести Hello World корячились и реализовывали весь функционал этого рисования, зачастую бразенхеймом. Во вторых, видеокарты тогда были достаточно примитивные, и не умели даже рисовать векторные шрифты. Потому писали напрямую в видеопамять в графическом режиме. В третьих, в те времена все работало под Dos. Программа была запущена одна, и эта одна программа обращалась напрямую с устройствами ввода вывода. В четвертых, в те времена более менее стандартами были CGA, EGA, VGA, Hercules. Потом появилась Vesa и SVGA. По современным стандартам те видеокарты были примитивные до неприличия. Даже на SVGA поддерживались крайне низкие разрешения вроде 1024*768. Но даже на этих разрешениях тормозило все неимоверно. Если через VESA все делать на современной видеокарте, охрененно заметны тормоза даже на современных процессорах.

Чаво?
Что у вас там всё время тормозит?!

Давайте посчитаем простые цифры. Возьмём стандартные разрешения.

640 x 480 = 307 200 пикселей (ничего не тормозило)
800 x 600 = 480 000
1024 x
762 = 786 432
1920 x
1080 = 2 073 600 пикселей.

Итого, что мы видим?
Нынешний размер экрана в 6.75 раз больше того, что был в прошлом веке.
Всего в семь раз! А процессоры с тех пор во сколько раз ускорились?
Экран 640 x 480 заполнял процессор intel-286 12 MHz!
Напомню, что он в среднем тратил 5 тактов на выполнение одной команды.
Сейчас мы имеем процессоры в 3 MHz, 4 ядра и 4 команды за такт.
Это более, чем в тысячу раз быстрее.
Вы говорите про какие-то тормоза из-за высоких разрешений.
Вы о чём вообще?

Остальное скипнул, потому что оно не имеет смысла не разобравшись с этим.

Течёт вода Кубань-реки куда велят большевики.
Re[5]: Драйверы - зло и лишний элемент!
От: elmal  
Дата: 28.10.18 11:58
Оценка: 1 (1) +4
Здравствуйте, alpha21264, Вы писали:

A>Экран 640 x 480 заполнял процессор intel-286 12 MHz!

Заполнить статический экран это не проблема. Проблема сделать программным образом хотя бы плавный скроллинг. Во времена Windows 3.1, если что, при перетаскивании окна перетаскивалась только контуры окна. Нажимаешь мышку, передвигаешь контур, отпускаешь мышку — только тогда шла перерисовка. Ибо если перетаскивать окно целиком — были бы тормоза. И тормозило тогда все весьма прилично, если что, можно было во многих случаях невооруженным глазом наблюдать как строится картинка. Соответственно чтоб эти тормоза убрать, и появилось 2Д ускорение.

A>Напомню, что он в среднем тратил 5 тактов на выполнение одной команды.

A>Сейчас мы имеем процессоры в 3 MHz, 4 ядра и 4 команды за такт.
A>Это более, чем в тысячу раз быстрее.
A>Вы говорите про какие-то тормоза из-за высоких разрешений.
Во первых, разрешение 640 x 480 в древние VGA времена были при 16 цветах. Соответственно экранная область была порядка 150 килобайт. И для динамической картинки это тогда было довольно много, хотелось сильно ускорить. Сейчас НИЗКОЕ разрешение — это 1920*1080. При миллионах цветов, на пиксель идет 4 байта. Соответственно экранная область 8 мегабайт. Так вот, все анимации и т.д. требуются при хотя бы 60 кадрах в секунду, соответственно в секунду проц должен перелопатить 8*60 = 640 мегабайт. Нет, проц то с этим конечно справится и программными средствами. Вот только ценой загрузки процессора. 4 ядра и 4 такта за такт — это, кстати, пиковая производительность. Когда все инструкции загружены в кеш, нет промахов при предсказании переходов и т.д. В реальности меньше, при этом страдают другие приложения. Ты двигаешь окошко, а в этот момент у тебя начинает приостанавливаться компиляция, начинает пропадать звук в скайпе и т.д. Такое понравится? А если проц десятилетней давности, то ему уже будет напряжно. А процессору обычно есть чем заняться кроме рендеринга картинки.

Ну и если мы переходим к такой вещи, как 3Д, то уже при современных разрешениях у проца ни малейших шансов отрендерить сцену с приемлемой скоростью. Ибо над каждой точкой экрана нужно провести до фига вычислений.
Re[6]: Драйверы - зло и лишний элемент!
От: eskimo82  
Дата: 28.10.18 19:33
Оценка: -2
CC>С указанием что на чём не работает, если можно.
Например на этом или этом.

С полным списком можно ознакомится здесь.
Re[7]: Драйверы - зло и лишний элемент!
От: CreatorCray  
Дата: 28.10.18 20:50
Оценка: +1 -1
Здравствуйте, eskimo82, Вы писали:

CC>>С указанием что на чём не работает, если можно.

E>Например на этом или этом.
E>С полным списком можно ознакомится здесь.

Где там хоть одна игра, про которую ты заявил?

?>Никогда не встречал игр, работающих только на Nvidia? Или не работающих на Radeon?

... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[5]: Драйверы - зло и лишний элемент!
От: koenig  
Дата: 28.10.18 22:33
Оценка: +1
A>Нынешний размер экрана в 6.75 раз больше того, что был в прошлом веке.


нынешние видеокарты решают другие задачи. совсем другие, вообще.
поэтому сложность, несовместимость, драйвера.
а заполнить или, там, скопировать экран — это уже на сдачу. если бы они только этим и занимались бы — разговор имел бы смысл
Re[8]: Драйверы - зло и лишний элемент!
От: eskimo82  
Дата: 28.10.18 22:49
Оценка: -1
CC>Где там хоть одна игра, про которую ты заявил?
Во первых, я про игры не заявлял.

Во вторых, там приведен список
CC>

С указанием что на чём не работает, если можно.

Re[9]: Драйверы - зло и лишний элемент!
От: CreatorCray  
Дата: 29.10.18 02:56
Оценка: -1
Здравствуйте, eskimo82, Вы писали:

CC>>Где там хоть одна игра, про которую ты заявил?

E>Во первых, я про игры не заявлял.
Наглое гонево!

Re[4]: Драйверы &mdash; зло и лишний элемент!
Автор: σ
Дата: 27.10.18

?>Никогда не встречал игр, работающих только на Nvidia? Или не работающих на Radeon? Их полно.


E>Во вторых, там приведен список

Наглое гонево!
Где там список игр, которых "полно"?
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[5]: Драйверы - зло и лишний элемент!
От: Mr.Delphist  
Дата: 29.10.18 10:31
Оценка:
Здравствуйте, eskimo82, Вы писали:

MD>>А вот некоторые видяхи поумнее умели аж 135 колонок рисовать. Для этого наша прога должна уметь понимать поддерживается ли этот режим, и если да, то знать как в него перейти.

E>но некоторые могли в него переходить согласно пожеланию юзера.

Правильно, но как это сделать? На одной видяхе для этого надо записать значение 123 в порт 456, на другой видяхе — дёрнуть int78 с параметром 90
в регистре Ah, и так далее, и тому подобное. Повторю ещё раз: стандарта — не было. Вот совсем.
Re[10]: Драйверы - зло и лишний элемент!
От: eskimo82  
Дата: 29.10.18 10:42
Оценка: +1
CC>>>Где там хоть одна игра, про которую ты заявил?
E>>Во первых, я про игры не заявлял.
CC>Наглое гонево!

CC>Re[4]: Драйверы &mdash; зло и лишний элемент!
Автор: σ
Дата: 27.10.18

CC>

CC>?>Никогда не встречал игр, работающих только на Nvidia? Или не работающих на Radeon? Их полно.


Даю подсказку:
В каждом посте вверху есть такая строка, начинающаяся с "От:". В ней указывается автор.


E>>Во вторых, там приведен список

E>>CC>С указанием что на чём не работает, если можно.
CC>Наглое гонево!
Действительно наглое.
Re[6]: Драйверы - зло и лишний элемент!
От: eskimo82  
Дата: 29.10.18 10:53
Оценка:
MD>Повторю ещё раз: стандарта — не было. Вот совсем.
Вот вранье. Стандарт был и есть, в том числе и для 132 символов в строке.
Re[7]: Драйверы - зло и лишний элемент!
От: Mr.Delphist  
Дата: 29.10.18 12:56
Оценка: +2 -1
Здравствуйте, eskimo82, Вы писали:

MD>>Повторю ещё раз: стандарта — не было. Вот совсем.

E>Вот вранье. Стандарт был и есть, в том числе и для 132 символов в строке.
Хорошо, давайте читать вот прямо с самого начала:

InstallCheck:

  • For Ahead adapters, the signature "AHEAD" at C000h:0025h.
  • For Paradise adapters, the signature "VGA=" at C000h:007Dh.
  • For Oak Tech OTI-037/057/067/077 chipsets, the signature "OAK VGA" at C000h:0008h.
  • For ATI adapters, the signature "761295520" at C000h:0031h; the byte at C000h:0043h indicates the chipset revision:


  • Или милая табличка с комментариями:

    Notes:
    [2] for ATI EGA Wonder, mode 08h is only valid if SMS.COM is loaded resident.
    SMS maps mode 08h to mode 27h if the byte at location 0040:0063 is 0B4h,
    otherwise to mode 23h, thus selecting the appropriate (monochrome or
    color) 132x25 character mode.
    for ATI VGA Wonder, mode 08h is the same, and only valid if VCONFIG loaded
    resident
    [3] early XGA boards support 132-column text but do not have this BIOS mode


    Итого, вместо одного способа "узнать есть ли поддержка 132*25, и включить при возможности" мы начинаем колбасить простыню проверок в прикладном коде. Ничего не напоминает? Подскажу: если IE, если Chrome, если FireFox…

    Это, батенька, никакой не Стандарт. Это — макароны в стиле JavaScript.

    А теперь давайте посмотрим на действительный Стандарт на примере VESA
    http://www.petesqbsite.com/sections/tutorials/tuts/vbe3.pdf

    И вот что получается в итоге на любой (любой, Карл!!111) SVGA-карточке:
    void main(int argc, char *argv[])
    {
        int x,y;
        if (argc != 3)
            availableModes();
        x = atoi(argv[1]);
        y = atoi(argv[2]);
        initGraphics(x, y);
        drawMoire();
        getch();
    }
    Re[6]: Драйверы - зло и лишний элемент!
    От: alpha21264 СССР  
    Дата: 29.10.18 14:10
    Оценка:
    Здравствуйте, Mr.Delphist, Вы писали:

    MD>>>А вот некоторые видяхи поумнее умели аж 135 колонок рисовать. Для этого наша прога должна уметь понимать поддерживается ли этот режим, и если да, то знать как в него перейти.

    E>>но некоторые могли в него переходить согласно пожеланию юзера.

    MD>Правильно, но как это сделать? На одной видяхе для этого надо записать значение 123 в порт 456, на другой видяхе — дёрнуть int78 с параметром 90

    MD> в регистре Ah, и так далее, и тому подобное. Повторю ещё раз: стандарта — не было. Вот совсем.

    Все говорят "если нет стандарта, значит драйвер".
    Похоже, что это превратилось в какую-то религиозную догму.
    Мантру, про которую никто не задумывается.

    Во-первых непонятна сама логика.
    Ведь драйвер (по вашей логике) — эта некая реализация единого интерфейса. То есть стандарт.
    Тогда почему стандарт не сделан на уровне самого железа. Это же легче!

    Во-вторых ты говоришь про что? Про текстовый режим?
    Что там вообще стандартизировать-то?
    Это-ж два числа — размер по вертикали и по горизонтали — два регистра.
    Ну были в VGA эти два регистра. Пиши туда да и всё. Не надо аппаратный интерфейс менять.

    Да, кстати, 43 и 50 строки в VGA я себе делал. Ничего сложного.

    Течёт вода Кубань-реки куда велят большевики.
    Re[7]: Драйверы - зло и лишний элемент!
    От: netch80 Украина http://netch80.dreamwidth.org/
    Дата: 29.10.18 14:28
    Оценка: +1
    Здравствуйте, alpha21264, Вы писали:

    A>Все говорят "если нет стандарта, значит драйвер".

    A>Похоже, что это превратилось в какую-то религиозную догму.
    A>Мантру, про которую никто не задумывается.

    Не-а, чистая практика.

    A>Во-первых непонятна сама логика.

    A>Ведь драйвер (по вашей логике) — эта некая реализация единого интерфейса. То есть стандарт.
    A>Тогда почему стандарт не сделан на уровне самого железа. Это же легче!

    Потому что никто не пустит тебя к железу. Кто ты такой, чтобы тебя туда пускать? Юзерская программа? Вот говори, что тебе нарисовать, и тебе помогут. Когда положено.

    К какому железу тебя пускать? Чтобы настроить отображение видеопамяти, надо, например, на всех PCI мостах по дороге от адаптера к корневому PCI мосту настроить окна-апертуры, и самой карточке выставить нужный адресный диапазон. Кто ты такой, чтобы иметь право этим управлять? Тебе не доверяют. А вдруг ты кусок видеопамяти на чужую память замапишь и станешь через него чужие данные читать?

    А вдруг придёт какая-то системная тулза, которой нужен экран, и захочет окно своё отобразить? Ты ей будешь мешать? Нет, извини, тебе на это время доступ просто закрывают (может, невидимо), отображают что нужно, а потом снова твою картинку поднимают наверх.

    A>Во-вторых ты говоришь про что? Про текстовый режим?

    A>Что там вообще стандартизировать-то?
    A>Это-ж два числа — размер по вертикали и по горизонтали — два регистра.
    A>Ну были в VGA эти два регистра. Пиши туда да и всё. Не надо аппаратный интерфейс менять.

    А если мониторов несколько, а тебе дали только один? Куда писать будем?

    A>Да, кстати, 43 и 50 строки в VGA я себе делал. Ничего сложного.


    Кто бы сомневался. А теперь повтори то же самое, например, на DEC Alpha.
    Там даже карточки почти такие же. Только вот никаких портов 3C0-3DF тебе не дадут, там вообще портов нет.
    Зато OpenGL и все наследники — работают без проблем.
    The God is real, unless declared integer.
    Re[7]: Драйверы - зло и лишний элемент!
    От: zverjuga Беларусь  
    Дата: 29.10.18 14:59
    Оценка: +1
    Здравствуйте, alpha21264, Вы писали:

    A>Ведь драйвер (по вашей логике) — эта некая реализация единого интерфейса. То есть стандарт.


    стандартов для видеокарт не существует. каждый производитель делает железку так, как считает для себя нужным. другим туда доступ закрыт.

    A>Тогда почему стандарт не сделан на уровне самого железа. Это же легче!


    нет, это гораздо сложнее. операционных систем больше одной. и если бы это было стандартом, то под каждую версию железки пришлось бы выпускать свою версию операционки. а если железка устарела? а если наоборот, появилась прорывная технология? здесь концепт драйверов выглядит намного более правильным. проще поменять драйвер, чем операционку.
    проклятый антисутенерский закон
    Re[11]: Драйверы - зло и лишний элемент!
    От: CreatorCray  
    Дата: 29.10.18 21:45
    Оценка:
    Здравствуйте, eskimo82, Вы писали:

    E>В каждом посте вверху есть такая строка, начинающаяся с "От:". В ней указывается автор.


    Раз уж ты влез отвечать на заданный вопрос — будь любезен отвечать на заданный вопрос. Голоса в твоей голове меня не интересуют.

    Так где тот самый список игр?
    ... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
    Re[12]: Драйверы - зло и лишний элемент!
    От: eskimo82  
    Дата: 30.10.18 03:17
    Оценка:
    CC>Раз уж ты влез отвечать на заданный вопрос — будь любезен отвечать на заданный вопрос.
    CC>

    С указанием что на чём не работает, если можно.

    Я ответил тебе на заданый вопрос. То что ты не в состоянии прочитать ответ или принять его — это твои и только твои проблемы.

    CC>Голоса в твоей голове меня не интересуют.

    Если ты слышиш "голоса в моей голове", то тебе следует сходить на прием к психиатору.

    CC>Так где тот самый список игр?

    Довольствуйся для начала списком исключительных и частенько несовместимых особенностей.
    Когда его изучиш вернемся к играм.
    Re[8]: Драйверы - зло и лишний элемент!
    От: eskimo82  
    Дата: 30.10.18 03:33
    Оценка: :))
    MD>Хорошо, давайте читать вот прямо с самого начала:
    В данном случае, этот документ следует читать не с начала:

    Values for video mode:
    text/ text pixel pixel colors disply scrn system
    grph resol box resolution pages addr
    00h = T 40x25 8x8 320x200 16gray 8 B800 CGA,PCjr,Tandy
    01h = T 40x25 8x8 320x200 16 8 B800 CGA,PCjr,Tandy
    02h = T 80x25 8x8 640x200 16gray 4 B800 CGA,PCjr,Tandy
    03h = T 80x25 8x8 640x200 16 4 B800 CGA,PCjr,Tandy
    04h = G 40x25 8x8 320x200 4 . B800 CGA,PCjr,EGA,MCGA,VGA
    05h = G 40x25 8x8 320x200 4gray . B800 CGA,PCjr,EGA
    06h = G 80x25 8x8 640x200 2 . B800 CGA,PCjr,EGA,MCGA,VGA
    07h = T 80x25 9x14 720x350 mono var B000 MDA,Hercules,EGA
    08h = T 132x25 8x8 1056x200 16 . B800 ATI EGA/VGA Wonder [2]
    09h = G 40x25 8x8 320x200 16 . . PCjr, Tandy 1000
    0Ah = G 80x25 8x8 640x200 4 . . PCjr, Tandy 1000
    0Bh = reserved (EGA BIOS internal use)
    0Ch = reserved (EGA BIOS internal use)
    0Dh = G 40x25 8x8 320x200 16 8 A000 EGA,VGA
    0Eh = G 80x25 8x8 640x200 16 4 A000 EGA,VGA
    0Fh = G 80x25 8x14 640x350 mono 2 A000 EGA,VGA
    10h = G 80x25 8x14 640x350 4 2 A000 64k EGA
    11h = G 80x30 8x16 640x480 mono . A000 VGA,MCGA,ATI EGA,ATI VIP
    12h = G 80x30 8x16 640x480 16/256K . A000 VGA,ATI VIP
    13h = G 40x25 8x8 320x200 256/256K . A000 VGA,MCGA,ATI VIP
    14h = T 132x25 Nx16 . 16 . B800 XGA, IBM Enhanced VGA [3]
    15h = G 80x25 8x14 640x350 . . . Lava Chrome II EGA
    16h = G 80x25 8x14 640x350 . . . Lava Chrome II EGA
    17h = T 132x25 . . . . . Tecmar VGA/AD
    18h = T 80x30 9x16 720x480 16 1 A000 Realtek RTVGA [12]
    19h = T 80x43 9x11 720x473 16 1 A000 Realtek RTVGA [12]
    1Ah = T 80x60 9x8 720x480 16 1 A000 Realtek RTVGA [12]
    1Bh = T 132x25 9x14 1188x350 16 1 A000 Realtek RTVGA [12]
    1Ch = T 132x25 . . . . . Cirrus 5320 chipset
    ...


    Прекрасно видно что интерфейс для переключения видеорежимов стандартизован.

    MD>

    MD>InstallCheck:

    Стандартного интерфейса для проверки наличия определенной карточки не было. И я об это уже говорил
    Автор: eskimo82
    Дата: 27.10.18


    MD>Или милая табличка с комментариями:

    К переключениюб видеорежимом эта табличка не имеет никакого отношения.

    MD>Итого, вместо одного способа "узнать есть ли поддержка 132*25, и включить при возможности" мы начинаем колбасить простыню проверок в прикладном коде. Ничего не напоминает? Подскажу: если IE, если Chrome, если FireFox…

    Еще раз:

    И все проги самостоятельно не понимали поддерживается этот режим или нет, но некоторые могли в него переходить согласно пожеланию юзера.


    MD>Это, батенька, никакой не Стандарт. Это — макароны в стиле JavaScript.

    Это у тебя в голове макароны.

    MD>А теперь давайте посмотрим на действительный Стандарт на примере VESA

    MD>http://www.petesqbsite.com/sections/tutorials/tuts/vbe3.pdf
    MD>И вот что получается в итоге на любой (любой, Карл!!111) SVGA-карточке:
    MD>
    MD>void main(int argc, char *argv[])
    MD>{
    MD>    int x,y;
    MD>    if (argc != 3)
    MD>        availableModes();
    MD>    x = atoi(argv[1]);
    MD>    y = atoi(argv[2]);
    MD>    initGraphics(x, y);
    MD>    drawMoire();
    MD>    getch();
    MD>}
    MD>


    И вариант без VESA на любой карточке:
    void main(int argc, char *argv[])
    {
        int mode;
        if (argc != 1)
            printUsage();
        else {
            mode = atoi(argv[1]);
            bios_setup_mode(mode);
            drawMoire();
            getch();
        }
    }


    Re[13]: Драйверы - зло и лишний элемент!
    От: CreatorCray  
    Дата: 30.10.18 05:54
    Оценка:
    Здравствуйте, eskimo82, Вы писали:

    E>Когда его изучиш вернемся к играм.

    Сиди дальше в кустах, раз уж слился.
    ... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
    Подождите ...
    Wait...
    Пока на собственное сообщение не было ответов, его можно удалить.