Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Чт апр 27, 2017 9:56 pm

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 605 сообщений ]  На страницу 1 2 3 4 541 След.
Автор Сообщение
 Заголовок сообщения: Новые драйвера для ATI Radeon.
СообщениеДобавлено: Пн янв 03, 2005 5:04 pm 
Появились новые драйвера для владельцев карт ATI Radeon :!: .

Файлы:
kernel.zip:http://mikedld.50free.org/files/menuetos/kernel.zip
vmode.zip:http://mikedld.50free.org/files/menuetos/vmode.zip

Скриншот:
Изображение

Дополнительную иныормацию можно получить здесь:
http://menuetos.fastbb.ru/re.pl?-00000623-000-0-0-0-0-0


Вернуться к началу
   
 Заголовок сообщения:
СообщениеДобавлено: Ср апр 26, 2006 11:23 am 
Не в сети

Зарегистрирован: Вт апр 18, 2006 11:48 pm
Сообщения: 53
а с ними будет работать разрешение 1280х1024 true color? Не то на двух машинах, в которых установлены ATI Xpert2000 (ATI Rage 128 Pro) и ATI Radeon 7500, при выборе 1280х1024 Колибри стартует, но в нижней части экрана чёрная полоса и нет курсора мыши.


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Пт ноя 17, 2006 4:59 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3925
http://infinity-sound.narod.ru/ati2d.7z аппаратный курсор для ATI 8500 - 9XXX. Если карта не определится то загрузится обычный курсор.


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Пт ноя 17, 2006 5:48 pm 
Не в сети

Зарегистрирован: Пн апр 10, 2006 7:22 am
Сообщения: 76
а для NVIDIA всё ждать и ждать...


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Пт ноя 17, 2006 8:47 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Чт май 19, 2005 4:43 pm
Сообщения: 896
По исходникам я понял,что для работы с шиной PCI и памятью драйвер обращается к функциям в ядре.Нужно их где-то задокументировать,а иначе непонятно как под Колибри нужно драйверы писать.Я раньше вообще думал,что о доступе к PCI нужно заботиться самому.

Serge,а где ты информацию по ATI драйверам брал ?
А отладку драйвера проводил в досе или прямо в Колибри ?


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Сб ноя 18, 2006 5:43 am 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3925
При работе с АС97 я сделал три функции-оболочки для тех что есть в системе

proc pci_read32 stdcall, bus:dword, devfn:dword, reg:dword
proc pci_read8 stdcall, bus:dword, devfn:dword, reg:dword
proc pci_write8 stdcall, bus:dword, devfn:dword, reg:dword, val:dword

pci_api экспортируется напрямую.

из драверов они видны как
extrn PciApi
extrn PciRead32
extrn PciRead8
extrn PciWrite8

Источник старые исходники XFree и драйверы BeOC. Это была старая программа для нереального режима ДОС.
Код для работы с железом отлаживал в ДОС.
Потенциально должно работать с ATI 7500 - x300+ Точно не работает с x1000+.
Список железа есть в исходниках дрвйвера.

Ещё там есть код для аппаратного рисования закрашенных прямоугольников.
Возможно удасться сделать рисование произвольных линий.
Закрашивание кистями, блиттер и анимированные курсоры.
В новой версии можно будет загрузить собственный курсор (обычный Win 32х32 16 цветов).

BeOS aka Haiku
svn://svn.berlios.de/haiku/haiku/trunk/src/add-ons


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Сб ноя 18, 2006 5:14 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Чт май 19, 2005 4:43 pm
Сообщения: 896
Serge,а ты не пробовал смотреть исходники драйвера DirectFrameBuffere-а ?
Там обращение к видеокартам происходит напрямую и код довольно понятный(на C).


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Сб ноя 18, 2006 6:18 pm 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Пн мар 20, 2006 10:44 am
Сообщения: 557
А сорци ядра где? Я так понял что там добавлен указатель на SetHwCursor, через него всё и крутится, сорци бы постотреть, и пора бы kernel_export грузить из внешнего файла.


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Вс ноя 19, 2006 1:31 am 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3925
Исходники будут. В драйвере ошибка для 1280Х1024
изменения в ядре небольшие
mousedrv.inc
draw_mouse_under:
; return old picture

cmp [set_hw_cursor], 0
jz @F
ret
@@:

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
save_draw_mouse:

cmp [set_hw_cursor], 0
jz @F
movzx ebx,word [0xfb0c]
movzx eax,word [0xfb0a]
push ebx
push eax
call [set_hw_cursor]
ret
@@:

set_hw_cursor - указатель на функцию драйвера и одновременно флаг аппаратного курсора.


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Вс ноя 19, 2006 9:06 am 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3925
Ghost
Цитата:
пора бы kernel_export грузить из внешнего файла

В смысле функции объявленные extrn?


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Вс ноя 19, 2006 11:50 am 
Не в сети
Аватара пользователя

