nVidia
Direct3D 10 Sucks !!!
Posted May 2nd, 2008 by DavideIt's really fucked up to think that to draw a quad one has to has to create vertex buffer resource, an "input layout" and whatnot.
It's lame but I must do it, but it's really lame !
Fack those ill conceived abortions (oxymoron ?).. started with Direct3D 1.0
Everyday I see the design mistakes I make when I write any code.. and then I think that it's the same mistakes that every programmer does.. only that most of us have to deal with the bullshit of few.
Direct3D 10 is bullshit... and so is Vista.. but that's nothing new 8)
Oh and by the way, I managed to work around the nVidia driver crash bug in Vista... all I had to do was to scale down the geometry 8)
I had position values going beyond 160000.0f, I scaled down to 50000.0f and the crash is gone.
Pretty fucked up 8)
UPDATE: It turns out that the problem arises with the size of the object relative to the far plane. I guess it's basically a far plane clipping issue.
In fact I had the driver crash again when pulling closer the far clipping plane on a scene that would work fine before.
So there you have it, now fix that driver, please !
Vista BSOD and NVidia drivers
Posted March 28th, 2008 by DavideIt looks like NVidia drivers are famous for crashing Vista.
I can believe that, considering all those Blue Screens Of Death I've been getting.
Also I think I can regularly get NVidia drivers to crash and stop providing 3D rendering until I reboot. Specifically very large polygons seem to be a cause of those crashes... ..umm perhaps some faulty clipping ;) read more »
Damn Cg.. and shaders in general ?
Posted November 13th, 2007 by DavideToday I hit a wall.. a performance issue that I was expecting sometime, but not quite as bad.
Currently I'm working with nVidia's Cg for shaders on OpenGL. One ugly thing about shaders is that one often ends up with a lot of permutations, depending on the number of inputs a shader deals with.
For example a shader may get vertex color in input while another may get texture coordinates in input.. it grows exponentially !
Each combination has traditionally been converted into a separate shader-program.. which is not nice, especially if there is no simple way to have all these programs instead share values that should be common to all of them.
For example any vertex shader will normally get one (or two) transformation matrix per-object, while an object is often built of different materials, thus different shaders.
In Direct3D 9 with HLSL one can set some virtual global registers, which is a bit ugly (there is a more high level system on PC but not on XBox 360) but does a nice job of sharing those values across programs. In Cg however, one has to explicitly connect shaders parameters.. which, as it turns out, can be pretty bad for performance.
My current shaders base is composed of 16 total shaders which all share 2 matrix transformations (to screen space and to world space). So, every time I set those two matrices for a 3D object, it really sets 32 matrices and it possibly even stalls somewhere.. because my frame rate will drop drastically for 1000 objects !!!
Basically I'm there not rendering anything and seeing FPS rate going from 90 to 15 just by setting up the transformation matrices for 1000 objects.
Supposedly Cg 2.0 (if combined with the latest nVidia cards ?) allows to have a common buffer that all shaders can share.
I'm curious to see how Direct3D 10 deals with those shaders params and state changes in general... however D3D 10 requires Vista, an OS that isn't quite as approved yet in my company.
Given the situation, I will be getting a new computer to be used to run Vista. As I picked the hardware I felt a bit guilty asking for relatively high end stuff.. but it's for work.. really !
wooooooo
P.S. Let's see if I can go to sleep before 4 AM tonight !


Recent comments
14 hours 6 min ago
15 hours 5 min ago
22 hours 13 min ago
22 hours 31 min ago
1 day 10 hours ago
1 day 14 hours ago
2 days 14 hours ago
2 days 14 hours ago
2 days 20 hours ago
2 days 20 hours ago