turnip: always emit LRZ draw state in DIRTY_DRAW_STATE path

The packet size is constant and assumes all states, except for the 2 input
attachment states. (this means we get an invalid packet if DIRTY_LRZ isn't
set when DIRTY_DRAW_STATE is set).

Fixes: 3c07a14998 ("turnip: enable LRZ")

Signed-off-by: Jonathan Marek <jonathan@marek.ca>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7899>
(cherry picked from commit af6e74bca8)
This commit is contained in:
Jonathan Marek 2020-12-02 23:32:13 -05:00 committed by Dylan Baker
parent 51e8c7ec9a
commit 4c32042db7
2 changed files with 2 additions and 3 deletions

View file

@ -778,7 +778,7 @@
"description": "turnip: always emit LRZ draw state in DIRTY_DRAW_STATE path",
"nominated": true,
"nomination_type": 1,
"resolution": 0,
"resolution": 1,
"master_sha": null,
"because_sha": "3c07a149986381847a8431db0491286c1fc10897"
},

View file

@ -3340,8 +3340,7 @@ tu6_draw_common(struct tu_cmd_buffer *cmd,
tu_cs_emit_draw_state(cs, TU_DRAW_STATE_DESC_SETS_LOAD, pipeline->load_state);
tu_cs_emit_draw_state(cs, TU_DRAW_STATE_VB, cmd->state.vertex_buffers);
tu_cs_emit_draw_state(cs, TU_DRAW_STATE_VS_PARAMS, cmd->state.vs_params);
if (cmd->state.dirty & TU_CMD_DIRTY_LRZ)
tu_cs_emit_draw_state(cs, TU_DRAW_STATE_LRZ, cmd->state.lrz.state);
tu_cs_emit_draw_state(cs, TU_DRAW_STATE_LRZ, cmd->state.lrz.state);
for (uint32_t i = 0; i < ARRAY_SIZE(cmd->state.dynamic_state); i++) {
tu_cs_emit_draw_state(cs, TU_DRAW_STATE_DYNAMIC + i,