This series adds support for the new VK_EXT_transform_feedback extension. As far as I know, everything works but it's still all a bit experimental as we don't have very good tests yet. CTS tests are in-progress and we hope to have decent testing soon. We likely won't be landing them in master until we get better testing as the testing is currently really sketchy. However, the basics do work and Nvidia HairWorks now works in Witcher 3 with DXVK.
You may be asking question, "What took you so long?" or, "Why are you doing transform feedback? I thought that was legacy stuff." For those who are interested in the history or the rational behind the lack of transform feedback in Vulkan and it's sudden appearance, I've written a blog post explaining it: http://jason-blog.jlekstrand.net/2018/10/transform-feedback-is-terrible-so-why.html For those wishing to try out the patches, or who prefer to review with a branch, the series can be found on my personal gitlab: https://gitlab.freedesktop.org/jekstrand/mesa/commits/wip/VK_EXT_transform_feedback Happy reviewing and/or testing! --Jason Ekstrand Jason Ekstrand (11): vulkan: Update Vulkan XML and headers to 1.1.88 anv: Add but do not enable VK_EXT_transform_feedback nir: Preserve offsets in lower_io_to_scalar_early nir: Add a pass for gathering transform feedback info anv: Add pipeline cache support for xfb_info anv: Implement the basic form of VK_EXT_transform_feedback anv: Implement vkCmdDrawIndirectByteCountEXT anv: Implement CmdBegin/EndQueryIndexed genxml: Add SO_PRIM_STORAGE_NEEDED and SO_NUM_PRIMS_WRITTEN anv: Implement transform feedback queries anv: Improve the asserts in anv_buffer_get_range Samuel Pitoiset (2): nir: do not remove varyings used for transform feedback nir: fix lowering arrays to elements for TFB outputs include/vulkan/vulkan.h | 4 + include/vulkan/vulkan_core.h | 244 +++++++++++++++- include/vulkan/vulkan_fuchsia.h | 58 ++++ src/compiler/Makefile.sources | 4 +- src/compiler/nir/meson.build | 2 + src/compiler/nir/nir_gather_xfb_info.c | 150 ++++++++++ src/compiler/nir/nir_linking_helpers.c | 3 + .../nir/nir_lower_io_arrays_to_elements.c | 3 + src/compiler/nir/nir_lower_io_to_scalar.c | 8 + src/compiler/nir/nir_xfb_info.h | 59 ++++ src/intel/genxml/gen10.xml | 32 ++ src/intel/genxml/gen11.xml | 32 ++ src/intel/genxml/gen7.xml | 32 ++ src/intel/genxml/gen75.xml | 32 ++ src/intel/genxml/gen8.xml | 32 ++ src/intel/genxml/gen9.xml | 32 ++ src/intel/vulkan/anv_blorp.c | 3 +- src/intel/vulkan/anv_cmd_buffer.c | 29 ++ src/intel/vulkan/anv_device.c | 24 ++ src/intel/vulkan/anv_extensions.py | 1 + src/intel/vulkan/anv_pipeline.c | 12 +- src/intel/vulkan/anv_pipeline_cache.c | 48 ++- src/intel/vulkan/anv_private.h | 22 +- src/intel/vulkan/genX_cmd_buffer.c | 275 ++++++++++++++++++ src/intel/vulkan/genX_pipeline.c | 123 ++++++++ src/intel/vulkan/genX_query.c | 93 +++++- src/vulkan/registry/vk.xml | 253 ++++++++++++++-- 27 files changed, 1562 insertions(+), 48 deletions(-) create mode 100644 include/vulkan/vulkan_fuchsia.h create mode 100644 src/compiler/nir/nir_gather_xfb_info.c create mode 100644 src/compiler/nir/nir_xfb_info.h -- 2.19.1 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev