Lines Matching refs:pass
201 return ((struct tu_perf_query_data *)a)->pass -
202 ((struct tu_perf_query_data *)b)->pass;
268 * correct group id, countable id, counter register and pass index with
271 * Also, since this built data will be sorted by pass index later, we
275 uint32_t regs[pool->perf_group_count], pass[pool->perf_group_count];
277 memset(pass, 0x00, pool->perf_group_count * sizeof(pass[0]));
290 * reset it for next pass.
294 pool->perf_query_data[i].pass = pass[gid];
296 pool->perf_query_data[i].pass = ++pass[gid];
302 /* Sort by pass index so we could easily prepare a command stream
303 * with the ascending order of pass index.
819 * A query must begin and end inside the same subpass of a render pass
820 * instance, or must both begin and end outside of a render pass
825 * query begins/ends inside the same subpass of a render pass, we need to
830 struct tu_cs *cs = cmdbuf->state.pass ? &cmdbuf->draw_cs : &cmdbuf->cs;
849 struct tu_cs *cs = cmdbuf->state.pass ? &cmdbuf->draw_cs : &cmdbuf->cs;
853 bool need_cond_exec = cmdbuf->state.pass && cmdbuf->state.prim_counters_running;
894 emit_perfcntrs_pass_start(struct tu_cs *cs, uint32_t pass)
899 A6XX_CP_REG_TEST_0_BIT(pass) |
909 struct tu_cs *cs = cmdbuf->state.pass ? &cmdbuf->draw_cs : &cmdbuf->cs;
912 if (cmdbuf->state.pass) {
918 * 0) There's a scratch reg to set a pass index for perf counters query.
919 * Prepare cmd streams to set each pass index to the reg at device
923 * reads the scratch reg where pass index is set.
925 * 2) Pick the right cs setting proper pass index to the reg and prepend
928 * 3) If the pass index in the reg is true, then executes the command
937 if (last_pass != data->pass) {
938 last_pass = data->pass;
940 if (data->pass != 0)
942 emit_perfcntrs_pass_start(cs, data->pass);
961 if (last_pass != data->pass) {
962 last_pass = data->pass;
964 if (data->pass != 0)
966 emit_perfcntrs_pass_start(cs, data->pass);
988 struct tu_cs *cs = cmdbuf->state.pass ? &cmdbuf->draw_cs : &cmdbuf->cs;
1000 struct tu_cs *cs = cmdbuf->state.pass ? &cmdbuf->draw_cs : &cmdbuf->cs;
1003 if (cmdbuf->state.pass) {
1011 if (cmdbuf->state.pass) {
1030 if (cmdbuf->state.pass) {
1109 * pass, set the slot's available bit since the query is now done.
1111 * pass, we cannot mark as available yet since the commands in
1114 const struct tu_render_pass *pass = cmdbuf->state.pass;
1115 struct tu_cs *cs = pass ? &cmdbuf->draw_cs : &cmdbuf->cs;
1154 if (pass)
1156 * at the render pass level to simply the code a bit. This is safe
1159 * cannot be invoked from inside a render pass scope.
1220 struct tu_cs *cs = cmdbuf->state.pass ? &cmdbuf->draw_cs : &cmdbuf->cs;
1269 if (cmdbuf->state.pass)
1283 struct tu_cs *cs = cmdbuf->state.pass ? &cmdbuf->draw_cs : &cmdbuf->cs;
1293 if (last_pass != data->pass) {
1294 last_pass = data->pass;
1296 if (data->pass != 0)
1298 emit_perfcntrs_pass_start(cs, data->pass);
1319 if (last_pass != data->pass) {
1320 last_pass = data->pass;
1323 if (data->pass != 0)
1325 emit_perfcntrs_pass_start(cs, data->pass);
1348 if (cmdbuf->state.pass)
1363 struct tu_cs *cs = cmdbuf->state.pass ? &cmdbuf->draw_cs : &cmdbuf->cs;
1411 struct tu_cs *cs = cmdbuf->state.pass ? &cmdbuf->draw_cs : &cmdbuf->cs;
1413 if (!cmdbuf->state.pass) {
1422 if (cmdbuf->state.pass) {
1451 if (cmdbuf->state.pass) {
1455 if (cmdbuf->state.pass)
1466 * If queries are used while executing a render pass instance that has
1489 if (!cmd->state.pass || !cmd->state.subpass->multiview_mask)
1568 /* Inside a render pass, just write the timestamp multiple times so that
1572 struct tu_cs *cs = cmd->state.pass ? &cmd->draw_cs : &cmd->cs;
1603 cs = cmd->state.pass ? &cmd->draw_epilogue_cs : &cmd->cs;
1611 * If vkCmdWriteTimestamp is called while executing a render pass