Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save shadeslayer/2a8df10c2b74a4e5001a688dbe0628fa to your computer and use it in GitHub Desktop.
Save shadeslayer/2a8df10c2b74a4e5001a688dbe0628fa to your computer and use it in GitHub Desktop.
Thread 1 "glcts" hit Breakpoint 1, st_GetTexSubImage (ctx=0x7fffec536010, xoffset=0, yoffset=0, zoffset=0, width=400, height=300, depth=1, format=36244, type=5125, pixels=0x7fffe444a010, texImage=0x555559517fb0) at ../src/mesa/state_tracker/st_cb_texture.c:2406
2406 {
(gdb) b iris_transfer_map
Breakpoint 2 at 0x7ffff66e5da1: file ../src/gallium/drivers/iris/iris_resource.c, line 2303.
(gdb) c
Continuing.
Thread 1 "glcts" hit Breakpoint 2, iris_transfer_map (ctx=0x5555593e5390, resource=0x555559518030, level=0, usage=PIPE_MAP_READ, box=0x7fffffffc640, ptransfer=0x7fffffffc768) at ../src/gallium/drivers/iris/iris_resource.c:2303
2303 struct iris_context *ice = (struct iris_context *)ctx;
(gdb) n
2304 struct iris_resource *res = (struct iris_resource *)resource;
(gdb)
2305 struct isl_surf *surf = &res->surf;
(gdb)
2307 if (usage & PIPE_MAP_DISCARD_WHOLE_RESOURCE) {
(gdb)
2317 if (!(usage & PIPE_MAP_UNSYNCHRONIZED) &&
(gdb) n
2318 can_promote_to_async(res, box, usage)) {
(gdb)
2317 if (!(usage & PIPE_MAP_UNSYNCHRONIZED) &&
(gdb)
2328 if (usage & (PIPE_MAP_PERSISTENT | PIPE_MAP_COHERENT))
(gdb) n
2335 if ((usage & PIPE_MAP_DIRECTLY) &&
(gdb)
2339 bool map_would_stall = false;
(gdb)
2341 if (!(usage & PIPE_MAP_UNSYNCHRONIZED)) {
(gdb)
2343 resource_is_busy(ice, res) ||
(gdb)
2342 map_would_stall =
(gdb)
2346 if (map_would_stall && (usage & PIPE_MAP_DONTBLOCK) &&
(gdb)
2353 if (usage & TC_TRANSFER_MAP_THREADED_UNSYNC)
(gdb) n
2356 map = slab_zalloc(&ice->transfer_pool);
(gdb)
2358 if (!map)
(gdb)
2361 struct pipe_transfer *xfer = &map->base.b;
(gdb)
2363 map->dbg = &ice->dbg;
(gdb)
2365 pipe_resource_reference(&xfer->resource, resource);
(gdb)
2366 xfer->level = level;
(gdb)
2367 xfer->usage = usage;
(gdb)
2368 xfer->box = *box;
(gdb)
2369 *ptransfer = xfer;
(gdb)
2373 box->x + box->width);
(gdb)
2372 util_ranges_intersect(&res->valid_buffer_range, box->x,
(gdb)
2371 map->dest_had_defined_contents =
(gdb)
2375 if (usage & PIPE_MAP_WRITE)
(gdb)
2378 if (iris_bo_mmap_mode(res->bo) != IRIS_MMAP_NONE) {
(gdb)
2387 if (!(usage & PIPE_MAP_DISCARD_RANGE) &&
(gdb)
2388 !iris_has_invalid_primary(res, level, 1, box->z, box->depth)) {
(gdb) p usage
$1 = PIPE_MAP_READ
(gdb) s
iris_has_invalid_primary (res=0x555559518030, start_level=0, num_levels=1, start_layer=0, num_layers=1) at ../src/gallium/drivers/iris/iris_resolve.c:703
703 if (res->aux.usage == ISL_AUX_USAGE_NONE)
(gdb) n
707 num_levels = miptree_level_range_length(res, start_level, num_levels);
(gdb) n
709 for (uint32_t l = 0; l < num_levels; l++) {
(gdb)
710 const uint32_t level = start_level + l;
(gdb)
712 miptree_layer_range_length(res, level, start_layer, num_layers);
(gdb)
713 for (unsigned a = 0; a < level_layers; a++) {
(gdb) n
715 iris_resource_get_aux_state(res, level, start_layer + a);
(gdb)
716 if (!isl_aux_state_has_valid_primary(aux_state))
(gdb)
713 for (unsigned a = 0; a < level_layers; a++) {
(gdb)
709 for (uint32_t l = 0; l < num_levels; l++) {
(gdb)
721 return false;
(gdb)
722 }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment