Page 7 of 31

Re: Встроенные видеокарты Intel

Posted: Sat Jan 28, 2012 1:40 pm
by Serge
Mario
Понятно. Родное разрешение там только одно, 1600х900. Остальные драйвер вычисляет сам и добавляет стандартные режимы VESA.
1366х768 похоже на баг драйвера. Обычно ширина кратна 8.

Update. Это не баг, это HDTV.

Re: Встроенные видеокарты Intel

Posted: Sat Jan 28, 2012 1:51 pm
by Mario
Т.е. программная эмуляция?

Re: Встроенные видеокарты Intel

Posted: Sat Jan 28, 2012 2:42 pm
by Serge
Mario
Эмуляция в том смысле, что параметры режима рассчитывает драйвер. Сам режим реальный.
Обычно драйвер читает EDID монитора и там прописаны режимы, которые монитор поддерживает.
У ноутов EDID может и не быть. Данные записаны в биос.
[drm:parse_lfp_panel_data] Found panel mode in BIOS VBT tables:
[drm:drm_mode_debug_printmodeline] Modeline 0:"1600x900" 0 96370 1600 1648 1680 1736 900 901 906 922 0x8 0xa
Похоже это твой случай. Виндовый драйвер проявляет немного сообразительности и генерирует промежуточные режимы. Точнее у него есть таблица всех возможных режимов которые он проверяет на доступность.

Re: Встроенные видеокарты Intel

Posted: Sun Jan 29, 2012 6:45 pm
by SoUrcerer
Щикарно работает на i965GM (в линуксе драйвер i915).
Логи:
Spoiler:

Code: Select all

i915_early_preview second edition
 cmdline: (null)
PCI device 8086:2815 bus:0 devfn:f8
PCI device 8086:2a02 bus:0 devfn:10
PCI device 8086:2a00 bus:0 devfn:0
Intel 965GM Chipset
enter intel_gtt_init
Error intel_i9xx_setup_flush can't ioremap flush page - no chipset flushing
Info intel_gtt_init detected gtt size: 524288K total, 262144K mappable
Info intel_gtt_stolen_size detected 8192K stolen memory
leave intel_gtt_init
device 8086:2a02
enter drm_get_dev
enter i915_driver_load
[drm:intel_opregion_setup] graphic opregion physical addr: 0x3f672010
[drm:intel_opregion_setup] Public ACPI methods supported
[drm:intel_opregion_setup] SWSCI supported
[drm:intel_opregion_setup] ASLE supported
Enabled hardware status page
[drm:init_vbt_defaults] Set default to SSC at 100MHz
[drm:intel_parse_bios] Using VBT from OpRegion: $VBT CRESTLINE      d
[drm:parse_general_definitions] crt_ddc_bus_pin: 2
[drm:parse_lfp_panel_data] Found panel mode in BIOS VBT tables:
[drm:drm_mode_debug_printmodeline] Modeline 0:"1280x800" 0 71110 1280 1328 1360 1440 800 803 809 823 0x8 0xa
[drm:parse_sdvo_panel_data] Found SDVO panel mode in BIOS VBT tables:
[drm:drm_mode_debug_printmodeline] Modeline 0:"1600x1200" 0 162000 1600 1664 1856 2160 1200 1201 1204 1250 0x8 0xa
[drm:parse_sdvo_device_mapping] No SDVO device info is found in VBT
[drm:intel_modeset_init] 2 display pipes available.
enter intel_crtc_init
leave intel_crtc_init
enter intel_crtc_init
leave intel_crtc_init
enter intel_setup_outputs
[drm:intel_panel_get_backlight] get backlight PWM = 0
leave intel_setup_outputs
i915_load_gem_init prealloc: 800000 gtt: 20000000 mappable: 10000000
enter i915_gem_init_ringbuffer
enter intel_init_render_ring_buffer
leave intel_init_render_ring_buffer
enter intel_init_ring_buffer
enter i915_gem_alloc_object
leave i915_gem_alloc_object
enter i915_gem_object_pin
enter i915_gem_object_bind_to_gtt
enter i915_gem_object_get_pages_gtt
leave i915_gem_object_get_pages_gtt
enter i915_gem_gtt_bind_object
leave i915_gem_gtt_bind_object
leave i915_gem_object_bind_to_gtt
leave i915_gem_object_pin
enter init_render_ring
enter init_ring_common
leave init_ring_common
leave init_render_ring
leave intel_init_ring_buffer
leave i915_gem_init_ringbuffer
enter intel_fbdev_init
[drm:drm_helper_probe_single_connector_modes] [CONNECTOR:5:LVDS-1]
[drm:drm_helper_probe_single_connector_modes] [CONNECTOR:5:LVDS-1] probed modes :
[drm:drm_mode_debug_printmodeline] Modeline 13:"1280x800" 60 71110 1280 1328 1360 1440 800 803 809 823 0x48 0xa
[drm:drm_helper_probe_single_connector_modes] [CONNECTOR:11:VGA-1]
[drm:intel_crt_detect] CRT not detected via hotplug
[drm:drm_helper_probe_single_connector_modes] [CONNECTOR:11:VGA-1] disconnected
[drm:drm_setup_crtcs] 
[drm:drm_enable_connectors] connector 5 enabled? yes
[drm:drm_enable_connectors] connector 11 enabled? no
[drm:drm_target_preferred] looking for cmdline mode on connector 5
[drm:drm_target_preferred] looking for preferred mode on connector 5
[drm:drm_target_preferred] found mode 1280x800
[drm:drm_setup_crtcs] picking CRTCs for 8192x8192 config
[drm:drm_setup_crtcs] desired mode 1280x800 set on crtc 4
enter i915_gem_alloc_object
leave i915_gem_alloc_object
[drm:intelfb_create] allocated 1280x800 fb: 0x00000000, bo 80d82060
<6>fb0: inteldrmfb frame buffer device
leave intel_fbdev_init
leave i915_driver_load
enter init_display_kms
CONNECTOR 80d81438 ID:  5 status 1 encoder 80d813d8
 crtc 0
[drm:init_display_kms] [Select CRTC:4]
leave init_display_kms
leave drm_get_dev
Set DISPLAY handler
SRV_ENUM_MODES inp 0 inp_size 0 out_size 4
enter get_videomodes
mode 0 count 0
leave get_videomodes
SRV_ENUM_MODES inp 17168 inp_size 10 out_size 4
enter get_videomodes
mode 17168 count 1
leave get_videomodes
SRV_SET_MODE inp 17168 inp_size 10
enter set_user_mode
width 1280 height 800 vrefresh 60
enter set_mode
width 1280 height 800 vrefresh 60
set mode 1280 800 connector LVDS-1 encoder LVDS-6
enter drm_crtc_helper_set_mode
[drm:drm_crtc_helper_set_mode] [CRTC:4]
[drm:intel_panel_set_backlight] set backlight PWM = 0
<4>fixme: max PWM is zero.
[drm:intel_update_fbc] 
enter intel_update_watermarks
[drm:i965_update_wm] self-refresh entries: 80, wm: 432
[drm:i965_update_wm] self-refresh watermark: display plane 432 cursor 32
[drm:i965_update_wm] Setting FIFO watermarks - A: 8, B: 8, C: 8, SR 432
leave intel_update_watermarks
enter intel_crtc_mode_set
[drm:i9xx_crtc_mode_set] using SSC reference clock of 96 MHz
[drm:i9xx_crtc_mode_set] Mode for pipe B:
[drm:drm_mode_debug_printmodeline] Modeline 13:"1280x800" 60 71110 1280 1328 1360 1440 800 803 809 823 0x48 0xa
enter intel_pipe_set_base
enter intel_pipe_set_base_atomic
[drm:i9xx_update_plane] Writing base 00000000 00000000 0 0 5120
[drm:intel_update_fbc] 
enter intel_increase_pllclock
leave intel_pipe_set_base_atomic
leave intel_pipe_set_base
enter intel_update_watermarks
[drm:i965_update_wm] self-refresh entries: 80, wm: 432
[drm:i965_update_wm] self-refresh watermark: display plane 432 cursor 32
[drm:i965_update_wm] Setting FIFO watermarks - A: 8, B: 8, C: 8, SR 432
leave intel_update_watermarks
leave intel_crtc_mode_set
[drm:drm_crtc_helper_set_mode] [ENCODER:6:LVDS-6] set [MODE:13:1280x800]
enter intel_update_watermarks
[drm:i965_update_wm] self-refresh entries: 80, wm: 432
[drm:i965_update_wm] self-refresh watermark: display plane 432 cursor 32
[drm:i965_update_wm] Setting FIFO watermarks - A: 8, B: 8, C: 8, SR 432
leave intel_update_watermarks
[drm:intel_update_fbc] 
[drm:intel_lvds_enable] applying panel-fitter: 0, 0
<4>fixme: max PWM is zero.
[drm:intel_panel_set_backlight] set backlight PWM = 1
<4>fixme: max PWM is zero.
[drm:drm_calc_timestamping_constants] crtc 4: hwmode: htotal 1440, vtotal 823, vdisplay 800
[drm:drm_calc_timestamping_constants] crtc 4: clock 71110 kHz framedur 16665750 linedur 20250, pixeldur 14
leave drm_crtc_helper_set_mode
new mode 1280 x 800 pitch 5120
leave set_mode
leave set_user_mode
SRV_SET_MODE inp 15540 inp_size 10
enter set_user_mode
width 1280 height 800 vrefresh 75
enter set_mode
width 1280 height 800 vrefresh 75
leave set_mode
leave set_user_mode
SRV_SET_MODE inp 15540 inp_size 10
enter set_user_mode
width 1280 height 800 vrefresh 85
enter set_mode
width 1280 height 800 vrefresh 85
leave set_mode
leave set_user_mode
SRV_SET_MODE inp 15540 inp_size 10
enter set_user_mode
width 1280 height 800 vrefresh 100
enter set_mode
width 1280 height 800 vrefresh 100
leave set_mode
leave set_user_mode
SRV_SET_MODE inp 15540 inp_size 10
enter set_user_mode
width 1280 height 800 vrefresh 100
enter set_mode
width 1280 height 800 vrefresh 100
leave set_mode
leave set_user_mode
SRV_SET_MODE inp 15540 inp_size 10
enter set_user_mode
width 1280 height 800 vrefresh 75
enter set_mode
width 1280 height 800 vrefresh 75
leave set_mode
leave set_user_mode
enter init_cursor
enter i915_gem_alloc_object
leave i915_gem_alloc_object
enter i915_gem_object_pin
enter i915_gem_object_bind_to_gtt
enter i915_gem_object_get_pages_gtt
leave i915_gem_object_get_pages_gtt
enter i915_gem_gtt_bind_object
leave i915_gem_gtt_bind_object
leave i915_gem_object_bind_to_gtt
leave i915_gem_object_pin
leave init_cursor
enter init_cursor
enter i915_gem_alloc_object
leave i915_gem_alloc_object
enter i915_gem_object_pin
enter i915_gem_object_bind_to_gtt
enter i915_gem_object_get_pages_gtt
leave i915_gem_object_get_pages_gtt
enter i915_gem_gtt_bind_object
leave i915_gem_gtt_bind_object
leave i915_gem_object_bind_to_gtt
leave i915_gem_object_pin
leave init_cursor
enter init_cursor
enter i915_gem_alloc_object
leave i915_gem_alloc_object
enter i915_gem_object_pin
enter i915_gem_object_bind_to_gtt
enter i915_gem_object_get_pages_gtt
leave i915_gem_object_get_pages_gtt
enter i915_gem_gtt_bind_object
leave i915_gem_gtt_bind_object
leave i915_gem_object_bind_to_gtt
leave i915_gem_object_pin
leave init_cursor
enter init_cursor
enter i915_gem_alloc_object
leave i915_gem_alloc_object
enter i915_gem_object_pin
enter i915_gem_object_bind_to_gtt
enter i915_gem_object_get_pages_gtt
leave i915_gem_object_get_pages_gtt
enter i915_gem_gtt_bind_object
leave i915_gem_gtt_bind_object
leave i915_gem_object_bind_to_gtt
leave i915_gem_object_pin
leave init_cursor
enter init_cursor
enter i915_gem_alloc_object
leave i915_gem_alloc_object
enter i915_gem_object_pin
enter i915_gem_object_bind_to_gtt
enter i915_gem_object_get_pages_gtt
leave i915_gem_object_get_pages_gtt
enter i915_gem_gtt_bind_object
leave i915_gem_gtt_bind_object
leave i915_gem_object_bind_to_gtt
leave i915_gem_object_pin
leave init_cursor
enter init_cursor
enter i915_gem_alloc_object
leave i915_gem_alloc_object
enter i915_gem_object_pin
enter i915_gem_object_bind_to_gtt
enter i915_gem_object_get_pages_gtt
leave i915_gem_object_get_pages_gtt
enter i915_gem_gtt_bind_object
leave i915_gem_gtt_bind_object
leave i915_gem_object_bind_to_gtt
leave i915_gem_object_pin
leave init_cursor
enter init_cursor
enter i915_gem_alloc_object
leave i915_gem_alloc_object
enter i915_gem_object_pin
enter i915_gem_object_bind_to_gtt
enter i915_gem_object_get_pages_gtt
leave i915_gem_object_get_pages_gtt
enter i915_gem_gtt_bind_object
leave i915_gem_gtt_bind_object
leave i915_gem_object_bind_to_gtt
leave i915_gem_object_pin
leave init_cursor
enter init_cursor
enter i915_gem_alloc_object
leave i915_gem_alloc_object
enter i915_gem_object_pin
enter i915_gem_object_bind_to_gtt
enter i915_gem_object_get_pages_gtt
leave i915_gem_object_get_pages_gtt
enter i915_gem_gtt_bind_object
leave i915_gem_gtt_bind_object
leave i915_gem_object_bind_to_gtt
leave i915_gem_object_pin
leave init_cursor
enter init_cursor
enter i915_gem_alloc_object
leave i915_gem_alloc_object
enter i915_gem_object_pin
enter i915_gem_object_bind_to_gtt
enter i915_gem_object_get_pages_gtt
leave i915_gem_object_get_pages_gtt
enter i915_gem_gtt_bind_object
leave i915_gem_gtt_bind_object
leave i915_gem_object_bind_to_gtt
leave i915_gem_object_pin
leave init_cursor
enter init_cursor
enter i915_gem_alloc_object
leave i915_gem_alloc_object
enter i915_gem_object_pin
enter i915_gem_object_bind_to_gtt
enter i915_gem_object_get_pages_gtt
leave i915_gem_object_get_pages_gtt
enter i915_gem_gtt_bind_object
leave i915_gem_gtt_bind_object
leave i915_gem_object_bind_to_gtt
leave i915_gem_object_pin
leave init_cursor

