[Mesa-dev] [PATCH 00/13] anv: Add support for VK_EXT_transform_feedback
Jason Ekstrand
jason at jlekstrand.net
Sat Oct 13 13:09:47 UTC 2018
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
More information about the mesa-dev
mailing list