be more clever about different framebuffer state with/without zs
In debugging krh/mesa#16 (moved) I noticed that gallium HUD rebinds the color buffer without z/s to render the HUD overlay, which triggers an extra draw pass. For example (w/
cffdump --script parse-submits.lua)
110: Batch: ------- # of draws: 3 mode: RM6_GMEM bin size: 352x256 (9 bins) DEPTHTEST DEPTHWRITE MRT[0x44d0000]: 1024x768 RB6_R8G8B8A8_UNORM CLEARED RESOLVED MRT[0x41d0000]: 1024x768 DEPTH6_24_8 CLEARED RESOLVED 111: Batch: ------- # of draws: 20 mode: RM6_GMEM bin size: 512x384 (4 bins) MRT[0x44d0000]: 1024x768 RB6_R8G8B8A8_UNORM RESTORED RESOLVED 112: NULL BATCH!
(we also end up w/ some null/no-op batches.. presumably because a fence was requested.. not sure if that hurts too much other than extra submit ioctls)