<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Wed, May 3, 2017 at 2:22 AM, Topi Pohjolainen <span dir="ltr"><<a href="mailto:topi.pohjolainen@gmail.com" target="_blank">topi.pohjolainen@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Patches 1-17 are revision that<br>
<br>
  - rework hiz on gen6 to use on-demand offset calculator allowing<br>
    one to drop dependency to miptree structure and<br>
  - rework all auxiliary surfaces to be created against isl directly.<br>
<br>
Patches 18 and 19 introduce new surface layout in ISL. This is called<br>
back-to-back and similar to layout ALL_SLICES_AT_EACH_LOD found in<br>
i965 for gen6 hiz and stencil. This layout stacks slices for each level<br>
after one and other, or back to back. All slices ate each lod is almost<br>
the same except that it places levels one and two side-by-side trying<br>
to preserve space. Back-to-back wastes a little more memory but aligns<br>
each level on page boundary simplifying driver logic.<br></blockquote><div><br></div><div>My primary gripe here is that you seem to have half-added back-to-back to ISL.  If this layout is a long-term thing, then we should add a new ISL_DIM_LAYOUT_GEN6_BACK_TO_BACK layout and plumb your offset function through isl_surf_get_image_offset_sa.  Is this intended to be a permanent solution?  I think eventually, I'd like us to go with one surf per miplevel (which is almost the same) but I can see how this is easier at the moment.  However, I think this works sufficiently well that I'm ok with doing the back-to-back thing for a while.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Patch 20 switches gen6 hiz to use back-to-back.<br>
<br>
Patches 22-37 prepare i965 driver to work with miptrees based on isl.<br>
Patches 38 and 39 start to use isl for stencil surfaces and effectively<br>
switches to back-to-back stencil layout on gen6.<br>
Patch 25 is mostly unneeded but it doesn't hurt and it provides me the<br>
tiling converter I need in patch 36.<br>
<br>
There are two uglies, patches 21 and 37. Perhaps Nanley, Jason or Chad<br>
can help me with 21...<br></blockquote><div><br></div><div>Other than making it "nicer" I don't think there's much you can do about 21.  Arrayed HiZ is completely undocumented.  Let's just do what works.  For 37, that one strikes me as very odd as it seems to go against the hardware docs and you didn't give much of an explanation as to why it's needed.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Jason: You have reviewed most of 1-17, and I don't think they have<br>
       changed that much.<br>
<br>
Rafael: I have conflicting patches with your series addressing depth<br>
        and stencil state emission. We should try to land your patches<br>
        first and then I'll rebase this on top.<br>
<br>
<br>
If we agree on the approach here, I'll continue with gen4/5 depth<br>
surface alignment workaround aiming to base depth surfaces also on<br>
isl. That should allow me to start using isl state emitter for<br>
depth-hiz-stencil.<br></blockquote><div><br></div><div>I've looked through the whole series and I think it seems reasonable.  It lets us switch stuff over one bit at a time and then we can have one big patch at the end which deletes all of the "if (mt->surf.size > 0)" cases.<br><br></div><div>--Jason<br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
CC: Jason Ekstrand <<a href="mailto:jason@jlekstrand.net">jason@jlekstrand.net</a>><br>
CC: Nanley Chery <<a href="mailto:nanley.g.chery@intel.com">nanley.g.chery@intel.com</a>><br>
CC: Chad Versace <<a href="mailto:chadversary@chromium.org">chadversary@chromium.org</a>><br>
CC: Rafael Antognolli <<a href="mailto:rafael.antognolli@intel.com">rafael.antognolli@intel.com</a>><br>
<br>
Topi Pohjolainen (39):<br>
  i965/dbg: Add means for forcing stencil sampling using y-tiled copy<br>
  i965/gen6: Remove dead code in hiz surface setup<br>
  i965/blorp/gen6: Drop unnecessary stencil/hiz surf dimension adjust<br>
  i965/gen6: Calculate stencil offset on demand<br>
  i965/gen6: Calculate hiz offset on demand<br>
  i965/blorp/gen6: Use on-demand stencil/hiz offset resolvers<br>
  i965/gen6: Drop miptrees in depth/stencil offset resolvers<br>
  i965/blorp/gen6: Set aux pitch directly<br>
  i965/gen6/hiz: Add direct buffer size resolver<br>
  i965/gen6: Allocate hiz directly without miptree<br>
  i965/miptree: Refactor aux surface allocation<br>
  i965/miptree: Refactor ISL aux usage resolver<br>
  i965/miptree: Use ISL for MCS layouts<br>
  i965/miptree: Drop MIPTREE_LAYOUT_ACCELERATED_<wbr>UPLOAD in mcs init<br>
  i965/miptree/gen7+: Use ISL for HIZ layouts<br>
  i965/blorp: Use hiz surface instead of creating copy<br>
  i965: Use stored hiz surface instead of creating copy<br>
  intel/isl/gen6: Add offsetting support for back-to-back layouts<br>
  intel/isl/gen6: Add size calculator for back-to-back layouts<br>
  i965/hiz/gen6: Use isl back-to-back layout<br>
  intel/isl/gen6/hack: Use hiz vertical alignment of 16 instead of 8<br>
  i965/miptree: Add support for resolving offsets using isl<br>
  i965/blorp: Add support for isl based miptrees<br>
  i965: Prepare up/downsampling for isl based miptrees<br>
  i965: Prepare blit engine for isl based miptrees<br>
  i965: Prepare image validation for isl based miptrees<br>
  i965: Refactor miptree to isl converter and adjustment<br>
  i965: Prepare tex, img and rt state emission for isl based miptrees<br>
  i965: Prepare slice validator for isl based miptrees<br>
  i965: Prepare framebuffer validator for isl based miptrees<br>
  i965/tex: Prepare image update for isl based miptrees<br>
  i965: Prepare texture validator for isl based miptrees<br>
  i965: Prepare slice copy for isl based miptrees<br>
  i965/gen7: Prepare depth state emission for isl based miptrees<br>
  i965/gen8+: Prepare depth state emission for isl based miptrees<br>
  i965: Add isl based miptree creator<br>
  intel/isl/gen7/hack: Use stencil vertical alignment of 8 instead of 4<br>
  i965/miptree: Represent w-tiled stencil surfaces with isl<br>
  i965/miptree: Represent y-tiled stencil copies with isl<br>
