<div dir="ltr">On 22 May 2013 12:18, Ian Romanick <span dir="ltr"><<a href="mailto:idr@freedesktop.org" target="_blank">idr@freedesktop.org</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div class="im">On 05/21/2013 04:52 PM, Paul Berry wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
This patch ifdefs out intel_mipmap_tree::mcs_mt when building the i915<br>
(pre-Gen4) driver (MCS buffers aren't supported until Gen7, so there<br>
is no need for this field in the i915 driver).  This should make it a<br>
bit easier to implement fast color clears without undue risk to i915.<br>
</blockquote>
<br></div>
We have a bunch of other fields like this (e.g., hiz_mt).  Should we have done this with those fields, or is this case different?</blockquote><div><br></div><div>Probably the only difference in this case is who is writing the patches :)<br>
<br>I'd be willing to write a follow-up patch that ifdefs out some of the other i965-specific fields if there's interest.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div class="im"><br>
<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
---<br>
  src/mesa/drivers/dri/intel/<u></u>intel_mipmap_tree.c | 8 +++++++-<br>
  src/mesa/drivers/dri/intel/<u></u>intel_mipmap_tree.h | 2 ++<br>
  2 files changed, 9 insertions(+), 1 deletion(-)<br>
<br>
diff --git a/src/mesa/drivers/dri/intel/<u></u>intel_mipmap_tree.c b/src/mesa/drivers/dri/intel/<u></u>intel_mipmap_tree.c<br>
index 2dfa787..ad9e2b3 100644<br>
--- a/src/mesa/drivers/dri/intel/<u></u>intel_mipmap_tree.c<br>
+++ b/src/mesa/drivers/dri/intel/<u></u>intel_mipmap_tree.c<br>
@@ -624,7 +624,9 @@ intel_miptree_release(struct intel_mipmap_tree **mt)<br>
        intel_region_release(&((*mt)-><u></u>region));<br>
        intel_miptree_release(&(*mt)-><u></u>stencil_mt);<br>
        intel_miptree_release(&(*mt)-><u></u>hiz_mt);<br>
+#ifndef I915<br>
        intel_miptree_release(&(*mt)-><u></u>mcs_mt);<br>
+#endif<br>
        intel_miptree_release(&(*mt)-><u></u>singlesample_mt);<br>
        intel_resolve_map_clear(&(*mt)<u></u>->hiz_map);<br>
<br>
@@ -963,8 +965,11 @@ intel_miptree_alloc_mcs(struct intel_context *intel,<br>
                          struct intel_mipmap_tree *mt,<br>
                          GLuint num_samples)<br>
  {<br>
-   assert(mt->mcs_mt == NULL);<br>
     assert(intel->gen >= 7); /* MCS only used on Gen7+ */<br>
+#ifdef I915<br>
+   return false;<br>
</blockquote>
<br></div>
      return NULL;<br>
<br>
since this function returns 'struct intel_mipmap_tree*'.</blockquote><div><br></div><div>Actually it returns bool.  It only looks like it returns struct intel_mipmap_tree* because it ends with "return mt->mcs_mt;", but that is implicitly converted to bool.<br>
</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class=""><div class="h5"><br>
<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
+#else<br>
+   assert(mt->mcs_mt == NULL);<br>
<br>
     /* Choose the correct format for the MCS buffer.  All that really matters<br>
      * is that we allocate the right buffer size, since we'll always be<br>
@@ -1021,6 +1026,7 @@ intel_miptree_alloc_mcs(struct intel_context *intel,<br>
     intel_miptree_unmap_raw(intel, mt->mcs_mt);<br>
<br>
     return mt->mcs_mt;<br>
+#endif<br>
  }<br>
<br>
  /**<br>
diff --git a/src/mesa/drivers/dri/intel/<u></u>intel_mipmap_tree.h b/src/mesa/drivers/dri/intel/<u></u>intel_mipmap_tree.h<br>
index b7376e0..0ec3c5e 100644<br>
--- a/src/mesa/drivers/dri/intel/<u></u>intel_mipmap_tree.h<br>
+++ b/src/mesa/drivers/dri/intel/<u></u>intel_mipmap_tree.h<br>
@@ -373,6 +373,7 @@ struct intel_mipmap_tree<br>
      */<br>
     struct intel_mipmap_tree *stencil_mt;<br>
<br>
+#ifndef I915<br>
     /**<br>
      * \brief MCS miptree for multisampled textures.<br>
      *<br>
@@ -381,6 +382,7 @@ struct intel_mipmap_tree<br>
      * (INTEL_MSAA_FORMAT_CMS).<br>
      */<br>
     struct intel_mipmap_tree *mcs_mt;<br>
+#endif<br>
<br>
     /* These are also refcounted:<br>
      */<br>
<br>
</blockquote>
<br>
</div></div></blockquote></div><br></div></div>