[Mesa-dev] [PATCH] anv: fix Get*MemoryRequirements for !LLC
Jason Ekstrand
jason at jlekstrand.net
Tue Feb 14 17:37:20 UTC 2017
On Tue, Feb 14, 2017 at 9:35 AM, Connor Abbott <cwabbott0 at gmail.com> wrote:
> On Tue, Feb 14, 2017 at 12:33 PM, Jason Ekstrand <jason at jlekstrand.net>
> wrote:
> > On Tue, Feb 14, 2017 at 9:23 AM, Connor Abbott <cwabbott0 at gmail.com>
> wrote:
> >>
> >> Even though we supported both coherent and non-coherent memory types, we
> >> effectively forced apps to use the coherent types by accident. Found by
> >> inspection, only compile tested.
> >>
> >> Signed-off-by: Connor Abbott <cwabbott0 at gmail.com>
> >> ---
> >> I sent this out a while ago, but it seems like it was lost.
> >> ---
> >> src/intel/vulkan/anv_device.c | 14 ++++++++------
> >> 1 file changed, 8 insertions(+), 6 deletions(-)
> >>
> >> diff --git a/src/intel/vulkan/anv_device.c
> b/src/intel/vulkan/anv_device.c
> >> index 46b83a3..57d70b6 100644
> >> --- a/src/intel/vulkan/anv_device.c
> >> +++ b/src/intel/vulkan/anv_device.c
> >> @@ -1554,11 +1554,12 @@ VkResult anv_InvalidateMappedMemoryRanges(
> >> }
> >>
> >> void anv_GetBufferMemoryRequirements(
> >> - VkDevice device,
> >> + VkDevice _device,
> >> VkBuffer _buffer,
> >> VkMemoryRequirements* pMemoryRequirements)
> >> {
> >> ANV_FROM_HANDLE(anv_buffer, buffer, _buffer);
> >> + ANV_FROM_HANDLE(anv_device, device, _device);
> >>
> >> /* The Vulkan spec (git aaed022) says:
> >> *
> >> @@ -1567,20 +1568,21 @@ void anv_GetBufferMemoryRequirements(
> >> * only if the memory type `i` in the
> >> VkPhysicalDeviceMemoryProperties
> >> * structure for the physical device is supported.
> >> *
> >> - * We support exactly one memory type.
> >> + * We support exactly one memory type on LLC, two on non-LLC.
> >> */
> >> - pMemoryRequirements->memoryTypeBits = 1;
> >> + pMemoryRequirements->memoryTypeBits = device->info.has_llc ? 1 : 3;
> >
> >
> > Is it two or three? The comment and code don't match.
>
> It's a bitfield. See the comment above.
Drp... Yeah, this looks fine.
Reviewed-by: Jason Ekstrand <jason at jlekstrand.net>
I'll run it through CI and push it.
> >
> >>
> >>
> >> pMemoryRequirements->size = buffer->size;
> >> pMemoryRequirements->alignment = 16;
> >> }
> >>
> >> void anv_GetImageMemoryRequirements(
> >> - VkDevice device,
> >> + VkDevice _device,
> >> VkImage _image,
> >> VkMemoryRequirements* pMemoryRequirements)
> >> {
> >> ANV_FROM_HANDLE(anv_image, image, _image);
> >> + ANV_FROM_HANDLE(anv_device, device, _device);
> >>
> >> /* The Vulkan spec (git aaed022) says:
> >> *
> >> @@ -1589,9 +1591,9 @@ void anv_GetImageMemoryRequirements(
> >> * only if the memory type `i` in the
> >> VkPhysicalDeviceMemoryProperties
> >> * structure for the physical device is supported.
> >> *
> >> - * We support exactly one memory type.
> >> + * We support exactly one memory type on LLC, two on non-LLC.
> >> */
> >> - pMemoryRequirements->memoryTypeBits = 1;
> >> + pMemoryRequirements->memoryTypeBits = device->info.has_llc ? 1 : 3;
> >>
> >> pMemoryRequirements->size = image->size;
> >> pMemoryRequirements->alignment = image->alignment;
> >> --
> >> 2.9.3
> >>
> >> _______________________________________________
> >> 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/20170214/98153877/attachment.html>
More information about the mesa-dev
mailing list