On Wed, Jan 11, 2017 at 09:31:10PM -0800, Jason Ekstrand wrote: > I'm done reviewing things for the evening. I've got a little more looking > to do but it all looks fantastic so far. All of my comments have been > pretty cosmetic. I'll finish tomorrow and we can go over things in the > office if you'd like. > > --Jason >
Good to hear! I'll see if I can safely get there, otherwise a remote meeting would also work for me. -Nanley > On Wed, Jan 11, 2017 at 6:01 PM, Nanley Chery <[email protected]> wrote: > > > On Wed, Jan 11, 2017 at 05:54:46PM -0800, Nanley Chery wrote: > > > In my testing, this series completely removes HiZ resolves for the > > > following Vulkan applications: Dota 2, Talos Principle, and the Sascha > > > Willems Vulkan examples and demos. This is accomplished with two major > > > changes. The first change is to transition the current HiZ resolving > > > algorithm from resolving on attachment load/store ops to resolving on > > > image layout transitions. The second change is to enable sampling from > > > HiZ on BDW+. > > > > > > There are some notable additional changes. To support performing layout > > > transitions outside of a render pass we implement the HiZ sequence in > > > BLORP which can emit depth stencil state outside of a render pass. > > > > > > Performance data was collected at different points in this series. These > > > tests were run on a SKL GT4, with a monitor resolution of 1440x900. For > > > Dota 2 and Talos Principle, the average of three fullscreen runs was > > > taken. At least one warm-up run was performed between driver builds. The > > > Talos Principle runs are omitted as no significant changes were > > > measured. No warm-up was performed for the Vulkan examples and the demo > > > resolution was the default window size on startup. > > > > Here are the results: > > > > shadowmapping (Vulkan example) - visual measurement of min-max: > > * HiZ disabled - ~579-593 > > * HiZ load/store - ~602-655 > > * HiZ layouts - ~628-673 > > * HiZ layouts + sampling - ~766-806 > > > > Dota 2 demo benchmark: > > * HiZ disabled - 46.9 > > * HiZ load/store - 43.4 > > * HiZ layouts - 51.3 > > * HiZ layouts + sampling - 51.5 > > > > -Nanley > > > > > > > > Nanley Chery (22): > > > intel/blorp: Add the BDW+ optimized HZ_OP sequence to BLORP > > > intel/blorp_blit: Handle ISL_AUX_USAGE_HIZ > > > anv: Replace anv_image_has_hiz() with ISL_AUX_USAGE_HIZ > > > anv: Use ::anv_attachment_state for toggling HiZ per subpass > > > anv: Enable HiZ support for multiple subpasses > > > intel/blorp_clear: Add gen8 HiZ clearing functions > > > anv: Use gen8 BLORP HiZ clearing functions > > > anv/blorp: Add a gen8 HiZ op resolve function > > > anv: Use the gen8 BLORP HiZ resolving function > > > anv: Delete anv's HiZ op emit function > > > anv: Add helpers to handle depth buffer layout transitions > > > anv: Store depth stencil layouts > > > anv: Prepare for transitioning to the requested final layout > > > anv: Avoid resolves incurred by fast depth clears > > > anv: Disable HiZ for input attachments > > > anv/image: Disable HiZ for storage images > > > anv: Perform HiZ resolves only on layout transitions > > > isl/surface_state: Handle ISL_AUX_USAGE_HIZ > > > anv: Add a helper to determine sampling with HiZ > > > anv/blorp: Don't fast depth clear samplable HiZ buffers on BDW > > > anv: Enable sampling from HiZ > > > anv: Avoid some resolves for samplable HiZ buffers > > > > > > src/intel/blorp/blorp.h | 12 ++ > > > src/intel/blorp/blorp_blit.c | 2 + > > > src/intel/blorp/blorp_clear.c | 80 +++++++++++++ > > > src/intel/blorp/blorp_genX_exec.h | 87 ++++++++++++++ > > > src/intel/isl/isl_surface_state.c | 38 ++++++- > > > src/intel/vulkan/TODO | 3 +- > > > src/intel/vulkan/anv_blorp.c | 100 ++++++++++++++++- > > > src/intel/vulkan/anv_genX.h | 3 - > > > src/intel/vulkan/anv_image.c | 46 +++++++- > > > src/intel/vulkan/anv_pass.c | 8 ++ > > > src/intel/vulkan/anv_private.h | 51 +++++++-- > > > src/intel/vulkan/gen7_cmd_buffer.c | 7 -- > > > src/intel/vulkan/gen8_cmd_buffer.c | 224 ------------------------------ > > ------- > > > src/intel/vulkan/genX_cmd_buffer.c | 168 ++++++++++++++++++++++++---- > > > 14 files changed, 548 insertions(+), 281 deletions(-) > > > > > > -- > > > 2.11.0 > > > > > _______________________________________________ mesa-dev mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/mesa-dev
