paul@146 | 1 | = VGA Output Example Comparison = |
paul@146 | 2 | |
paul@146 | 3 | In investigating different techniques, the following observations have been |
paul@146 | 4 | made about the behaviour of the different VGA examples: |
paul@146 | 5 | |
paul@146 | 6 | {{{#!table |
paul@146 | 7 | || DMA Channels || Horizontal Resolution || Picture Stability |
paul@146 | 8 | || Pixel Consistency || Scrolling Operational |
paul@146 | 9 | == |
paul@146 | 10 | vga || 1 || High || No || No || Yes |
paul@146 | 11 | == |
paul@146 | 12 | vga-cpu || 0 || High || Yes || Yes || Yes |
paul@146 | 13 | == |
paul@146 | 14 | vga-dual || 2 || High || No || No || No |
paul@146 | 15 | == |
paul@146 | 16 | vga-pmp || 1 || High || No || No || Yes |
paul@146 | 17 | == |
paul@146 | 18 | vga-timer || 2 || Low || Yes || Yes || Yes |
paul@146 | 19 | }}} |
paul@146 | 20 | |
paul@146 | 21 | Here, picture stability is assessed with the CPU accessing RAM. In general, |
paul@146 | 22 | all of the approaches can provide stable pictures with limited RAM access |
paul@146 | 23 | loading. However, under load, the picture will stretch and ripple for all |
paul@146 | 24 | examples where picture stability is given as "No". |
paul@146 | 25 | |
paul@146 | 26 | It should be noted that the vga-timer example employs two DMA channels, but |
paul@146 | 27 | this is only to maximise horizontal resolution. With a single channel, |
paul@146 | 28 | horizontal resolution is diminished still further in comparison to the other |
paul@146 | 29 | examples. |
paul@146 | 30 | |
paul@146 | 31 | It would appear that two most viable approaches are the vga-cpu and vga-timer, |
paul@146 | 32 | if only because they produce consistently-sized pixels, retain picture |
paul@146 | 33 | stability under load, and provide operational horizontal scrolling. These |
paul@146 | 34 | approaches provide a tradeoff between performance (vga-timer being faster) and |
paul@146 | 35 | resolution (vga-cpu being better). |