+ /**
+ * The real renderbuffer storage.
+ *
+ * This is multisampled if NumSamples is > 1.
+ */
+ struct intel_mipmap_tree *mt;
+
+ /**
+ * Downsampled contents for window-system MSAA renderbuffers.
+ *
+ * For window system MSAA color buffers, the singlesample_mt is shared with
+ * other processes in DRI2 (and in DRI3, it's the image buffer managed by
+ * glx_dri3.c), while mt is private to our process. To do a swapbuffers,
+ * we have to downsample out of mt into singlesample_mt. For depth and
+ * stencil buffers, the singlesample_mt is also private, and since we don't
+ * expect to need to do resolves (except if someone does a glReadPixels()
+ * or glCopyTexImage()), we just temporarily allocate singlesample_mt when
+ * asked to map the renderbuffer.
+ */
+ struct intel_mipmap_tree *singlesample_mt;
+
+ /* Gen < 6 doesn't have layer specifier for render targets or depth. Driver
+ * needs to manually offset surfaces to correct level/layer. There are,
+ * however, alignment restrictions to respect as well and in come cases
+ * the only option is to use temporary single slice surface which driver
+ * copies after rendering to the full miptree.
+ *
+ * See intel_renderbuffer_move_to_temp().
+ */
+ struct intel_mipmap_tree *align_wa_mt;