Re: Встроенные видеокарты Intel

Posted: Thu Feb 02, 2012 1:51 pm
by Serge
Новая превьюшка с блекджеком и шлюхами Тест Fplay и блиттера.
Это только превьюшка. В драйвере утечка памяти и нет синхронизации. Поэтому больше одного плеера с драйвером лучше не запускать.
И не забудьте обновить ядро.

Re: Встроенные видеокарты Intel

Posted: Thu Feb 02, 2012 8:03 pm
by SoUrcerer
Увы :( 965GM

Code: Select all


i915 blitter preview
 cmdline: (null)
PCI device 8086:2815 bus:0 devfn:f8
PCI device 8086:2a02 bus:0 devfn:10
PCI device 8086:2a00 bus:0 devfn:0
Intel 965GM Chipset
enter intel_gtt_init
Error intel_i9xx_setup_flush can't ioremap flush page - no chipset flushing
Info intel_gtt_init detected gtt size: 524288K total, 262144K mappable
Info intel_gtt_stolen_size detected 8192K stolen memory
leave intel_gtt_init
device 8086:2a02
enter drm_get_dev
enter i915_driver_load
[drm:intel_opregion_setup] graphic opregion physical addr: 0x3f672010
[drm:intel_opregion_setup] Public ACPI methods supported
[drm:intel_opregion_setup] SWSCI supported
[drm:intel_opregion_setup] ASLE supported
K : Process - forced terminate PID: 00000029

K : Page fault

K : EAX : 00000000 EBX : 80C260C8 ECX : 00000400

K : EDX : 00000000 ESI : 00001000 EDI : 00971000

K : EBP : 80C11CD8 EIP : 80CB59C4 ESP : 80C11CC8

K : Flags : 00011206 CS : 00000008 (kernel)


Re: Встроенные видеокарты Intel

Posted: Thu Feb 02, 2012 8:35 pm
by Mario
Dell Inspiron N7010
Работать то оно работает, но вот с новым FPLAY нагрузка наоборот увеличилась, где то на 20%, а где то и на все 50%.
Spoiler:
I915.LOG (7.21 KiB)
Downloaded 136 times
BOARDLOG.TXT (15.85 KiB)
Downloaded 130 times
На графике GMON видно:
1 всплеск - старый плеер в режиме 1024*768 до активации драйвера.
2 всплеск - старый плеер после активации драйвера и выбора родного режима 1600*900
3 всплеск - новый плеер после активации драйвера и выбора родного режима 1600*900
Логи приложены для второго теста (на картинке первое тестирование, логи которого я успешно похерил задумавшись). Во втором случае как раз наблюдалось потребление 10% до активации драйвера и 20% после активации.
1.jpg
1.jpg (209.99 KiB)
Viewed 3182 times
[offtop]на кадре ветеринар Мизантрпов Лечебус Викодиныч вешает лапшу школоте, что снимался вместе с Пятницей в pulp fiction[offtop]

Re: Встроенные видеокарты Intel

Posted: Fri Feb 03, 2012 4:52 am
by Serge
Mario
Странно это. А если померить новым плеером загрузку ЦПУ при отрисовке в видеопамять без драйвера. То есть запускаем плеер, смотрим на график загрузки, сворачиваем окно в заголовок и смотрим как изменилась загрузка. У меня на десктопе при сворачивании окошка загрузка падает в разы. Отрисовка в видеопамять идёт очень медленно. Если на ноуте отрисовка происходит очень быстро то с драйвером нагрузка может и возрасти.
Spoiler:Видео 1280х720 24фпс Средняя загрузка 84%. После сворачивания окна в заголовок 8%. То есть отрисовка занимает до 75% времени. При отрисовке через блиттер средняя загрузка 10-11%, драйвер добавляет около 2%.
1.png
1.png (12.5 KiB)
Viewed 3162 times

Re: Встроенные видеокарты Intel

Posted: Fri Feb 03, 2012 8:57 am
by Mario
Serge wrote:А если померить новым плеером загрузку ЦПУ при отрисовке в видеопамять без драйвера.
Так я же записал:
Mario wrote:Во втором случае как раз наблюдалось потребление 10% до активации драйвера и 20% после активации.
Как раз новый плеер и использовался. Ты случайно не перепутал бинарник FPLAY? Может не тот в архив положил.
Сворачивать не пробовал попробую в обед или вечером и отпишусь.
Единственно на что я грешу, то что при выводе в 1024*768 возможно отрисовывается быстрее при прочих равных условиях, чем в 1600*900. Однако в первом случае используется VESA, а во втором уже вроде как аппаратное ускорение должно быть задействовано.

Re: Встроенные видеокарты Intel

Posted: Fri Feb 03, 2012 9:46 am
by Serge
Залил свежий код с Linux Git
Много изменений, просьба потестить, в том числе и с плеером. И скорость видеопамяти тоже померить, см. пост выше.

Mario
Fplay тот, я по снимку экрана вижу :)
Я неудачно применил в драйвере SSE2 что давало примерно +10% к загрузке.
В свежей версии это пофиксил.
Другое дело что если запись в видеопамять идёт очень быстро то
1280*720*4*24fps=84Мб/с для процессора просто незаметны и разницы с блиттером нет.

