Lines Matching defs:dwords

79    uint32_t size; /* in dwords */
197 dump_hex(uint32_t *dwords, uint32_t sizedwords, int level)
213 if (dwords[i + j])
224 uint64_t addr = gpuaddr(&dwords[i]);
242 printf(" %08x", dwords[i + j]);
250 dump_float(float *dwords, uint32_t sizedwords, int level)
256 printf("%016" PRIx64 ":%s", gpuaddr(dwords), levels[level]);
258 printf("%08x:%s", (uint32_t)gpuaddr(dwords), levels[level]);
263 printf("%8f", *(dwords++));
895 dump_registers(uint32_t regbase, uint32_t *dwords, uint32_t sizedwords,
907 reg_set(regbase, *dwords);
908 dump_register(regbase, *dwords, level);
910 dwords++;
916 dump_domain(uint32_t *dwords, uint32_t sizedwords, int level, const char *name)
927 script_packet(dwords, sizedwords, rnn, dom);
937 uint64_t value = dwords[i];
939 value |= (uint64_t)dwords[i + 1] << 32;
1126 cp_im_loadi(uint32_t *dwords, uint32_t sizedwords, int level)
1128 uint32_t start = dwords[1] >> 16;
1129 uint32_t size = dwords[1] & 0xffff;
1133 switch (dwords[0]) {
1152 disasm_a2xx(dwords + 2, sizedwords - 2, level + 2, disasm_type);
1156 dump_shader(ext, dwords + 2, (sizedwords - 2) * 4);
1160 cp_wide_reg_write(uint32_t *dwords, uint32_t sizedwords, int level)
1162 uint32_t reg = dwords[0] & 0xffff;
1165 dump_register(reg, dwords[i], level + 1);
1166 reg_set(reg, dwords[i]);
1207 a3xx_get_state_type(uint32_t *dwords, gl_shader_stage *stage,
1210 unsigned state_block_id = (dwords[0] >> 19) & 0x7;
1211 unsigned state_type = dwords[1] & 0x3;
1228 unsigned state_src = (dwords[0] >> 16) & 0x7;
1328 a4xx_get_state_type(uint32_t *dwords, gl_shader_stage *stage,
1331 unsigned state_block_id = (dwords[0] >> 18) & 0xf;
1332 unsigned state_type = dwords[1] & 0x3;
1334 *src = _get_state_src(dwords[0]);
1338 a6xx_get_state_type(uint32_t *dwords, gl_shader_stage *stage,
1341 unsigned state_block_id = (dwords[0] >> 18) & 0xf;
1342 unsigned state_type = (dwords[0] >> 14) & 0x3;
1344 *src = _get_state_src(dwords[0]);
1423 cp_load_state(uint32_t *dwords, uint32_t sizedwords, int level)
1428 uint32_t num_unit = (dwords[0] >> 22) & 0x1ff;
1437 a6xx_get_state_type(dwords, &stage, &state, &src);
1439 a4xx_get_state_type(dwords, &stage, &state, &src);
1441 a3xx_get_state_type(dwords, &stage, &state, &src);
1449 ext_src_addr = dwords[1] & 0xfffffffc;
1450 ext_src_addr |= ((uint64_t)dwords[2]) << 32;
1452 ext_src_addr = dwords[1] & 0xfffffffc;
1462 const unsigned reg = base_reg + (dwords[1] >> 28) * 2;
1466 const unsigned reg = base_reg + (dwords[1] >> 28);
1470 ext_src_addr += 4 * (dwords[1] & 0xffffff);
1478 contents = is_64b() ? dwords + 3 : dwords + 2;
1526 * note: num_unit seems to be # of pairs of dwords??
1653 cp_set_bin(uint32_t *dwords, uint32_t sizedwords, int level)
1655 bin_x1 = dwords[1] & 0xffff;
1656 bin_y1 = dwords[1] >> 16;
1657 bin_x2 = dwords[2] & 0xffff;
1658 bin_y2 = dwords[2] >> 16;
1662 dump_a2xx_tex_const(uint32_t *dwords, uint32_t sizedwords, uint32_t val,
1685 p = (dwords[0] >> 22) << 5;
1686 clamp_x = (dwords[0] >> 10) & 0x3;
1687 clamp_y = (dwords[0] >> 13) & 0x3;
1688 clamp_z = (dwords[0] >> 16) & 0x3;
1693 parse_dword_addr(dwords[1], &gpuaddr, &flags, 0xfff);
1696 w = (dwords[2] & 0x1fff) + 1;
1697 h = ((dwords[2] >> 13) & 0x1fff) + 1;
1702 mag = (dwords[3] >> 19) & 0x3;
1703 min = (dwords[3] >> 21) & 0x3;
1704 swiz = (dwords[3] >> 1) & 0xfff;
1714 parse_dword_addr(dwords[5], &mip_gpuaddr, &mip_flags, 0xfff);
1732 dump_a2xx_shader_const(uint32_t *dwords, uint32_t sizedwords, uint32_t val,
1739 parse_dword_addr(dwords[i++], &gpuaddr, &flags, 0xf);
1744 uint32_t size = dwords[i++];
1747 // TODO maybe dump these as bytes instead of dwords?
1748 size = (size + 3) / 4; // for now convert to dwords
1760 cp_set_const(uint32_t *dwords, uint32_t sizedwords, int level)
1762 uint32_t val = dwords[0] & 0xffff;
1763 switch ((dwords[0] >> 16) & 0xf) {
1765 dump_float((float *)(dwords + 1), sizedwords - 1, level + 1);
1772 dump_a2xx_tex_const(dwords + 1, sizedwords - 1, val, level);
1774 dump_a2xx_shader_const(dwords + 1, sizedwords - 1, val, level);
1785 if (dwords[0] & 0x80000000) {
1786 uint32_t srcreg = dwords[1];
1787 uint32_t dstval = dwords[2];
1803 dump_registers(val, dwords + 1, sizedwords - 1, level + 1);
1812 cp_event_write(uint32_t *dwords, uint32_t sizedwords, int level)
1814 const char *name = rnn_enumname(rnn, "vgt_event_type", dwords[0]);
1873 draw_indx_common(uint32_t *dwords, int level)
1875 uint32_t prim_type = dwords[1] & 0x1f;
1876 uint32_t source_select = (dwords[1] >> 6) & 0x3;
1877 uint32_t num_indices = dwords[2];
1906 cp_draw_indx(uint32_t *dwords, uint32_t sizedwords, int level)
1908 uint32_t num_indices = draw_indx_common(dwords, level);
1914 void *ptr = hostptr(dwords[3]);
1915 printl(2, "%sgpuaddr: %08x\n", levels[level], dwords[3]);
1916 printl(2, "%sidx_size: %d\n", levels[level], dwords[4]);
1919 ((dwords[1] >> 11) & 1) | ((dwords[1] >> 12) & 2);
1925 for (i = 0; i < dwords[4]; i++)
1929 for (i = 0; i < dwords[4] / 2; i++)
1933 for (i = 0; i < dwords[4] / 4; i++)
1937 dump_hex(ptr, dwords[4] / 4, level + 1);
1950 cp_draw_indx_2(uint32_t *dwords, uint32_t sizedwords, int level)
1952 uint32_t num_indices = draw_indx_common(dwords, level);
1954 ((dwords[1] >> 11) & 1) | ((dwords[1] >> 12) & 2);
1955 void *ptr = &dwords[3];
1990 cp_draw_indx_offset(uint32_t *dwords, uint32_t sizedwords, int level)
1992 uint32_t num_indices = dwords[2];
1993 uint32_t prim_type = dwords[0] & 0x1f;
2004 cp_draw_indx_indirect(uint32_t *dwords, uint32_t sizedwords, int level)
2006 uint32_t prim_type = dwords[0] & 0x1f;
2013 addr = (((uint64_t)dwords[2] & 0x1ffff) << 32) | dwords[1];
2015 addr = dwords[1];
2019 addr = (((uint64_t)dwords[5] & 0x1ffff) << 32) | dwords[4];
2021 addr = dwords[3];
2028 cp_draw_indirect(uint32_t *dwords, uint32_t sizedwords, int level)
2030 uint32_t prim_type = dwords[0] & 0x1f;
2036 addr = (((uint64_t)dwords[2] & 0x1ffff) << 32) | dwords[1];
2043 cp_draw_indirect_multi(uint32_t *dwords, uint32_t sizedwords, int level)
2045 uint32_t prim_type = dwords[0] & 0x1f;
2046 uint32_t count = dwords[2];
2058 ((uint64_t)dwords[count_dword + 1] << 32) | dwords[count_dword];
2089 ((uint64_t)dwords[addr_dword + 1] << 32) | dwords[addr_dword];
2090 uint32_t stride = dwords[stride_dword];
2102 cp_run_cl(uint32_t *dwords, uint32_t sizedwords, int level)
2109 cp_nop(uint32_t *dwords, uint32_t sizedwords, int level)
2111 const char *buf = (void *)dwords;
2133 cp_indirect(uint32_t *dwords, uint32_t sizedwords, int level)
2142 ibaddr = dwords[0];
2143 ibaddr |= ((uint64_t)dwords[1]) << 32;
2144 ibsize = dwords[2];
2146 ibaddr = dwords[0];
2147 ibsize = dwords[1];
2179 highlight_gpuaddr(gpuaddr(&dwords[is_64b() ? 3 : 2]));
2193 cp_start_bin(uint32_t *dwords, uint32_t sizedwords, int level)
2200 loopcount = dwords[0];
2201 ibaddr = dwords[1];
2202 ibaddr |= ((uint64_t)dwords[2]) << 32;
2203 ibsize = dwords[3];
2214 highlight_gpuaddr(gpuaddr(&dwords[5]));
2237 cp_wfi(uint32_t *dwords, uint32_t sizedwords, int level)
2243 cp_mem_write(uint32_t *dwords, uint32_t sizedwords, int level)
2249 uint64_t gpuaddr = dwords[0] | (((uint64_t)dwords[1]) << 32);
2251 dump_hex(&dwords[2], sizedwords - 2, level + 1);
2253 if (pkt_is_type4(dwords[2]) || pkt_is_type7(dwords[2]))
2254 dump_commands(&dwords[2], sizedwords - 2, level + 1);
2256 uint32_t gpuaddr = dwords[0];
2258 dump_float((float *)&dwords[1], sizedwords - 1, level + 1);
2263 cp_rmw(uint32_t *dwords, uint32_t sizedwords, int level)
2265 uint32_t val = dwords[0] & 0xffff;
2266 uint32_t and = dwords[1];
2267 uint32_t or = dwords[2];
2277 cp_reg_mem(uint32_t *dwords, uint32_t sizedwords, int level)
2279 uint32_t val = dwords[0] & 0xffff;
2285 uint64_t gpuaddr = dwords[1] | (((uint64_t)dwords[2]) << 32);
2289 uint32_t cnt = (dwords[0] >> 19) & 0x3ff;
2382 cp_set_draw_state(uint32_t *dwords, uint32_t sizedwords, int level)
2388 uint32_t count = dwords[i] & 0xffff;
2389 uint32_t group_id = (dwords[i] >> 24) & 0x1f;
2390 uint32_t enable_mask = (dwords[i] >> 20) & 0xf;
2391 uint32_t flags = (dwords[i] >> 16) & 0xf;
2395 addr = dwords[i + 1];
2396 addr |= ((uint64_t)dwords[i + 2]) << 32;
2399 addr = dwords[i + 1];
2431 cp_set_mode(uint32_t *dwords, uint32_t sizedwords, int level)
2433 draw_mode = dwords[0];
2438 cp_exec_cs(uint32_t *dwords, uint32_t sizedwords, int level)
2445 cp_exec_cs_indirect(uint32_t *dwords, uint32_t sizedwords, int level)
2450 addr = (((uint64_t)dwords[2] & 0x1ffff) << 32) | dwords[1];
2452 addr = dwords[1];
2463 cp_set_marker(uint32_t *dwords, uint32_t sizedwords, int level)
2465 render_mode = rnn_enumname(rnn, "a6xx_marker", dwords[0] & 0xf);
2477 cp_set_render_mode(uint32_t *dwords, uint32_t sizedwords, int level)
2484 /* TODO seems to have two ptrs, 9 dwords total (incl pkt7 hdr)..
2507 render_mode = rnn_enumname(rnn, "render_mode_cmd", dwords[0]);
2512 addr = dwords[1];
2513 addr |= ((uint64_t)dwords[2]) << 32;
2515 mode = dwords[3];
2524 len = dwords[5];
2525 addr = dwords[6];
2526 addr |= ((uint64_t)dwords[7]) << 32;
2544 cp_compute_checkpoint(uint32_t *dwords, uint32_t sizedwords, int level)
2554 addr = dwords[5];
2555 addr |= ((uint64_t)dwords[6]) << 32;
2556 len = dwords[7];
2574 cp_blit(uint32_t *dwords, uint32_t sizedwords, int level)
2576 do_query(rnn_enumname(rnn, "cp_blit_cmd", dwords[0]), 0);
2582 cp_context_reg_bunch(uint32_t *dwords, uint32_t sizedwords, int level)
2594 dump_register(dwords[i + 0], dwords[i + 1], level + 1);
2595 reg_set(dwords[i + 0], dwords[i + 1]);
2602 cp_reg_write(uint32_t *dwords, uint32_t sizedwords, int level)
2604 uint32_t reg = dwords[1] & 0xffff;
2606 dump_register(reg, dwords[2], level + 1);
2607 reg_set(reg, dwords[2]);
2611 cp_set_ctxswitch_ib(uint32_t *dwords, uint32_t sizedwords, int level)
2614 uint32_t size = dwords[2] & 0xffff;
2617 addr = dwords[0] | ((uint64_t)dwords[1] << 32);
2630 cp_skip_ib2_enable_global(uint32_t *dwords, uint32_t sizedwords, int level)
2632 skip_ib2_enable_global = dwords[0];
2636 cp_skip_ib2_enable_local(uint32_t *dwords, uint32_t sizedwords, int level)
2638 skip_ib2_enable_local = dwords[0];
2644 void (*fxn)(uint32_t *dwords, uint32_t sizedwords, int level);
2701 noop_fxn(uint32_t *dwords, uint32_t sizedwords, int level)
2724 dump_commands(uint32_t *dwords, uint32_t sizedwords, int level)
2730 // assert(dwords);
2731 if (!dwords) {
2746 // if ((dwords[0] >> 16) == 0xffff)
2749 if (pkt_is_type0(dwords[0])) {
2751 count = type0_pkt_size(dwords[0]) + 1;
2752 val = type0_pkt_offset(dwords[0]);
2755 (dwords[0] & 0x8000) ? " (same register)" : "", val);
2756 dump_registers(val, dwords + 1, count - 1, level + 2);
2758 dump_hex(dwords, count, level + 1);
2759 } else if (pkt_is_type4(dwords[0])) {
2762 count = type4_pkt_size(dwords[0]) + 1;
2763 val = type4_pkt_offset(dwords[0]);
2767 dump_registers(val, dwords + 1, count - 1, level + 2);
2769 dump_hex(dwords, count, level + 1);
2771 } else if (pkt_is_type1(dwords[0])) {
2774 val = dwords[0] & 0xfff;
2776 dump_registers(val, dwords+1, 1, level+2);
2777 val = (dwords[0] >> 12) & 0xfff;
2779 dump_registers(val, dwords+2, 1, level+2);
2781 dump_hex(dwords, count, level+1);
2782 } else if (pkt_is_type2(dwords[0])) {
2787 dump_hex(dwords, count, level+1);
2789 } else if (pkt_is_type3(dwords[0])) {
2790 count = type3_pkt_size(dwords[0]) + 1;
2791 val = cp_type3_opcode(dwords[0]);
2798 printf("\t%sopcode: %s%s%s (%02x) (%d dwords)%s\n", levels[level],
2800 count, (dwords[0] & 0x1) ? " (predicated)" : "");
2803 dump_domain(dwords + 1, count - 1, level + 2, name);
2804 op->fxn(dwords + 1, count - 1, level + 1);
2806 dump_hex(dwords, count, level + 1);
2807 } else if (pkt_is_type7(dwords[0])) {
2808 count = type7_pkt_size(dwords[0]) + 1;
2809 val = cp_type7_opcode(dwords[0]);
2816 printf("\t%sopcode: %s%s%s (%02x) (%d dwords)\n", levels[level],
2827 dump_domain(dwords + 1, count - 1, level + 2, name);
2829 op->fxn(dwords + 1, count - 1, level + 1);
2831 dump_hex(dwords, count, level + 1);
2832 } else if (pkt_is_type2(dwords[0])) {
2840 if (pkt_is_type7(dwords[0]) || pkt_is_type4(dwords[0]))
2842 printf("bad type! %08x\n", dwords[0]);
2843 dwords++;
2847 printf("bad type! %08x\n", dwords[0]);
2852 dwords += count;