Board.KolibriOS.org
http://board.kolibrios.org/

2D с аппаратной акселерацией
http://board.kolibrios.org/viewtopic.php?f=24&t=1155
Page 2 of 4

Author:  Serge [ Mon Oct 20, 2008 7:23 pm ]
Post subject:  Re: 2D с аппаратной акселерацией

Была путаница с 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:
     srv_hw2d = get_service("HDRAW");
       if(srv_hw2d == 0)
         srv_hw2d = load_service("/rd/1/drivers/ati2d.drv");
get_service не умеет грузить PE DLL и при первом запуске вернёт 0. Тогда либа загрузит драйвер сама.
Code:
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 и всё рисуется программно.

Author:  bw [ Mon Oct 20, 2008 7:59 pm ]
Post subject:  Re: 2D с аппаратной акселерацией

Мммм. Здорово. Получается теперь ядру не нужно знать про дрова заранее, а они могут подгружаться по ходу дела. А что, если бы дрова брались всегда из одной и той же папки (или из некоторого предопределенного набора), а в "load_service" передавалось бы только имя драйвера? Так было бы несколько безопаснее. Точнее это стало бы некоторым заделом безопасности, а в будущем просто ограничим доступ пользователей к директории "drivers".

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

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

..bw

Author:  Serge [ Mon Oct 20, 2008 8:08 pm ]
Post subject:  Re: 2D с аппаратной акселерацией

bw

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

Author:  shurf [ Mon Oct 20, 2008 9:39 pm ]
Post subject:  Re: 2D с аппаратной акселерацией

Serge wrote:
Никто не пишет. Если возьмешся будет здорово.

Спасибо за информацию. Работаю.

Author:  Serge [ Tue Nov 11, 2008 5:35 pm ]
Post subject:  Re: 2D с аппаратной акселерацией

Прозрачное окошко. Для полноценных перекрывающихся окон такой способ
подходит плохо но для модальных окон или меню годится.

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

Attachments:
pixlib_03.7z [36.59 KiB]
Downloaded 215 times

Author:  Leency [ Thu Nov 13, 2008 4:03 am ]
Post subject:  Re: 2D с аппаратной акселерацией

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

Author:  Serge [ Thu Nov 13, 2008 10:40 am ]
Post subject:  Re: 2D с аппаратной акселерацией

На NV всё работает в режиме эмуляции, через процессор. Поэтому медленно.

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

Author:  Gluk [ Mon Dec 01, 2008 8:32 pm ]
Post subject:  Re: 2D с аппаратной акселерацией

я правильно понимаю что у меня работать не должно? (конфигурация в профиле) А то проверил, и правда не работает =)

Author:  Serge [ Mon Dec 01, 2008 9:23 pm ]
Post subject:  Re: 2D с аппаратной акселерацией

Gluk

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

Author:  Gluk [ Mon Dec 01, 2008 11:20 pm ]
Post subject:  Re: 2D с аппаратной акселерацией

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

Author:  Serge [ Tue Dec 02, 2008 8:23 pm ]
Post subject:  Re: 2D с аппаратной акселерацией

Gluk

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

Author:  Gluk [ Wed Dec 03, 2008 1:52 am ]
Post subject:  Re: 2D с аппаратной акселерацией

есть bd

Author:  Serge [ Wed Dec 03, 2008 10:34 am ]
Post subject:  Re: 2D с аппаратной акселерацией

Gluk

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

Author:  andrew_programmer [ Wed Jul 15, 2009 12:46 pm ]
Post subject:  Re: 2D с аппаратной акселерацией

Решил проверить библиотеку Pixlib в действии.

Взял самую последнюю версию с SVN. Скомпилировал как описано выше. Также взял самую последнюю версию ядра и драйверов. Всё установил куда нужно. При запуске демок на доске отладки пишет:
Attachment:
pixlib_bug.PNG
pixlib_bug.PNG [ 4.24 KiB | Viewed 4645 times ]


У меня видеокарта ATI Radeon Xpress 200M. Аппаратный курсор работает.

Author:  Serge [ Wed Jul 15, 2009 4:13 pm ]
Post subject:  Re: 2D с аппаратной акселерацией

andrew_programmer

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

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

Page 2 of 4 All times are UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/