On Mon, Apr 18, 2016 at 12:42:34AM -0700, Kenneth Graunke wrote: > On Saturday, April 16, 2016 4:42:44 PM PDT Topi Pohjolainen wrote: > > Signed-off-by: Topi Pohjolainen <topi.pohjolai...@intel.com> > > --- > > src/mesa/drivers/dri/i965/brw_blorp_blit.cpp | 10 ++++++++++ > > src/mesa/drivers/dri/i965/intel_mipmap_tree.c | 9 +++++++-- > > 2 files changed, 17 insertions(+), 2 deletions(-) > > > > diff --git a/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp b/src/mesa/ > drivers/dri/i965/brw_blorp_blit.cpp > > index abbef8b..073767c 100644 > > --- a/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp > > +++ b/src/mesa/drivers/dri/i965/brw_blorp_blit.cpp > > @@ -247,6 +247,11 @@ brw_blorp_copytexsubimage(struct brw_context *brw, > > struct intel_mipmap_tree *src_mt = src_irb->mt; > > struct intel_mipmap_tree *dst_mt = intel_image->mt; > > > > + /* There is support only for four and eight samples. */ > > + if (src_mt->num_samples == 2 || dst_mt->num_samples == 2 || > > + src_mt->num_samples > 8 || dst_mt->num_samples > 8) > > + return false; > > + > > /* BLORP is only supported for Gen6-7. */ > > if (brw->gen < 6 || brw->gen > 7) > > return false; > > @@ -352,6 +357,11 @@ brw_blorp_framebuffer(struct brw_context *brw, > > if (brw->gen < 6 || brw->gen >= 8) > > return mask; > > > > + /* There is support only for four and eight samples. */ > > + if (readFb->Visual.samples == 2 || drawFb->Visual.samples == 2 || > > + readFb->Visual.samples > 8 || drawFb->Visual.samples > 8) > > + return mask; > > + > > static GLbitfield buffer_bits[] = { > > GL_COLOR_BUFFER_BIT, > > GL_DEPTH_BUFFER_BIT, > > diff --git a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c b/src/mesa/ > drivers/dri/i965/intel_mipmap_tree.c > > index 7f8b3c1..9f754e7 100644 > > --- a/src/mesa/drivers/dri/i965/intel_mipmap_tree.c > > +++ b/src/mesa/drivers/dri/i965/intel_mipmap_tree.c > > @@ -2164,7 +2164,12 @@ intel_miptree_updownsample(struct brw_context *brw, > > struct intel_mipmap_tree *src, > > struct intel_mipmap_tree *dst) > > { > > - if (brw->gen < 8) { > > + /* There is support only for four and eight samples. */ > > + const bool use_blorp = brw->gen < 8 && > > + src->num_samples != 2 && dst->num_samples != 2 && > > + src->num_samples <= 8 && dst->num_samples <= 8; > > + > > + if (use_blorp) { > > brw_blorp_blit_miptrees(brw, > > src, 0 /* level */, 0 /* layer */, > > src->format, SWIZZLE_XYZW, > > @@ -2182,7 +2187,7 @@ intel_miptree_updownsample(struct brw_context *brw, > > } > > > > if (src->stencil_mt) { > > - if (brw->gen >= 8) { > > + if (use_blorp) { > > Isn't this backwards? Should be: > > if (!use_blorp)
Good catch. Initially I got really worried that stencil blits didn't get tested but luckily they are get exercised through other paths also and I didn't get any regressions when I fixed this. _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev