Most senseful order?

The vertexbuffers in my engine are sorted before theirs output, if requested, but I don’t know, how to set the priorities for the best performance, because there for I have not enough knowledge of the GeForce 3 architecture. I know that textureswitches are expensive, but also the vprogram switches are as well.

My actual order is as following (from highest till lowest priority):
-Bank (2 bit)(am managing the memory myself, 3 banks: system, agp, videomem)
-Rendermode (6 bit) (possible switch of vertex program/texture shader)
-Material (6 bit) (possible switch of textures and renderstates)
-Rough distance (10 bit) (for at least a rough front to back sorting)
-Vertexbuffer (8 bit) (setting the pointers for the vertex/index buffers)

32 bit

I know it’s impossible to define this exactly, because it’s a lot depending on what you want to let render, how big the textures are and so on, but I think it can at least be said about. Does it make more sense to give the texture sorting a higher priority than the vprogram sorting or may be is the front2back sorting the most important one of all to save fillrate?