+ /*
+ * Determine how many layers the fb has (used for clamping layer value).
+ * OpenGL (but not d3d10) permits different amount of layers per rt, however
+ * results are undefined if layer exceeds the amount of layers of ANY
+ * attachment hence don't need separate per cbuf and zsbuf max.
+ */
+ for (i = 0; i < setup->softpipe->framebuffer.nr_cbufs; i++) {
+ struct pipe_surface *cbuf = setup->softpipe->framebuffer.cbufs[i];
+ if (cbuf) {
+ max_layer = MIN2(max_layer,
+ cbuf->u.tex.last_layer - cbuf->u.tex.first_layer);
+
+ }
+ }
+
+ setup->max_layer = max_layer;
+