On Fri, Nov 17, 2017 at 2:18 PM, Grazvydas Ignotas <nota...@gmail.com> wrote:
> I've tested this branch (rx470 + hd530) and it's only partially working: > - display on amd, radv: always fails with "offscreen: > wsi/wsi_common.c:172: select_memory_type: Assertion `!"No memory type > found"' failed." > - display on amd, anv: misrenders. For SaschaWillems, only > multisampling, subpasses and triangle renders, other demos show black > window with only text (fps counter and help) visible > - display on intel, radv: same "No memory type found"' > - display on intel, anv: seems to be ok > Thanks for testing! I've got a HSW+radeon box at home. I'll see if I can get it fixed early next week. I did find a couple bugs by inspection when I was working on getting modifiers working today. I've re-pushed if you feel like trying again. Otherwise, I'll see if I can repro on my box. --Jason > GraÅžvydas > > On Fri, Nov 17, 2017 at 4:44 AM, Jason Ekstrand <ja...@jlekstrand.net> > wrote: > > I just force-pushed my branch with some changes as per Dave to more > > explicitly enable implicit sync when allocating memory objects. > > > > On Thu, Nov 16, 2017 at 1:28 PM, Jason Ekstrand <ja...@jlekstrand.net> > > wrote: > >> > >> This patch series is the combined brain-child of Dave and myself. The > >> objective is to rewrite Vulkan WSI to look as much like a layer as > >> possible > >> and to reduce the driver <-> WSI interface. We try very hard to have as > >> many of the WSI details as possible in common code and to use standard > >> Vulkan interfaces for everything. Among other things, this means that > >> prime support is now implemented in an entirely driver-agnostic way and > >> the > >> driver doesn't even know it's happening. As a side-effect anv now has > >> prime support. > >> > >> Eventually, someone could pull what's left out into a proper layer and > we > >> could drop WSI support from our drivers entirely. There are a fiew > pieces > >> of work that would be required to do this: > >> > >> 1) Write all of the annoying layer bits. There are some short-cuts > that > >> we can take because we're not in a layer and those will have to go. > >> > >> 2) Define a VK_MESA_legacy_swapchain_image extension to replace the > hack > >> introduced in patch 8. > >> > >> 3) It looks like modifiers support will land before the official Vulkan > >> extensions get finished. It will have to be ported to the official > >> extensions. > >> > >> 4) Figure out what to do about the fence in AcquireNextImage. In a > future > >> world of explicit synchronization, we can just import the sync_file > >> from X or the Wayland compositor, but with implicit sync like we > have > >> today, it's a bit harder. Right now, the helper in wsi_common does > >> nothing with it and trusts the caller to handle it. > >> > >> The two drivers handle this differently today. In anv, we do a > dummy > >> QueueSubmit to trigger the fence while radv triggers it a bit more > >> manually. In both cases, we trigger the fence immediately and trust > >> in > >> the GEM's implicit synchronization to sort things out for us. We > >> can't > >> use the anv method as directly with radv because no queue is passed > in > >> so we don't know what queue to use in the dummy QueueSubmit. (In > ANV, > >> we only have the one queue so that isn't a problem.) > >> > >> > >> Dave, I tried to pull patches from your series where practical but, > >> because > >> we did things in a different order, it frequently wasn't. If you want > to > >> claim credit for any of these patches, just say so and I'll > --reset-author > >> on them. > >> > >> The series can be found on freedesktop.org here: > >> > >> https://cgit.freedesktop.org/~jekstrand/mesa/log/?h=wip/ > vulkan-wsi-prime > >> > >> > >> Cc: Dave Airlie <airl...@redhat.com> > >> Cc: Daniel Stone <dani...@collabora.com> > >> Cc: Chad Versace <chadvers...@chromium.org> > >> Cc: James Jones <jajo...@nvidia.com> > >> > >> Daniel Stone (1): > >> vulkan/wsi: Add a wsi_image structure > >> > >> Dave Airlie (4): > >> vulkan/wsi: use function ptr definitions from the spec. > >> radv/wsi: drop allocate memory special case > >> radv/wsi: Move the guts of QueuePresent to wsi common > >> vulkan/wsi: move swapchain create/destroy to common code > >> > >> Jason Ekstrand (23): > >> vulkan/wsi/x11: Handle the geometry check earlier in create_swapchain > >> vulkan/wsi: Add a wsi_device_init function > >> vulkan/wsi: Add wsi_swapchain_init/finish functions > >> vulkan/wsi: Implement prime in a completely generic way > >> anv/image: Add a return value to bind_memory_plane > >> vulkan/wsi: Add a mock image creation extension > >> anv/image: Implement the wsi "extension" > >> radv/image: Implement the wsi "extension" > >> vulkan/wsi: Do image creation in common code > >> vulkan/wsi: Add a WSI_FROM_HANDLE macro > >> vulkan/wsi: Refactor result handling in queue_present > >> vulkan/wsi: Only wait on semaphores on the first swapchain > >> vulkan/wsi: Set a proper pWaitDstStageMask on the dummy submit > >> anv/wsi: Use the common QueuePresent code > >> anv/wsi: Enable prime support > >> vulkan/wsi: Move get_images into common code > >> vulkan/wsi: Move prime blitting into queue_present > >> vulkan/wsi: Add a helper for AcquireNextImage > >> vulkan/wsi: Move wsi_swapchain to wsi_common_private.h > >> vulkan/wsi: Drop the can_handle_different_gpu parameter from > >> get_support > >> vulkan/wsi: Add wrappers for all of the surface queries > >> vulkan/wsi: Drop some unneeded cruft from the API > >> vulkan/wsi: Initialize individual WSI interfaces in wsi_device_init > >> > >> src/amd/vulkan/radv_device.c | 18 +- > >> src/amd/vulkan/radv_image.c | 15 +- > >> src/amd/vulkan/radv_private.h | 10 - > >> src/amd/vulkan/radv_wsi.c | 472 +++------------------- > >> src/intel/vulkan/anv_image.c | 71 +++- > >> src/intel/vulkan/anv_private.h | 2 + > >> src/intel/vulkan/anv_wsi.c | 347 +++------------- > >> src/vulkan/Makefile.sources | 2 + > >> src/vulkan/wsi/meson.build | 2 + > >> src/vulkan/wsi/wsi_common.c | 763 > >> ++++++++++++++++++++++++++++++++++++ > >> src/vulkan/wsi/wsi_common.h | 223 ++++++----- > >> src/vulkan/wsi/wsi_common_private.h | 157 ++++++++ > >> src/vulkan/wsi/wsi_common_wayland.c | 90 ++--- > >> src/vulkan/wsi/wsi_common_x11.c | 150 ++----- > >> 14 files changed, 1310 insertions(+), 1012 deletions(-) > >> create mode 100644 src/vulkan/wsi/wsi_common.c > >> create mode 100644 src/vulkan/wsi/wsi_common_private.h > >> > >> -- > >> 2.5.0.400.gff86faf > >> > > > > > > _______________________________________________ > > mesa-dev mailing list > > mesa-dev@lists.freedesktop.org > > https://lists.freedesktop.org/mailman/listinfo/mesa-dev > > >
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev