intel: refactor cmd_batch_begin()
Add cmd_batch_state_base_address() and call it from cmd_batch_begin().
diff --git a/icd/intel/cmd_priv.h b/icd/intel/cmd_priv.h
index f1a47f2..dda45e1 100644
--- a/icd/intel/cmd_priv.h
+++ b/icd/intel/cmd_priv.h
@@ -418,39 +418,14 @@
INTEL_CMD_RELOC_TARGET_IS_WRITER);
}
+void cmd_batch_state_base_address(struct intel_cmd *cmd);
+
/**
* Begin the batch buffer.
*/
static inline void cmd_batch_begin(struct intel_cmd *cmd)
{
- /* STATE_BASE_ADDRESS */
- const uint8_t cmd_len = 10;
- const uint32_t dw0 = GEN6_RENDER_CMD(COMMON, STATE_BASE_ADDRESS) |
- (cmd_len - 2);
- uint32_t pos;
- uint32_t *dw;
-
- CMD_ASSERT(cmd, 6, 7.5);
-
- pos = cmd_batch_pointer(cmd, cmd_len, &dw);
-
- dw[0] = dw0;
- /* start offsets */
- dw[1] = 1;
- dw[2] = 1;
- dw[3] = 1;
- dw[4] = 1;
- dw[5] = 1;
- /* end offsets */
- dw[6] = 1;
- dw[7] = 1 + 0xfffff000;
- dw[8] = 1 + 0xfffff000;
- dw[9] = 1;
-
- cmd_reserve_reloc(cmd, 3);
- cmd_batch_reloc_writer(cmd, pos + 2, INTEL_CMD_WRITER_STATE, 1);
- cmd_batch_reloc_writer(cmd, pos + 3, INTEL_CMD_WRITER_STATE, 1);
- cmd_batch_reloc_writer(cmd, pos + 5, INTEL_CMD_WRITER_INSTRUCTION, 1);
+ cmd_batch_state_base_address(cmd);
}
/**