summaryrefslogtreecommitdiffstats
path: root/src/intel/vulkan/genX_pipeline_util.h
diff options
context:
space:
mode:
authorKenneth Graunke <kenneth@whitecape.org>2016-07-18 16:02:02 -0700
committerKenneth Graunke <kenneth@whitecape.org>2016-07-30 12:06:37 -0700
commitb5661c1d70f9ffaea3c1c14c4bc3f20f7fd4530c (patch)
treecf460993ebb9a0d0f63708011b0f3c4c511dd373 /src/intel/vulkan/genX_pipeline_util.h
parent99a47391e430d27fb745450e450bf180ec48c8a6 (diff)
downloadexternal_mesa3d-b5661c1d70f9ffaea3c1c14c4bc3f20f7fd4530c.zip
external_mesa3d-b5661c1d70f9ffaea3c1c14c4bc3f20f7fd4530c.tar.gz
external_mesa3d-b5661c1d70f9ffaea3c1c14c4bc3f20f7fd4530c.tar.bz2
anv: Perform rasterizer discard in the SOL stage instead of the clipper.
See commit b0629e6894513a2c49a018bc3342a4e55435a236, where we discovered that the SOL stage's "Rendering Disable" feature is a lot faster at throwing away all geometry than the clipper's "reject all" mode. Signed-off-by: Kenneth Graunke <kenneth@whitecape.org> Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Diffstat (limited to 'src/intel/vulkan/genX_pipeline_util.h')
-rw-r--r--src/intel/vulkan/genX_pipeline_util.h12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/intel/vulkan/genX_pipeline_util.h b/src/intel/vulkan/genX_pipeline_util.h
index 516fc49..c134d5d 100644
--- a/src/intel/vulkan/genX_pipeline_util.h
+++ b/src/intel/vulkan/genX_pipeline_util.h
@@ -666,8 +666,7 @@ emit_3dstate_clip(struct anv_pipeline *pipeline,
clip.APIMode = APIMODE_D3D,
clip.ViewportXYClipTestEnable = true;
- clip.ClipMode = rs_info->rasterizerDiscardEnable ?
- CLIPMODE_REJECT_ALL : CLIPMODE_NORMAL;
+ clip.ClipMode = CLIPMODE_NORMAL;
clip.TriangleStripListProvokingVertexSelect = 0;
clip.LineStripListProvokingVertexSelect = 0;
@@ -687,3 +686,12 @@ emit_3dstate_clip(struct anv_pipeline *pipeline,
#endif
}
}
+
+static void
+emit_3dstate_streamout(struct anv_pipeline *pipeline,
+ const VkPipelineRasterizationStateCreateInfo *rs_info)
+{
+ anv_batch_emit(&pipeline->batch, GENX(3DSTATE_STREAMOUT), so) {
+ so.RenderingDisable = rs_info->rasterizerDiscardEnable;
+ }
+}