VOGONS


Some PCI/ISA/VLB video cards info

Topic actions

Reply 21 of 81, by Scali

User metadata
Rank l33t
Rank
l33t
386SX wrote:

It's incredible how the C64 video chipset was advanced at those days. Nowdays someone still programs demos that push its hardware to limits that none could imagine.

Yup, then again, people still code demos for 8088 with CGA as well 😀

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 23 of 81, by Scali

User metadata
Rank l33t
Rank
l33t
386SX wrote:

Interesting, never went on the lower-286 side of the x86 computer world. 😁 Are demo as good?

Check out 8088 Corruption: https://youtu.be/BrwGxwLuo5I
8088 Domination: https://youtu.be/MWdG413nNkI
8088 MPH: https://youtu.be/hNRO7lno_DM

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 24 of 81, by alexanrs

User metadata
Rank l33t
Rank
l33t
Scali wrote:

In short, PC graphics has sucked for a long LONG time, at least partly because of the concept of having videomemory on a separate card, only accessible via a bus.
Other systems such as the C64 and Amiga had their memory shared by video chip and CPU, which meant that you had a lot more flexibility in processing data and showing it on screen, without having to move it around.
They could play video/animation quite well, where it has always been a struggle on PCs.

Yeah, but wasn't the bus used by the vídeo card's memory the same one used by the main memory at the beggining? I mean, the motherboard's memory being accessed at the same speed as memory on expansion boards on 80s ISA systems, before the expansion bus and processor bus speeds were separated? AFAIK there is no reason a 8088/8086/sub-10MHz 286 would be able to differentiate between main memory and vídeo memory, and the only possible speed difference would be the vídeo card without dual-ported RAM introducing wait states. This being the case PC graphics only sucked at that time because faster vídeo cards were not prevalent - but not a technical impossibility.
I also believe VLB systems should not suffer that issue, because the VLB bus as, in its 486 form, a direct path between the card and the processor. Again, the only speed issues here would be the vídeo card having slower memory. Again - economical viability vs technical capability.
Late ISA-only systems (higher clocked 286, 386, early 486) would be where this limitation would really hit. PCI systems too. AFAIK once AGP was introduced the cards were the ones trying to catch up to the bus' bandwidth, so this limitaion was a lot less important.

Reply 25 of 81, by Scali

User metadata
Rank l33t
Rank
l33t
alexanrs wrote:

Yeah, but wasn't the bus used by the vídeo card's memory the same one used by the main memory at the beggining? I mean, the motherboard's memory being accessed at the same speed as memory on expansion boards on 80s ISA systems, before the expansion bus and processor bus speeds were separated?

Only at the VERY beginning. The ISA bus speed was locked to 4.77 MHz for compatibility, so on any 'turbo XT' systems, the ISA bus already ran slower (then again, perhaps the main memory ran slower as well, not sure about that).

alexanrs wrote:

AFAIK there is no reason a 8088/8086/sub-10MHz 286 would be able to differentiate between main memory and vídeo memory, and the only possible speed difference would be the vídeo card without dual-ported RAM introducing wait states. This being the case PC graphics only sucked at that time because faster vídeo cards were not prevalent - but not a technical impossibility.

The bigger problem was reading back the memory. When you write to video memory, you just put the data on the bus, and it's more or less 'fire-and-forget'. But when reading video memory with the CPU, you have to wait until the data is available, which was generally very VERY slow, even with VLB/PCI cards. You'd be lucky to get 1/5th of the speed reading videomemory as you got writing to it. So you generally just avoided that, and instead used a buffer in main memory, which you'd copy to videomemory, so you'd have write-only to videomem.

And there were other problems with videomemory, namely the locality of it: things have to BE in videomemory in order to display them.
On C64 or Amiga, you can point the video chip to various places in memory, which makes things like streaming data from disk much easier and faster. On a PC, anything you read from disk will always end up in main memory first, before you can copy it to screen. Likewise, the videomemory is generally quite small, so you are limited there as well.
The PCjr is somewhat unique there, because it actually DOES share main memory and video memory. This allowed games to do various tricks such as vertical smooth scrolling, which were impossible to do on a regular PC, because you had to keep moving data into the small videomemory window.

And then there were other things... mostly the lack of any kind of clever features on CGA/EGA/VGA/SVGA cards, so all you could do was just bang a lot of data around in videomemory with the CPU. No hardware sprites, no raster interrupts, no copper, no blitter, nothing.

There's a reason why PCs used to suck compared to C64/Amiga, and they needed the brute force of a 486 with VLB to do some things that even a C64 can do effortlessly.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 26 of 81, by alexanrs

User metadata
Rank l33t
Rank
l33t
Scali wrote:

The bigger problem was reading back the memory. When you write to video memory, you just put the data on the bus, and it's more or less 'fire-and-forget'. But when reading video memory with the CPU, you have to wait until the data is available, which was generally very VERY slow, even with VLB/PCI cards. You'd be lucky to get 1/5th of the speed reading videomemory as you got writing to it. So you generally just avoided that, and instead used a buffer in main memory, which you'd copy to videomemory, so you'd have write-only to videomem.

Was that a limitation of the bus or rather just how the cards were made (eg. no one bothering making graphics cards with fast reading speeds because not reading from the vídeo memory was already a common practice)?

Scali wrote:

And there were other problems with videomemory, namely the locality of it: things have to BE in videomemory in order to display them.
On C64 or Amiga, you can point the video chip to various places in memory, which makes things like streaming data from disk much easier and faster. On a PC, anything you read from disk will always end up in main memory first, before you can copy it to screen. Likewise, the videomemory is generally quite small, so you are limited there as well.
The PCjr is somewhat unique there, because it actually DOES share main memory and video memory. This allowed games to do various tricks such as vertical smooth scrolling, which were impossible to do on a regular PC, because you had to keep moving data into the small videomemory window.

I wonder how that approach could ever work with the PC's modular design philosophy. The RAMDAC would have to communicate with the system memory through the bus as well, or a separate bus with access to the system memory in a more efficient way would need to be created just for vídeo cards.

Scali wrote:

And then there were other things... mostly the lack of any kind of clever features on CGA/EGA/VGA/SVGA cards, so all you could do was just bang a lot of data around in videomemory with the CPU. No hardware sprites, no raster interrupts, no copper, no blitter, nothing.

There's a reason why PCs used to suck compared to C64/Amiga, and they needed the brute force of a 486 with VLB to do some things that even a C64 can do effortlessly.

While I can see why that is that case up to VGA (as the PC was still considered a business machine by IBM, and not a gaming one, no?), I wonder why SVGA never tried to do more than that. Sure, VBE/AF existed but nothing worthwhile seems to support it, both software and hardware. Luckly this was eventually addressed with APIs like DirectX/OpenGL.

Reply 27 of 81, by Scali

User metadata
Rank l33t
Rank
l33t
alexanrs wrote:

Was that a limitation of the bus or rather just how the cards were made (eg. no one bothering making graphics cards with fast reading speeds because not reading from the vídeo memory was already a common practice)?

I think it was a bit of both. PCI-e finally improved the readback speed on video memory.

alexanrs wrote:

I wonder how that approach could ever work with the PC's modular design philosophy. The RAMDAC would have to communicate with the system memory through the bus as well, or a separate bus with access to the system memory in a more efficient way would need to be created just for vídeo cards.

Wel yes, you'd have the video chip and RAMDAC on the mainboard as well, and some kind of bus arbiter. It's done that way on most systems. The PC was rather unique. PCjr is more like other systems from Commodore, Atari, Apple etc.
Then the video chip could be socketed, like the CPU... But in both cases you probably wouldn't upgrade them often, and just replace the motherboard.

alexanrs wrote:

While I can see why that is that case up to VGA (as the PC was still considered a business machine by IBM, and not a gaming one, no?), I wonder why SVGA never tried to do more than that. Sure, VBE/AF existed but nothing worthwhile seems to support it, both software and hardware. Luckly this was eventually addressed with APIs like DirectX/OpenGL.

The problem with SVGA was that everyone tried to re-invent the wheel. So a lot of cards had extra features, but none of them were compatible, so you ended up with the lowest common denominator.
VBE arrived too late to really address the problem. It finally got fixed with DirectDraw.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 29 of 81, by Scali

User metadata
Rank l33t
Rank
l33t

Nice to have:
-Cirrus Logic GD5424/28
-Tseng ET4000AX

These were some 'best in class' chips.

This one is also interesting:
-Realtek RTG3103/05

Possibly 'worst in class' ever 😀 Nice to have for that reason perhaps.

The others I am not familiar with. Trident tends to be slow, Cirrus Logic tends to be good, but they have made a few bad ones as well. This is a very early chip at any rate, so perhaps interesting for that reason. HMC I have never heard of.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 30 of 81, by 386SX

User metadata
Rank l33t
Rank
l33t

Well,, first cards arrived.. more interesting:

ATi VGA Wonder XL (28800-5) 1MB ISA
RT3202 Oak OTI077 512kbyte (maybe) ISA
Trident 7343L TGUI9420DGi VLB
Cirrus Logic CL-GD5429 VLB

Man isa and vlb cards always look so cool. 😁
I already installed the ATI on my 386 mainboard to replace the Trident 9000i and you were right it's like another computer. The whole computer seems faster.. even the hard disk.. is it possible?

Reply 32 of 81, by kixs

User metadata
Rank l33t
Rank
l33t

You can always use Univesa to get proper vesa support.

Run 3Dbench to see how much faster is this card then the Trident.

Requests are also possible... /msg kixs

Reply 33 of 81, by Scali

User metadata
Rank l33t
Rank
l33t
386SX wrote:

Man, first games tried (Stunts) is so much smoother...Wolf3d is even smoother...

The only strange thing.. Hwinfo tell me no VESA suppor present.. is it right?

That's probably correct. VBE on ISA cards are not that common.
Some cards have it in the form of a TSR, rather than built into their BIOS ROM. So you may want to check the web to see if you can download the utilities that came with the VGA card. UNIVBE/SciTech Display Doctor is generally the best way though. It adds VBE support even to cards that never had it, and it is more up-to-date than most vendor-supplied VBE implementations.

Mind you, you don't really need it for 386/486 games. The systems aren't really fast enough to run games in other modes than 320x2x0 256 colour. And most image viewing programs will have support built-in for a lot of common SVGA cards, so they won't need VBE. Likewise you don't want to run Windows on a generic VESA driver, but on the optimized drivers supplied by the vendor.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 34 of 81, by 386SX

User metadata
Rank l33t
Rank
l33t
Scali wrote:
That's probably correct. VBE on ISA cards are not that common. Some cards have it in the form of a TSR, rather than built into t […]
Show full quote
386SX wrote:

Man, first games tried (Stunts) is so much smoother...Wolf3d is even smoother...

The only strange thing.. Hwinfo tell me no VESA suppor present.. is it right?

That's probably correct. VBE on ISA cards are not that common.
Some cards have it in the form of a TSR, rather than built into their BIOS ROM. So you may want to check the web to see if you can download the utilities that came with the VGA card. UNIVBE/SciTech Display Doctor is generally the best way though. It adds VBE support even to cards that never had it, and it is more up-to-date than most vendor-supplied VBE implementations.

Mind you, you don't really need it for 386/486 games. The systems aren't really fast enough to run games in other modes than 320x2x0 256 colour. And most image viewing programs will have support built-in for a lot of common SVGA cards, so they won't need VBE. Likewise you don't want to run Windows on a generic VESA driver, but on the optimized drivers supplied by the vendor.

Thanx cause i think there was on the 9000i. By the way i am REALLY impressed by how much the system seems unleashed now! i assume the et4000 being even faster.

Reply 35 of 81, by Scali

User metadata
Rank l33t
Rank
l33t
386SX wrote:

Thanx cause i think there was on the 9000i. By the way i am REALLY impressed by how much the system seems unleashed now! i assume the et4000 being even faster.

Yup, I was really annoyed by that back in the day... 386DX-40 systems were always 'bargain basement' systems, because the high-end were 486DX2-VLB systems back then. So they were generally built as cheaply as possible, meaning that they usually had trashy Trident cards, which pretty much defeats the whole point of having the 386DX-40: as a cheap alternative to a 486 for gaming.
Even on a 386SX-16 I could already tell the difference between a Trident and a WD card. The Trident was already bottlenecking that system.

The ET4000 is about as good as it gets for ISA cards. If you put it in a 486DX2-66, it will play Doom about as well as a VLB card will.

You might also want to experiment with overclocking the ISA bus somewhat in the BIOS. Most motherboards will have some options to change the clock dividers for the ISA bus. You might be able to get a bit more performance that way. Be careful though, all ISA cards will have to run at the higher speed. If you're unlucky, your multi-IO card can't handle it, and you might experience data loss on your HDD. So if you want to experiment with that, be prepared that the HDD may go corrupt and needs a reformat/reinstall.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 36 of 81, by kixs

User metadata
Rank l33t
Rank
l33t

There were some Trident models that are as fast as ET4000, I own a few. No fast ISA card can compare to an average VLB one - like CL-5428/S3-805 - even on a slow 486 there are at least 30-50% difference. On a faster even more.

Requests are also possible... /msg kixs

Reply 37 of 81, by 386SX

User metadata
Rank l33t
Rank
l33t
Scali wrote:
Yup, I was really annoyed by that back in the day... 386DX-40 systems were always 'bargain basement' systems, because the high-e […]
Show full quote
386SX wrote:

Thanx cause i think there was on the 9000i. By the way i am REALLY impressed by how much the system seems unleashed now! i assume the et4000 being even faster.

Yup, I was really annoyed by that back in the day... 386DX-40 systems were always 'bargain basement' systems, because the high-end were 486DX2-VLB systems back then. So they were generally built as cheaply as possible, meaning that they usually had trashy Trident cards, which pretty much defeats the whole point of having the 386DX-40: as a cheap alternative to a 486 for gaming.
Even on a 386SX-16 I could already tell the difference between a Trident and a WD card. The Trident was already bottlenecking that system.

The ET4000 is about as good as it gets for ISA cards. If you put it in a 486DX2-66, it will play Doom about as well as a VLB card will.

You might also want to experiment with overclocking the ISA bus somewhat in the BIOS. Most motherboards will have some options to change the clock dividers for the ISA bus. You might be able to get a bit more performance that way. Be careful though, all ISA cards will have to run at the higher speed. If you're unlucky, your multi-IO card can't handle it, and you might experience data loss on your HDD. So if you want to experiment with that, be prepared that the HDD may go corrupt and needs a reformat/reinstall.

Yeah! Once I didn't even know this cpu existed. 😁
But I didn't even know that at those time the video graphic "fight" was already active in the computer industry.
Well now my 386 is becoming quiet good: Am386DX-40 - 256Kbyte 15ns cache, ETEQ ET82C491 chipset, ATi MTX 1024A 28800-5 1MB... and tomorrow I should receive 16MB (4x4MB) 60ns payed so much...🙁.. 😁 I would use a much faster Seagate 512MB disk I have but it's really noisy running and hurting my ear.

Last edited by 386SX on 2015-09-16, 13:44. Edited 2 times in total.

Reply 38 of 81, by 386SX

User metadata
Rank l33t
Rank
l33t
kixs wrote:

There were some Trident models that are as fast as ET4000, I own a few. No fast ISA card can compare to an average VLB one - like CL-5428/S3-805 - even on a slow 486 there are at least 30-50% difference. On a faster even more.

But on the ISA bus you're saying? Can you tell me some models?

And what about the WDC alternative to the ET4000? Anyone tried the BitBLT accelerated version WD90C31 if existed on ISA?

Reply 39 of 81, by sunaiac

User metadata
Rank Oldbie
Rank
Oldbie
Scali wrote:

The ET4000 is about as good as it gets for ISA cards. If you put it in a 486DX2-66, it will play Doom about as well as a VLB card will.

It certainly will not.

R9 3900X/X470 Taichi/32GB 3600CL15/5700XT AE/Marantz PM7005
i7 980X/R9 290X/X-Fi titanium | FX-57/X1950XTX/Audigy 2ZS
Athlon 1000T Slot A/GeForce 3/AWE64G | K5 PR 200/ET6000/AWE32
Ppro 200 1M/Voodoo 3 2000/AWE 32 | iDX4 100/S3 864 VLB/SB16