[Mesa-dev] [PATCH] i965: report bound buffer size not underlying buffer size for image size (v2)

Antía Puentes apuentes at igalia.com
Tue Aug 23 09:28:42 UTC 2016


Hi Dave,

The "GL44-CTS.shader_image_size.advanced-nonMS-fs-int" test fails for
me with current master (which contains this patch), I have tested it
both in a Broadwell and a Skylake machine.

I recall that you sent to the mailing list a second patch "i965: don't
fail to shift height images for levels." related to the test. Is this
patch or a new version of it still needed?. I remember that as it is it
regressed GL44-CTS.texture_view.gettexparameter, raising the assertion:
"glcts: intel_mipmap_tree.c:368: intel_miptree_create_layout: Assertion
`height0 = 1' failed."

On a side note, as we are taking about CTS, just remind that Andres has
reviewed the "mesa/subroutines: start adding per-context subroutine
index support" series that you sent, which is not pushed yet.

Regards.

On mar, 2016-08-23 at 11:10 +1000, Dave Airlie wrote:
> ping, esp Igalia CTS ppl.
> 
> Dave.
> 
> On 27 May 2016 at 15:11, Dave Airlie <airlied at gmail.com> wrote:
> > 
> > From: Dave Airlie <airlied at redhat.com>
> > 
> > This seems to make sense, the image is bound to a subset of the
> > buffer
> > so the image size should be from the bound size not the underlying
> > object.
> > 
> > This fixes:
> > GL44-CTS.shader_image_size.advanced-nonMS-fs-int
> > 
> > v2: get mininum of the two values, same as we write to the hw.
> > 
> > Signed-off-by: Dave Airlie <airlied at redhat.com>
> > ---
> >  src/mesa/drivers/dri/i965/brw_wm_surface_state.c | 5 +++--
> >  1 file changed, 3 insertions(+), 2 deletions(-)
> > 
> > diff --git a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
> > b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
> > index b73d5d5..ee0b9c2 100644
> > --- a/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
> > +++ b/src/mesa/drivers/dri/i965/brw_wm_surface_state.c
> > @@ -1227,10 +1227,11 @@ update_buffer_image_param(struct
> > brw_context *brw,
> >                            struct brw_image_param *param)
> >  {
> >     struct gl_buffer_object *obj = u->TexObj->BufferObject;
> > -
> > +   uint32_t size;
> >     update_default_image_param(brw, u, surface_idx, param);
> > 
> > -   param->size[0] = obj->Size / _mesa_get_format_bytes(u-
> > >_ActualFormat);
> > +   size = MIN2((uint32_t)u->TexObj->BufferSize, obj->Size);
> > +   param->size[0] = size / _mesa_get_format_bytes(u-
> > >_ActualFormat);
> >     param->stride[0] = _mesa_get_format_bytes(u->_ActualFormat);
> >  }
> > 
> > --
> > 2.5.5
> > 
> > _______________________________________________
> > mesa-dev mailing list
> > mesa-dev at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/mesa-dev
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list