summaryrefslogtreecommitdiffstats
path: root/src/intel/vulkan/anv_pipeline.c
diff options
context:
space:
mode:
authorKenneth Graunke <[email protected]>2016-02-22 15:23:06 -0800
committerKenneth Graunke <[email protected]>2016-02-24 11:13:02 -0800
commit1024a66fc4ff34a03ecfdf3ec053cb874fb206fe (patch)
treecfee225449cd811dbf232071337884eeb4e7c249 /src/intel/vulkan/anv_pipeline.c
parentc9564fd598573f609480f70a141b95900047ba58 (diff)
anv: Emit 3DSTATE_URB_* via a loop.
Rather than keeping separate {vs,hs,ds,gs}_start fields, we now store an array indexed by the shader stage (MESA_SHADER_*). The 3DSTATE_URB_* commands are also sequentially numbered. This makes it easy to just emit them in a loop. This simplifies the code a little, and also will make it easier to add more credible HS and DS code later.
Diffstat (limited to 'src/intel/vulkan/anv_pipeline.c')
-rw-r--r--src/intel/vulkan/anv_pipeline.c20
1 files changed, 14 insertions, 6 deletions
diff --git a/src/intel/vulkan/anv_pipeline.c b/src/intel/vulkan/anv_pipeline.c
index 27872d2769a..df78362ee70 100644
--- a/src/intel/vulkan/anv_pipeline.c
+++ b/src/intel/vulkan/anv_pipeline.c
@@ -870,13 +870,21 @@ gen7_compute_urb_partition(struct anv_pipeline *pipeline)
* - VS
* - GS
*/
- pipeline->urb.vs_start = push_constant_chunks;
- pipeline->urb.vs_size = vs_size;
- pipeline->urb.nr_vs_entries = nr_vs_entries;
+ pipeline->urb.start[MESA_SHADER_VERTEX] = push_constant_chunks;
+ pipeline->urb.size[MESA_SHADER_VERTEX] = vs_size;
+ pipeline->urb.entries[MESA_SHADER_VERTEX] = nr_vs_entries;
- pipeline->urb.gs_start = push_constant_chunks + vs_chunks;
- pipeline->urb.gs_size = gs_size;
- pipeline->urb.nr_gs_entries = nr_gs_entries;
+ pipeline->urb.start[MESA_SHADER_GEOMETRY] = push_constant_chunks + vs_chunks;
+ pipeline->urb.size[MESA_SHADER_GEOMETRY] = gs_size;
+ pipeline->urb.entries[MESA_SHADER_GEOMETRY] = nr_gs_entries;
+
+ pipeline->urb.start[MESA_SHADER_TESS_CTRL] = push_constant_chunks;
+ pipeline->urb.size[MESA_SHADER_TESS_CTRL] = 1;
+ pipeline->urb.entries[MESA_SHADER_TESS_CTRL] = 0;
+
+ pipeline->urb.start[MESA_SHADER_TESS_EVAL] = push_constant_chunks;
+ pipeline->urb.size[MESA_SHADER_TESS_EVAL] = 1;
+ pipeline->urb.entries[MESA_SHADER_TESS_EVAL] = 0;
}
static void