radv: Implement VK_ANDROID_native_buffer.
authorBas Nieuwenhuizen <basni@chromium.org>
Thu, 4 Jan 2018 17:38:32 +0000 (18:38 +0100)
committerBas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
Fri, 19 Jan 2018 00:43:55 +0000 (01:43 +0100)
commitb1444c9ccb06661d932969302d19166df442818c
tree030cbb2059debe66b295183776ce4676cbeab0f8
parenta3e241ed07feae592d1fd83db388252816a32849
radv: Implement VK_ANDROID_native_buffer.

Passes
  dEQP-VK.api.smoke.*
  dEQP-VK.wsi.android.*

with android-cts-7.1_r12 .

Unlike the initial anv implementation this does
use syncobjs instead of waiting on the CPU.

This is missing meson build coverage for now.

One possible todo is that linux 4.15 now has a
sycall that allows us to export amdgpu fence to
a sync_file, which allows us not to force all
fences and semaphores to use syncobjs. However,
I had trouble with my kernel crashing regularly
with NULL pointers, and I'm not sure how beneficial
it is in the first place given that intel uses
syncobjs for all fences if available.

Reviewed-by: Dave Airlie <airlied@redhat.com>
src/amd/vulkan/Makefile.am
src/amd/vulkan/Makefile.sources
src/amd/vulkan/meson.build
src/amd/vulkan/radv_android.c [new file with mode: 0644]
src/amd/vulkan/radv_device.c
src/amd/vulkan/radv_image.c
src/amd/vulkan/radv_private.h