Драйвер AMD Radeon составляет 10,5% ядра Linux 5.9

    В связи с выходом ядра Linux 5.9 журналист Майкл Ларабель из издания Phoronix поигрался с утилитой cloc, посчитав количество строк кода.

    Ядро Linux 5.9 содержит около 20,49 млн строк кода плюс 3,58 млн строк комментариев и 3,72 млн пустых строк. В целом ядро включает примерно 27,81 млн строк, распределённых между примерно 59 тыс. файлов с исходным кодом.

       69964 text files.
       69494 unique files.                                          
       10737 files ignored.
    
    github.com/AlDanial/cloc v 1.82  T=95.88 s (618.0 files/s, 290045.7 lines/s)
    ------------------------------------------------------------------------------
    Language                    files          blank        comment           code
    ------------------------------------------------------------------------------
    C                           29198        2900014        2367000       14781314
    C/C++ Header                21123         588426        1022774        4640918
    reStructuredText             2685         135238          59051         369738
    Assembly                     1275          45960          99012         225085
    JSON                          287              0              0         165799
    YAML                         1089          18494           4966          83627
    Bourne Shell                  657          16823          11350          66043
    make                         2592           9808          10864          44192
    SVG                            59            118           1365          37555
    Perl                           60           6686           4767          34393
    Python                        123           5345           4804          27720
    yacc                            9            695            354           4755
    PO File                         5            791            918           3077
    lex                             9            349            304           2130
    C++                            10            345            134           1993
    Bourne Again Shell             52            338            297           1750
    awk                            10            139            116           1051
    Glade                           1             58              0            603
    NAnt script                     2            143              0            549
    Cucumber                        1             28             50            175
    Windows Module Definition       2             15              0            109
    m4                              1             15              1             95
    CSS                             1             28             29             80
    XSLT                            5             13             26             61
    vim script                      1              3             12             27
    Ruby                            1              4              0             25
    INI                             1              1              0              6
    sed                             1              2              5              5
    ------------------------------------------------------------------------------
    SUM:                        59260        3729879        3588199       20492875
    ------------------------------------------------------------------------------

    В дерево исходных текстов ядра также входят различные инструменты, система сборки, множество документации и тому подобное. Это объясняет некоторые данные cloc, которые в противном случае могут показаться немного странными.

    Графический драйвер AMDGPU содержит более двух миллионов строк кода, что делает его самым большим драйвером ядра в дереве. В Linux 5.9 он включает 2,16 млн строк кода плюс 247 тыс. строк комментариев и ещё 109 тыс. пустых строк. В сумме код драйвера AMD DRM занимает примерно 2,51 млн строк — включая AMDKFD, PowerPlay, DC и весь код ядра, в конечном счёте составляющий поддержку AMD Radeon в этом драйвере (но не более старый драйвер Radeon DRM, который содержит около 157 тыс. строк).

    Как сообщалось ранее, кодовая база драйверов AMDGPU настолько велика из-за автоматически генерируемых заголовочных файлов для регистров GPU и т. д. На самом деле 1,79 млн строк драйвера AMDGPU в Linux 5.9 — это просто заголовочные файлы, которые преимущественно генерируются автоматически.

    Для сравнения, драйвер Intel i915, поддерживающий в Linux 5.9 графику от старой i915 до Gen12/Xe, содержит 209 тыс. строк кода плюс 39,2 тыс. строк комментариев и 48 тыс. пустых строк.

    Если сравнить с опенсорсным драйвером NVIDIA Nouveau, то там всего 149 тыс. строк кода, 25,6 тыс. строк комментариев и ещё 19,9 тыс. пустых строк.

    P. S. Несколько часов назад Линус Торвальдс зарелизил ядро Linux 5.9. в котором масса замечательных нововведений, включая базовую поддержку видеокарт Radeon RX 6000 "RDNA 2", графики Intel Rocket Lake, ZNS (Zoned Namespaces) для NVMe и многое другое.
    Ads
    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More

    Comments 49

      –10

      Индусские колеры AMD во всей их красе

        0
        а где сравнение по кол-ву букв?
          +1

          В следующей «сенсации».

          +4
          драйверам не место в ядре
            +6
            Глупый вопрос, но где им ещё быть, как отдельные подключаемые модули? Видимо есть большие трудности с этим решением, раз так не сделали ещё
              0
              Я конечно не спец по линуксу но если бегло прочесть ответ то в загружаемом модуле, как вариант.
              askubuntu.com/questions/863521/how-does-the-linux-kernel-deal-with-drivers
                0
                Драйвер GPU именно такой и есть — radeon.ko / amdgpu.ko
                Kernel module работает в пространстве ядра и исходники находится в репозитории ядра.
              –2
              В сети есть такое описание
              Ядро Linux представляет собой своего рода виртуальную машину для процессов. Процессы работают без всякой информации про оборудование компьютера — ядро абстрагирует весь уровень оборудования в единый совместимый виртуальный интерфейс. Кроме того, ядро реализует многозадачность прозрачно для всех процессов — каждый процесс «думает», что он является единственным процессом в системе, и имеет полные и эксклюзивные права на память и другие ресурсы оборудования компьютера. Фактически же — ядро выполняет несколько процессов одновременно, и оно ответственно за распределение ресурсов оборудования таким образом, что бы каждый процесс получил достаточный доступ к этим ресурсам.


              В связи с этим размещение драйверов в ядре более понятно.
                +2

                Можно считать что это такая монорепа для множества проектов.

                  +5

                  почему?

                  –4
                  Любопытно наличие в таблице Windows Module Definition.

                  Хорошо, что в Linux пока нет реестра.
                  Один древний сервер на Windows 2000 стал после перезагрузки выпадать в синий экран. Поднятие бэкапа помогло частично — стало можно загрузиться один раз. Код ошибки сообщал о повреждении реестра, но реестр был в порядке. После длительных поисков на одном из старых форумов нашлась информация — раздел System реестра не должен был превышать ЕМНИП 8 МБ, иначе под него не хватало выделяемой на этом этапе загрузки области ОЗУ. Помогло удаление следов драйвера видеокарты Nvidia — раздел уменьшился на треть.

                  Было же время, когда на маленькой флешке можно было носить набор драйверов для практически любого массового железа, а для переноса самого важного хватало дискеты.
                    +3
                    Хорошо, что в Linux пока нет реестра.

                    Гном 3 с вами не согласен.
                    раздел System реестра не должен был превышать ЕМНИП 8 МБ

                    64 если что. И это пофиксили с выходом Windows XP в 2001 году. Новее багов не нашлось?
                      0
                      8, максимум 16 МБ, но точно не 64. И толку, что пофиксили в XP, если сервер продолжает работать на W2000?
                        +6
                        если сервер продолжает работать на W2000

                        Ммм Сервер
                        На неподдерживаемой, 10 лет как, ОС… о остатками драйвера nvidia, что наводит на мысль что он собран на коленке из десктопного железа
                        Но в глюках у вас виноват конечно микрософт ;)
                          +1

                          У нас есть софт который работает только на 2000 винде. Платить миллионы за новый? Придётся, но позже. И все равно этот будет лет 10 еще нужен даже если новый появится.

                            0
                            Такая же ситуация. Самописный в разные десятилетия довольно большой комплекс клубок ПО с несколькими БД, элементами САПР и учётом производства, который нужен раз в квартал.
                            +1
                            Или пятнадцать лет назад в него разово воткнули видеокарту.
                            Вопрос кто виноват сразу перешёл в практическую плоскость — что делать.
                              +1

                              А что не так с драйвером nvidia? Вполне нормальное было дело, matrox'ы не везде были.

                            +1
                            Собственно траблы с превышением максимального размера реестра присутствуют и в XP/2003 со всеми SP. Достаточно просто загнать пару сотен пользователей с уникальными профилями, с их принтерами программами и через полгода можно получить сообщение о «Достигнут максимальный размер системной части реестра». Просто сообщение стало более понятным. В новых версиях просто скорее всего размер радикально увеличили(оперативной памяти стало больше), плюс добавили механизмы сжатия, которые раньше приходилось использовать через ntbackup.
                            Ну а любителям реестра — попробуйте в нем поменять ключи и применить их не перезагружая «профиль пользователя»/систему. Если вы скажите, что это «нинужна». Почему же тогда сами майки когда выпустят очередное кривое обновление советуют поменять настройки реестра и перезагрузиться? Почему многие программы после установки или обновления требуют перезагрузку, даже если они драйверы не устанавливали?
                              0
                              Ну а любителям реестра — попробуйте в нем поменять ключи и применить их не перезагружая «профиль пользователя»/систему

                              вы подменяете сущности
                              Реестр это просто БД, есть куча юниксового софта, где после правки конфигов надо делать reload или вообще restart, тут весь вопрос лишь в архитектуре софта, настройки которого вы меняете

                              «требуют перезагрузку» — это всё история из времен Win9x где реально на каждый чих надо было перезагружатся, начиная с Win2k все стало гораздо лучше… но опятьже тут проблема не в «злом и ужастном реестре», а в архитектуре, если бы вместо реестра были ini файлики как в старь, точно также надо было бы перезагружаться
                                0
                                начиная с Win2k все стало гораздо лучше…

                                В 2003 сервере сделали хотпатчинг ядра, а в десятке его убрали, ибо оказалось никому не нужно.
                                  +1
                                  Реестр это просто БД, есть куча юниксового софта, где после правки конфигов надо делать reload или вообще restart, тут весь вопрос лишь в архитектуре софта, настройки которого вы меняете

                                  Вы будете делать reload/restart софту, а не всей системе.
                                  «требуют перезагрузку» — это всё история из времен Win9x где реально на каждый чих надо было перезагружатся, начиная с Win2k все стало гораздо лучше… но опятьже тут проблема не в «злом и ужастном реестре», а в архитектуре, если бы вместо реестра были ini файлики как в старь, точно также надо было бы перезагружаться

                                  В этом ущербность и проявляется. Монолит + не предусмотрен reload в принципе. Были бы ini-файлики в иерархической системе — было бы проще читать/раздавать права приложениям.Потому что большинству приложений весь реестр не нужен, а нужна только его часть.
                                    0
                                    Вы будете делать reload/restart софту, а не всей системе.

                                    а это смотря что вы меняете
                                    Представляете, при изменении параметров grub надо систему перезагружать чтобы они применились! Неслыханно. И даже без реестра.
                                    В этом ущербность и проявляется. Что не предусмотрен reload в принципе.

                                    Прям вообще не предусмотрен? а какже я, когда давно еще сисадмином работал, ставил кучу патчей через wsus на винду, и она не просила меня перезагружаться? Магия… или всётаки не ВСЕ апдейты требуют перезагрузку? А может всётаки и линукс надо перезагружать при изменении некоторых системных частей чтобы они применились? Давайте уж попродробнее, и не приводить в пример убунтовский livepatch который не во всех линуксах есть и не ко всему применим

                                    . Были бы ini-файлики в иерархической системе — было бы проще читать/раздавать права приложениям.

                                    ага, слышал я про историю что в юниксе идеальная модель прав на файлики… причем большая часть это утверждающих впервые слышала об acl в линуксе — от меня (ого, оказывается не только user+group можно! и не всем достаточно)
                                    А вы видимо ниразу не слышали что в реестре можно на ветки права ставить тоже
                                      +1
                                      Представляете, при изменении параметров grub надо систему перезагружать чтобы они применились!

                                      Мы говорим про загрузчик системы. Он и так работает только при загрузке, потом завершает работу, что вы собрались там применять на горячую? Параметры запуска ядра? Так они относятся к ядру, а не к grub. И многие параметры ядра можно заменить во время работы.
                                      Прям вообще не предусмотрен? а какже я, когда давно еще сисадмином работал, ставил кучу патчей через wsus на винду, и она не просила меня перезагружаться?

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

                                      от меня (ого, оказывается не только user+group можно! и не всем достаточно)

                                      Кому не достаточно может использовать xattr.

                                      0
                                      Были бы ini-файлики в иерархической системе — было бы проще читать/раздавать права приложениям.Потому что большинству приложений весь реестр не нужен, а нужна только его часть.

                                      А в чём отличия? Как на каталоги, так и на ветки реестра можно назначать права доступа. Но для этого их придётся запускать от отдельных пользователей, отнимать права на чтение у всех на остальные ветки и прочее.
                                        +1
                                        Проще бэкапить, проще восстанавливать, особенно если восстанавливать нужно частично.
                                          +1
                                          проще бекапить привычным вам способом, вы не думаете что бывают другие привычные не-вам способы? весь виндовый бекап-софт без проблем умеет работать с реестром, и архивировать и частично восстанавливать.
                                          при совершенно небольшом приложении рук, данные из реестра элементарно превращаются в файлики которые можно править руками, бекапить и частично восстанавливать
                                          ==
                                          p.s. вы опять холивар хотите устроить, даже не вникая в подробности устройства и работы «неправильной ОС»?
                                            0
                                            весь виндовый бекап-софт без проблем умеет работать с реестром, и архивировать и частично восстанавливать.

                                            При этом делает он это настолько феерично, что у таких контор как Veeam и Acronis всегда есть заработок на создании «образов» системы. Как вы думаете почему?
                                            А до висты был еще и популярен ERD.
                                              0
                                              При этом делает он это настолько феерично,

                                              насколько феерично?
                                              У меня вот было феерично когда мне «великий, могучий и незаменимый tar» в солярисе запорол utf-8 имена в файлах и в таком виде закатал на пленку, при этом ни сказав ни слова что чтото идет не так
                                                0
                                                Мы сейчас еще о хранении конфигурации системы/приложений говорим? Где вы видели конфиги использующие кириллицу в именах? Или может реестр Windows кириллицу умеет? Более того винды проблему кодировок победили недавно, но все равно на всякий случай сохраняют обратную совместимость. Я например видел несколько раз виндовые инсталляторы, которые «крашились» на кириллице в пути. Так что тут проблемы кодировок лежат целиком на совести разработчиков софта, и на тех кто его неправильно применяет. Те же winrar и 7za могут искаверкать кириллицу, если им специально не указывать в какой кодировке имена. Подозреваю единственное преимущество встроенного в проводник виндового архиватора, это то что открывает он только zip и как правило только под виндами запакованный.
                                                  –1
                                                  Мы сейчас еще о хранении конфигурации системы/приложений говорим?

                                                  Так это вы про бекапы начали, я продолжил

                                                  Где вы видели конфиги использующие кириллицу в именах?

                                                  (взлгянул в календарь) а что в 2020 году так нельзя? всеж с пеной у рта кричать что везде utf8 и вообще мир во всем мире?
                                                  Я например видел несколько раз виндовые инсталляторы, которые «крашились» на кириллице в пути

                                                  а я в разнокалиберных юниксах тоже самое видел
                                                  Так что тут проблемы кодировок лежат целиком на совести разработчиков софта, и на тех кто его неправильно применяет.

                                                  ах вот оно что. Когда винда просит перезагрузится, она значит плохая, а когда линукс то это разработчики какогонить wpa_supplicant или usbfilter виноваты, не, ну а чо, отлично.
                                                  Подозреваю единственное преимущество встроенного в проводник виндового архиватора

                                                  помню лет 10 назад линуксойды кричали что встроенный в винду софт это зло и убивает мир и веру в людей. а в ваш любимой *никс какой архиватор «встроен»?
                                                    0
                                                    (взлгянул в календарь) а что в 2020 году так нельзя? всеж с пеной у рта кричать что везде utf8 и вообще мир во всем мире?

                                                    Можно, но зачем? Поиметь проблемы на ровном месте? Вместо settings.json «Настроечки.жсн»? а если пользователь не русскоязычный? А если не умеет UTF. Да и банально переведенное в бинарный вид будет вдвое длиннее.
                                                    Так это вы про бекапы начали, я продолжил
                                                    Про бэкапы я начал в контексте, не удобно бэкапить, не удобно частично восстанавливать. Упакованный «монолит» проще повредить, чем серию мелких файлов… Потому коммерческие решения пока на мой взгляд с бэкапами именно системного раздела вместе с реестром справляются лучше, чем встроенные средства самой windows.
                                                    помню лет 10 назад линуксойды кричали что встроенный в винду софт это зло и убивает мир и веру в людей. а в ваш любимой *никс какой архиватор «встроен»?

                                                    Зависит от того, что входит в понятие базовой системы и какой архиватор требуется для упаковки распаковки пакетов. Tar точно входит во все дистрибутивы. В остальном, зависит от того какой архиватор вам нужен. Тар это ведь по сути даже не про сжатие — это способ представить файловую иерархию в виде одного бинарного файла. И чтобы вы знали tar'ов на самом деле несколько разных существует, так же почти каждый ЯП имеет в своем составе библиотеку для написания собственного tar. Вот например пакет из go. В самом начале расписано какие имеются форматы и чем различаются и там далеко не все реализовано. tar

                                                    Когда винда просит перезагрузится, она значит плохая, а когда линукс то это разработчики какогонить wpa_supplicant или usbfilter виноваты, не, ну а чо, отлично.

                                                    Разработчики wpa_supplicant точно не попросят вас перезагрузиться. usbfilter — даже не нашел такого приложения для linux. Есть что-то от asus и оно точно виндовое. В linux вас попросят перезагрузиться наверное только если нужно обновить ядро. Если какой-то драйвер скомпилирован в виде модуля, то его можно выгрузить и загрузить снова.
                                                      0
                                                      Можно, но зачем? Поиметь проблемы на ровном месте? Вместо settings.json «Настроечки.жсн»?

                                                      Я с вами согласен, однако мой опыт подсказывает что люди не всегда это понимают, особенно молодые-горячие, им только дай волю, и пробелы и в именах и русские буквы.
                                                      Потому коммерческие решения пока на мой взгляд с бэкапами именно системного раздела вместе с реестром справляются лучше, чем встроенные средства самой windows.

                                                      Ну и хорошо. в чем проблема то? (хотя я скорблю по ntbackup) в линуксе бекап «изкоробки» надо самостоятельно костылить, штатного нажал-кнопку-все-хорошо там нет
                                                      И чтобы вы знали tar'ов на самом деле несколько разных существует, так же почти каждый

                                                      Конечно я знаю, для меня было откровением лет 15 назад когда я узнал что есть tar gnu-тый, и есть tar юниксовый и у последнего нет части функционала первого… и гуглинг мануалов без оглядки на это приводит по началу в замешательство… в моем случае у него не было поддержки utf в именах файлов несмотря на то что солярка была конца 2000х годов выпуска
                                                        0
                                                        Ну и хорошо. в чем проблема то? (хотя я скорблю по ntbackup) в линуксе бекап «изкоробки» надо самостоятельно костылить, штатного нажал-кнопку-все-хорошо там нет

                                                        Tar не устраивает? Почти вся конфигурация системы и приложений(за исключением некоторых пользовательских и «не таких как все») хранится в /etc. Запись туда производится редко. Атрибуты GNU tar сохранять умеет. в том числе и расширенные. Хотите пользовательских — присовокупьте еще /home целиком или выборочно каждого пользователя. Хотите всю систему — выберите изначально файловую систему с поддержкой snapshot или lvm. Если грамотно разнесли пользовательские данные и var на отдельные разделы, то и root можно бэкапить тем же tar.
                                                        tar gnu-тый, и есть tar юниксовый и у последнего нет части функционала первого…
                                                        Есть еще как минимум bsdtar и pax.
                                                        особенно молодые-горячие, им только дай волю
                                                        Молодые и горячие недавно в ext патч протолкнули, чтобы в имена файлов сделали регистронезависимыми. Хорошо хоть это пока только опция, а не поведение по-умолчанию.
                                                          0
                                                          Tar не устраивает?

                                                          под tar надо писать всё вручную всякими скриптиками и подробно описывать эти ценные знания для потомков

                                                          помню я работал в одной конторе, у нас был начальник, админ netware старой закалки (у нас была винда в тот момент, на серверах которые к нашему отделу относились), у него всё администрирование было на bat файлах самописных… я до того момента еще ни разу не видел скриптов на пару мегабайт размером, с функционалом давно встроенным в саму ОС…
                                                          вот мы угорели это мигрировать на штатный и более нормальный функционал.

                                                          Я конечно понимаю что «руками всё сделать лучше и надежнее»… но не всегда это аналог самого лучшего решения во всех смыслах
                                                            0
                                                            tar -cvzpf arch_name.tar.gz dir1 /etc/dir2 dir3/file3 > log.txt 2>&1
                                                            Это без xattr, но если не используете apparmor или что-то подобное, то обычно не требуется. Всю строку можно добавить в крон. А если правильно настроили почту, то вам еще и log.txt свалится. В нем будет список добавленных в архив файлов. И если при добавлении какого-то файла возникнет ошибка, то на нем лог прервется. Если требуется какое-то более сложное поведение то потребуется скрипт, но вряд ли будет больше двух трех десятков строк вместе с форматированием, украшательствами и прочим. Точно не больше двух килобайт.
                                                            Сейчас посмотрел один из своих самых длинных скриптов. Бэкапит сайт на wordpress и создает дамп базы mysql. Хранит 10 последних копий локально и три на удалеленном ftp. Всего 99 строк на sh с форматированием и комментариями всего около 3кБ. Правда использует еще одну самописную утилиту на go? которая парсит дату в имени файла и удаляет истекшие архивы на ftp (еще около 100 строк), но это скорее мой каприз — мне хотелось гарантировано знать что на ftp останутся фалы не старше трех дней, но производить чистку только в том случае. если при создании и копировании архивов нет ошибок.
                                                            Опять же есть и более сложные системы бэкапа. На любой вкус от amanda/bacula/borg до графических надстроек над консольными утилитами вроде wiki.gnome.org/Apps/DejaDup или community.linuxmint.com/software/view/timeshift
                                                        0
                                                        Монолитный бекап реестра неудобен

                                                        Мегамонолиты с бекапом всего раздела рулят

                                                        Я вас не понимаю.
                                                          0
                                                          Что непонятного то? Спросили чем лучше бэкапить linux. Я ответил. что tar на /etc достаточно, если хотите получить что-то вроде бэкапа реестра, но если хотите полнодисковый бэкап в стиле Acronis, в момент когда на него еще и пишете активно, то можно затарить снапшот. Любые капризы возможны. Промежуточные варианты бэкапить только те каталоги, которые реально нужны (/etc /root/ хомяки /var/db /var/spool). В оффлайте можете просто смонтировать всю структуру каталогов и таром пройтись.
                                                            0
                                                            Что непонятного то?

                                                            Почему вы предлагаете полнодисковый бекап и ругаете сложности с частичным бекапом реестра.
                                                              0
                                                              Это два разных вопроса. Человек спросил чем бэкапить linux. Он не оговорил, нужно ли ему бэкапить только конфигурацию или все доступные данные. Я указал несколько вариантов, в том числе полнодисковый бэкап(а может ему БД бэкапить захочится высоконагруженную).
                                                              В контексте бэкапа только конфигурации системы я ответил, что можно бэкапить только /etc, и отдельные каталоги в папке пользователя, если нужно сохранить пользовательские настройки.
                                                              Но в целом, все зависит от дистрибутива. Есть например Alpine, который по умолчанию хранит /etc в виде архива, а при старте распаковывает его. Есть специализированные дистрибутивы которые хранят настройки в одном файле, а при старте создают из него /etc…
                                –3
                                — А что если добавить в видеокарту чип, который будет реализовать функцию драйвера и предоставлять унифицированный интерфейс OpenGL в конечной точке?
                                — Не, сынок. Это фантастика. А теперь давай добавим немного php в наш драйвер.
                                  +5

                                  Чип, предоставляющий функции драйвера? Ну, теоретически, такое можно представить. При загрузке он обнаруживает код ядра и используя DMA модифицирует его, дописывая драйвер.


                                  Но, боюсь, это будет уже не "функция драйвера", а "функция malware с уклоном в APT", потому что большинство экспертов с большим сомнением смотрят на оборудование, осуществляющее code injection.

                                    0
                                    Вроде на VooDoo так и было, в основном функции драйвера пересылать данные на видеоконтроллер.
                                      0

                                      Да без проблем. 90% драйверов только этим и занимаются (если там промежуточных абстракций нет). Просто "чип с функцией драйвера" звучит примерно как "спички с функцией заварки чая".

                                    +3

                                    Так Raspberry-PI работает. На GPU крутится ОС, а Линукс драйвер просто копирует туда OpenGL команды.
                                    Правда сейчас появился полноценный драйвер.

                                      0
                                      Интересная архитектура. Прямо таки ОС? Где бы про это прочитать?
                                      0
                                      Не понимаю, за что заминусовали комментарий. Конечно, не OpenGL, как он есть, а со специальными доработками. Чтобы видеокарта работала с приложениями как сервер с клиентами. Первый клиент имеет привилегии и выдаёт лимиты для остальных клиентов, вроде максимальных размеров буферов и количества используемых вычислительных блоков. Остальные клиенты через буфер просто копируют текстуры и команды OpenGL/Vulkan/DirectX. Так и проблема с драйверами под разные ОС отпала бы.
                                      +3
                                      Как сообщалось ранее, кодовая база драйверов AMDGPU настолько велика из-за автоматически генерируемых заголовочных файлов для регистров GPU и т. д.

                                      А на этапе компиляции это никак не сделать? Не вижу смысла хранить автогенерируемый код в системе хранения версий.
                                        0

                                        Тогда пришлось бы хранить те исходные данные, из которых все генерируется. Которые не факт что меньше по объёму. И очень вероятно, что эти исходные данные — проектная документация или даже непосредственно Verilog код, что AMD открывать явно не захочет. Ну и плюс придется коммитить код утилит для генерации.

                                      Only users with full accounts can post comments. Log in, please.