LINUX.ORG.RU

почему текущая реализация dri - говно

 , ,


0

5

Есть простейший пример, иллюстрирующий убогость dri. Кстати, эта убогость и в винде есть.

В современных gpu есть вполне нормальные mmu, причем в радеонах их несколько, от 4х в слабых чипах по 16 в топах и si. Тупо несколько mmu, которые работают параллельно. Обычно их все не юзают(на радеонах только vm0 в открытых дровах), но всё можно сделать круче.

Короче, Я предлагаю отказаться от понятия буфера, текстуры и т.д. оставить торчать из ведра вызовы для резервирования памяти на видяхе и remapа. Текстуры можно эмулировать в userspace, а remap вручную позволит избавиться от ttm в ядре, гнусного костыля gem, и флипать doublebuffered текстуры не целиком, а тайлами: очень поможет в плане кпд всяким wayland и dri2, ибо не надо будет перерисовывать все окно изза мелкого обновления

В общем, сама концепция буферов убога. Можно резко упростить dri, и сделать его более гибким.

А вы спорите про то, что лучше : x или wayland. А реформы нужны глубжее, чем смена протокола

☆☆☆
Ответ на: комментарий от Novell-ch

Здесь была дискуссия, и я надеюсь, что идея будет обсуждена all. Может ценные идею увижу

ckotinko ☆☆☆
() автор топика

В общем, сама концепция буферов убога.

Везде есть невидия? Везде есть амд? Последних релизов? Ты не заботишься об остальных. Давай тогда как делала винда в 2000х: каждый год - новая видяха.

gh0stwizard ★★★★★
()
Ответ на: комментарий от dimon555

Да. Я это придумал.

Потому что все остальные оперируют буферами, или surfac'ами

ckotinko ☆☆☆
() автор топика
Ответ на: комментарий от ZenitharChampion

Это даже не патч потребуется. В частности, надо выкинуть ttm ибо он станет ненужен

ckotinko ☆☆☆
() автор топика
Ответ на: комментарий от gh0stwizard

как делала винда в 2000х: каждый год - новая видяха

Да, помню те времена: самый расцвет фингербоксов...

anonymous
()
Ответ на: комментарий от i-rinat

У меня нет прототипа. Дрова для радеона это довольно геморная штука. Но я бы хотел популяризовать идею: убрать буфера из ведра, оставить резервирование рамы и управление таблицами для mmu

ckotinko ☆☆☆
() автор топика
Ответ на: комментарий от ckotinko

У меня нет прототипа. <...> Но я бы хотел популяризовать идею

Так ты её только в грязь втопчешь.

Дрова для радеона это довольно геморная штука.

Ага, я не сомневаюсь :)

убрать буфера из ведра, оставить резервирование рамы и управление таблицами для mmu

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

i-rinat ★★★★★
()
Ответ на: комментарий от Novell-ch

Согласен, вещи такого уровня надо не на ЛОРе, а на kernel.org например обсуждать. Или где там разрабы открытых дров тусуются.

P.S. А еще лучше самому сесть писать. Потому как языком лячкать все умеют.

Novator ★★★★★
()
Последнее исправление: Novator (всего исправлений: 1)

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

Polugnom ★★★★★
()

Не разбираюсь в подробностях, но dri — самая недоделанная часть в линукс-десктопе. К сожалению, над ним работают три калеки и то время от времени. Приоритетом является «количество попугаев» при этом в жертву приносятся качество и функции энергосбережения. Даже на старых видеокартах ждущий режим толком не работает. Большинство патчей — какие-то хаки с возгласами: «вот патч, добавляет пятнадцать попугаев, это круто!». На новых видеокартах тоже работает через раз, переключение графических карт толком не работает. С приходом KMS все только стало намного хуже, ибо настройке почти не поддается. На ноутбуках — вообще лотерея. И похоже на то, что такое положение останется навсегда. Ибо чем дальше, тем хуже. Я не специалист, но похоже подходы однозначно ошибочны и никто ими всерьез заниматься никогда не будет, тем более, что для серверов этот dri вообще пофиг.

Да, обсуждать тут — бессмысленно. Но, блин, накипело, а сам ничего сделать не могу, ибо вменяемых механизмов исправления или настройки нет. Багтрекер freedesktop полон, но ничего не происходит.

anonymous
()
Ответ на: комментарий от anonymous

проще переделать. если куча багов есть на то, что блит не успевает - то нахер блит. давайте буфера из кусков собирать - там где блит не прошел(99% случаев для десктопа) - просто реюзать тайл из старого буфера. но сделать это можно в т.ч. и полупрямым(безопасность) контролем над mmu gpuхи.

ckotinko ☆☆☆
() автор топика
Ответ на: комментарий от dimon555

этого надо было в начало поста

Я так понимаю, что графическая система должна работать только у специалистов в графической системе? Остальные типа обойдутся?

А ты специалист типа и у тебя все работает? Ну в целом — дураков вокруг полно.

anonymous
()
Ответ на: комментарий от trupiko

Ты имел в виду Пукину? )
На чем писал, на ассемблере или С++?

Novator ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.