Mesa (staging/21.1): anv: Use the same re-order mode for streamout as for GS

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Apr 26 18:34:28 UTC 2021


Module: Mesa
Branch: staging/21.1
Commit: 891eeea222b49bdf4dec2901bbe233ab645233ad
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=891eeea222b49bdf4dec2901bbe233ab645233ad

Author: Jason Ekstrand <jason at jlekstrand.net>
Date:   Fri Jul 10 13:26:16 2020 -0500

anv: Use the same re-order mode for streamout as for GS

This makes the vertex order of TRISTRIP and TRISTRIP_ADJ primitves
consistent between XFB output and GS input.  Technically, the Vulkan
spec allows us to XFB out in whatever order we want but being consistent
with GS inputs is probably nicer to apps.

Fixes: 36ee2fd61c8 "anv: Implement the basic form of VK_EXT_transform_feedback"
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10460>
(cherry picked from commit 22b8bcda2c42cb6a8a9d6cc4f3aa20c8d18041b8)

---

 .pick_status.json                | 2 +-
 src/intel/vulkan/genX_pipeline.c | 1 +
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/.pick_status.json b/.pick_status.json
index 2e412fce30c..6ef8891f22d 100644
--- a/.pick_status.json
+++ b/.pick_status.json
@@ -31,7 +31,7 @@
         "description": "anv: Use the same re-order mode for streamout as for GS",
         "nominated": true,
         "nomination_type": 1,
-        "resolution": 0,
+        "resolution": 1,
         "master_sha": null,
         "because_sha": "36ee2fd61c8f943be1d1e2b0354f7a121ffef28f"
     },
diff --git a/src/intel/vulkan/genX_pipeline.c b/src/intel/vulkan/genX_pipeline.c
index 8e3aeef9ff2..131c4dcc903 100644
--- a/src/intel/vulkan/genX_pipeline.c
+++ b/src/intel/vulkan/genX_pipeline.c
@@ -1413,6 +1413,7 @@ emit_3dstate_streamout(struct anv_graphics_pipeline *pipeline,
       if (xfb_info) {
          so.SOFunctionEnable = true;
          so.SOStatisticsEnable = true;
+         so.ReorderMode = TRAILING;
 
          const VkPipelineRasterizationStateStreamCreateInfoEXT *stream_info =
             vk_find_struct_const(rs_info, PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT);



More information about the mesa-commit mailing list