PDA

View Full Version : mouse handling very slow with newer nvidia drivers



henniman
12-12-2006, 07:50 AM
hi all,

i experience a serious slowdown
in my mouse handling routine with
newer drivers from nvidia.

basically the mouse handling routine
does a GL_SELECT rendering of my widgets
followed by a GL_FEEDBACK render loop.

it used/uses to be very fast (~1ms)
on systems using 81.xx drivers
but is very slow (~200-500ms) on systems using newer drivers, 90.xx or higher.
(on windows xp).

did anything special happen between these
drivers? is this in some way related
to the newer multiscreen compatibility modes
etc?

best,
hendrik


ps. sorry for posting again but i had
no success with the responses in the
windows board.

santyhamer
12-12-2006, 09:02 AM
No idea about the drivers, sorry. I think the feedback mode in OpenGL operates always in software mode. Turning on antialiasing can make it even slower because the calculations are more complex.

I can suggest you some alternatives:

1) Just retrieve the mouse cursor position with the Windows API. Check bounding boxes instead of pixels. Do you really need to test PIXELS? That sounds overkill for simple UI controls.

2) You could use the occlusion queries. Draw the mouse cursor to a texture. Then draw the widgets and see which ones occludes the mouse cursor.

3) Draw the widgets with different color IDs to the back buffer. Draw cursor with other colorID. Read the back buffer with glReadPixels using a 32x32 portion of the projected-into-screen cursor coordinates. Test the colorID of the pixels near the cursor.

Hope it helps

dgud
12-19-2006, 02:00 AM
We have the same problem in wings3d.
A lot of users have complained about it.

I know it's software path but it was fast before, I assume it was software path in the older drivers aswell since it is fast enough with software opengl only, how can they mess it up so completly.

knackered
12-22-2006, 03:05 PM
Spend 30 minutes converting wings3d to a colour-coded selection mechanism and forget about it forever.
Free yourself from driver dependencies where ever possible.