[Mesa-dev] [PATCH] anv: Fix uniform and storage buffer offset alignment limits.
Francisco Jerez
currojerez at riseup.net
Fri Dec 16 21:26:17 UTC 2016
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.
> 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 --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 212 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20161216/9578f694/attachment.sig>
More information about the mesa-dev
mailing list