Thanks, geo! I haven't seen this before. It matches my findings from disassembling the O2 OpenGL libraries, though -- there are functions for accelerating glColorMatrix on ICE and such, however, this document is much nicer than looking at assembly
got this from ian's site. oh! thats great then and hmm may i know how you disassmble these libraries? are you reading binaries? or API documentation? would love to follow your foot steps on this coz i think i can have some spare time for this
That would be great, but I'm currently swamped with other work, so it'll be a while until I can get back to this.
hehe i see, thats ok shades ill just PM you soon then lets discuss our game plan
My plan was to disassemble the Photoshop plugin and figure out how it loads and executes code on the ICE coprocessor. IIRC, there is a library (libvice) which does most of that, so we'd only need to figure out the API.
hmm if you say disassmble, do you mean you use a debugger to do step by step on the assembly program? or are you decodin raw binaries? oh! i think i download that code but it was for linux?
Next up is generating code for the ICE. We'd need to check if the IRIX assembler has an option for outputting code for it, and if it supports the SIMD instructions used in ICE. If it doesn't, the GNU assembler with the appropriate patches from that Linux project can be used instead.
hmm ok2 noted, its a great plan
btw, IIRC i read from Ian site that DMBuffer is used by ICE for input and output while dmIC is the API, does this helps?
After that, it's mostly just down to writing algorithms to run on the ICE. The OpenGL libraries already contain a few optimizations in this way, so disassembling those might be educational.
hmm ok2 this indeed sounds interesting, will look fwd to this then
From what I remember, the ICE doesn't have much RAM on it, so it would be more suited to, say, various video decompression tasks (e.g. DCT, deblocking, arithmetic decoder for the video stream, colorspace conversion, etc.). It would be a lot of work to optimize a H.264 decoder to use it, but it should be doable (don't expect 1080p H.264 decoding, though ).
Decoding JPEGs and other image formats should also be possible.
hmm if you mean RAM on it does it mean its like a SOC? or you mean registers? coz i thought its an ASIC and ASIC is not capable to have RAM inside? or do you mean the cache memory? sorry for my ignorance hope you can enlight me
i also thought that all datas that will pass to ICE is only via DMBuffer in which i assume is only on the main memory right? maybe it just need a pointer? anyway your statement is motivating hehe its still doable but just need to be optimized for ICE right? ok2 then! lets do this
oh just notice, you meantioned decoding JPEGS.. but i thought ICE was indeed built for JPEGs, do you mean some other format of JPEG?
The two R4x00 CPUs on the DIVO card would be more flexible, since they're just bog standard ones (no SIMD) and have lots more RAM as well. Too bad that card costs an arm and a leg
oh!!! that then thats more interesting then! but yeah if thats the price, hehe i still need my arms and legs hehe but if the same luck will happen to me again, will see
(my luck: paid for PVO, arrived is PVO+MXE)
I was looking for an image of the DIVO because I can't remember which CPUs were on it and how much RAM was on the board ... I remember the CPUs are from IDT, but don't know if they're R4600 or R4700 (they could also be R4300).
ah i see hehe and yeah its indeed an interesting card.. let me check local taobao then
I find it amusing that you could run a proper UNIXish OS on them if they have an MMU
oh? you mean the card alone? or the card still inside Octane? that indeed is cool to try!! hehe but how about an OS that doesnt need MMU? Minix maybe? or RISCOS? not sure hehe or an RTOS maybe? i love RTOS coz thats where i work everyday
They could be used to speed up video decoding or something similar, but they are pretty much general purpose, so you could run anything on them. If they have an FPU, you could use them for rendering/raytracing (would be about as fast as an Indy, but hey ).
oh!! ok2 noted then but hmm its already confirmd it doesnt do floating point as stated at ians notes.. anyway still this ICE needs to be melted hehe
haha then expect a smooth money this coming CNY
btw shades, one question for ICE.. when we use the Analog Video in, is ICE utilized to handle the window size? i mean it can resize the video resolution to a higher without degrading the image quality?