• Home
  • Raw
  • Download

Lines Matching refs:cs

33 tu_cs_init(struct tu_cs *cs,
39 tu_cs_init_external(struct tu_cs *cs, struct tu_device *device,
43 tu_cs_finish(struct tu_cs *cs);
46 tu_cs_begin(struct tu_cs *cs);
49 tu_cs_end(struct tu_cs *cs);
52 tu_cs_begin_sub_stream(struct tu_cs *cs, uint32_t size, struct tu_cs *sub_cs);
55 tu_cs_alloc(struct tu_cs *cs,
61 tu_cs_end_sub_stream(struct tu_cs *cs, struct tu_cs *sub_cs);
64 tu_cs_end_draw_state(struct tu_cs *cs, struct tu_cs *sub_cs) in tu_cs_end_draw_state() argument
66 struct tu_cs_entry entry = tu_cs_end_sub_stream(cs, sub_cs); in tu_cs_end_draw_state()
74 tu_cs_reserve_space(struct tu_cs *cs, uint32_t reserved_size);
77 tu_cs_draw_state(struct tu_cs *sub_cs, struct tu_cs *cs, uint32_t size) in tu_cs_draw_state() argument
83 tu_cs_init_external(cs, sub_cs->device, memory.map, memory.map + size); in tu_cs_draw_state()
84 tu_cs_begin(cs); in tu_cs_draw_state()
85 tu_cs_reserve_space(cs, size); in tu_cs_draw_state()
94 tu_cs_reset(struct tu_cs *cs);
97 tu_cs_add_entries(struct tu_cs *cs, struct tu_cs *target);
104 tu_cs_get_size(const struct tu_cs *cs) in tu_cs_get_size() argument
106 return cs->cur - cs->start; in tu_cs_get_size()
114 tu_cs_is_empty(const struct tu_cs *cs) in tu_cs_is_empty() argument
116 return tu_cs_get_size(cs) == 0; in tu_cs_is_empty()
124 tu_cs_discard_entries(struct tu_cs *cs) in tu_cs_discard_entries() argument
126 assert(cs->mode == TU_CS_MODE_GROW); in tu_cs_discard_entries()
127 cs->entry_count = 0; in tu_cs_discard_entries()
134 tu_cs_get_call_size(const struct tu_cs *cs) in tu_cs_get_call_size() argument
136 assert(cs->mode == TU_CS_MODE_GROW); in tu_cs_get_call_size()
138 return cs->entry_count * 4; in tu_cs_get_call_size()
145 tu_cs_sanity_check(const struct tu_cs *cs) in tu_cs_sanity_check() argument
147 assert(cs->start <= cs->cur); in tu_cs_sanity_check()
148 assert(cs->cur <= cs->reserved_end); in tu_cs_sanity_check()
149 assert(cs->reserved_end <= cs->end); in tu_cs_sanity_check()
156 tu_cs_emit(struct tu_cs *cs, uint32_t value) in tu_cs_emit() argument
158 assert(cs->cur < cs->reserved_end); in tu_cs_emit()
159 *cs->cur = value; in tu_cs_emit()
160 ++cs->cur; in tu_cs_emit()
167 tu_cs_emit_array(struct tu_cs *cs, const uint32_t *values, uint32_t length) in tu_cs_emit_array() argument
169 assert(cs->cur + length <= cs->reserved_end); in tu_cs_emit_array()
170 memcpy(cs->cur, values, sizeof(uint32_t) * length); in tu_cs_emit_array()
171 cs->cur += length; in tu_cs_emit_array()
178 tu_cs_get_space(const struct tu_cs *cs) in tu_cs_get_space() argument
180 return cs->end - cs->cur; in tu_cs_get_space()
184 tu_cs_reserve(struct tu_cs *cs, uint32_t reserved_size) in tu_cs_reserve() argument
186 if (cs->mode != TU_CS_MODE_GROW) { in tu_cs_reserve()
187 assert(tu_cs_get_space(cs) >= reserved_size); in tu_cs_reserve()
188 assert(cs->reserved_end == cs->end); in tu_cs_reserve()
192 if (tu_cs_get_space(cs) >= reserved_size && in tu_cs_reserve()
193 cs->entry_count < cs->entry_capacity) { in tu_cs_reserve()
194 cs->reserved_end = cs->cur + reserved_size; in tu_cs_reserve()
198 ASSERTED VkResult result = tu_cs_reserve_space(cs, reserved_size); in tu_cs_reserve()
207 tu_cs_emit_pkt4(struct tu_cs *cs, uint16_t regindx, uint16_t cnt) in tu_cs_emit_pkt4() argument
209 tu_cs_reserve(cs, cnt + 1); in tu_cs_emit_pkt4()
210 tu_cs_emit(cs, pm4_pkt4_hdr(regindx, cnt)); in tu_cs_emit_pkt4()
217 tu_cs_emit_pkt7(struct tu_cs *cs, uint8_t opcode, uint16_t cnt) in tu_cs_emit_pkt7() argument
219 tu_cs_reserve(cs, cnt + 1); in tu_cs_emit_pkt7()
220 tu_cs_emit(cs, pm4_pkt7_hdr(opcode, cnt)); in tu_cs_emit_pkt7()
224 tu_cs_emit_wfi(struct tu_cs *cs) in tu_cs_emit_wfi() argument
226 tu_cs_emit_pkt7(cs, CP_WAIT_FOR_IDLE, 0); in tu_cs_emit_wfi()
230 tu_cs_emit_qw(struct tu_cs *cs, uint64_t value) in tu_cs_emit_qw() argument
232 tu_cs_emit(cs, (uint32_t) value); in tu_cs_emit_qw()
233 tu_cs_emit(cs, (uint32_t) (value >> 32)); in tu_cs_emit_qw()
237 tu_cs_emit_write_reg(struct tu_cs *cs, uint16_t reg, uint32_t value) in tu_cs_emit_write_reg() argument
239 tu_cs_emit_pkt4(cs, reg, 1); in tu_cs_emit_write_reg()
240 tu_cs_emit(cs, value); in tu_cs_emit_write_reg()
247 tu_cs_emit_ib(struct tu_cs *cs, const struct tu_cs_entry *entry) in tu_cs_emit_ib() argument
254 tu_cs_emit_pkt7(cs, CP_INDIRECT_BUFFER, 3); in tu_cs_emit_ib()
255 tu_cs_emit_qw(cs, entry->bo->iova + entry->offset); in tu_cs_emit_ib()
256 tu_cs_emit(cs, entry->size / sizeof(uint32_t)); in tu_cs_emit_ib()
261 tu_cs_emit_state_ib(struct tu_cs *cs, struct tu_draw_state state) in tu_cs_emit_state_ib() argument
264 tu_cs_emit_pkt7(cs, CP_INDIRECT_BUFFER, 3); in tu_cs_emit_state_ib()
265 tu_cs_emit_qw(cs, state.iova); in tu_cs_emit_state_ib()
266 tu_cs_emit(cs, state.size); in tu_cs_emit_state_ib()
275 tu_cs_emit_call(struct tu_cs *cs, const struct tu_cs *target) in tu_cs_emit_call() argument
279 tu_cs_emit_ib(cs, target->entries + i); in tu_cs_emit_call()
286 tu_cond_exec_start(struct tu_cs *cs, uint32_t cond_flags) in tu_cond_exec_start() argument
288 assert(cs->mode == TU_CS_MODE_GROW); in tu_cond_exec_start()
289 assert(!cs->cond_flags && cond_flags); in tu_cond_exec_start()
291 tu_cs_emit_pkt7(cs, CP_COND_REG_EXEC, 2); in tu_cond_exec_start()
292 tu_cs_emit(cs, cond_flags); in tu_cond_exec_start()
294 cs->cond_flags = cond_flags; in tu_cond_exec_start()
295 cs->cond_dwords = cs->cur; in tu_cond_exec_start()
298 tu_cs_emit(cs, CP_COND_REG_EXEC_1_DWORDS(0)); in tu_cond_exec_start()
306 tu_cond_exec_end(struct tu_cs *cs) in tu_cond_exec_end() argument
308 assert(cs->cond_flags); in tu_cond_exec_end()
310 cs->cond_flags = 0; in tu_cond_exec_end()
312 *cs->cond_dwords = cs->cur - cs->cond_dwords - 1; in tu_cond_exec_end()
361 #define tu_cs_emit_regs(cs, ...) do { \ argument
368 tu_cs_emit_pkt4((cs), regs[0].reg, count); \
369 uint32_t *p = (cs)->cur; \
386 (cs)->cur = p; \