LINUX.ORG.RU
ФорумTalks

Свистелки перделки гибридной графики на открытых дровах

 , , , ,


0

4

Запилил видео того что сейчас может предложить гибридная графика на открытых дровах.
А именно композитинг + запись видео в h264 c аппаратным кодированием на интеле, реднер тяжелых игр\тестов на радеоне с перделками kde в невероятных масштабах и без оверхеда.


lighstmark
http://www.youtube.com/watch?v=J2g2rLbIurw


Unigine Valley
http://www.youtube.com/watch?v=L_qzVs9Yn7U

★★★★★

Последнее исправление: cetjs2 (всего исправлений: 1)
Ответ на: комментарий от fallout4all

Никакой. Всё по-честному: только ядрёный механизм PRIME, а также нововведения в последних X'ах и X'овых драйверах свободных драйверов.

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

я тут не знаток, предположу что никак

Novell-ch ★★★★★
() автор топика

Кстати, не было такой проблемы: после запуска софта с DRI_PRIME=1 окно пустое, но после переключения на другой десктоп и обратно всё OK?

И вот ещё один момент: манипуляции с xrandr в новых X'ах не нужны, ибо X'ы нынче умеют всё в автомате. Пруф.

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

На блобе AMD это вроде бы как-то делается, но только с рестартом X'ов. Более сказать не могу, ибо сам блобом не пользуюсь.

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

надо выключить и включить композитинг, тогда все норм

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

да, работает очень быстро к тому же.

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

блобы пилятся под приложения, это не секрет, а приложения под.эти блобы, а меса пилится под пиглит тесты по спекам от кронос груп.

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

У меня была карточка nvidia 6600, её особенностью была поддержка legacy 71 и legacy 96, текущими были 150-е драйверы. Так вот все три драйвера клялись, что поддерживают opengl 2.1. Я пробовал запускать по очереди на этих драйверах Lightsmark 2008 и он заработал только на самых новых. С тех пор доводы больных стокгольмским синдромом про поддержку невидией самых новых версий opengl предпочитаю сливать в унитаз.

steemandlinux ★★★★★
()

Круто!

У меня почему-то по прежнему kde какое-то не плавное, даже на 6970. =(

Как там сейчас решается проблема с энергосбережением на опенсорс-драйвере AMD?

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

ну на моих картах все давно было отлично, а dpm стало вообще сказочно.

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

С DPM на Radeon'ах всё просто супер! Кроме того, с ядра 3.13 сделали автоматическое отключение дискретки AMD в простое — счастье, радость и веселье!

carasin ★★★★★
()

Протестил оверхед от дри прайма,
с цифрах
латсмарк 280\300
хевен 27.2\27.5
валлей 27.4\28.5

Короче можно считать что его почти нет.

Novell-ch ★★★★★
() автор топика

Да уж. На моём драндулете о таком можно только мечтать. А если еще и с открытыми дровами, так вообще, imposibru...

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

с ядра 3.13 сделали автоматическое отключение дискретки AMD в простое — счастье, радость и веселье!

Т.е. теперь даже не нужно париться с echo OFF > .... ? Сразу включил комп, и как дискретка не нужна - отключается, а как используешь DRI_PRIME - автоматом включается? Вообще няшно!

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

Именно так. На nouveau тоже работает, причём с ядра 3.12 (сам не проверял, но по changelog'ам оно именно так).

carasin ★★★★★
()

А можно рецепт по аппаратному кодированию? (наверное, содержимого /home/rec.sh будет достаточно)

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

для интела нужен gstreamer-vaapi и libva

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

#!/bin/bash
GST="gst-launch-1.0"
GSTIN="gst-inspect-1.0"
FPSIN="24/1"
FPSOUT="24/1"
TIME=$(date +"%Y-%m-%d_%H%M%S")
FILEMANE="$HOME/rec_$TIME.avi"
#BITRATE="3000000"
FOUT="! avimux ! filesink location=$FILEMANE"
SOUT="!  h264parse ! avdec_h264 ! xvimagesink"
REC=""
ENCODER="! x264enc speed-preset=fast"
OMX="! omxh264enc "
VAAPI="! vaapiencode_h264 "




function ENC {
DI=`kdialog --menu "CHOOSE ENCODER:" 1 "Radeon OMX" 2 "Intel VAAPI" 3 "SOFTWARE";`

if [ "$?" = 0 ]; then
case "$DI" in 
        1)
           if  [[ '$GSTIN | grep omxh264enc >/dev/null'  ]]
              then ENCODER="$OMX"
              echo "Using omxh264enc encoder"
              else echo "Gstreamer omxh264enc not found"
           fi;;
       2)
           if  [[ '$GSTIN | grep vaapiencode_h264 >/dev/null'  ]]
             then ENCODER="$VAAPI "
             echo "Using vaapiencode_h264 encoder"
             else echo "Gstreamer vaapiencode_h264 not found"
           fi;;
        3)
             ENCODER="! x264enc speed-preset=superfast"
             echo "Using software encoder";;
        *)
             #ENCODER="! x264enc speed-preset=superfast"                                                                                                                                                                         
             echo "Using software encoder"                                                                                                                                                                                       
             ;;                                                                                                                                                                                                                  
             esac                                                                                                                                                                                                                
fi                                                                                                                                                                                                                               
}                                                                                                                                                                                                                                
                                                                                                                                                                                                                                 
                                                                                                                                                                                                                                 
                                                                                                                                                                                                                                 
function DIAL {                                                                                                                                                                                                                  
VID=`kdialog --menu "CHOOSE RECORD MODE:" A "FULL SCREEN REC" B "WINDOW REC";`                                                                                                                                                   
                                                                                                                                                                                                                                 
if [ "$?" = 0 ]; then                                                                                                                                                                                                            
        if [ "$VID" = A ]; then                                                                                                                                                                                                  
                REC="$GST -f  ximagesrc  use-damage=0 ! videoconvert ! video/x-raw,format=NV12,framerate=$FPSIN    $ENCODER ! progressreport $FOUT"                                                                              
        elif [ "$VID" = B ]; then                                                                                                                                                                                                
                XID=`xwininfo |grep 'Window id' | awk '{print $4;}'`                                                                                                                                                             
                REC="$GST -f  ximagesrc xid=$XID use-damage=0 ! videoconvert !  video/x-raw,format=NV12,framerate=$FPSIN  $ENCODER ! progressreport $FOUT"                                                                       
        else
                echo "ERROR";
        fi;
fi;
}


ENC
DIAL
echo $REC
$REC

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