Jump to content


Performance change with Graphics card..!!


  • You cannot reply to this topic
5 replies to this topic

#1 neotheone

    New Member

  • Members
  • Pip
  • 3 posts

Posted 25 November 2008 - 04:32 AM

Hello guys,

I am working on something where I am to analyse the time taken by the basic rendering (drawprimities()) function in DirectX and OpenGL and how the performance changes with graphics card. I have done the first part where dirextx on avg takes about 0.05 ms to drawprimitive and OpenGL around 0.03 ms.
For the next part I am not able to find anything on the net, I dont have a graphics card to check it myself so if anyone has done such analysis or can point me in the right dierction, I will be greatful.

Appreciate ur help, thanks in advance. :)

#2 Nick

    Senior Member

  • Members
  • PipPipPipPip
  • 1225 posts

Posted 25 November 2008 - 12:29 PM

Welcome to DevMaster.net!

The time taken by the Draw functions isn't the actual time it takes to do the rendering. All these functions do is send a command to the graphics driver, which will place it in a queue, and then the function returns almost immediately (except when the queue is full). Even after you've called Present it can still take some time before you see the actual image on screen. All this is to ensure maximum concurrency: the CPU and GPU work in parallel without unnecessary blocking.

So whatever it is you're trying to actually measure, this is not the correct approach. We might be able to help you further if you could tell us exactly what you're trying to achieve?

#3 neotheone

    New Member

  • Members
  • Pip
  • 3 posts

Posted 25 November 2008 - 02:27 PM

First of all, thank you so much for the explaination.. Really appreciate it. :)

I am working on a project which is a diagnostic system in which we recieve huge data from the hardware setup and display it over different views, against a grid in the backgroud (something like graphs). So we are drawing some basic shapes (circles, lines) onto these views.
On a whole the system involves many processes (communication, processing data etc) also and graphics is a part of this system. We need to ahieve the best possible performance (in time) as the hardware sends data in real time and we should be able to recieve, process it and display.
For the view implementation we have two choices, DirextX/OpenGL whichever is the fastest. I thought if we install a graphics card on the machine then all the rendering part will be offloaded to the card and CPU is free to work on other things..
So what I need to measure is the time it takes to draw a grid, few primitive shapes onto the screen with DirextX and OpenGL, and If graphics card will really take all burden out of the CPU..

If you need to know more please let me know.

Thanks in advance :)

#4 Sol_HSA

    Senior Member

  • Members
  • PipPipPipPip
  • 482 posts
  • LocationNowhere whenever

Posted 25 November 2008 - 08:12 PM

As long as you don't trash the rendering pipeline somehow, GPU will work concurrently with the CPU.

Ways to mess up the rendering pipeline include:
- Locking render targets (for instance, to read pixels from a FBO, display, whether the copy target is in system memory or some texture)
- Explicit flushes (glfinish, glflush, swap)
- Switching FBO from render target to a source texture

Measuring the time taken generally would require you to access the GPUs performance registers, which are typically not available. You may wish to look at gDEBugger, a commercial OpenGL debugger, or NVPerfHUD, nvidia's directx performance tool. There was some new performance tool in recent directx sdk as well, which may help.
http://iki.fi/sol - my schtuphh

#5 Nick

    Senior Member

  • Members
  • PipPipPipPip
  • 1225 posts

Posted 26 November 2008 - 06:29 AM

neotheone said:

For the view implementation we have two choices, DirextX/OpenGL whichever is the fastest.
They are equally fast in theory, as they are merely interfaces to the driver and graphics hardware below it. You should probably base your decision on other criteria.

Nowadays any graphics card can render a typical "grid" at full real-time performance, and it should take pretty much all rendering workload off the CPU.

#6 neotheone

    New Member

  • Members
  • Pip
  • 3 posts

Posted 26 November 2008 - 08:40 AM

Thank you so much guys :)
You really rock!

Will shortly let youo know what we decide..

Thanks once again :)





1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users