CompuServe Thread

#Beta Vibrant driver

16 messages in this thread
#94051From: Mike RatledgeMar 28, 1994 5:25 PM
Replacing the VIB* files on my machine cures one of two problems: no more lock-ups with random black and green dots on the top 1/6 of the screen, however I'm still locking up occassionally (Orchid F1280/Plus VLB w/2MB) at random. I still don't see any pattern to it… Both the old and new drivers work just fine all the time on the machine with the Hercules Graphite/Pro VLB w/2MB.
#94145From: Nik Grant [adesk]Mar 29, 1994 7:40 AM
And I thought we had Hercules problems! I have not eliminated the possibility of a fault video card (the Fahrenheit 1280). I don't see your particular symptoms listed as a problem. I'll see if we/Vibrant can run the 1280 and duplicate your occasional lockups. If you're doing anything "special" with your bootup and system configuration, try a test run with a plain configuration. If you're running into a problem because of some fancy ROM swapping done by QEMM, etc., it might cause those symptoms. Nik
#94517From: Carl FinchMar 30, 1994 11:08 AM
>> And I thought we had Hercules problems! "We?!" Well I know *I* sure do. I have a Hercules Graphite Pro VL 2meg (model HG720) and can run under Windows only using the "VGA" option of Vibcfg. And this gives me access to only the Shaper, Lofter, 3D Editor and Keyframer–attempting the Materials Editor gives an error message ("You need a resolution that can display 130×24 characters," or sumpin). Has ANYONE been successful in running 3DS on the Graphite under Windows? And is anyone working at fixing it?
#94707From: Nik Grant [adesk]Mar 31, 1994 8:24 AM
"can run under Windows only using the "VGA" option" 3D Studio Rel3 updated the Phar Lap version to 5.1 and is now able to operate in the memory provided by Windows (DPMI). Development for the video drivers was carried out by Vibrant Graphics, and their testing was done in the DOS environment, since 3D Studio is a DOS product. In our readme.doc (excerpted below) we suggest you run the Vibrant drivers when using 3DS under Windows. Vibrant has asked us to change this because they didn't test under Windows. Whoops! When we received reports that 3D Studio users were having trouble configuring their 3DS video drivers under Windows, Vibrant ran some tests and discovered that the Windows environment inhibits the queries, etc., needed for their drivers to set 3D Studio into the proper modes – in most cases, in fact. Unfortunately, it would be a major undertaking to rewrite their drivers to work under Windows. ——————————- III.2. USING 3D STUDIO UNDER WINDOWS A. If you want to run 3D Studio under Windows, we highly recommend that you use the built-in Vibrant drivers. Avoid using VGA or ADI drivers. B. Note also that Vista cards do not function properly when using 3D Studio under Windows. You can model, but you can't render to the Vista display. C. Do not attempt to run 3D Studio as a slave system from the DOS shell under Windows. You cannot exit slave mode in this situation, because the Alt+Esc key combination required to exit slave mode is intercepted by Windows, and causes Windows to switch to another application. D. In order to run 3D Studio under Windows 3.1, you must edit the 3ds.pif file to conform to your installation. Edit the Start-up Directory field to match the drive and path where 3D Studio is installed. See page 96 in the Installation Guide for more information on the PIF file. E. Before starting 3D Studio under Windows, be sure your current Windows/3D Studio configuration is functioning properly before starting work in 3D Studio. If your configuration is not operating properly, you may lose your work if you switch from 3D Studio to another application, and for some reason cannot return to 3D Studio. F. You may have problems running 3D Studio under Windows if the display board you are using does not have enough onboard memory. If you are experiencing unsatisfactory results that may be due to display board memory, try reconfiguring for a smaller resolution. Remember that 3DS requires at least a 640x480x256 display resolution. G. Do not use 3D Studio under Windows with real mode display, digitizer, or VTR controller drivers. For example, some VESA BIOS extension TSRs are not compatible with Windows, thus preventing 3D Studio from using a VESA display configuration.
#94759From: Mar 31, 1994 11:17 AM
Nik – The Windows problem is fairly hairy. The main problem technically is that the Windows' driver takes control away from us at strange points, which leaves the system in an unstable state which could crash, or at least, trash the display. The only time we have run our DOS drivers without hitch under Windows is when the Windows' display driver is using a seperate device (for example, Windows on VGA, us on TIGA)… There was a post recently that gave information on how to be notified when Windows switched control in a DOS box, which makes it technically feasiable… but still not bullet proof. It also would require a LOT of work on our part. For now, we have decided to not mess with it… We might have to, however, once Chicago comes out and everyone is running in a DOS box (bleh). Chuck Walbourn – Vibrant Graphics
#94907From: Nik Grant [adesk]Apr 1, 1994 8:19 AM
Chuck, Thanks for filling us in on the Windows problem. Nik
#95363From: Marion K. MarksApr 4, 1994 3:33 PM
PMJI, Chuck, but here's an idea for a driver which would help at least do Slave Renders under Windows (in a window, no less!) without needing all that notification stuff (I read that and it was very interesting), and I think y'all should add it to the next release of the Inline Drivers: Basically, a VGA 80×50 TEXT-mode driver! This should be feasible since 3DS uses only monospaced fonts for its UI (at last I've found an advantage to that!). The driver would translate calls for text, horizontal and vertical lines (using the various box and line-draw characters available in the PC's default Code Page), and color changes, but ignore requests to draw individual dots, diagonal lines, etc. Of course, one could not model with 3DS in this mode, but for slave and command-line renders it should be wonderful! Even the red Rendering progress bar could be simulated by using characters 219 (solid block, "_") and 221 (left-half block, "|")! All in all, you should be able to do a passable imitation of the general 3DS UI with such a driver. There is even a way to use on-the-fly character redefinition to allow a graphic-looking smooth-moving mouse pointer (see the most recent versions of CompuShow GIF [and other] Viewer, CSHOWA ver. 8 or later, for an example of this, as well as PC-Tools Shell 7 or later), though I would happily settle for a simple inverted-attribute block mouse cursor, and I doubt I'd be alone in this. This shouldn't be hard to write, and I for one would be very happy to help you beta-test it. 🙂
#95376From: Apr 4, 1994 4:41 PM
Thanks… 🙂 How about a special driver that allows you to run 3D Studio on DOS without Windows… 🙂 Think of how much faster this would be! Chuck Walbourn – Vibrant Graphics
#96209From: Marion K. MarksApr 8, 1994 5:48 PM
Ha. Ha. Speed isn't the issue here, Mr. Walbourn. The ability to have a machine do network slave rendering while at the same time being available for other things is. The ONLY thing keeping 3DS from being able to effectively multitask under Windows is the fact that it's a graphics DOS program, and graphics DOS programs can't multitask in a window and can really mess up the Windows display even when running full-screen. The point of my driver idea is to allow 3DS to run as a text-mode program when it is doing slave or command-line or batch renders. It may also help OS/2 but not as much since OS/2 can multitask DOS graphics programs, even in windows, as-is. But it would help solve conflicting video mode problems in both multitaskers, since EVERYBODY supports VGA text mode! If you don't want the idea, just say so and I'll submit it to Panacea or your other competitors. I gave you first crack at it because to date I've liked Vibrant better, and your in-line technology could probably make it work better. Heck, I could probably write an RCPADI driver myself to do this if I put my mind to it.
#96593From: Apr 11, 1994 5:07 PM
Sorry if you are offended by my earlier comment. I had originally assumed that it was a 'tounge-in-check' request. I appologize. Thank you for giving us your feedback and I am truely sorry if you feel that I belittled your input. Vibrant's current work with the Inline driver has not focused on Windows as the platform–our primarly goals were to deal with the hardware compatability issues under DOS. We did not design the driver (or our draw-code) to work under the Window's environment and it would take a good deal of work to deal with this correctly. We have recently gotten some good information via CompuServe which would make dealing with this technically feasible in some cases, but would require a great deal of work on our part. I don't think the 'text' driver would be as easy as you might think. I will, however, take a lose look at it. One big problem is that the display needs a 80×34 text area, so placing text would be fairly complicated, if even possible, unless we put the system into a non-standard text mode–this might create problems. Status information would be extremely complicated to display because the interface is very low-level (we don't know if we are clearing a viewport or drawing the red status bar on a render, or clearing a menu area, etc.). Making a driver which displayed nothing would be easy, but configuring it may be complicated. Do you know if the NULL driver is accepted for the MAIN-DISPLAY variable? I think I'll try it out. I am not convinced that this would be particularly useful even if it did operate correctly. I guess my main concern is that slave render mode is EXTREMELY CPU hungary, and multitasking (particuarly Window's implemenation multi-tasking) such a heavy process may severly impact system performance. The DOS applications are given processing as long as they do not perform writes to video memory, which is why the graphics mode updates prevent Windows from giving it any time. Therefore a NULL driver would allow it to run, but I don't know how much useful processing could be done in the background. It might be worth a try to do a 'NULL' driver option and do some benching. Again, Vibrant did not develop the 3D Studio Inline driver to work with Windows. There was also no requirement for this in our agreement with Autodesk, and we were not originally aware that this would be a big issue. The standard VGA modes work correctly for the most part, but higher-resolutions modes do not. We are looking into the issues, but we currently don't have a lot of resources allocated to 3D Studio R3 Windows. With that said, I'll look into what is involved for essentially a 'NULL' display driver for slave mode. Are you able to get 3D Studio to run configured for basic VGA modes as the display? I was under the impression that Windows handles the Generic VGA modes and VESA modes fairly well. If speed is not an issue for you doing this, you might want to give this a try. Chuck Walbourn – Vibrant Graphics
#96892From: Marion K. MarksApr 13, 1994 11:33 AM
No, I wasn't offended per se. I was, however, making a quite serious suggestion. Unlike some others here, we don't have the time or sufficient discretionary funds to play around, make jokes, discuss politics or how neat the pizza is in New York or what have you, in this Forum. When we make a posting here, it's of serious intent. Windows does not permit any graphics DOS program to run within a window or to multitask effectively. Text-only DOS programs work reasonably well under Windows, but going into ANY graphics mode, even CGA, let alone VGA or VESA, let alone the numerous non-standard SVGA modes out there, means the program will come to a screeching halt if you put it in a window. The ONLY way to allow 3D Studio to run in the background under Windows in such a way that you can visually monitor its progress and still see your other applications, is for someone to write either an RCPADI or an Inline driver that supports VGA's extended text modes. 80×34 is the minimum, but any VGA card can go to 80×50. Basically, any VGA card has three fonts in its character generator (not counting code pages): 8×8 for CGA emulation, 8×14 for EGA emulation, and 8×16 for VGA. Normal VGA text mode has a 640×400 pixel resolution, but the pixels are not individually addressable — they are only used to build the characters, and are under the control of the character generator ROM only. CGA text mode is 640×200. EGA is 640×350. Simple math shows that 200 scan lines divided by 25 rows of text equals 8 scan lines per character row for CGA. 350 scan lines divided by 25 rows of text equals 14 scan lines per character row for EGA. 400 scan lines divided by 25 rows of text equals 16 scan lines per character row for VGA. EGA cards include their own 8×14 font, as well as the 8×8 CGA font for emulating its modes. By using the 8×8 font in the EGA's 640×350 text mode, you get 350 / 8 = 43 rows of text instead of 25. You can get to that mode on either an EGA or VGA card by typing "mode 80,43" at a DOS prompt (if you have ANSI.SYS loaded). VGA cards can duplicate that function of EGA, or they can use the CGA's 8×8 font in the VGA's 640×400 text mode to provide 400 / 8 = 50 rows of text. Or they can use the EGA's 8×14 font in VGA's 640×400 text mode to provide 400 / 14 = 28 rows of text. Those are the standards supported on every VGA card made. VGA cards can support up to 480 scan lines, so by going 640×480 instead of 640×400, direct programming of a VGA card can yield 80×30 VGA 16-line characters, 80×34 EGA 14-line characters, or 80×60 CGA 8-line characters. To see all of these in action, try the various Display modes in the DOSSHELL program that comes with MS-DOS 5, and on the supplemental utilities disk available for MS-DOS 6.0 or 6.2. If 80×34 is all 3DS's UI requires, then you could support 80×43 mode (CGA font in EGA 640×350 text mode), and not only would this allow 3DS to run as a slave under Windows, but it would also allow 3DS to run as a slave on an EGA-equipped machine (to save money on a rendering farm)! Of course that's not a consideration anymore, since EGA cards are no longer made, and basic VGA cards are available for as low as $9. It might be better to go with 80×50 (CGA font in VGA's 640×400 text mode), as Windows has better support for that, even if 3DS's UI doesn't require that many rows. I'm going to go out on a limb here and speculate about the nature of 3DS video drivers. I'm assuming that they are low-level, but not extremely so — they can accept commands of somewhat higher level than "Set this pixel to this color." I'm assuming they can accept commands as high-level as "Draw a character at this location" or even "Draw a string of characters starting at this location" as well as "Draw a line from here to here" and "Fill a rectangular area between these two opposing corner points with this particular color." I base this on the fact that dialog boxes do indeed pop up faster on GUI-accellerator chipset cards, and rectangle fills are one of the things greatly speeded up by such cards which dialog boxes could take major advantage of. I base the bit about drawing strings and/or characters on the fact that your drivers allow the user to specify which font to use from a nice variety of supplied fonts. I notice that not all of those fonts are true monospaced fonts — the "BLOCK##" fonts (as oppposed to the "BLOCK##x##" fonts) do appear to be proportionally- spaced, but 3DS still draws them as monospaced (watch how the characters line up in neat columns in the menus even when one of those fonts is selected). Apparently, 3DS can specify the location to display text on a pixel basis, so that the text need not line up on standard character boundaries. This does complicate matters somewhat, but not that much — one can simply round to the nearest whole character position. If 3DS says "display this string starting at location 33,19 (with the origin being 0,0 in the upper left corner), the text driver can round both of those coordinates to the nearest multiple of 8 resulting in (32,16), and then divide by 8 to get the actual character coordinates (4,2 — fifth character column over from the left, three rows down from the top, since we start at 0,0). Drawing horizontal and vertical lines is more involved, but basically involves knowing when to use the "-" character (Extended ASCII 196) and when to use "|" (Extended ASCII 179) and when to use the various corner and connector characters for single lines (+, +, +, +, -, +, -, |, and +). This means knowing what character is already at a location before putting a new character there. If a "-" is at a location and you are told to draw a vertical line through that location, when you get there you will need to put a "+" there instead of a "|". Figuring corners and partial connects would be more involved still: basically, it involves looking at the cells adjacent to the cells you are drawing through. If a cell to the left of one where you plan on putting a "|" has a "-" then you would put a "|" in the cell just to the right of the "-", where you would normally have put a "|", and so on. If this is at the bottom endpoint of your vertical line, you would put a "+" there instead. Filling rectangles with color involves the characters " " (space, 32), "_" (full block, 219), "-" (? block bottom, 220), "|" (? block left, 221), "|" (? block right, 222), and "-" (? block top, 223). Because ? blocks are available, rectangles can usually be filled to a ?-cell resolution, rather than a full-cell (unfortunately, no ? or 3/4-block characters are available for corners, as they are in the Commodore 64's character set). Anyway, this should more than suffice for the status bar, dialog boxes, etc. Diagonal lines would be ignored, as would commands to draw icons for the icon buttons in the lower right corner, etc. After all, the intent here isn't for making the UI actually usable, but rather simply to provide a rough facsimile so that network rendering can take place in text mode. I really don't see what's so hard about this, or why it would be so impractical. I could probably do it myself as an RCPADI if I had access to the Protected-Mode ADI SDK, which I don't.
#97276From: Chris Edgington @PanaceaApr 15, 1994 10:15 AM
Chuck, >> I am not convinced that this would be particularly useful even if it >> did operate correctly. I guess my main concern is that slave render mode >> is EXTREMELY CPU hungary, and multitasking (particuarly Window's >> implemenation multi-tasking) such a heavy process may severly impact >> system performance. The DOS applications are given processing as long as >> they do not perform writes to video memory, which is why the graphics mode >> updates prevent Windows from giving it any time. Therefore a NULL driver >> would allow it to run, but I don't know how much useful processing could >> be done in the background. It might be worth a try to do a 'NULL' driver >> option and do some benching. The advantage you have with the fact that 3DS is running in a DOS session under Windows is that it is in a seperate VM from the other Windows apps, so you can explicitly control how much CPU time gets dedicated to it, aka: pre-emptive multi-tasking. -Chris Panacea
#97315From: Apr 15, 1994 2:15 PM
>> The advantage you have with the fact that 3DS is running in a DOS session >> under Windows is that it is in a seperate VM from the other Windows apps, >> so you can explicitly control how much CPU time gets dedicated to it, aka: >> pre-emptive multi-tasking. Perhaps, but Windows is hardly the most efficent OS, so again, I am not sure of how much progress could really be made. Like I stated in the original message, I can do a NULL driver fairly easily, and will probably do so for the next revision, but I personally don't know if it will really help. Chuck Walbourn – Vibrant Graphics
#96595From: Apr 11, 1994 5:20 PM
I just did some testing under Windows with 3D Studio R3… I see what you mean by it not being real useful. I think that if used the 'text' emulation, you would have the same problem with the DOS box hanging because the text call would cause Windows to stop giving the DOS box time since it operated in the Window. If we had a 'NULL' device (I tried the standard NULL device, and it doesn't work), you would be able to run in slave mode, but that would be about it (You'd have a blank DOS window. We might be able to print some information letting you know that it was a 3D Studio NULL driver, but it wouldn't do much of anything else…). Do you think that would suffice? Chuck Walbourn – Vibrant Graphics
#96624From: John TissavaryApr 11, 1994 8:24 PM
I like the idea of a "no display" slave render session under windows. While I agree that its usefulness would be pretty limited, there are times when I would like to keep rendering while doing other stuff in windoze. I tend to have windows open a lot on one machine, but it also doubles as a render slave. If I could get it rendering in the bg, I would be rendering as I type this, although I understand that under many circumstances it would be slower than molasses <g>. I think it would be worth it if its not a really big deal to implement. thanks, John Tissavary (LUNA cie)
#95244From: Mike RatledgeApr 3, 1994 12:12 PM
Nope – I've stipped it down as far as loading only FILES=, BUFFERS= and the mouse driver, of course…