VOGONS


First post, by smevans526

User metadata
Rank Member
Rank
Member

Title mostly asks the question. By software rendering,I mean that the processor/fpu does everything. Hardware means a graphics accelerator card.

For some reason this feels better for Marvin than the Windows section

Reply 1 of 20, by DosFreak

User metadata
Rank l33t++
Rank
l33t++

IIRC, 95,98,NT4,2K,XP,2003 supports hardware acceleration for ddraw
Vista,7 with XPDM drivers support hardware acceleration for ddraw
Vista+ with WDDM drivers do not support hardware acceleration for ddraw. Direct2D does but application has to support it.

How To Ask Questions The Smart Way
Make your games work offline

Reply 3 of 20, by Jo22

User metadata
Rank l33t++
Rank
l33t++

It's related to the Windows version / driver model.
All versions (1 to 9) of DirectX do support hardware-accelerated DirectDraw,
if the graphics hardware supports it.

Generally speaking, this includes all Windows-Accelerators since the early 90s.
Such as 2D graphics cards like, for example, Trio 32/64, Cirrus GD5464 or Trident 92xx series.

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 4 of 20, by smevans526

User metadata
Rank Member
Rank
Member

Before I continue asking benign questions, please help me understand something.

Let's take Quake. I mean the original DOS version.

Without VESA, I believe the highest resolution one can achieve is some 320 line resolution.

So, if I put on VESA to achieve, say 800x600, am I now (to some extent) 'hardware rendering'?

Reply 5 of 20, by DosFreak

User metadata
Rank l33t++
Rank
l33t++

If by "hardware" you mean CPU then yes but really it's no.
Unless you're using the DOS glide port of Quake 1 then there is no acceleration by the video card in DOS so everything is on the CPU.

How To Ask Questions The Smart Way
Make your games work offline

Reply 6 of 20, by derSammler

User metadata
Rank l33t
Rank
l33t

No, VESA is just an interface for hardware independent screenmode access. There is no hardware acceleration in any DOS game. Hardware acceleration started with GDI (Win 3.x) by involving a blitter.

Reply 7 of 20, by smevans526

User metadata
Rank Member
Rank
Member
derSammler wrote:

Hardware acceleration started with GDI (Win 3.x) by involving a blitter.

Oh.... OK...

I'm now on page as to what is meant by 'acceleration'.

I viewed DirectDraw as basically the way win95 (and many later versions of Windows) handled functions matching how you described VESA.

But it goes beyond that, and there are additional rendering effects that can be called from the graphics card.

I was considering a p3 (or p2) system that plays later nineties DOS games. It'll have a cirrus logic cl-5464. I was going to do PC-DOS 2000, but am now considering win95 play some of those Windows 95 games with a 'DOS feel'.

These include Starcraft, Fallout 2, Curse of Monkey Island, Leisure Suit Larry 7, and Diablo. Nothing like quake 2 or unreal. Maybe Hexen 2 (non-gl). Those earlier mentioned game seem to run on ddraw. Starcraft is much older than the card, but I figured it wouldn't matter against a strong processor.

Do you think the cirrus card will work?

Reply 8 of 20, by Jo22

User metadata
Rank l33t++
Rank
l33t++
smevans526 wrote:

I viewed DirectDraw as basically the way win95 (and many later versions of Windows) handled functions matching how you described VESA.

Well, DDraw shares at least one similarity to VESA VBE - DirectDraw also allows access to the "framebuffer".
And overlays on the primary surface, too. But in contrast to Direct3D, it has no concept of a "scene".

In some way or another, DirectDraw can be seen as a descendant of WinG,
an early high-level 2D graphics API for Windows 3.1x.

In addition to that, DirectDraw can also be seen as a descendant of DCI, too, which WinG makes use of if available.
(Simply speaking, DCI was lower level and was often used for video playback acceleration.)

And akin to WinG, DirectDraw can be accelerated by the same hardware that supports GDI.

"Time, it seems, doesn't flow. For some it's fast, for some it's slow.
In what to one race is no time at all, another race can rise and fall..." - The Minstrel

