summaryrefslogtreecommitdiffstats
path: root/src/intel/common/gen_urb_config.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/intel/common/gen_urb_config.c')
-rw-r--r--src/intel/common/gen_urb_config.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/intel/common/gen_urb_config.c b/src/intel/common/gen_urb_config.c
index 0b632149cd9..1440dd713e9 100644
--- a/src/intel/common/gen_urb_config.c
+++ b/src/intel/common/gen_urb_config.c
@@ -195,8 +195,14 @@ gen_get_urb_config(const struct gen_device_info *devinfo,
}
/* Lay out the URB in pipeline order: push constants, VS, HS, DS, GS. */
- start[0] = push_constant_chunks;
- for (int i = MESA_SHADER_TESS_CTRL; i <= MESA_SHADER_GEOMETRY; i++) {
- start[i] = start[i - 1] + chunks[i - 1];
+ int next = push_constant_chunks;
+ for (int i = MESA_SHADER_VERTEX; i <= MESA_SHADER_GEOMETRY; i++) {
+ if (entries[i]) {
+ start[i] = next;
+ next += chunks[i];
+ } else {
+ /* Just put disabled stages at the beginning. */
+ start[i] = 0;
+ }
}
}