Let's get started with a Pandora port
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ... 22
Terje Slettebø (285) 275 posts |
This is excellent news. :) Star Fighter 3000 was my favourite Archimedes game (like Elite was on the BBC Micro). Just think what we could do using OMAP’s PowerVR SGX graphics accelerator… :) An example from YouTube: http://www.youtube.com/watch?v=aeT3Fqrgmws It doesn’t say which platform the demo runs on, though, but there are also demos from Pandora, etc. It’s unlikely that the DMA will be of much help in computer graphics, except for simple things like rectangles. |
Peter Naulls (143) 147 posts |
I’m not sure where you get this idea. In theory (and certainly on the Iyonix) primitives such as lines, rectangles, etc should be accelerated by video card instructions. DMA typically doesn’t help much here, since the instructions are so small. DMA can be a huge deal for games when plotting sprites, etc, as many do. This is certainly the biggest bottle neck in many newer games on RiscPCs. Anyway, riscos.info games should work on BB: http://www.riscos.info/downloads/packages/SectionIndex.html#Games |
Jeffrey Lee (213) 6048 posts |
With regards to Star Fighter, the only thing which DMA is likely to be useful for is copying the rendered scene to the screen. But I’ve got no idea whether it would give a performance boost – some not entirely scientific tests I did a few days ago suggested that the CPU can write to screen memory at 400MB/s, which means redrawing the window Star Fighter is running in probably takes less than one millisecond (assuming an 8bpp desktop and no scaling). The DMA controller in the OMAP does support rectangle copies, fills, and colour-key based transparency (for transparent sprites), so could be useful in speeding up the rendering of the desktop and 2D games, but it’s almost entirely useless for 3D games. When I finally get round to downloading GCC 4 I’ll try compiling Quake 2 and see how it runs. I think there were reports from the Pandora community that it ran quite well, even with software rendering and using GCC’s software floating point. It would be a much better benchmark to find out what performance we can reasonably achieve from the system. |
Terje Slettebø (285) 275 posts |
Hi Peter.
It seems to me that you’re saying the same I did (and which Jeffrey said in the following posting), so I don’t understand what you disagree with. Yes, it may also be used for plotting sprites, but that is also a case of drawing rectangles (possibly with a mask). Regards, Terje |
Adrian Lees (168) 23 posts |
Hi, I just received my BeagleBoard order last night, and have RO running as per your instructions – thanks! – but can’t persuade it out of 640×480 256-colour mode at the moment, beyond dropping back to the old numbered modes. LoadModeFile seems to work fine, but attempting to enter any of the new modes just leaves me in the current mode. Have I missed something? Obviously my first priorities are to get Geminus and Cino updated, then possibly Aemulor and/or the abort handler we discussed a long time ago. Cheers for the great work. |
Jeffrey Lee (213) 6048 posts |
Excellent! It’s good to have you aboard :)
This is because RISC OS still relies on *vidcbandwidthlimit, even though it’s mostly useless in the HAL world. If you use the “HardDisk4” boot sequence/disc image from here then it should set a new value for you (same as the official Iyonix boot sequence does). We should probably fix it so the HAL handles that setting at some point. (Note to self – update setup guide to mention the disc image!)
Regarding Geminus and Cino – the current video driver for the OMAP3 port is very basic and doesn’t let you use any of the advanced features which would be required for Geminus/Cino. The plan was that Simon Wilson was going to write a new video driver in C as a module, and to disable the code that’s currently in the HAL (but retain it in the source for debugging). I tried mailing Simon a week or two ago to see if he’d made any progress but haven’t had a reply yet (He’s had the task for a few months, but AFAIK hasn’t had the time to actually get started on it yet). If you aren’t able to raise him yourself then I’d be more than happy for you to take over the task, since it’s a critical task if we want to get the port running on devices with integrated screens (Touch Book, Pandora, etc.) Aemulor and the abort handler would be good as well, of course, so feel free to take your pick from the available tasks. |
Jeffrey Lee (213) 6048 posts |
Actually there’s one other thing that might be limiting your choice of video modes – the video controller is rather restrictive about the signal timings it supports. At the moment the driver is running in “strict” mode, so it will refuse to change to a mode that doesn’t have suitable timing values. So it may be that whatever MDF you’ve loaded doesn’t contain any usable modes. There’s a set of modes at the bottom of the video driver page that should work OK (assuming your monitor supports them!) |
Steve Revill (20) 1361 posts |
I did a new set of autobuilds last night. The most notable change will probably be that unaligned loads now cause an exception in the OMAP ROM build. Adrian: is there any chance that something could be done with Geminus so I can run my dual displays at their native resolution? ISTR there was some feature of the nVidia driver that needed tweaking – the source code has been available for a while so maybe this could go on the ToDo list? :) https://www.riscosopen.org/viewer/view/mixed/RiscOS/Sources/Video/HWSupport/NVidia/ |
Michael Gerbracht (180) 104 posts |
Did you know that there is a BeagleBoard clone with 720MHz, 512 MB RAM and Ethernet on Board (plus wifi and bluetoth)? Do you think the current port would just work on this board, too? Of course I understand that the original BeagleBoard port should be completed first, I just found this on the web and wanted to share the info in case you have not seen this before. |
Peter Naulls (143) 147 posts |
Yes, there are a few clones: http://www.riscos.info/index.php/BeagleBoard#Derivatives
I think it is very likely with no, or very small changes. |
Adrian Lees (168) 23 posts |
Hi, just a quick announcement: I have DMA rectangular copies and fills working in prototype code, so it shouldn’t be too much longer before I can roll it into either a module hanging off GraphicsV, or directly into Geminus which can accelerate sprite plotting, including masks etc too. Re the mode changing, the 1280×1024x57Hz mode doesn’t work at all on my C3 board – which was part of the confusion. I also think VIDCBandwidthLimit may need to be issued before entering the desktop which I do now (haven’t proven that, though). The picture glitches every now and then about 3/4 the way down the 1280×1024x50Hz,16m mode too, though. Thanks for the MDF. |
Jeffrey Lee (213) 6048 posts |
Sounds good! My current plan is for DMAManager to be in control of most of the DMA channels (and have them all mapped to one IRQ), leaving the remaining channel(s) and IRQ lines free for graphics acceleration. The details of these channels (address of DMA controller, IRQ number, etc.), and the details of the video controller, will then be exposed to RISC OS via a HAL device, so the video driver/Geminus/etc. can get the details in a safe manner. Sometime within the next week I’ll try and write some code to deal with this, and get it all checked in along with my current HAL/DMAManager changes.
Yeah, I’m fairly certain it gets issued before entering the desktop in the standard RISC OS 5 boot sequence. You should really grab a copy of the HardDisk4 disc image and use that.
I’m hoping this is just a problem with our graphics FIFO/DMA settings, and that it will go away if someone tweaks the values a bit (The glitching seems to be caused by the CPU or other devices putting a heavy strain on the memory bus). It’s probably something that’s easiest to fix once the new video driver has been written (using a * command to tweak settings is a lot quicker than recompiling a ROM image!) |
Adrian Lees (168) 23 posts |
Okay, working (for me at least!) prototype code at: http://adrianl.drobe.co.uk/alpha/omapgraphics.zip This DMA accelerates the OS’s rectangle fills and copies, and lends further support to your theory that the pixel FIFO is underrunning under heavy bus/memory traffic, since dragging large windows around the screen causes the picture to break up badly in hi-bw modes. I’ve not attempted to measure the performance yet, but it feels more like the A9home than IYONIX pc to me, to be honest. I suppose that’s to be expected from an unified memory architecture, though there may be some small improvements to be had from further tweaking the DMA setup too. |
Chris Gransden (337) 1207 posts |
I’ve now got smooth scrolling in Netsurf. :) Reducing the frame rate helps. I’ve got mine set to 45Hz. With this I only get the occasional picture break up. |
Jeffrey Lee (213) 6048 posts |
Adrian: I’ve finally checked in my changes, so there’s now an “OMAP3 video controller” HAL device, containing the logical address & IRQ number of the video controller, along with the logical address of the DMA controller, mask of available channels, and the IRQ they are assigned to. Really crap documentation here, with the main HAL device documentation here (which you’ll have to read at least some of to work out how to find the device!) Feel free to suggest/make any changes you need to the source/documentation as you develop your code (in particular fleshing out what the HAL should do for the Activate/Deactivate/etc. entry points – e.g. I’d expect the HAL to be in charge of board-specific stuff like enabling the DVI framer on the beagleboard/DevKit8000) As an unrelated change, DMA is now used to clear RAM on boot, which shaves several seconds off the boot time. |
Terje Slettebø (285) 275 posts |
Is it necessary to clear the RAM on boot? Also, I’d have thought that it was pretty cleared on startup, anyway. |
Jeffrey Lee (213) 6048 posts |
RISC OS programs don’t make any assumption as to the content of their newly-allocated RAM, but it looks like RISC OS does. As an experiment to check that the RAM clear was working I changed the code to fill memory with a nonzero value. The machine hung right after RISC OS enabled interrupts – so there’s at least once piece of code in the OS which expects RAM to be clear on boot.
I’d expect most of it to be clear, but certainly not all of it. At the least there’ll be a copy of u-boot, and there’ll probably also be a second copy o the ROM image (since the ROM relocates itself to the top end of RAM in order to avoid fragmenting the physical memory map). I’m also not sure what happens to the board when it goes through a reset – it might be that the RAM remains powered and so retains its previous content. |
Jeffrey Lee (213) 6048 posts |
A general update for everyone:
|
Steve Revill (20) 1361 posts |
I’ve updated the OMAP ROM build on our downloads page and included a copy of your scripts in the archive (adding a link to your originals so people can find them). Would you like to add these scripts to cvs? |
Jeffrey Lee (213) 6048 posts |
The new ROM doesn’t boot, before anyone else tries it. I managed to miss a file out of my checkin. I’ll report back once I’ve made sure that the code in CVS does work this time.
Yes, that would make sense. I’ll see if I can get the mkimage tool to compile on RISC OS (or via the cross-compiler), so that the binary versions of the scripts can be built as part of the build process. Having a copy of mkimage that runs on RISC OS would also allow us to easily package the ROMs as uImages, if we desired. |
Jeffrey Lee (213) 6048 posts |
The code that’s in CVS works now. I’ve uploaded a working ROM image here if people want to try it out. Also, as promised, here is a ROM image using the hacky “pasive” video driver, for people with Touch Books to try out. Since this is just a quick hack, the screen will be cropped at the right/bottom if you use a screen mode larger than the display size (i.e. 1024×600). I’ve also included a copy of the ARMv7-safe command line unzip tool, as I remember Bryan Hogan didn’t have any way of extracting zip files for his TB. Hopefully sometime today I’ll get the source patches sent back to infozip. Also for both of those ROM images I’ve got a special hack enabled – to save on desk space I’ve been using my beagleboard with a mini keyboard + trackball. The trackball only has two buttons, so in my copy of the USB drivers I’ve remapped the Windows key to act as the Menu button (I was actually aiming to remap the Menu key, but I found the Windows one first!) This should hopefully mean that, assuming the ROM boots, the “AI” keys on the Touch Book should operate as the Menu mouse button. Hopefully the trackpad works as well. |
Jeffrey Lee (213) 6048 posts |
I think – judging by the timestamps – ROOL re-ran the autobuilder last night, so the autobuilt ROM should work again. Also I’ve uploaded a standalone copy of unzip here (set type to absolute), to save people downloading the big archive I posted above. |
Stephen Crocker (328) 8 posts |
I’ve just tried the passive ROM with the Touchbook script using AI’s MLO and u-boot. The Touchbook gives a blank/pulsating screen but ironically the same SD card appears to boot on the Beagle (I got as far as the Supervisor being displayed on the monitor). I downloaded MLO and u-boot from AI’s update site a few minutes ago. Also, I’ve tried a USB keyboard but with no response. |
Jeffrey Lee (213) 6048 posts |
Hmm, it looks like this is going to require some hands-on debugging to get it working. Which means we have three choices:
For the time being I’m planning on focusing on the video driver – it could easily take several months to write, and the Touch Book port won’t be properly usable without it. If my Touch Book arrives before anyone works out why RISC OS doesn’t boot then I suspect I’ll shift my focus and work out what’s wrong, but until then you’ll have to mostly rely on yourselves if you want to see that familiar grey desktop appear ;) |
Terje Slettebø (285) 275 posts |
Hi. I just want to express once again, on behalf of all BeagleBoard/Touch Book, etc. owners who hope to be able to run RISC OS on them (which you already can, on the BeagleBoard) my gratitude for all the hard work especially you, Jeffrey, but also ROOL, are putting into this port… I recently got a confirmation mail saying that my Touch Book was about to be shipped, so hopefully soon, there will be yet another “guinea pig” for testing out RISC OS on the Touch Book… :) When I get it, I’ll try it out, and contribute what I can, to the port efforts… |
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ... 22