diff options
author | Jason Ekstrand <[email protected]> | 2016-03-08 18:10:22 -0800 |
---|---|---|
committer | Jason Ekstrand <[email protected]> | 2016-05-27 15:17:43 -0700 |
commit | 54324877926caa28b8ebd89d95b4e7c2447d17b8 (patch) | |
tree | 663cbfa6f9c3ee2ae7ff1c8939489352245febd0 /src/intel/vulkan/genX_pipeline_util.h | |
parent | 2cee0d0f9c9e9e269885b1d943ff123e033d9b52 (diff) |
anv: Move push constant allocation to the command buffer
Instead of blasting it out as part of the pipeline, we put it in the
command buffer and only blast it out when it's really needed. Since the
PUSH_CONSTANT_ALLOC commands aren't pipelined, they immediately cause a
stall which we would like to avoid.
Signed-off-by: Jason Ekstrand <[email protected]>
Reviewed-by: Jordan Justen <[email protected]>
Diffstat (limited to 'src/intel/vulkan/genX_pipeline_util.h')
-rw-r--r-- | src/intel/vulkan/genX_pipeline_util.h | 12 |
1 files changed, 0 insertions, 12 deletions
diff --git a/src/intel/vulkan/genX_pipeline_util.h b/src/intel/vulkan/genX_pipeline_util.h index ecbe436e4ea..2ed55e016dc 100644 --- a/src/intel/vulkan/genX_pipeline_util.h +++ b/src/intel/vulkan/genX_pipeline_util.h @@ -205,18 +205,6 @@ emit_urb_setup(struct anv_pipeline *pipeline) } #endif - unsigned push_start = 0; - for (int i = MESA_SHADER_VERTEX; i <= MESA_SHADER_FRAGMENT; i++) { - unsigned push_size = pipeline->urb.push_size[i]; - anv_batch_emit(&pipeline->batch, - GENX(3DSTATE_PUSH_CONSTANT_ALLOC_VS), alloc) { - alloc._3DCommandSubOpcode = 18 + i; - alloc.ConstantBufferOffset = (push_size > 0) ? push_start : 0; - alloc.ConstantBufferSize = push_size; - } - push_start += pipeline->urb.push_size[i]; - } - for (int i = MESA_SHADER_VERTEX; i <= MESA_SHADER_GEOMETRY; i++) { anv_batch_emit(&pipeline->batch, GENX(3DSTATE_URB_VS), urb) { urb._3DCommandSubOpcode = 48 + i; |