У меня скорость записи примерно 150Мб/с как и на дискретных Радеонах, чего я совсем не понимаю. Почему выделенная под видеопамять двухканальная DDR3 работает с такими тормозами ?

Re: Встроенные видеокарты Intel

Posted: Fri Feb 03, 2012 6:54 pm
by Mario
Dell Inspiron N7010
Ты не поверишь!
Spoiler:1. Первый горб это до активации драйвера, режим 1024*768.
2. После активации драйвера, до смены режима.
3. После смены режима на 1600*900.
Сворачивание окна незначительно снижает нагрузку до активации драйвера. После акивации сворачивание не помогает - изображение видеопотока продолжает отрисовываться, но частично с мусором.
1.jpg
1.jpg (228.39 KiB)
Viewed 3126 times

Re: Встроенные видеокарты Intel

Posted: Fri Feb 03, 2012 7:27 pm
by Serge
Mario
Я у себя и не такое видел.
Раньше видео правильно перекрывалось и сворачивалось, а теперь нет ?
А всё дело в кеше. Блиттер использует хромакей, который я пишу в альфа канал. В результате практически вся картинка оказывается в кеше (она и без этого там сидит), а в ОЗУ старые данные и хромакей не работает как надо. Раньше я записывал хромакей maskmovdqu, она пишет прямо в OЗУ. Теперь перед тем как отправлять картинку блиттеру надо пройтись по ней clflush и сбросить из кеша.

А если дефрагментировать файл график ровнее будет ?

Re: Встроенные видеокарты Intel

Posted: Fri Feb 03, 2012 7:34 pm
by Mario
Ну, насколько это возможно они уже дефрагментированы.

Re: Встроенные видеокарты Intel

Posted: Sat Feb 04, 2012 5:51 pm
by Mario
Ты забыл сказать про гранулы натуральных ягод смену ядра или образа на последнее.

Dell Inspiron N7010
Spoiler:
I915.LOG (7.43 KiB)
Downloaded 125 times
BOARDLOG.TXT (29.02 KiB)
Downloaded 122 times
Что-то поломалось.
Теперь после запуска драйвера рисуется пустое окно видеоплеера и проигрывается кусок звукового буфера в бесконечном цикле.

Re: Встроенные видеокарты Intel

Posted: Sat Feb 04, 2012 6:57 pm
by Serge
Eщё раз #4
Пофиксил ошибку с зависанием. Должно работать. Я надеюсь.