home *** CD-ROM | disk | FTP | other *** search
/ NetNews Offline 2 / NetNews Offline Volume 2.iso / news / comp / sys / amiga / programmer / 2283 < prev    next >
Encoding:
Internet Message Format  |  1996-08-05  |  10.8 KB

  1. Path: informatik.tu-muenchen.de!fischerj
  2. From: fischerj@informatik.tu-muenchen.de (Juergen "Rally" Fischer)
  3. Newsgroups: comp.sys.amiga.programmer
  4. Subject: Re: Demo/game to OS friendly part II
  5. Date: 29 Jan 1996 18:59:10 GMT
  6. Organization: Technische Universitaet Muenchen, Germany
  7. Distribution: world
  8. Message-ID: <4ej5du$g8u@sunsystem5.informatik.tu-muenchen.de>
  9. References: <4e0jhq$f0q@sunsystem5.informatik.tu-muenchen.de> <4e114i$4o8@serpens.rhein.de> <4e371l$92b@sunsystem5.informatik.tu-muenchen.de> <4e3jld$la@serpens.rhein.de> <4e5k20$rva@sunsystem5.informatik.tu-muenchen.de> <4e64u7$a2u@serpens.rhein.de> <4e9n67$ron@sunsystem5.informatik.tu-muenchen.de> <4eb61a$4nd@serpens.rhein.de>
  10. NNTP-Posting-Host: hphalle5.informatik.tu-muenchen.de
  11. Originator: fischerj@hphalle5.informatik.tu-muenchen.de
  12.  
  13.  
  14. In article <4eb61a$4nd@serpens.rhein.de>, mlelstv@serpens.rhein.de (Michael van Elst) writes:
  15. |> fischerj@Informatik.TU-Muenchen.DE (Juergen "Rally" Fischer) writes:
  16. |> 
  17. |> >: Simple and easy: you shouldn't, you mustn't, you can't.
  18. |> 
  19. |> >wait a minute, I can't ? So how vlt manages to download on hd
  20. |> >while I run a editor ? :)
  21. |> 
  22. |> You can't in your c0d3rware.
  23.  
  24. vlt is not my coderware. it was mentioned in news for beeing startable 
  25. from each dir (which my intro does, too ;)
  26.  
  27. |> 
  28. |> >The problem disappears if I also provide selection of the 100% os fallback!
  29. |> 
  30. |> So far you don't and you mix c0d3r lore and the use of the system.
  31.  
  32. no, the version for gfx-cards is automatically the one for 100% OS.
  33. the medium version, 4pass on planarscreens, will need a chipsetblitter.
  34. the low version will need Amigachipset and a PAL monitor (and maybe V39 only,
  35. if higher versions built the copperlists for a view/vport different).
  36.  
  37. |> 
  38. |> >mhm haven't you told me native = planar & in chipmem, and isn't chipmem
  39. |> >something you can blitter around ?
  40. |> 
  41. |> Native = planar & chipmem. Doesn't mean that you have a blitter or
  42. |> even a compatible blitter. Of course up to now this _assumption_
  43.  
  44. well, how could I know, that the OS writers have different oppinion
  45. about the term "chipmem".
  46.  
  47. |> is valid. But what would have been with AAA and an incompatible
  48. |> blitter ? You would still have chip memory but your blitter code
  49. |> would break.
  50.  
  51. Ah, so a card driver could tell you you're in chipmem, actually
  52. running on gfx-card-vram with bitmap still planar interpreted.
  53.  
  54. so "chipmem" means here "mem where planar bitmap can be made visible" ?
  55.  
  56. so, could a driver tell a bitmap is "native", with bitmap located in
  57. fastmem (and OS-functions doing the rest) ?
  58.  
  59. So I would say, "native" is planar & in the mem the OS-calls get the
  60. data into screens/windows. No chipmem at all!
  61.  
  62.  
  63. |> 
  64. |> To check for the blitter you have to check the flags in GfxBase.
  65. |> You can see wether you have OCS blitter, ECS blitter or AGA blitter.
  66.  
  67. then, how to check if my native bitmap is blitterable by AGA or
  68. compatible blitter ? I guess all the people who asked for the
  69. "native" check will assume the mem is blitterable by $dff058.
  70.  
  71. shock, what about allocmem(chip) ?
  72.  
  73. |> 
  74. |> >why is this not your oppinion ? you mean 3 pass is not faster than 4
  75. |> >pass ? you must be joking.
  76. |> 
  77. |> I never said this.
  78.  
  79. but you say using the 3 pass version is wrong under any condition ?
  80.  
  81. |> 
  82. |> >So if user got no AGA or no PAL, he will be happy (?) selecting
  83. |> >writepixelarray8().
  84. |> 
  85. |> He would probably be happier if writepixelarray8 were faster.
  86.  
  87. Writepixellarray8 can only get as fast as my hack if 
  88.  
  89. a) OS introduces interleaved planar viewports for AGA and previous chips.
  90. b) let's me select how much passes are done by cpu or blitter (for each
  91.    writeparr8() call).
  92. c) the updated area got same width like screen
  93.  
  94. Would indeed be nice, 3 pass c2p on OS-screens.
  95. but to c00l to happen to be done by a D3v3l00p3r.
  96.  
  97. I admit it won't work well for 640er res, no 1280res,
  98. only 320res on dblmonitors and then chipmem bus gets
  99. into traffic jam. So the new modus is to be opened only
  100. when running PAL LORES (mhm, where to I know this
  101. specifiaction from ;) hihi ;)
  102.  
  103. |> >You said "No", you don't believe
  104. |> >that there is a case where "direct render can be faster".
  105. |> 
  106. |> Rubbish. I believe that there are cases where direct render can be even
  107. |> slower.
  108. so what are we wrestling about ? :D you somehow don't like direct
  109. render, did I read this right ?
  110.  
  111. |> >: valid is your other assumption about WaitTOF() to use busy-waiting.
  112. |> 
  113. |> >I assume there exist drivers that do this.
  114. |> 
  115. |> As most things you say are mere _assumptions_.
  116. |> 
  117. |> >you told me.
  118. |> 
  119. |> No, I didn't.
  120. too laze to reread now, as everytime I do this I find the place
  121. where you said it. Maybe this time it's not on newsserver yet. 
  122. |> 
  123. |> >you told me
  124. |> >not to use hi-pri waittof therefore.
  125. |> 
  126. |> No, I didn't.
  127. Maybe you did think something different writing a sentence that
  128. would be interpreted by most people (I said people, not c0d3r)
  129. like I did. well.
  130.  
  131. |> 
  132. |> >you flame about things you did
  133. |> >tell.
  134. |> 
  135. |> No, I didn't.
  136. maybe. So what you tell, what you flame ?
  137.  
  138. |> 
  139. |> >: >struct display *getdisplay(320,256,8,MODE_DIRECT_RENDER|MODE_LORES);
  140. |> >: Sorry, fails.
  141. |> 
  142. |> >how you want to know ? you don't know what my function does.
  143. |> 
  144. |> It should get you a display where you can poke the bitmap. And sorry,
  145. |> this wouldn't work everywhere.
  146.  
  147. It would. You don't know the routine as I didn't write RKMs for it ;)
  148. It just canceles direct render mode when not available on that
  149. platform (Your A3000, SGI, etc.). But it will return a array you got
  150. to render to, so no failing.
  151.  
  152. |> 
  153. |> >"fails." really useful answer...
  154. |> 
  155. |> Sure. It tells you that "what a c00l c0d3r assumes to get from an
  156. |> operating system" is not what he actually gets.
  157.  
  158. Well, a routine specified by Elit3 Dev3l00perz fails even if
  159. there was a way to do the required thing. OS routines are to
  160. do hardwarepokes.
  161.  
  162. |> 
  163. |> >yes, sure. and yes, there are cases wher it is slower.
  164. |> >conclusion: you get most power is interface can handle both.
  165. |> 
  166. |> Always _assuming_ that the programmer supports every possibility.
  167. |> This is deadly wrong for c0d3rz and is still wrong for OS programmers.
  168.  
  169. programmer ? you mean the caller of my routine now ? He got to render
  170. to the given array, and then call the updateroutines, that's all.
  171.  
  172. |> 
  173. |> >this proves my point that direct render sometimes is faster. TAIC.
  174. |> 
  175. |> You didn't claim this. You claimed that it were always faster.
  176.  
  177. again too lazy to look up, quote me, I don't believe to have said
  178. "always" in that context, this time you misunderstood.
  179.  
  180. |> 
  181. |> >: You said that you need direct rendering to vram _because_ that is
  182. |> >: faster. And that's wrong.
  183. |> 
  184. |> >I need this possibility as there are cases where it is faster.
  185. |> 
  186. |> How would you know when it is faster ? Simply assuming that produces
  187. |> many situations where your code is slower. Using the system might
  188. yes.
  189. |> not give the best speed in a particular setup but it gives the
  190. |> best speed for all setups.
  191.  
  192. Maybe you'd need to specify more than a bool value to tell how
  193. realtimish your effect is to give the interface a chance for right
  194. decision.
  195.  
  196. |> I would make the driver API include those higher level functions.
  197. |> The system could support texture mapping or rendering lots of polygons.
  198.  
  199. Why not. programmer can test if they're faster than his tricks
  200. (they're maybe slower if no hardware present, see writeparr8(). )
  201.  
  202. |> 
  203. |> >how to direct render if OS doesn't support it ?
  204. |> 
  205. |> You don't. The driver does. The driver is allowed to do this.
  206.  
  207. Direct render =
  208. {
  209.  {
  210.  for example writing a line from 0,0 to 319,199 with cpu.
  211.  beeing able to do any self-invented kind of rendering
  212.  onto this buffer
  213.  }
  214.  
  215. Then I display the buffer, i.e video-buffer shows the line next
  216. frame without any copying.
  217. }
  218.  
  219. You say the driver is to do this. The driver can't do direct
  220. render, unless my rendering consists of 100% API calls,
  221. but as soon as I intend to do some own effect without falling
  222. back to putpixel, no direct render any more.
  223.  
  224. No direct render any more even if cpu writes are possible to 
  225. the ram where other rendering hw is located.
  226.  
  227. This is what I don't like. It's avoidable.
  228.  
  229.  
  230. |> >I bet the cheaper ones, the ones only costing as much as 20 A1200,
  231. |> >got no zoom hardware anyway.
  232. |> 
  233. |> AFAIK they still have texture mapping hardware and geometry engines.
  234. |> Not as fast and powerful as the big machines though.
  235.  
  236. mhm it looked like some sgis do map with software. and the gouraud
  237. demo also was not as fast as you expect from hardware. maybe it's
  238. the OSes fault, but then what do you need that hardware for...
  239.  
  240. |> 
  241. |> >: Poking hardware isn't efficient from a broader view.
  242. |> >yep.
  243. |> 
  244. |> Then why do you say the opposite all the time ?
  245.  
  246. I say all the time I want to ADD a poking routine that is
  247. faster from a A1200s view, the machine which is the most
  248. used Amiga. If I also provide a OS version, you can't
  249. flame me for anything.
  250.  
  251. |> 
  252. |> >: If that produces junk, sure.
  253. |> 
  254. |> >On a vanilla A1200 it doesn't ;)
  255. |> 
  256. |> Sure it does.
  257.  
  258. Why always this short replys. You want to tell the "even vanilla A1200 
  259. aren't 100% compatible" story ? well, the PAL ones are a bit slower ;)
  260.  
  261. Or you want to tell that my copper overtake could crash. oki.
  262. I bet still 99% of vanilla A1200 users will chose the 3pass
  263. solution if it isn't too unstable. chosing something is beeing
  264. more happy with it.
  265. For doing downloads they can chose the 4pass version, or, if
  266. not provided by me due to laziness, they can chose the OS-call
  267. (and will soon rerun it in unsave 3 pass-mode, I bet).
  268.  
  269. |> 
  270. |> >Actually the only thing that can
  271. |> >make my copper hack crash is - the OS!
  272. |> 
  273. |> You are blind. Of course it is _your_ hack that crashes.
  274.  
  275. Imagine a code that works right on OS3.0, works right just
  276. because the done assumtions (copjmp2 not needed in syscoplist)
  277. are true for OS3.0. If the A1200+ still got AGA, and if the
  278. code doesn't contain any other assumtions, the only way
  279. to make it crash is having a different OS, which uses copjmp2
  280. for some purpose. Is it clear now ?
  281.  
  282. |> 
  283. |> >If 4.0 will make it crash
  284. |> >I will ask myself why I didn't overtake the copper with a 080 poke.
  285. |> 
  286. |> Or ask yourself why you tried to hack the OS. If you use hacks you
  287.  
  288. The irony is that if the new OS needs copjmp2, there is no chance for
  289. my "ucopl copjmp2 slight hack without acessing $dffxxx", but a copper
  290. takeover routine still got a chance. quite weird!
  291.  
  292. |> break sooner or later. That's one of the most simple rules.
  293.  
  294. Not brake later, because you won't select 3 pass on the later
  295. models.
  296.  
  297. You don't get it that a special select-3-pass version makes sense
  298. on vanilla A1200, huh ? Game players will be less happy with your
  299. oppinion, but not any game player will be less happy with mine.
  300.  
  301. And happy gamerz are the aim, not happy philosophes.
  302.  
  303. |> 
  304. |> -- 
  305. |>                                 Michael van Elst
  306. |> 
  307. |> Internet: mlelstv@serpens.rhein.de
  308. |>                                 "A potential Snark may lurk in every tree."
  309. ------------------------------------------------------------------------
  310.    fischerj@Informatik.TU-Muenchen.DE (Juergen "Rally" Fischer)   =:)
  311.  
  312.