home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #31 / NN_1992_31.iso / spool / comp / unix / bsd / 10675 < prev    next >
Encoding:
Text File  |  1992-12-28  |  12.2 KB  |  248 lines

  1. Newsgroups: comp.unix.bsd
  2. Path: sparky!uunet!spool.mu.edu!umn.edu!csus.edu!netcom.com!hasty
  3. From: hasty@netcom.com (Amancio Hasty Jr)
  4. Subject: Re: S3 question - Amancio, are you there?
  5. Message-ID: <1992Dec28.054342.13142@netcom.com>
  6. Organization: Netcom Online Communications Services (408-241-9760 login: guest)
  7. References: <VIXIE.92Dec26034105@cognition.pa.dec.com> <1992Dec27.081525.29228@netcom.com> <Bzy9wD.9Ez@pix.com>
  8. Date: Mon, 28 Dec 1992 05:43:42 GMT
  9. Lines: 237
  10.  
  11. In article <Bzy9wD.9Ez@pix.com> stripes@pix.com (Josh Osborne) writes:
  12. >In article <1992Dec27.081525.29228@netcom.com> hasty@netcom.com (Amancio Hasty Jr) writes:
  13. >>In article <VIXIE.92Dec26034105@cognition.pa.dec.com> vixie@pa.dec.com (Paul A Vixie) writes:
  14. >[...]
  15. >>>I see that the two greatest bit-bangers of the average computer are available
  16. >>>as VESA cards: display, and disk.  I'm still formulating my disk controller
  17. >>>questions and perhaps I'll ask them in a future post.  Right now I'm trying
  18. >>>to solve the S3 mystery.
  19. >
  20. >One problem with VESA LB and disk drives, (I think) VESA LB doesn't allow
  21. >bus mastering cards.  For SCSI (at least) this could be quite useful.  Of
  22. >corse with current tech disk drives you need 3 fast disks running at once
  23. >to use all the ISA bus.  Or you need (say, IDE) controlers with cache on them,
  24. >but it would be better to have a auto-sizing disk cache in main memory (like
  25. >SunOS, or Linux), because it would be (a) faster, and (b) useable as core if
  26. >thats more useful then disk cache, (c) you know if it is flushed to disk 
  27. >or not.
  28. >
  29. >>>At work I have a EISA/SVGA/34020 board.  It is very fast when run under
  30. >>>Windows 3.1; however, Microsoft had access to the 34020 specs and I don't,
  31. >>>so I can't figure out how to port the X server to it and noone in this
  32. >>>newsgroup seems to have done that either.  It's too bad -- a 34020 with
  33. >>>a minimal BITBLT interpreter downloaded into it would make for a lightening
  34. >>>fast X11 server with the 34020 as almost a co-processor.  However, I'm
  35. >>>fairly sure that the 34020's days are numbered given something called "S3"
  36. >>>and the "GUI Accelerator" that seem to be taking the market by storm.
  37. >
  38. >The 34020 docs are available from TI, I have a set somewhere.  The cross 
  39. >compiler is quite expensiave, and the old version makes poor code.  Someone
  40. >got a old gcc to work (more or less) with it.  The 34020 is fairly quick,
  41. >I would like to see a 34020 running X on it :-)  (I know it would be faster
  42. >to do most of the X stuff on the [34]86 and let the TI bang bits).
  43. >
  44. >The GUI accel's are doing better then the 34020 cards because they are cheap,
  45. >however I think you can build a 34020 card as cheap as a S3, but nobody has.
  46. >
  47. >>>I know that SVGA is more or less a hack on the IBM VGA spec to allow more
  48. >>>pixels; what I don't know is what an "SVGA S3" is.  I have gathered from
  49. >>>context in posts on this newsgroup that it is some kind of graphics
  50. >>>accelerator chipset and that there are several different revisions of
  51. >>>it and that different board manufacturers have had different results.
  52. >>>Yet, VGA is fundamentally a frame buffer that has some hardware assist
  53. >>>for certain operations.  Where does S3 fit in?  Is it another IO port, or
  54. >>>just more opcodes to the existing VGA IO port?  Or just a faster implementation
  55. >>>of the VGA spec?
  56. >
  57. >This is answered well below, but I thought I would point out that:
  58. > * VGA only allows 64K of the video memory to be mapped into the PC's addr space
  59. > at once
  60. > * Most SVGAs allow 128K at once, normally 2 64K windows.
  61. > * Some more useful, but more disgusting ways of viewing video memory are also
  62. > available.
  63. > * A small number of SVGA chipsets can map all of the video memory into the
  64. > PC, but I don't know if the video cards can do it.  The 386BSD kernal will
  65. > need to be wacked to make it work anyway.
  66. > * The S3 adds a bunch of IO addrs on top of a normal looking SVGA chipset.
  67. >
  68. >>>There are two reasons I need to know this.  First, if the VGA really is "just
  69. >>>a frame buffer", then given a fast CPU and VESA it should be trivial to get
  70. >>>the MIT CFB server running and have it run near the theoretical maximum
  71. >>>(though at some potentially unneccessary cost in main CPU cycles).  If on
  72. >>>the other hand VGA is like EGA in that you can only map certain parts into
  73. >>>memory at a time and it's generally cheaper to send high-level commands and
  74. >>>let the graphics hardware figure out how to achieve them, then I see a
  75. >>>problem.
  76. >
  77.  
  78. >In genneral you can only map part of the video memory at a time.
  79. >
  80. >>>What problem?  Well, DEC did this really neat thing called the "Dragon" chip
  81. >>>set back on their MicroVAX II/GPX.  It was really really fast -- if you wrote
  82. >>>your application in FORTRAN on VMS.  On the other hand if you ran under X11,
  83. >>>things ran doggishly slow and the visual results were often less than perfect.
  84. >>>This is because the _only_ way to talk to a Dragon is in high-level op-codes,
  85. >>>and the model X11 lived in was incompatible with the one the Dragon used --
  86. >>>so achieving one X11 operation often took several, or hundreds, of Dragon
  87. >>>operations.  Since the Dragon's speed came from its economy of scale, the
  88. >>>speed was less than amazing.
  89. >
  90. >I don't know much about the dragon (is that the hardware made out of N 
  91. >vipers?), but the S3, Mach8, Mach32, and even the 8514/a (or whatever it is)
  92. >have accel for short line segments which I think match up quite well with
  93. >the MI code in DDX's use of "spans" (not 100% short lines have limited length,
  94. >spans do not), so even when the exact graphics command X wants is not supported
  95. >by the hardware, this is (and should be faster then just pushing bits onto
  96. >a dumb buffer, except for really small spans).
  97. >
  98. >[...]
  99. >>>So here comes S3.  Is it the salvation to all the world's woes?  That depends.
  100. >>>Given VESA, one can access the VGA's "array" at memory speed (barring refresh
  101. >>>stalls -- that whole thing isn't dual-ported, is it?).  Is that enough?  Or,
  102. >>>if not, is it the S3 that gives one the extra performance and/or op-codes that
  103. >>>make X11 sing?  And, if that last is true, why isn't an S3 on EISA or even ISA
  104. >>>"fast enough" ?
  105. >
  106. >I *think* (someone *please* correct me if I am wrong!) most of the numbers
  107. >(even the 70k+ ones) were with ISA S3 cards (they may have been in a EISA
  108. >system 'tho).
  109.  
  110.  I have an  486/50MHz system (ISA and Vesa Local Bus) and the 83k xstone
  111.  posting is for the  Actix GraphicEngine32 (S3 8C801 1MB DRAM ISA card).
  112.  
  113. >
  114. >[...now the Hasty-miester speekith...]
  115. >>The image write, read and fill operations' performance was increased by
  116. >>using vga banking.We experienced a 10x performance improvement when 
  117. >>we switched to vga banking. In the 8514/a architecture, all data transfer
  118. >>between the cpu and co-processor is done via the data transfer register.
  119. >>Also, we have to transfer the images a line at time inside a loop.
  120. >>If there is one area in which the S3 architecture suffers this is it!
  121. >>Ideally, I would like to see the chip do dma transfers from memory
  122. >>to the card and have it calculate the offsets into its memory and 
  123. >>the logical converse - have the chip  transfer a block of memory
  124. >>to consecutive region in the hosts memory.
  125. >
  126. >How about XCopyPlane (in XOR mode)?  I don't have a S3 card (yet), but thats
  127. >the single most important thing for my application...
  128. Will let you know how fast it is :-) And, I will like to know what is your
  129. application?
  130.  
  131. >
  132. >[...]
  133. >>The 801/805 and 928 architectures are capable of mapping their entire video
  134. >>memory to the host's address space. Currently, we only map 64k bytes at a
  135. >>time. This limitation is mostly imposed to us by the kernel!
  136. >
  137. >Can the video cards do this? 
  138. Yes, the 801/805 are capable of mapping up to 2MB of memory
  139. >  I assume the problem w/ the kernal is allocating
  140. >physicly contigous RAM?
  141.  
  142. Yes this is main problem..
  143. >  The best way to do this is add a new flag to the
  144. >memmory allocator.  The simplest way is to have the device probe allocate the
  145. >VM you need during boot when most allocations will be contigous, confirm that
  146. >is _is_ contigous and go on...
  147. Tnks, we are looking into it right now...
  148.  
  149. (>
  150. >>Further performance improvements were achieved by compiling the server
  151. >>with gcc-2.3.1. Some of the x11perf results were nearly twice as fast!
  152. >>Overall performance improvement, using xbench, proved to be around %15.
  153. >
  154. >Did you remember to use -m 486 (to produce code that runs fast on the 486,
  155. >but still runs on the 386), or just have it do 386 code?
  156. Yes, we use the -m 486 flag. In fact this was one of the highest motivations
  157. for compiling the server using gcc-2.3.1. I am using gcc-2.3.2 in machine
  158. and will soon upgrade to gcc-2.3.3 :-)
  159.  
  160. >
  161. >[...]
  162. >>Slowly, the server is evolving from its pure 8514/a architecture to the
  163. >>S3 architecture. The next major jump will be when 16 bit or 24 bit
  164. >>color gets implemented :-)
  165. >
  166. >I thought the next big jump would be when you can map in 1+M of video memory
  167. >and use it...
  168. In terms of adding functionality which is not available today, I think we
  169. should start working on 16/24 bit colors. At any rate, this is my choice :-)
  170.  
  171. Most of the graphics operations don't addressed directly the video memory.
  172. image write/read/fill are the only X operations which access the video memory
  173. directly.
  174.  
  175. For instance, here is a sample code which moves characters from the card's
  176. memory to the desired location in the display:
  177.                 WaitQueue(7);
  178.                 outpw(CUR_X, (short)(ibm8514FC_X+(((int)chars[i])%32)*FC_MAX_WI\
  179. DTH));
  180.                 outpw(CUR_Y, (short)(ibm8514FC_Y+(((int)chars[i])/32)*FC_MAX_HE\
  181. IGHT));
  182.                 outpw(DESTX_DIASTP, (short)(x + pci->metrics.leftSideBearing));
  183.                 outpw(DESTY_AXSTP, (short)(y - pci->metrics.ascent));
  184.                 outpw(MAJ_AXIS_PCNT, (short)(GLYPHWIDTHPIXELS(pci)-1));
  185.          outpw(MULTIFUNC_CNTL, MIN_AXIS_PCNT |
  186.                       (short)(GLYPHHEGHTPIXELS(pci)-1)
  187.                 outpw(CMD, CMD_BITBLT | INC_X | INC_Y | DRAW | PLANAR | WRTDATA\
  188. );
  189.  
  190. >C
  191.  
  192. >[...]
  193. >>Next, is how does the S3 architecture fair agains other accelerated cards?
  194. >>
  195. >>The January issue of Byte magazine voted the Actix's GraphicEngine32 (801)
  196. >>as one of the best overall graphic accelarated cards for window applications.
  197. >>At least on Byte's tests the 801 was faster than the ATI Ultra Pro (mach 32).
  198. >>And, I really doubt that the tests were executed at low clock frequencies.
  199. >>However, the article did not state the dot clock frequency which the tests 
  200. >>were executed at.  The other faster cards were based on the 34020 and cost
  201. >>more than $1400.
  202. >
  203. >People have had the S3 for long enough to make good use of it, the Mach32 may
  204. >be too new for good drivers to be available yet. 
  205.  
  206. I am assuming that Byte use ATI's drivers in their benchmark.
  207.  
  208. > If people decide that the
  209. >34020 cards don't need to emulate SVGA/EGA/CGA/Herc in hardware the price
  210. >should drop by more then $1000, if they insist on doing that the price may
  211. >drop by about $1000.  This would be the best card for X, because the 34020
  212. >is fully programable and can be made more X orientated then windows orientated
  213. >Also, the 340xx has super great control over the display (size/shape/res/
  214. >borders).  The 34020 can even use the VRAM serial write regs...
  215. >
  216. >[...]
  217. >>On the topic of local bus IDE cards:
  218. >>
  219. >>It takes about 6 and 50 seconds to recompile the kernel with  gcc-1.39.
  220. >>With an ISA IDE card, it takes about 7.5 minutes :-)
  221.  
  222. >>
  223. >>How much does it cost? $89.
  224. >
  225. >What does "6 and 50 seconds" mean?  Most IDE local bus cards mainly add lots
  226. >of cache.  We can do better by adding more RAM to the main system and using
  227. >it wisely...
  228. 6 minutes and 50 seconds vs 7.5 minutes to compile the kernel.
  229. Orchid claims an 8MB data transfer rate and I am not going to get into
  230. a long philophical argument here with respect to what is a good benchmark
  231. for disk controllers :-)
  232. The Vesa Local Bus IDE controller is a non-caching controller and please
  233.  don't forget it costs $89! 
  234. >
  235. >[...]
  236. >-- 
  237. >           stripes@pix.com              "Security for Unix is like
  238. >      Josh_Osborne@Real_World,The          Multitasking for MS-DOS"
  239. >      "The dyslexic porgramer"                  - Kevin Lockwood
  240. >We all agree on the necessity of compromise.  We just can't agree on
  241. >when it's necessary to compromise.       - Larry Wall
  242.  
  243.  
  244. -- 
  245. Amancio Hasty           |  
  246. Home: (415) 495-3046    |  ftp-site depository of all my work:
  247. e-mail hasty@netcom.com    |  sunvis.rtpnc.epa.gov:/pub/386bsd/incoming
  248.