#Beta Vibrant driver
16 messages in this thread
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.
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
>> 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?
"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.
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
Chuck,
Thanks for filling us in on the Windows problem.
Nik
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. 🙂
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
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.
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
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.
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
>> 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
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
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)
Nope – I've stipped it down as far as loading only FILES=, BUFFERS= and the
mouse driver, of course…