Hi, I have been doing some reading on the subject of tile-based deferred rendering, and I have been thinking about implementing one myself. I've come across one problem though, it seems (from my understanding at least) that your supposed to calculate the lighting for each tile in one shader pass (to reduce the amount of times you sample from the G-Buffer). In my old deferred renderer, I just was drawing fullscreen quads that sampled from the G-Buffer, and I tried having one shader calculate lighting from 7 lights (passed in as uniform arrays) and although on my GPU (GTX 480) this worked well, and saved a lot of fill rate, when I tested it one a laptop (with a GT 540M) it didn't seem to work. I was able to narrow the problem down to the instruction limit of the fragment shader. Having 7 lights made the fs seemed to break the instruction limit, which odiously caused problems. When I limited the shader to 1 light, it worked great. So, to my question how, if you are at all, are you supposed to have the lighting from several lights calculated in the fs without passing the instruction limit?


If you don't want to read that my question is: How do you calculate lighting for several lights in the fragment shader, without passing the instruction limit?