Shader issues....
by Vince Gee · in Torque 3D Professional · 07/06/2012 (4:51 am) · 4 replies
On a seperate note, I have found that when I'm rendering a ton of action, i.e. bullets flying from 100 mobs, there animations, explosions, smoke, etc the shader system appears to hang at times. I have traced it down to the Flash and lightray shaders.
Once I disabled the Flash shader the client became significantly more stable (It flashes the red tinge when you get hit). The lightray shader still causes issues though when I have a lot of actors in the scene with explosions, etc.
The thing is that I will go from 25-35 fps to a halt on the shader call. Is this a limitation of the shader implementation? I know I'm rendering about 35-65 soldiers, w/ healthpacks all over etc.
The funny thing is if I run the build in debug, i.e. at a crawl, maybe 2-5 fps I do not experience the issue with the shaders halting the system.
So right now my assumption is that the Flash/Lightray shaders can't handle the high number of objects plus all the action.
Unless I turn the shaders to Low, (which I think disabled the lightray shader) the system will hang. So is the library used to run the shaders old? Can it be updated? Or is this just a limitation of the old hardware I'm running the client on.
Once again, when I run the client on a I7 with a somewhat decent video card, the thing doesn't halt.
Vince
Once I disabled the Flash shader the client became significantly more stable (It flashes the red tinge when you get hit). The lightray shader still causes issues though when I have a lot of actors in the scene with explosions, etc.
The thing is that I will go from 25-35 fps to a halt on the shader call. Is this a limitation of the shader implementation? I know I'm rendering about 35-65 soldiers, w/ healthpacks all over etc.
The funny thing is if I run the build in debug, i.e. at a crawl, maybe 2-5 fps I do not experience the issue with the shaders halting the system.
So right now my assumption is that the Flash/Lightray shaders can't handle the high number of objects plus all the action.
Unless I turn the shaders to Low, (which I think disabled the lightray shader) the system will hang. So is the library used to run the shaders old? Can it be updated? Or is this just a limitation of the old hardware I'm running the client on.
Once again, when I run the client on a I7 with a somewhat decent video card, the thing doesn't halt.
Vince
About the author
www.winterleafentertainment.com
#2
07/06/2012 (7:17 am)
here is something interesting... when it crashes the gpu usage goes to zero. Would that be a fault event or something?
#3
07/06/2012 (12:15 pm)
The CPU feeds the GPU and there is a command buffer in between the two. When the buffer is full, the GPU has the best chance of having a high GPU utilization. When the buffer is empty, the GPU waits for something to do.
#4
I'm looking at the light ray pixel shader and it's pretty hefty.
07/06/2012 (12:20 pm)
Here's an interesting test you can do. If you lower your resolution to something really small, it's most likely a CPU problem (since usually it's a pixel problem and with a small resolution, you don't have a lot of pixels).I'm looking at the light ray pixel shader and it's pretty hefty.
Associate Fyodor -bank- Osokin
Dedicated Logic
The latest Process Explorer can display GPU usage (% of load), so this tool can be useful to find out if your process is GPU or CPU limited at any moment.
Switch to "Threads" tab to see CPU usage and "GPU Graph" for GPU memory and load.