Register combiners - Bindable? Why soooooo slow?

Hi,
I have a question about the register combiners. I finally got nvparse running and played a bit with the RCs, but when I loaded the program just one time per frame it kicked my fps from 110 downto 79. I did not use it nor enable it or so. I also didn’t load it from harddisk each frame something, all I did was one time per frame calling nvparse(mycombiner) and else absolutely nothing and straightly my FPS was wasted.

First of all: Well, I wrote tons of parsers myself, but with mine I could call 50 of far longer scripts a frame and it didn’t effect my fps a bit… so… what the heck are they doing there inside the driver?!

Second: Is it bindable like textures? Thanks.

  • Anatrax -

Little addon:
Even if I use just
out.rgb = tex0.rgb;
out.a = unsigned_invert(zero);
the framerate doesn’t change a bit, means the loss is as high as if i use the longer version, so it’s not the linecount or so.

[This message has been edited by Anatrax (edited 06-23-2002).]

[b]I have a question about the register combiners. I finally got nvparse running and played a bit with the RCs, but when I loaded the program just one time per frame it kicked my fps from 110 downto 79. I did not use it nor enable it or so. I also didn’t load it from harddisk each frame something, all I did was one time per frame calling nvparse(mycombiner) and else absolutely nothing and straightly my FPS was wasted.

First of all: Well, I wrote tons of parsers myself, but with mine I could call 50 of far longer scripts a frame and it didn’t effect my fps a bit… so… what the heck are they doing there inside the driver?!
[/b]

State changes can cause preformance hits. When you use NVParse with the RC it does a lot of state changes (combiner states).

[b]
Second: Is it bindable like textures? Thanks.

[/b]

Not really, you can put them into display lists though. This will probably fix your problem in the first question.

[This message has been edited by NitroGL (edited 06-23-2002).]

Yeah, I put my nvparse RC’s in display lists and it works great!

-SirKnight

nvparse not only has to parse the huge string you pass it, checking for errors etc., but it also individually sets each stage with lots of gl function calls.
So putting it in a display list is definitely a must.

If you’re only using one combiner program, you only need to call nvparse once, not once per frame.

Thanks a lot. I added that with the displaylists and it increased the fps a lot.

Anatrax