<br>
 src/intel/blorp/blorp.c                          |   4 +-<br>
 src/intel/blorp/blorp_blit.c                     |  11 +-<br>
 src/intel/common/gen_debug.c                     |   1 +<br>
 src/intel/common/gen_debug.h                     |   1 +<br>
 src/intel/isl/isl.c                              |  55 +-<br>
 src/intel/isl/isl.h                              |  20 +-<br>
 src/intel/isl/isl_gen6.c                         | 109 +++<br>
 src/intel/isl/isl_gen7.c                         |   6 +-<br>
 src/intel/isl/isl_storage_<wbr>image.c                |   3 +-<br>
 src/mesa/drivers/dri/i965/brw_<wbr>blorp.c            | 124 ++--<br>
 src/mesa/drivers/dri/i965/brw_<wbr>misc_state.c       |  16 +-<br>
 src/mesa/drivers/dri/i965/brw_<wbr>tex_layout.c       |  16 +<br>
 src/mesa/drivers/dri/i965/brw_<wbr>wm_surface_state.c | 114 ++--<br>
 src/mesa/drivers/dri/i965/<wbr>gen6_depth_state.c     |  50 +-<br>
 src/mesa/drivers/dri/i965/<wbr>gen7_misc_state.c      |  31 +-<br>
 src/mesa/drivers/dri/i965/<wbr>gen8_depth_state.c     |  47 +-<br>
 src/mesa/drivers/dri/i965/<wbr>intel_blit.c           |  45 +-<br>
 src/mesa/drivers/dri/i965/<wbr>intel_blit.h           |  13 +<br>
 src/mesa/drivers/dri/i965/<wbr>intel_fbo.c            |  42 +-<br>
 src/mesa/drivers/dri/i965/<wbr>intel_fbo.h            |   9 +-<br>
 src/mesa/drivers/dri/i965/<wbr>intel_mipmap_tree.c    | 822 ++++++++++-------------<br>
 src/mesa/drivers/dri/i965/<wbr>intel_mipmap_tree.h    |  58 +-<br>
 src/mesa/drivers/dri/i965/<wbr>intel_screen.c         |   3 +-<br>
 src/mesa/drivers/dri/i965/<wbr>intel_tex_image.c      |  21 +-<br>
 src/mesa/drivers/dri/i965/<wbr>intel_tex_validate.c   |   8 +-<br>
 25 files changed, 935 insertions(+), 694 deletions(-)<br>
<span class="HOEnZb"><font color="#888888"><br>
--<br>
2.9.3<br>
<br>
</font></span></blockquote></div><br></div></div>