Page 2 of 4

Re: 2D с аппаратной акселерацией

Posted: Mon Oct 20, 2008 7:23 pm
by Serge
Была путаница с SVN.

svn://kolibrios.org/programs/develop/libraries/pixlib исходники pixlib
компилируется mingw32
gcc -c -mmmx -O2 -fno-builtin -fomit-frame-pointer -o pixlib.obj pixlib.c

svn://kolibrios.org/programs/develop/sdk/trunk/pixlib примеры и заголовочный файл.

Драйвер грузит библиотека при инициализации.

Code: Select all

     srv_hw2d = get_service("HDRAW");
       if(srv_hw2d == 0)
         srv_hw2d = load_service("/rd/1/drivers/ati2d.drv");
get_service не умеет грузить PE DLL и при первом запуске вернёт 0. Тогда либа загрузит драйвер сама.

Code: Select all

extern inline u32_t load_service(char *name)
{
  u32_t retval;
  asm("int $0x40"
      :"=a"(retval)
      :"a"(68),"b"(21),"c"(name));  //функция для загрузки PE драйверов 
  return retval;
};
Все драйверы резидентные. При втором запуске get_service вернёт логический номер драйвера. Если драйвера нет или устройство не поддерживается srv_hw2d = 0 и всё рисуется программно.

Re: 2D с аппаратной акселерацией

Posted: Mon Oct 20, 2008 7:59 pm
by bw
Мммм. Здорово. Получается теперь ядру не нужно знать про дрова заранее, а они могут подгружаться по ходу дела. А что, если бы дрова брались всегда из одной и той же папки (или из некоторого предопределенного набора), а в "load_service" передавалось бы только имя драйвера? Так было бы несколько безопаснее. Точнее это стало бы некоторым заделом безопасности, а в будущем просто ограничим доступ пользователей к директории "drivers".

Спасибо. Попробую чего-нибудь такого пописать :-). Может bt8x8 займусь, было бы забавно ТВ на KolibriOS посмотреть.

p.s. Я не нашел в документации описание этой функции (68.21).

..bw

Re: 2D с аппаратной акселерацией

Posted: Mon Oct 20, 2008 8:08 pm
by Serge
bw

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

Re: 2D с аппаратной акселерацией

Posted: Mon Oct 20, 2008 9:39 pm
by shurf
Serge wrote:Никто не пишет. Если возьмешся будет здорово.
Спасибо за информацию. Работаю.

Re: 2D с аппаратной акселерацией

Posted: Tue Nov 11, 2008 5:35 pm
by Serge
Прозрачное окошко. Для полноценных перекрывающихся окон такой способ
подходит плохо но для модальных окон или меню годится.

На R300-R500 работает точно. На R200+ должен работать. На R100+ пока нет.

Re: 2D с аппаратной акселерацией

Posted: Thu Nov 13, 2008 4:03 am
by Leency
Работает на NVidea 8800 GTS 512, медленно правда. Было бы быстрее, если бы не выводилось вначале окно, а потом делалось прозрачным, а сразу б выводилось прозрачным. Но всё это, я думаю, поправимо :)
Вообще, классно :) Не передать как я удивился и порадовался когда увидел нормальное прозрачное окошко в Колибри)

Re: 2D с аппаратной акселерацией

Posted: Thu Nov 13, 2008 10:40 am
by Serge
На NV всё работает в режиме эмуляции, через процессор. Поэтому медленно.

Кто-нибудь проверял на R200 ? У меня такой возможности нет.

Re: 2D с аппаратной акселерацией

Posted: Mon Dec 01, 2008 8:32 pm
by Gluk
я правильно понимаю что у меня работать не должно? (конфигурация в профиле) А то проверил, и правда не работает =)

Re: 2D с аппаратной акселерацией

Posted: Mon Dec 01, 2008 9:23 pm
by Serge
Gluk

Должно работать. У меня х1600.
Если чип определился будет иформация на доске отладки и в логе.

Re: 2D с аппаратной акселерацией

Posted: Mon Dec 01, 2008 11:20 pm
by Gluk
вообще-то, после запуска эктан стал серым.. сплошная заливка такая.. потом я обновил pixlib, на ту что в архиве, и экран перестал после запуска примера заливаться серым.. вместо этого он стал заливаться вертикальными черными и белыми полосками шириной в 5-10 пикселей (визуально) каждая.. так что доску отладки было видно мягко говоря не очень хорошо.. а лог не смог сохранить ввиду сложности работы с файловыми менеджерами и rdsave вслепую..

Re: 2D с аппаратной акселерацией

Posted: Tue Dec 02, 2008 8:23 pm
by Serge
Gluk

Интересно. У тебя есть раздел hd куда можно писать ?

Re: 2D с аппаратной акселерацией

Posted: Wed Dec 03, 2008 1:52 am
by Gluk
есть bd

Re: 2D с аппаратной акселерацией

Posted: Wed Dec 03, 2008 10:34 am
by Serge
Gluk

А куда именно ? Сделаю специальную версию драйвера.

Re: 2D с аппаратной акселерацией

Posted: Wed Jul 15, 2009 12:46 pm
by andrew_programmer
Решил проверить библиотеку Pixlib в действии.

Взял самую последнюю версию с SVN. Скомпилировал как описано выше. Также взял самую последнюю версию ядра и драйверов. Всё установил куда нужно. При запуске демок на доске отладки пишет:
pixlib_bug.PNG
pixlib_bug.PNG (4.24 KiB)
Viewed 7423 times
У меня видеокарта ATI Radeon Xpress 200M. Аппаратный курсор работает.

Re: 2D с аппаратной акселерацией

Posted: Wed Jul 15, 2009 4:13 pm
by Serge
andrew_programmer

Ничего страшного.
Компиляторы ЯВУ пишут в объектники дополнительную информацию. Fasm этого не делает, а загрузчик писался в расчёте на fasm. Главное чтобы демки работали.

P.S. Скоро будет новый драйвер для смены видеорежимов (kms - kernel modesetting), курсоров и 2D и хорошие шансы на портирование mesa с акселерацией на Радеонах.