mirror of
https://github.com/tiagovignatti/intel-gpu-tools.git
synced 2025-06-11 01:46:14 +00:00
tools/null_state_gen: Add macro to emit commands with null state
In null/golden context there are multiple state commands where the actual state is always zero. For more compact batch representation add a macro which just emits command and the rest of the state as zero. v2: - Be more verbose about length bias (Bradley Volkin) - strip out unrelated state_offset declaration (Bradley Volkin) Cc: Volkin, Bradley D <bradley.d.volkin@intel.com> Signed-off-by: Mika Kuoppala <mika.kuoppala@intel.com>
This commit is contained in:
parent
a1f847cba9
commit
b69659c3f5
@ -274,3 +274,18 @@ const char *intel_batch_type_as_str(const struct bb_item *item)
|
||||
|
||||
return "UNKNOWN";
|
||||
}
|
||||
|
||||
void intel_batch_cmd_emit_null(struct intel_batchbuffer *batch,
|
||||
const int cmd, const int len, const int len_bias,
|
||||
const char *str)
|
||||
{
|
||||
int i;
|
||||
|
||||
assert(len > 1);
|
||||
assert((len - len_bias) >= 0);
|
||||
|
||||
bb_area_emit(batch->cmds, (cmd | (len - len_bias)), CMD, str);
|
||||
|
||||
for (i = len_bias-1; i < len; i++)
|
||||
OUT_BATCH(0);
|
||||
}
|
||||
|
@ -69,6 +69,9 @@ struct intel_batchbuffer {
|
||||
|
||||
struct intel_batchbuffer *intel_batchbuffer_create(void);
|
||||
|
||||
#define OUT_CMD_B(cmd, len, bias) intel_batch_cmd_emit_null(batch, (cmd), (len), (bias), #cmd " " #len)
|
||||
#define OUT_CMD(cmd, len) OUT_CMD_B(cmd, len, 2)
|
||||
|
||||
#define OUT_BATCH(d) bb_area_emit(batch->cmds, d, CMD, #d)
|
||||
#define OUT_BATCH_STATE_OFFSET(d) bb_area_emit(batch->cmds, d, STATE_OFFSET, #d)
|
||||
#define OUT_RELOC(batch, read_domain, write_domain, d) bb_area_emit(batch->cmds, d, RELOC, #d)
|
||||
@ -94,4 +97,8 @@ const char *intel_batch_type_as_str(const struct bb_item *item);
|
||||
void bb_area_emit(struct bb_area *a, uint32_t dword, item_type type, const char *str);
|
||||
void bb_area_emit_offset(struct bb_area *a, unsigned i, uint32_t dword, item_type type, const char *str);
|
||||
|
||||
void intel_batch_cmd_emit_null(struct intel_batchbuffer *batch,
|
||||
const int cmd,
|
||||
const int len, const int len_bias,
|
||||
const char *str);
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user