Создать ответ 
 
Рейтинг темы:
  • Голосов: 0 - Средняя оценка: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Ассемблер
Автор Сообщение
uncle Не на форуме
Новичок
*

Сообщений: 19
Зарегистрирован: 18.04.2005
Рейтинг: 0
Сказал спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщ.
Сообщение: #29
RE: Ассемблер
Саму mbcopy2 не вижу смысла писать на ассемблере. Как вместе задействовать SQ не представляю, вместо можно попробовать. По моим оценкам текущая реализация должна давать чуть больше 400 512x512 фреймов в секунду. Для практических задач этого достаточно и вразы быстрее конвертации в текстуру. Но, конечно это не предел шины памяти. И ради спортивного интереса можно поиграться. Описание формата макроблоков YUV конвертера на 215 странице упомянутого тобой документа. Для DMA трансфера через YUV конвертер можешь использовать стандартный косовский механизм. Для этого:

static vuint32 * const tareg = (vuint32 *)0xa05f8000;

// YUVCONV registers
#define TA_YUV_TEX_BASE 0x148/4
#define TA_YUV_TEX_CTRL 0x14c/4
#define TA_YUV_TEX_CNT 0x150/4

tareg[TA_YUV_TEX_BASE] = dest_addr; // адрес в текстурной памяти
tareg[TA_YUV_TEX_CTRL] = ((w / 16 - 1) << 8) | (h / 16 - 1); // w и h высота и ширина соответственно
val = tareg[TA_YUV_TEX_CTRL]; // просто прочитать

pvr_dma_transfer(src, 0x800000, count, PVR_DMA_TA, block, callback, cbdata); // src - адрес где размещены макроблоки

Про артефакты - непосредственно перед DMA передачей часть данных может находится в линейках кэша процессора для которых еще не было write back. И соответственно в RAM лежат не актуальные данные. DMA операции не когерентны с процессорным кэшем и при трансфере в текстурную память уйдет этот мусорок. Все это относится к реальному железу, на эмуляторах не проявится.

Попробовать стоит. Ускорение по сравнению с конвертацией в текстуру значительное.
27.09.2013 12:58
Вебсайт Найти все сообщения Цитировать это сообщение
Создать ответ 


Сообщения в этой теме
Ассемблер - zzPSIXzz - 16.01.2011, 20:19
RE: Ассемблер - sc_maxim - 16.01.2011, 23:43
RE: Ассемблер - Rio - 16.01.2011, 23:58
RE: Ассемблер - zzPSIXzz - 17.01.2011, 01:03
RE: Ассемблер - sc_maxim - 17.01.2011, 01:17
RE: Ассемблер - Rio - 17.01.2011, 01:33
RE: Ассемблер - zzPSIXzz - 17.01.2011, 02:53
RE: Ассемблер - sc_maxim - 17.01.2011, 03:05
RE: Ассемблер - Rio - 19.01.2011, 16:34
RE: Ассемблер - sc_maxim - 09.09.2013, 23:31
RE: Ассемблер - SWAT - 10.09.2013, 07:16
RE: Ассемблер - sc_maxim - 10.09.2013, 10:18
RE: Ассемблер - sc_maxim - 10.09.2013, 22:07
RE: Ассемблер - SWAT - 11.09.2013, 08:51
RE: Ассемблер - sc_maxim - 11.09.2013, 09:10
RE: Ассемблер - SWAT - 11.09.2013, 13:28
RE: Ассемблер - sc_maxim - 11.09.2013, 22:09
RE: Ассемблер - uncle - 19.09.2013, 17:34
RE: Ассемблер - SWAT - 19.09.2013, 20:46
RE: Ассемблер - uncle - 21.09.2013, 12:04
RE: Ассемблер - uncle - 21.09.2013, 14:10
RE: Ассемблер - SWAT - 23.09.2013, 15:24
RE: Ассемблер - uncle - 25.09.2013, 12:34
RE: Ассемблер - SWAT - 25.09.2013, 15:27
RE: Ассемблер - uncle - 25.09.2013, 15:35
RE: Ассемблер - SWAT - 26.09.2013, 08:18
RE: Ассемблер - uncle - 26.09.2013, 13:53
RE: Ассемблер - SWAT - 27.09.2013, 07:04
RE: Ассемблер - MetalliC - 27.09.2013, 14:11
RE: Ассемблер - uncle - 27.09.2013 12:58
RE: Ассемблер - uncle - 27.09.2013, 15:30
RE: Ассемблер - MetalliC - 27.09.2013, 18:11
RE: Ассемблер - SWAT - 29.09.2013, 11:02
RE: Ассемблер - MetalliC - 29.09.2013, 14:25
RE: Ассемблер - SWAT - 29.09.2013, 19:27
RE: Ассемблер - uncle - 02.10.2013, 19:00
RE: Ассемблер - SWAT - 03.10.2013, 13:28
RE: Ассемблер - uncle - 03.10.2013, 17:34
RE: Ассемблер - SWAT - 03.10.2013, 21:00
RE: Ассемблер - SWAT - 10.10.2013, 12:01

Переход:


Пользователи просматривают эту тему: 1 Гость(ей)