case FRAG_DEPTH_LAYOUT_LESS:
return BRW_PSCDEPTH_ON_LE;
case FRAG_DEPTH_LAYOUT_UNCHANGED:
- return BRW_PSCDEPTH_OFF;
+ /* We initially set this to OFF, but having the shader write the
+ * depth means we allocate register space in the SEND message. The
+ * difference between the SEND register count and the OFF state
+ * programming makes the HW hang.
+ *
+ * Removing the depth writes also leads to test failures. So use
+ * LesserThanOrEqual, which fits writing the same value
+ * (unchanged/equal).
+ *
+ */
+ return BRW_PSCDEPTH_ON_LE;
}
}
return BRW_PSCDEPTH_OFF;