//My video channel//

Reply 9 of 20, by Scali

User metadata
Rank l33t
Rank
l33t

It depends on what you mean by 'software rendering'.
DirectDraw supports certain hardware-accelerated operations, such as (stretched) blit, pageflipping and such.
But it's all 2d-oriented. There are no 3d drawing primitives in DirectDraw.

Direct3D started as an extension to DirectDraw, so depending on how you look at it, an application using DirectDraw may also use 3D. You first create a DirectDraw surface in your application, and then you can query the DirectDraw surface for a Direct3D interface, to get access to the new 3D drawing primitives.
As of Direct3D 8, Direct3D is a standalone component, and no DirectDraw is required at all.

Early versions of Direct3D included both a software and hardware renderer. I believe that Direct3D 6 was the last to have one. Later versions can only be used with 3D hardware (although developers still have access to a 'reference rasterizer' in software. Performance is inadequate for any realtime use however. Its main goal is for developers to be able to compare the hardware output to a reference, to see if perhaps the driver or GPU has rendering bugs).

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

Reply 10 of 20, by smevans526

User metadata
Rank Member
Rank
Member

I was comparing apples to oranges. 'Software rendering' to me meant what you see in quake2 or unreal. Rendering done by the cpu.

Thanks to games like KQ8 Mask of Eternity, I viewed ddraw as a software renderer. It has three modes: Ddraw, d3d, glide. Ddraw was for any system, even if it lacked a 3d card, and d3d serviced those that weren't voodoo.

But OK, ddraw may use the processor a lot, but it also calls the graphics card for some of the effects mentioned.I guess a better way to ask the question listed earlier is 'can all of these later generation 2d pci graphics card perform all the effects available on ddraw?'

Reply 11 of 20, by Azarien

User metadata
Rank Oldbie
Rank
Oldbie
smevans526 wrote:

But it goes beyond that, and there are additional rendering effects that can be called from the graphics card.

Modern cards do not have built-in "rendering effects". They are programmable, meaning that you can write a little program (shader) that runs on the card and performs desired effect. DirectDraw being an old API does not support shaders, although in theory it could. Direct2D does.

In fact, DirectDraw gives you very little: an access to the framebuffer (the real framebuffer up to XP, not so real in Vista+ with DWM), off-screen bitmaps (called "surfaces") in system and video memory and blitting those surfaces with smooth stretching and alpha support. This blitting was intended to be hardware-accelerated. I do not know to what extent it is still accelerated on current Windows versions.

I was comparing apples to oranges. 'Software rendering' to me meant what you see in quake2 or unreal. Rendering done by the cpu.

Nothing stops you from doing software 3D rendering in DirectDraw. WinQuake 1 and Quake 2 does exactly that.

Reply 12 of 20, by Scali

User metadata
Rank l33t
Rank
l33t
smevans526 wrote:

I was comparing apples to oranges. 'Software rendering' to me meant what you see in quake2 or unreal. Rendering done by the cpu.

As mentioned, there are two ways of doing 'software rendering' that way:
1) Using DirectDraw simply to access the VRAM of the graphics card, and the built-in renderer of the game doing the actual 3d rendering (basically the same as how things worked in DOS with VGA, SVGA and VESA video modes).
2) Using the software renderer built into early versions of Direct3D. This requires no 3d renderer in the game itself, the game can use the same codepath as if it were using Direct3D with a hardware accelerator.

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

Reply 13 of 20, by smevans526

User metadata
Rank Member
Rank
Member
Azarien wrote:
Modern cards do not have built-in "rendering effects". They are programmable, meaning that you can write a little program (shade […]
Show full quote
smevans526 wrote:

But it goes beyond that, and there are additional rendering effects that can be called from the graphics card.

Modern cards do not have built-in "rendering effects". They are programmable, meaning that you can write a little program (shader) that runs on the card and performs desired effect.

I was comparing apples to oranges. 'Software rendering' to me meant what you see in quake2 or unreal. Rendering done by the cpu.

Nothing stops you from doing software 3D rendering in DirectDraw. WinQuake 1 and Quake 2 does exactly that.

This was my initial initial impression on ddraw. While you're software rendering via ddraw (be it 2d, 3d, ad&d, or whatever) the cpu is srill doing the majority of the work, right?

Reply 14 of 20, by smevans526

User metadata
Rank Member
Rank
Member
Scali wrote:

Using DirectDraw simply to access the VRAM of the graphics card, and the built-in renderer of the game doing the actual 3d rendering (basically the same as how things worked in DOS with VGA, SVGA and VESA video modes).

Gotcha. I think this perfectly answers what I was wondering. Thank you.

Reply 15 of 20, by smevans526

User metadata
Rank Member
Rank
Member
Azarien wrote:
smevans526 wrote:

But it goes beyond that, and there are additional rendering effects that can be called from the graphics card.

Modern cards do not have built-in "rendering effects". They are programmable, meaning that you can write a little program (shader) that runs on the card and performs desired effect.

What I meant was the fullest potential of the 2d card. Suppose someone writes a shader for a 1997 2d game, like curse of monkey island. Can that shader just be modified for an isa card from 1990, with one expecting similar functionality? I'm guessing no; the color palette alone would probably fall short.

So, at what point (as in a year) can 2d graphics cards perform everything requires for 2d windows95 DirectDraw games? Is it 'mid-nineties pci graphics cards'?

Last edited by smevans526 on 2017-09-06, 13:17. Edited 1 time in total.

Reply 16 of 20, by Scali

User metadata
Rank l33t
Rank
l33t
smevans526 wrote:

So, at what point (as in a year) can one deem 2d graphics cards as what you call 'modern'? Which I view as a fully functional card for 2d windows95 DirectDraw games? Is it 'mid-nineties pci graphics cards'?

That depends on what you consider 'fully functional'...
There were various different pixel formats, and most (if not all) cards only support a subset of those (eg, early truecolour cards supported 24-bit RGB, later cards had 32-bit XRGB (the X being a dummy byte to get nice alignment for better efficiency. Likewise, there's 2 types of 16-bit truecolour: 1:5:5:5 and 5:6:5. Also, some cards use BGR, where others use RGB order).
Likewise there are various different resolutions, refresh rates etc.

However, most games stick to just standard 320x200, 320x240, 640x400, 640x480, 800x600 and 1024x768, and usually just 256 colour, or else they support various pixel formats to cater to a wide array of hardware.
Which means that in practice, most cards from 1995 would already support enough to run pretty much every game out there.
The functionality had been around already in SVGA cards, and was already somewhat standardized with VESA VBE under DOS.
DirectDraw was mainly designed to bring (S)VGA games from DOS to Windows. It wasn't all that groundbreaking really.

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

Reply 17 of 20, by smevans526

User metadata
Rank Member
Rank
Member
Scali wrote:

That depends on what you consider 'fully functional'...

I think I need to do research on what a 'shader' is before I continue posting on this. Bottom line is I'm still thinking of rendering with d3d on a vintage win95 machine.

What comes to mind is me playing Shadows of the Empire on a friend's late 90s Gateway 2000.

Whatever 3d card he had, it would always boot up saying something like 'your card cannot do fogging'.

So, when dosfreak mentioned hardware acceleration for DirectDraw, I was thinking that it worked similar, and in theory, you can buy a 2d card missing certain features used ib ddraw games.

Reply 18 of 20, by derSammler

User metadata
Rank l33t
Rank
l33t
smevans526 wrote:
Azarien wrote:
smevans526 wrote:

Can that shader just be modified for an isa card from 1990, with one expecting similar functionality?

No, because 2D cards from the DOS era had no such functionality. They were simple framebuffers. Around 1992 the first 2D cards came on the mass market that had a blitter for Windows GDI acceleration. A blitter allows changing/copying/erasing parts of the screen without involving the CPU. Later, more features were integrated, like drawing lines, circles etc. It was a slow transition from simple framebuffers to what we call a "GPU" these days.