Il developer GrapheneCt ha lavorato su di un nuovo plugin del kernel per console PlayStation Vita che fornisce API per eseguire codice Toshiba MeP su Venezia (Vision Enabling Engine/Zen-Inspired Architecture).
Venezia è un sottosistema multi-core originale Toshiba che dispone di più set di “MPE (Media Processing Engine)” adatti per l’elaborazione delle immagini e più acceleratori di elaborazione delle immagini.
Il plugin VVNZRunner se installato fornirà un modo sicuro per eseguire il codice MeP sul processore Venezia e funzioni per trasferire dati da e verso Venezia SPRAM.
Supporto V-Thread
I V-Thread sono thread che girano sui core Venezia. Fino a 6 core possono eseguire attività contemporaneamente in modalità normale e fino a 7 in modalità estesa (abilitata con sceCodecEngineChangeNumWorkerCoresMax()
).
Tutte le attività che non rientrano nel limite verranno pianificate automaticamente per l’esecuzione. Si noti che anche durante l’esecuzione di V-Thread, vnzBridgeExec()
si blocca sul lato ARM. Fare riferimento a sample_mep
per la procedura di creazione del V-Thread.
Esempio: stb_dxt encoder
Esempio caratteristiche porta Venezia dell’encoder stb_dxt. Codifica il file RGBA8888 di input in DDS DXT1. Alcuni codici sono stati presi da qui.
Per compilare il codice MeP utilizzare mepsdk.
Controllare CMakeLists per i flag utilizzati per compilare il codice MeP per Venezia.
Note di utilizzo
- Il codice mep personalizzato deve utilizzare uno script linker speciale con il contatore della posizione impostato sull’indirizzo di iniezione di base (
0x8E3790
per impostazione predefinita). C’è un esempio in sample_mep. - L’offset spram sicuro è
0x1404 byte
. Tutto quanto segue appartiene al contesto Venezia e verrà resettato al momento dell’esecuzione.
Maggiori informazioni possono essere trovate all’interno del wiki.
Download: VVNZRunner v1.1
Fonte: reddit.com