Ah yes, I should have been a bit more clear about that; we build the same kind of list too and its that which is processed in side the "render each visible model" bit (by 'render' it means 'record these draw calls into a command list to execute on the device later'), this list is just established per unique camera in the world and used with the scenes which require it.
So I see it right that you have one list per scene? Therefore one "render queue" that gets sorted and submitted one after another, completely independand of all the other stages lists/queues?
Can't you simply submit the state group in a RenderItem with the draw call as null?
Or you could explicitely set those states... Anyway should work fine.
Yeah, that would work, just need to add a check for null-draw calls. But I think I prefer to make a seperate "SetStageGroup"-method, since those commands (render target set/clear) etc... would probably need to be seperated somehow anyway. I'm quessing if I were to submit it as a normal RenderInstance with a null draw kell, I'll give it the highest possible sorting key, so it would always be executed first?