Зарегистрирован: Пт янв 27, 2006 3:06 pm
Сообщения: 1070
Благодаря усилиям Рудольфа, в разработке драйверов для nvidia в haiku продвинулись вроде дальше, чем для ATI. Правда он уже вроде отошел от дел :(


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Вс ноя 19, 2006 12:35 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3925
Я бегло просмотрел дрова для NV - там нет аппаратого курсора. А вообще без доков сделать драйвер нереально.


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Вс ноя 19, 2006 12:53 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Чт май 19, 2005 4:43 pm
Сообщения: 896
В исходниках библиотеки SVGAlib есть драйвер аппаратного курсора для NV.
Вот часть драйвера :

static int cursor( int cmd, int p1, int p2, int p3, int p4, void *p5) {
unsigned char *b1, *b2;
unsigned short *b3;
unsigned int i, j, k, l, c0, c1;

switch(cmd){
case CURSOR_INIT:
return 1;
case CURSOR_HIDE:
__svgalib_outcrtc(0x31,__svgalib_incrtc(0x31)&0xfe); /* disable cursor */
break;
case CURSOR_SHOW:
__svgalib_outcrtc(0x31,__svgalib_incrtc(0x31)|1); /* enable cursor */
break;
case CURSOR_POSITION:
v_writel(p1+(p2<<16), NV_PRAMDAC_GRCURSOR_START_POS);
break;
case CURSOR_SELECT:
i=memory/2-(p1+1);
if (chip==Riva128) {
__svgalib_outcrtc(0x31,(__svgalib_incrtc(0x31)&7)|(((~i)&0x1f)<<3));
} else {
__svgalib_outcrtc(0x31,(__svgalib_incrtc(0x31)&3)|(((~i)&0x3f)<<2));
}
#if 0
__svgalib_outcrtc(0x30,((~i)&0x3fc0)>>6);
#else
__svgalib_outcrtc(0x30,0);
#endif
break;
case CURSOR_IMAGE:
i=memory/2-(p1+1);
i=i*2048;
switch(p2) {
case 0: /* X11 format, 32x32 */
b3=malloc(2048);
b1=(unsigned char *)p5;
b2=b1+128;
c0=0x8000|GET15BITCOLOR((p3>>16)&0xff,(p3>>8)&0xff,p3&0xff);
c1=0x8000|GET15BITCOLOR((p4>>16)&0xff,(p4>>8)&0xff,p4&0xff);
l=992;
for(k=0;k<128;k++) {
int cc1=*(b1+k);
int cc2=*(b2+k);
for(j=0;j<8;j++) {
if(!(cc2&0x80)) *(b3+l)=0; else if (cc1&0x80)
*(b3+l)=c1; else *(b3+l)=c0;
l++;
if((l&0x1f)==0)l-=64;
cc2<<=1;
cc1<<=1;
}
}
memcpy(LINEAR_POINTER+i,b3,2048);
free(b3);
break;
case 1: /* nvidia 1555 format 32x32 */
memcpy(LINEAR_POINTER+i,p5,2048);
break;
}
break;
}
return 0;
}


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Вс ноя 19, 2006 1:39 pm 
Не в сети
Kernel Developer

Зарегистрирован: Ср мар 08, 2006 6:25 pm
Сообщения: 3925
andrew_programmer
А будет этот код работать на современных картах, и 15-ти битный курсор в 32-х битном режиме?


Вернуться к началу
 Заголовок сообщения:
СообщениеДобавлено: Вс ноя 19, 2006 3:34 pm 
Не в сети
Kernel Developer
Аватара пользователя

Зарегистрирован: Пн мар 20, 2006 10:44 am
Сообщения: 557
Serge
http://www.gtlib.gatech.edu/pub/mandrake/devel/2007.0/SRPMS/main/release/x11-driver-video-nv-1.2.0-1mdv2007.0.src.rpm
Размер: 287 KБ (293 334 байт)

Там есть код для аппаратного курсора на NV (nv_cursor.c и riva_cursor.c), я с кодом думал сам разобраться, но у тебя думаю это получится быстрее. Или напиши что делает xf86MapPciMem(,,,,), я так понял в твоём коде ей соответствует код :
Код:
           stdcall AllocKernelSpace, dword 0x10000
           test eax, eax
           jz .fail
           mov [ati_io], eax
           stdcall PciRead32, [bus], [devfn], dword 0x18
           and eax, 0xFFFF0000
           mov esi, eax
           mov edi, [ati_io]
           mov edx, 16
@@:     stdcall MapPage,edi,esi,PG_SW+PG_NOCACHE
     add edi, 0x1000
           add esi, 0x1000
           dec edx
           jnz @B


P.S. Если будут проблемы с rpm, вот zip http://iam.gorodok.net/NV.zip.
P.P.S В твоём ядре ещё ощибка с зашитой портов и функ 46


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 605 сообщений ]  На страницу 1 2 3 4 541 След.

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB