[Mesa-dev] [PATCH 00/13] anv: Add support for VK_EXT_transform_feedback

Lionel Landwerlin lionel.g.landwerlin at intel.com
Mon Oct 15 13:35:09 UTC 2018


I've left a couple of comments on patch 8 about a programming note for 
Gen10+ and a nit on patch 9.
Otherwise patches 7->13 are :

Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>

(Hopefully Samuel & you can review each other's nir changes :)

On 13/10/2018 14:09, Jason Ekstrand wrote:
> 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
>



More information about the mesa-dev mailing list