On Thursday, February 26, 2015 03:42:53 PM Ben Widawsky wrote: > Keep this as a separate patch for review, but I will squash it with the > previous > patch before pushing. > > We don't support 16x MSAA yet, but I entered it in here while I was at the > table. > > I'm having trouble getting through a piglit run on SKL at the moment, so I > just > few a threw small tests at it: > > tests/fast_color_clear/all-colors.shader_test > tests/fast_color_clear/non-redundant-clear.shader_test > tests/fast_color_clear/redundant-clear.shader_test > tests/fast_color_clear/fast-slow-clear-interaction.shader_test > > Cc: Kristian Høgsberg <k...@bitplanet.net> > Signed-off-by: Ben Widawsky <b...@bwidawsk.net> > --- > src/gallium/drivers/ilo/ilo_layout.c | 5 ++++- > src/mesa/drivers/dri/i965/brw_meta_fast_clear.c | 2 ++ > src/mesa/drivers/dri/i965/intel_mipmap_tree.c | 11 +++++++++-- > 3 files changed, 15 insertions(+), 3 deletions(-) > > diff --git a/src/gallium/drivers/ilo/ilo_layout.c > b/src/gallium/drivers/ilo/ilo_layout.c > index 0b639b2..c2c8ec5 100644 > --- a/src/gallium/drivers/ilo/ilo_layout.c > +++ b/src/gallium/drivers/ilo/ilo_layout.c > @@ -1257,7 +1257,10 @@ layout_calculate_mcs_size(struct ilo_layout *layout, > break; > case INTEL_TILING_Y: > downscale_x = 32 / layout->block_size; > - downscale_y = 4; > + if (brw->gen >= 9) > + downscale_y = 2; > + else > + downscale_y = 4; > break; > default: > assert(!"unsupported tiling mode");
Don't forget to drop this hunk. > diff --git a/src/mesa/drivers/dri/i965/brw_meta_fast_clear.c > b/src/mesa/drivers/dri/i965/brw_meta_fast_clear.c > index c4d4b68..f487e97 100644 > --- a/src/mesa/drivers/dri/i965/brw_meta_fast_clear.c > +++ b/src/mesa/drivers/dri/i965/brw_meta_fast_clear.c > @@ -289,6 +289,8 @@ get_fast_clear_rect(struct brw_context *brw, struct > gl_framebuffer *fb, > case 8: > x_scaledown = 2; > break; > + case 16: > + x_scaledown = 1; > default: > unreachable("Unexpected sample count for fast clear"); > } This hunk gets a R-b. Searching for "width of clear rect" (in quotes) in the documentation finds the page with the table cited in the above comments...and it confirms your number here. > diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c > b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c > index 36c3b26..75ce2b9 100644 > --- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c > +++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c > @@ -138,10 +138,17 @@ intel_get_non_msrt_mcs_alignment(struct brw_context > *brw, > unreachable("Non-MSRT MCS requires X or Y tiling"); > /* In release builds, fall through */ > case I915_TILING_Y: > - *width_px = 32 / mt->cpp; > - *height = 4; > + if (brw->gen >= 9) { > + const int scale_factor = 16 / mt->cpp; > + *width_px = 128 / scale_factor; > + *height = 64; > + } else { > + *width_px = 32 / mt->cpp; > + *height = 4; > + } I'm not getting these numbers at all...the "Color Clear of Non-MultiSampler Render Target Restrictions" section still has the same table (TiledY RT CL/Pixels/Lines 32/8/4, 64/4/4, 128/2/4) cited in the comments above. I see no Skylake changes here. We actually don't use non-MSRT MCS buffers on arrayed or mipmapped textures, IIRC - it's a new feature on Broadwell we never enabled (and probably should). So the new SKL comments about alignment for those shouldn't matter just yet. > break; > case I915_TILING_X: > + assert(brw->gen < 9); Adding the assert looks good to me, X-Tile is definitely not supported. > *width_px = 64 / mt->cpp; > *height = 2; > } > I think what you want instead is to edit brw_meta_fast_clear.c's get_fast_clear_rect() - which is where the other tables come into play. You would change: - y_align *= 32; + y_align *= brw->gen >= 9 ? 16 : 32; ... - y_scaledown = y_align / 2; + y_scaledown = brw->gen >= 9 ? y_align : (y_align / 2); If you're actually just changing the get_fast_clear_rect patch, then squashing it into the previous patch seems appropriate after all. Either way's fine.
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev