From 0a6d0fed9de53176ee7ce94ada7b9d4f8bbb588e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tapani=20P=C3=A4lli?= Date: Sun, 4 Sep 2022 19:03:41 +0300 Subject: [PATCH] anv: dynamic rasterization stream MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This affects following packets: 3DSTATE_STREAMOUT Signed-off-by: Tapani Pälli Reviewed-by: Lionel Landwerlin Part-of: --- src/intel/vulkan/genX_cmd_buffer.c | 4 +++- src/intel/vulkan/genX_pipeline.c | 2 -- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/intel/vulkan/genX_cmd_buffer.c b/src/intel/vulkan/genX_cmd_buffer.c index a809338520e..165ccb965cd 100644 --- a/src/intel/vulkan/genX_cmd_buffer.c +++ b/src/intel/vulkan/genX_cmd_buffer.c @@ -3426,6 +3426,7 @@ cmd_buffer_emit_streamout(struct anv_cmd_buffer *cmd_buffer) struct GENX(3DSTATE_STREAMOUT) so = { GENX(3DSTATE_STREAMOUT_header), .RenderingDisable = dyn->rs.rasterizer_discard_enable, + .RenderStreamSelect = dyn->rs.rasterization_stream, }; GENX(3DSTATE_STREAMOUT_pack)(NULL, dwords, &so); anv_batch_emit_merge(&cmd_buffer->batch, dwords, pipeline->gfx8.streamout_state); @@ -3625,7 +3626,8 @@ genX(cmd_buffer_flush_gfx_state)(struct anv_cmd_buffer *cmd_buffer) if ((cmd_buffer->state.gfx.dirty & (ANV_CMD_DIRTY_PIPELINE | ANV_CMD_DIRTY_XFB_ENABLE)) || - BITSET_TEST(dyn->dirty, MESA_VK_DYNAMIC_RS_RASTERIZER_DISCARD_ENABLE)) + BITSET_TEST(dyn->dirty, MESA_VK_DYNAMIC_RS_RASTERIZER_DISCARD_ENABLE) || + BITSET_TEST(dyn->dirty, MESA_VK_DYNAMIC_RS_RASTERIZATION_STREAM)) cmd_buffer_emit_streamout(cmd_buffer); if ((cmd_buffer->state.gfx.dirty & (ANV_CMD_DIRTY_PIPELINE | diff --git a/src/intel/vulkan/genX_pipeline.c b/src/intel/vulkan/genX_pipeline.c index 1c32cd5f99c..800c013436f 100644 --- a/src/intel/vulkan/genX_pipeline.c +++ b/src/intel/vulkan/genX_pipeline.c @@ -1269,8 +1269,6 @@ emit_3dstate_streamout(struct anv_graphics_pipeline *pipeline, unreachable("Invalid provoking vertex mode"); } - so.RenderStreamSelect = rs->rasterization_stream; - so.Buffer0SurfacePitch = xfb_info->buffers[0].stride; so.Buffer1SurfacePitch = xfb_info->buffers[1].stride; so.Buffer2SurfacePitch = xfb_info->buffers[2].stride;