Hi It seem that the fragment interface on certain plugins exceeds the amount of fragment operations possible on Intel GMA cards. This only occurs with the "water" and "blur" plugins. the plugins activate OK and do not report a missing GL_ARB_fragment_program in the server extensions. Waves appear when I use the water plugin with <Super><Ctrl> but there is no apparant distortion underneath the wave. offset_scale is set to 5 at the moment. Also, Blur activates fine but when I put in "Normal" on "Alpha_blur" - Everything slows down to around 10 fps but there is no blur effect under the alpha. Is it possible that the amount of fragment operations in the fragment interface can be reduced so that Intel Cards can handle it? Or is this a driver issue?
On Sun, 2007-05-13 at 10:33 +0800, Sam Spilsbury wrote:> Hi > > It seem that the fragment interface on certain plugins exceeds the > amount of fragment operations possible on Intel GMA cards. This only > occurs with the "water" and "blur" plugins. the plugins activate OK > and do not report a missing GL_ARB_fragment_program in the server > extensions. Waves appear when I use the water plugin with > <Super><Ctrl> but there is no apparant distortion underneath the wave. > offset_scale is set to 5 at the moment. Also, Blur activates fine but > when I put in "Normal" on "Alpha_blur" - Everything slows down to > around 10 fps but there is no blur effect under the alpha. > > Is it possible that the amount of fragment operations in the fragment > interface can be reduced so that Intel Cards can handle it? Or is this > a driver issue?The fragment interface is just an interface. The fragment functions inserted in this interface defines the number of operations that the final fragment programs will contain. The fragment interface will always be able to create programs that exceed the limits of the hardware. We can improve it so that plugins can have a better idea of whether a function can be used or not. A few extra instructions are created by the fragment interface to patch together fragment functions but I've made sure it's a minimal overhead. There might be one or two extra instructions added in the case when there's only one fragment function and it might be worth improving that. The issue with the water plugin sounds like a driver bug. Alpha blur will not perform properly until the intel driver can accelerate glCopyTexSubImage2D. That the blur effect doesn't get applied could be that the fragment program exceeds the hw-limits. I'll try to have a look at both these issues when I have time. - David
On Tue, 2007-05-15 at 07:36 +0800, Sam Spilsbury wrote:> OK. Just to let you know - it most likely IS the fragment interface > > - Water fragmentation worked before the fragment interface was outOK, I guess those extra instructions that fragment interface adds might be the cause of this or it could be the changes made to the water fragment program to make it work with the fragment interface. Whatever it is, it can be fixed. What someone needs to do is to compare the different fragment programs generated with and without the fragment interface and track down what's causing it not to work.> - Blur seems to be doing something as my framerate slows down to about > 5fps which sounds about right. (No visible blurring however)Yes, it's likely doing the framebuffer to texture copying but the actual fragment shading that produce the blur effect is not possible.> > Is it possible to have water and blur and/or the fragment interface > not generate more than this limit of fragment operations or is that > out of the scope?As the water effect worked before, it should be possible for that effect but to make the blur fragment code work might not be possible. Either way, it's not very interesting to try and make the blur code work as long as glCopyTexSubImage2D isn't accelerated as you wont be able to get any decent performance without that anyhow. - David
On Tue, 2007-05-15 at 07:40 +0800, Sam Spilsbury wrote:> On 5/15/07, Sam Spilsbury <smspillaz at gmail.com> wrote: > > OK. Just to let you know - it most likely IS the fragment interface > > > > - Water fragmentation worked before the fragment interface was out > > On that note - do you think I can get a git revision that includes the > blur plugin but does not include the fragment interface?no, there's no such revision. - David