The problem is that the hardware can process multiple polygons covering the same pixel simultaneously. Thus the shader processing can reach the point where you want to read from the framebuffer before the previous polygon at that pixel has been finished. To give you correct behaviour, the hardware would have to detect these overlap situations and stall the read operation until the previous pixel has finished.Bastion said:I knew the reason why modern 3D chips don't allow this (performance) but I didn't know how or why performance could be negatively affected. From the replies in this thread and elsewhere, I think the problem is going from memory to the shader units and that some kind of stop-start must be happening. Thanks to Xmas, I am now checking out S3.
I don't think you'll have any luck with S3. That functionality is something they advertise, but it isn't exposed anywhere in any public API.