[Mesa-dev] [PATCH] anv: Fix uniform and storage buffer offset alignment limits.

Jason Ekstrand jason at jlekstrand.net
Fri Dec 16 22:02:22 UTC 2016


On Fri, Dec 16, 2016 at 1:26 PM, Francisco Jerez <currojerez at riseup.net>
wrote:

> Jason Ekstrand <jason at jlekstrand.net> writes:
>
> > On Dec 15, 2016 3:22 PM, "Francisco Jerez" <currojerez at riseup.net>
> wrote:
> >
> > This fixes an apparent regression in a bunch of image store vulkan CTS
> > tests from commit ad38ba113491869ab0dffed937f7b3dd50e8a735, which
> > started using OWORD block read messages to implement UBO loads.  The
> > reason for the failure is that we were giving bogus buffer alignment
> > limits to the application (1B), so the CTS would happily come back
> > with descriptor sets pointing at not even word-aligned uniform buffer
> > addresses.  No idea how these tests could possibly work before while
> > we were using the sampler to fetch pull constants.
> >
> >
> > Fun fact: the sampler has very few requirements when it comes to linear
> > surfaces (including buffers).  One notable exception is that it doesn't
> > seem to care about alignment... at all.  A bit surprising, I know, but
> I've
> > seen other cases where it's totally fine with nonaligned offsets and
> > strides (in the case of 2D).
> >
> > That is for fixing this!
> >
>
> Cool feature!  It would probably make sense to keep mesa-stable CC'ed
> regardless, because I don't think the dataport messages used to access
> storage buffers are so permissive with unaligned addresses.
>

Agreed.


> > Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>
> >
> >
> > Cc: <mesa-stable at lists.freedesktop.org>
> > Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=99097
> > Reported-by: Mark Janes <mark.a.janes at intel.com>
> > ---
> >  src/intel/vulkan/anv_device.c | 4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/src/intel/vulkan/anv_device.c
> b/src/intel/vulkan/anv_device.c
> > index e3d278d..9245e5c 100644
> > --- a/src/intel/vulkan/anv_device.c
> > +++ b/src/intel/vulkan/anv_device.c
> > @@ -582,8 +582,8 @@ void anv_GetPhysicalDeviceProperties(
> >        .viewportSubPixelBits                     = 13, /* We take a
> float?
> > */
> >        .minMemoryMapAlignment                    = 4096, /* A page */
> >        .minTexelBufferOffsetAlignment            = 1,
> > -      .minUniformBufferOffsetAlignment          = 1,
> > -      .minStorageBufferOffsetAlignment          = 1,
> > +      .minUniformBufferOffsetAlignment          = 16,
> > +      .minStorageBufferOffsetAlignment          = 4,
> >        .minTexelOffset                           = -8,
> >        .maxTexelOffset                           = 7,
> >        .minTexelGatherOffset                     = -32,
> > --
> > 2.10.2
> >
> > _______________________________________________
> > mesa-dev mailing list
> > mesa-dev at lists.freedesktop.org
> > https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20161216/b2baa75d/attachment.html>


More information about the mesa-dev mailing list