Not logged in, Join Here! or Log In Below:  
News Articles Search    

 Home / General Programming / Direct3D - SOFTWARE vs HARDWARE vertex processing... Account Manager
Archive Notice: This thread is old and no longer active. It is here for reference purposes. This thread was created on an older version of the flipcode forums, before the site closed in 2005. Please keep that in mind as you view this thread, as many of the topics and opinions may be outdated.

February 22, 2005, 04:55 PM


My demo works fine with SOFTWARE_VERTEX_PROCESSING , but when I switch on HARDWARE_VERTX_PROCESSING (or MIXED), half of my landscape disappears!

To see what I mean, download the demo from

Does anyone know what could be causing this, or, does anyone know what I should look out for with HARDWARE_VERTEX_PROCESSING?



February 22, 2005, 06:56 PM

I see no difference between the two - except frame rate of course - much higher FPS with hardware processing.

I'd say it's your video card - I'm running an ATI Radeon 9800 Pro with 128 MB. Could be your card has more limited caps in hardware mode. Without knowing more about what you're doing it's hard to say. Are you using 32-bit buffer indicies? Can you post screenshots of what it looks like in software vs. hardware mode?


February 23, 2005, 06:26 AM

Are you using ProcessVertices() in your app at all? This function is only supported on vertex buffers created with software vertex processing.

Another thing to look out for is setting (or not setting) the appropriate flags when creating vertex/index buffers: e.g. check all of your CreateVertexBuffer()/CreateIndexBuffer() statements and see if you are specifying D3DUSAGE_SOFTWAREPROCESSING, which will not work when using the H/W mode.

Personally I have never been able to get mixed mode fully working - but there is no reason why you should need to use it as long as the card supports hardware.

One last issue is with point sprites - a lot of cards do not support point sprite *sizes* under hardware mode, which can be a real pain.

Lecture over kids, time for your milk :o)


February 23, 2005, 06:48 AM

>One last issue is with point sprites - a lot of cards do not support point >sprite *sizes* under hardware mode, which can be a real pain.

who really cares as point sprites are awfully limited concept anyway :)



February 23, 2005, 06:55 AM

It's because your card only supports 16 bit indexbuffers and/or 65536 primitives per buffer.


February 23, 2005, 10:51 AM

I'm not using ProcessVertices() or D3DUSAGE_SOFTWAREPROCESSING anywhere.

Thanks for your help anyway,


February 23, 2005, 10:53 AM

I'm not using 32 bit index buffers, but it may be that I have more than 65536 primitives per buffer (or too many vertices).

I will check that out and let you know.

Thanks for your help,


February 23, 2005, 10:55 AM

I'm not using 32 bit buffer indices... I will try to sort out some screenshots (I'm using my mum's work computer which hasn't got a 3D card).

Thanks for your help,


February 23, 2005, 04:17 PM

I was using too many vertices per buffer. The limit on my GeForce2 is 65536 and the VB had 1254400 vertices in it :)

Thanks again,

This thread contains 9 messages.
Hosting by Solid Eight Studios, maker of PhotoTangler Collage Maker.