• Home
  • Raw
  • Download

Lines Matching refs:track

1307 	struct r100_cs_track *track;  in r100_packet3_load_vbpntr()  local
1313 track = (struct r100_cs_track *)p->track; in r100_packet3_load_vbpntr()
1321 track->num_arrays = c; in r100_packet3_load_vbpntr()
1333 track->arrays[i + 0].esize = idx_value >> 8; in r100_packet3_load_vbpntr()
1334 track->arrays[i + 0].robj = reloc->robj; in r100_packet3_load_vbpntr()
1335 track->arrays[i + 0].esize &= 0x7F; in r100_packet3_load_vbpntr()
1344 track->arrays[i + 1].robj = reloc->robj; in r100_packet3_load_vbpntr()
1345 track->arrays[i + 1].esize = idx_value >> 24; in r100_packet3_load_vbpntr()
1346 track->arrays[i + 1].esize &= 0x7F; in r100_packet3_load_vbpntr()
1358 track->arrays[i + 0].robj = reloc->robj; in r100_packet3_load_vbpntr()
1359 track->arrays[i + 0].esize = idx_value >> 8; in r100_packet3_load_vbpntr()
1360 track->arrays[i + 0].esize &= 0x7F; in r100_packet3_load_vbpntr()
1556 struct r100_cs_track *track; in r100_packet0_check() local
1565 track = (struct r100_cs_track *)p->track; in r100_packet0_check()
1595 track->zb.robj = reloc->robj; in r100_packet0_check()
1596 track->zb.offset = idx_value; in r100_packet0_check()
1597 track->zb_dirty = true; in r100_packet0_check()
1608 track->cb[0].robj = reloc->robj; in r100_packet0_check()
1609 track->cb[0].offset = idx_value; in r100_packet0_check()
1610 track->cb_dirty = true; in r100_packet0_check()
1635 track->textures[i].robj = reloc->robj; in r100_packet0_check()
1636 track->tex_dirty = true; in r100_packet0_check()
1651 track->textures[0].cube_info[i].offset = idx_value; in r100_packet0_check()
1653 track->textures[0].cube_info[i].robj = reloc->robj; in r100_packet0_check()
1654 track->tex_dirty = true; in r100_packet0_check()
1669 track->textures[1].cube_info[i].offset = idx_value; in r100_packet0_check()
1671 track->textures[1].cube_info[i].robj = reloc->robj; in r100_packet0_check()
1672 track->tex_dirty = true; in r100_packet0_check()
1687 track->textures[2].cube_info[i].offset = idx_value; in r100_packet0_check()
1689 track->textures[2].cube_info[i].robj = reloc->robj; in r100_packet0_check()
1690 track->tex_dirty = true; in r100_packet0_check()
1693 track->maxy = ((idx_value >> 16) & 0x7FF); in r100_packet0_check()
1694 track->cb_dirty = true; in r100_packet0_check()
1695 track->zb_dirty = true; in r100_packet0_check()
1717 track->cb[0].pitch = idx_value & RADEON_COLORPITCH_MASK; in r100_packet0_check()
1718 track->cb_dirty = true; in r100_packet0_check()
1721 track->zb.pitch = idx_value & RADEON_DEPTHPITCH_MASK; in r100_packet0_check()
1722 track->zb_dirty = true; in r100_packet0_check()
1731 track->cb[0].cpp = 1; in r100_packet0_check()
1736 track->cb[0].cpp = 2; in r100_packet0_check()
1739 track->cb[0].cpp = 4; in r100_packet0_check()
1746 track->z_enabled = !!(idx_value & RADEON_Z_ENABLE); in r100_packet0_check()
1747 track->cb_dirty = true; in r100_packet0_check()
1748 track->zb_dirty = true; in r100_packet0_check()
1753 track->zb.cpp = 2; in r100_packet0_check()
1761 track->zb.cpp = 4; in r100_packet0_check()
1766 track->zb_dirty = true; in r100_packet0_check()
1781 for (i = 0; i < track->num_texture; i++) in r100_packet0_check()
1782 track->textures[i].enabled = !!(temp & (1 << i)); in r100_packet0_check()
1783 track->tex_dirty = true; in r100_packet0_check()
1787 track->vap_vf_cntl = idx_value; in r100_packet0_check()
1790 track->vtx_size = r100_get_vtx_size(idx_value); in r100_packet0_check()
1796 track->textures[i].width = (idx_value & RADEON_TEX_USIZE_MASK) + 1; in r100_packet0_check()
1797 track->textures[i].height = ((idx_value & RADEON_TEX_VSIZE_MASK) >> RADEON_TEX_VSIZE_SHIFT) + 1; in r100_packet0_check()
1798 track->tex_dirty = true; in r100_packet0_check()
1804 track->textures[i].pitch = idx_value + 32; in r100_packet0_check()
1805 track->tex_dirty = true; in r100_packet0_check()
1811 track->textures[i].num_levels = ((idx_value & RADEON_MAX_MIP_LEVEL_MASK) in r100_packet0_check()
1815 track->textures[i].roundup_w = false; in r100_packet0_check()
1818 track->textures[i].roundup_h = false; in r100_packet0_check()
1819 track->tex_dirty = true; in r100_packet0_check()
1826 track->textures[i].use_pitch = true; in r100_packet0_check()
1828 track->textures[i].use_pitch = false; in r100_packet0_check()
1829track->textures[i].width = 1 << ((idx_value & RADEON_TXFORMAT_WIDTH_MASK) >> RADEON_TXFORMAT_WIDTH… in r100_packet0_check()
1830track->textures[i].height = 1 << ((idx_value & RADEON_TXFORMAT_HEIGHT_MASK) >> RADEON_TXFORMAT_HEI… in r100_packet0_check()
1833 track->textures[i].tex_coord_type = 2; in r100_packet0_check()
1838 track->textures[i].cpp = 1; in r100_packet0_check()
1839 track->textures[i].compress_format = R100_TRACK_COMP_NONE; in r100_packet0_check()
1850 track->textures[i].cpp = 2; in r100_packet0_check()
1851 track->textures[i].compress_format = R100_TRACK_COMP_NONE; in r100_packet0_check()
1857 track->textures[i].cpp = 4; in r100_packet0_check()
1858 track->textures[i].compress_format = R100_TRACK_COMP_NONE; in r100_packet0_check()
1861 track->textures[i].cpp = 1; in r100_packet0_check()
1862 track->textures[i].compress_format = R100_TRACK_COMP_DXT1; in r100_packet0_check()
1866 track->textures[i].cpp = 1; in r100_packet0_check()
1867 track->textures[i].compress_format = R100_TRACK_COMP_DXT35; in r100_packet0_check()
1870 track->textures[i].cube_info[4].width = 1 << ((idx_value >> 16) & 0xf); in r100_packet0_check()
1871 track->textures[i].cube_info[4].height = 1 << ((idx_value >> 20) & 0xf); in r100_packet0_check()
1872 track->tex_dirty = true; in r100_packet0_check()
1880 track->textures[i].cube_info[face].width = 1 << ((tmp >> (face * 8)) & 0xf); in r100_packet0_check()
1881 track->textures[i].cube_info[face].height = 1 << ((tmp >> ((face * 8) + 4)) & 0xf); in r100_packet0_check()
1883 track->tex_dirty = true; in r100_packet0_check()
1914 struct r100_cs_track *track; in r100_packet3_check() local
1921 track = (struct r100_cs_track *)p->track; in r100_packet3_check()
1950 track->num_arrays = 1; in r100_packet3_check()
1951 track->vtx_size = r100_get_vtx_size(radeon_get_ib_value(p, idx + 2)); in r100_packet3_check()
1953 track->arrays[0].robj = reloc->robj; in r100_packet3_check()
1954 track->arrays[0].esize = track->vtx_size; in r100_packet3_check()
1956 track->max_indx = radeon_get_ib_value(p, idx+1); in r100_packet3_check()
1958 track->vap_vf_cntl = radeon_get_ib_value(p, idx+3); in r100_packet3_check()
1959 track->immd_dwords = pkt->count - 1; in r100_packet3_check()
1960 r = r100_cs_track_check(p->rdev, track); in r100_packet3_check()
1969 track->vtx_size = r100_get_vtx_size(radeon_get_ib_value(p, idx + 0)); in r100_packet3_check()
1970 track->vap_vf_cntl = radeon_get_ib_value(p, idx + 1); in r100_packet3_check()
1971 track->immd_dwords = pkt->count - 1; in r100_packet3_check()
1972 r = r100_cs_track_check(p->rdev, track); in r100_packet3_check()
1982 track->vap_vf_cntl = radeon_get_ib_value(p, idx); in r100_packet3_check()
1983 track->immd_dwords = pkt->count; in r100_packet3_check()
1984 r = r100_cs_track_check(p->rdev, track); in r100_packet3_check()
1990 track->vap_vf_cntl = radeon_get_ib_value(p, idx); in r100_packet3_check()
1991 r = r100_cs_track_check(p->rdev, track); in r100_packet3_check()
1997 track->vap_vf_cntl = radeon_get_ib_value(p, idx); in r100_packet3_check()
1998 r = r100_cs_track_check(p->rdev, track); in r100_packet3_check()
2004 track->vap_vf_cntl = radeon_get_ib_value(p, idx + 1); in r100_packet3_check()
2005 r = r100_cs_track_check(p->rdev, track); in r100_packet3_check()
2011 track->vap_vf_cntl = radeon_get_ib_value(p, idx + 1); in r100_packet3_check()
2012 r = r100_cs_track_check(p->rdev, track); in r100_packet3_check()
2034 struct r100_cs_track *track; in r100_cs_parse() local
2037 track = kzalloc(sizeof(*track), GFP_KERNEL); in r100_cs_parse()
2038 if (!track) in r100_cs_parse()
2040 r100_cs_track_clear(p->rdev, track); in r100_cs_parse()
2041 p->track = track; in r100_cs_parse()
2125 struct r100_cs_track *track, unsigned idx) in r100_cs_track_cube() argument
2130 unsigned compress_format = track->textures[idx].compress_format; in r100_cs_track_cube()
2133 cube_robj = track->textures[idx].cube_info[face].robj; in r100_cs_track_cube()
2134 w = track->textures[idx].cube_info[face].width; in r100_cs_track_cube()
2135 h = track->textures[idx].cube_info[face].height; in r100_cs_track_cube()
2141 size *= track->textures[idx].cpp; in r100_cs_track_cube()
2143 size += track->textures[idx].cube_info[face].offset; in r100_cs_track_cube()
2148 r100_cs_track_texture_print(&track->textures[idx]); in r100_cs_track_cube()
2156 struct r100_cs_track *track) in r100_cs_track_texture_check() argument
2163 for (u = 0; u < track->num_texture; u++) { in r100_cs_track_texture_check()
2164 if (!track->textures[u].enabled) in r100_cs_track_texture_check()
2166 if (track->textures[u].lookup_disable) in r100_cs_track_texture_check()
2168 robj = track->textures[u].robj; in r100_cs_track_texture_check()
2174 for (i = 0; i <= track->textures[u].num_levels; i++) { in r100_cs_track_texture_check()
2175 if (track->textures[u].use_pitch) { in r100_cs_track_texture_check()
2177 w = (track->textures[u].pitch / track->textures[u].cpp) / (1 << i); in r100_cs_track_texture_check()
2179 w = track->textures[u].pitch / (1 << i); in r100_cs_track_texture_check()
2181 w = track->textures[u].width; in r100_cs_track_texture_check()
2183 w |= track->textures[u].width_11; in r100_cs_track_texture_check()
2185 if (track->textures[u].roundup_w) in r100_cs_track_texture_check()
2188 h = track->textures[u].height; in r100_cs_track_texture_check()
2190 h |= track->textures[u].height_11; in r100_cs_track_texture_check()
2192 if (track->textures[u].roundup_h) in r100_cs_track_texture_check()
2194 if (track->textures[u].tex_coord_type == 1) { in r100_cs_track_texture_check()
2195 d = (1 << track->textures[u].txdepth) / (1 << i); in r100_cs_track_texture_check()
2201 if (track->textures[u].compress_format) { in r100_cs_track_texture_check()
2203 size += r100_track_compress_size(track->textures[u].compress_format, w, h) * d; in r100_cs_track_texture_check()
2208 size *= track->textures[u].cpp; in r100_cs_track_texture_check()
2210 switch (track->textures[u].tex_coord_type) { in r100_cs_track_texture_check()
2215 if (track->separate_cube) { in r100_cs_track_texture_check()
2216 ret = r100_cs_track_cube(rdev, track, u); in r100_cs_track_texture_check()
2224 "%u\n", track->textures[u].tex_coord_type, u); in r100_cs_track_texture_check()
2230 r100_cs_track_texture_print(&track->textures[u]); in r100_cs_track_texture_check()
2237 int r100_cs_track_check(struct radeon_device *rdev, struct r100_cs_track *track) in r100_cs_track_check() argument
2243 unsigned num_cb = track->cb_dirty ? track->num_cb : 0; in r100_cs_track_check()
2245 if (num_cb && !track->zb_cb_clear && !track->color_channel_mask && in r100_cs_track_check()
2246 !track->blend_read_enable) in r100_cs_track_check()
2250 if (track->cb[i].robj == NULL) { in r100_cs_track_check()
2254 size = track->cb[i].pitch * track->cb[i].cpp * track->maxy; in r100_cs_track_check()
2255 size += track->cb[i].offset; in r100_cs_track_check()
2256 if (size > radeon_bo_size(track->cb[i].robj)) { in r100_cs_track_check()
2259 radeon_bo_size(track->cb[i].robj)); in r100_cs_track_check()
2261 i, track->cb[i].pitch, track->cb[i].cpp, in r100_cs_track_check()
2262 track->cb[i].offset, track->maxy); in r100_cs_track_check()
2266 track->cb_dirty = false; in r100_cs_track_check()
2268 if (track->zb_dirty && track->z_enabled) { in r100_cs_track_check()
2269 if (track->zb.robj == NULL) { in r100_cs_track_check()
2273 size = track->zb.pitch * track->zb.cpp * track->maxy; in r100_cs_track_check()
2274 size += track->zb.offset; in r100_cs_track_check()
2275 if (size > radeon_bo_size(track->zb.robj)) { in r100_cs_track_check()
2278 radeon_bo_size(track->zb.robj)); in r100_cs_track_check()
2280 track->zb.pitch, track->zb.cpp, in r100_cs_track_check()
2281 track->zb.offset, track->maxy); in r100_cs_track_check()
2285 track->zb_dirty = false; in r100_cs_track_check()
2287 if (track->aa_dirty && track->aaresolve) { in r100_cs_track_check()
2288 if (track->aa.robj == NULL) { in r100_cs_track_check()
2293 size = track->aa.pitch * track->cb[0].cpp * track->maxy; in r100_cs_track_check()
2294 size += track->aa.offset; in r100_cs_track_check()
2295 if (size > radeon_bo_size(track->aa.robj)) { in r100_cs_track_check()
2298 radeon_bo_size(track->aa.robj)); in r100_cs_track_check()
2300 i, track->aa.pitch, track->cb[0].cpp, in r100_cs_track_check()
2301 track->aa.offset, track->maxy); in r100_cs_track_check()
2305 track->aa_dirty = false; in r100_cs_track_check()
2307 prim_walk = (track->vap_vf_cntl >> 4) & 0x3; in r100_cs_track_check()
2308 if (track->vap_vf_cntl & (1 << 14)) { in r100_cs_track_check()
2309 nverts = track->vap_alt_nverts; in r100_cs_track_check()
2311 nverts = (track->vap_vf_cntl >> 16) & 0xFFFF; in r100_cs_track_check()
2315 for (i = 0; i < track->num_arrays; i++) { in r100_cs_track_check()
2316 size = track->arrays[i].esize * track->max_indx * 4; in r100_cs_track_check()
2317 if (track->arrays[i].robj == NULL) { in r100_cs_track_check()
2322 if (size > radeon_bo_size(track->arrays[i].robj)) { in r100_cs_track_check()
2326 radeon_bo_size(track->arrays[i].robj) in r100_cs_track_check()
2328 DRM_ERROR("Max indices %u\n", track->max_indx); in r100_cs_track_check()
2334 for (i = 0; i < track->num_arrays; i++) { in r100_cs_track_check()
2335 size = track->arrays[i].esize * (nverts - 1) * 4; in r100_cs_track_check()
2336 if (track->arrays[i].robj == NULL) { in r100_cs_track_check()
2341 if (size > radeon_bo_size(track->arrays[i].robj)) { in r100_cs_track_check()
2345 radeon_bo_size(track->arrays[i].robj) in r100_cs_track_check()
2352 size = track->vtx_size * nverts; in r100_cs_track_check()
2353 if (size != track->immd_dwords) { in r100_cs_track_check()
2355 track->immd_dwords, size); in r100_cs_track_check()
2357 nverts, track->vtx_size); in r100_cs_track_check()
2367 if (track->tex_dirty) { in r100_cs_track_check()
2368 track->tex_dirty = false; in r100_cs_track_check()
2369 return r100_cs_track_texture_check(rdev, track); in r100_cs_track_check()
2374 void r100_cs_track_clear(struct radeon_device *rdev, struct r100_cs_track *track) in r100_cs_track_clear() argument
2378 track->cb_dirty = true; in r100_cs_track_clear()
2379 track->zb_dirty = true; in r100_cs_track_clear()
2380 track->tex_dirty = true; in r100_cs_track_clear()
2381 track->aa_dirty = true; in r100_cs_track_clear()
2384 track->num_cb = 1; in r100_cs_track_clear()
2386 track->num_texture = 3; in r100_cs_track_clear()
2388 track->num_texture = 6; in r100_cs_track_clear()
2389 track->maxy = 2048; in r100_cs_track_clear()
2390 track->separate_cube = true; in r100_cs_track_clear()
2392 track->num_cb = 4; in r100_cs_track_clear()
2393 track->num_texture = 16; in r100_cs_track_clear()
2394 track->maxy = 4096; in r100_cs_track_clear()
2395 track->separate_cube = false; in r100_cs_track_clear()
2396 track->aaresolve = false; in r100_cs_track_clear()
2397 track->aa.robj = NULL; in r100_cs_track_clear()
2400 for (i = 0; i < track->num_cb; i++) { in r100_cs_track_clear()
2401 track->cb[i].robj = NULL; in r100_cs_track_clear()
2402 track->cb[i].pitch = 8192; in r100_cs_track_clear()
2403 track->cb[i].cpp = 16; in r100_cs_track_clear()
2404 track->cb[i].offset = 0; in r100_cs_track_clear()
2406 track->z_enabled = true; in r100_cs_track_clear()
2407 track->zb.robj = NULL; in r100_cs_track_clear()
2408 track->zb.pitch = 8192; in r100_cs_track_clear()
2409 track->zb.cpp = 4; in r100_cs_track_clear()
2410 track->zb.offset = 0; in r100_cs_track_clear()
2411 track->vtx_size = 0x7F; in r100_cs_track_clear()
2412 track->immd_dwords = 0xFFFFFFFFUL; in r100_cs_track_clear()
2413 track->num_arrays = 11; in r100_cs_track_clear()
2414 track->max_indx = 0x00FFFFFFUL; in r100_cs_track_clear()
2415 for (i = 0; i < track->num_arrays; i++) { in r100_cs_track_clear()
2416 track->arrays[i].robj = NULL; in r100_cs_track_clear()
2417 track->arrays[i].esize = 0x7F; in r100_cs_track_clear()
2419 for (i = 0; i < track->num_texture; i++) { in r100_cs_track_clear()
2420 track->textures[i].compress_format = R100_TRACK_COMP_NONE; in r100_cs_track_clear()
2421 track->textures[i].pitch = 16536; in r100_cs_track_clear()
2422 track->textures[i].width = 16536; in r100_cs_track_clear()
2423 track->textures[i].height = 16536; in r100_cs_track_clear()
2424 track->textures[i].width_11 = 1 << 11; in r100_cs_track_clear()
2425 track->textures[i].height_11 = 1 << 11; in r100_cs_track_clear()
2426 track->textures[i].num_levels = 12; in r100_cs_track_clear()
2428 track->textures[i].tex_coord_type = 0; in r100_cs_track_clear()
2429 track->textures[i].txdepth = 0; in r100_cs_track_clear()
2431 track->textures[i].txdepth = 16; in r100_cs_track_clear()
2432 track->textures[i].tex_coord_type = 1; in r100_cs_track_clear()
2434 track->textures[i].cpp = 64; in r100_cs_track_clear()
2435 track->textures[i].robj = NULL; in r100_cs_track_clear()
2437 track->textures[i].enabled = false; in r100_cs_track_clear()
2438 track->textures[i].lookup_disable = false; in r100_cs_track_clear()
2439 track->textures[i].roundup_w = true; in r100_cs_track_clear()
2440 track->textures[i].roundup_h = true; in r100_cs_track_clear()
2441 if (track->separate_cube) in r100_cs_track_clear()
2443 track->textures[i].cube_info[face].robj = NULL; in r100_cs_track_clear()
2444 track->textures[i].cube_info[face].width = 16536; in r100_cs_track_clear()
2445 track->textures[i].cube_info[face].height = 16536; in r100_cs_track_clear()
2446 track->textures[i].cube_info[face].offset = 0; in r100_cs_track_clear()