On Sat, Nov 18, 2017 at 3:06 AM, Jason Ekstrand <ja...@jlekstrand.net> wrote: > 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.
Seems to be the same as before. Assertion `!"No memory type found"' starts hitting at "vulkan/wsi: Do image creation in common code". Gražvydas > > --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