Created
May 19, 2022 21:50
-
-
Save shadeslayer/2a8df10c2b74a4e5001a688dbe0628fa to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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