• Home
  • Raw
  • Download

Lines Matching refs:dctx

542 dd_dump_driver_state(struct dd_context *dctx, FILE *f, unsigned flags)  in dd_dump_driver_state()  argument
544 if (dctx->pipe->dump_debug_state) { in dd_dump_driver_state()
548 dctx->pipe->dump_debug_state(dctx->pipe, f, flags); in dd_dump_driver_state()
873 PRINT_NAMED(ptr, "pipe", record->dctx->pipe); in dd_write_record()
926 dd_report_hang(struct dd_context *dctx) in dd_report_hang() argument
928 struct dd_screen *dscreen = dd_screen(dctx->base.screen); in dd_report_hang()
939 list_for_each_entry(struct dd_draw_record, record, &dctx->records, list) { in dd_report_hang()
974 dd_dump_driver_state(dctx, f, PIPE_DUMP_DEVICE_STATUS_REGISTERS); in dd_report_hang()
986 if (num_later || dctx->record_pending) { in dd_report_hang()
988 dctx->record_pending ? "+1 (pending)" : ""); in dd_report_hang()
998 struct dd_context *dctx = (struct dd_context *)input; in dd_thread_main() local
999 struct dd_screen *dscreen = dd_screen(dctx->base.screen); in dd_thread_main()
1002 mtx_lock(&dctx->mutex); in dd_thread_main()
1009 list_replace(&dctx->records, &records); in dd_thread_main()
1010 list_inithead(&dctx->records); in dd_thread_main()
1011 dctx->num_records = 0; in dd_thread_main()
1013 if (dctx->api_stalled) in dd_thread_main()
1014 cnd_signal(&dctx->cond); in dd_thread_main()
1022 } else if (dctx->record_pending) { in dd_thread_main()
1024 fence = dctx->record_pending->prev_bottom_of_pipe; in dd_thread_main()
1025 fence2 = dctx->record_pending->top_of_pipe; in dd_thread_main()
1026 } else if (dctx->kill_thread) { in dd_thread_main()
1029 cnd_wait(&dctx->cond, &dctx->mutex); in dd_thread_main()
1032 mtx_unlock(&dctx->mutex); in dd_thread_main()
1041 mtx_lock(&dctx->mutex); in dd_thread_main()
1042 list_splice(&records, &dctx->records); in dd_thread_main()
1043 dd_report_hang(dctx); in dd_thread_main()
1045 mtx_unlock(&dctx->mutex); in dd_thread_main()
1054 mtx_lock(&dctx->mutex); in dd_thread_main()
1056 mtx_unlock(&dctx->mutex); in dd_thread_main()
1061 dd_create_record(struct dd_context *dctx) in dd_create_record() argument
1069 record->dctx = dctx; in dd_create_record()
1070 record->draw_call = dctx->num_draw_calls; in dd_create_record()
1079 dd_copy_draw_state(&record->draw_state.base, &dctx->draw_state); in dd_create_record()
1088 struct dd_context *dctx = dd_context(_pipe); in dd_context_flush() local
1089 struct pipe_context *pipe = dctx->pipe; in dd_context_flush()
1095 dd_before_draw(struct dd_context *dctx, struct dd_draw_record *record) in dd_before_draw() argument
1097 struct dd_screen *dscreen = dd_screen(dctx->base.screen); in dd_before_draw()
1098 struct pipe_context *pipe = dctx->pipe; in dd_before_draw()
1104 if (dscreen->flush_always && dctx->num_draw_calls >= dscreen->skip_count) { in dd_before_draw()
1114 mtx_lock(&dctx->mutex); in dd_before_draw()
1115 dctx->record_pending = record; in dd_before_draw()
1116 if (list_empty(&dctx->records)) in dd_before_draw()
1117 cnd_signal(&dctx->cond); in dd_before_draw()
1118 mtx_unlock(&dctx->mutex); in dd_before_draw()
1126 struct dd_context *dctx = record->dctx; in dd_after_draw_async() local
1127 struct dd_screen *dscreen = dd_screen(dctx->base.screen); in dd_after_draw_async()
1129 record->log_page = u_log_new_page(&dctx->log); in dd_after_draw_async()
1136 dscreen->apitrace_dump_call > dctx->draw_state.apitrace_call_number) { in dd_after_draw_async()
1137 dd_thread_join(dctx); in dd_after_draw_async()
1144 dd_after_draw(struct dd_context *dctx, struct dd_draw_record *record) in dd_after_draw() argument
1146 struct dd_screen *dscreen = dd_screen(dctx->base.screen); in dd_after_draw()
1147 struct pipe_context *pipe = dctx->pipe; in dd_after_draw()
1151 if (dscreen->flush_always && dctx->num_draw_calls >= dscreen->skip_count) in dd_after_draw()
1157 assert(record == dctx->record_pending); in dd_after_draw()
1167 mtx_lock(&dctx->mutex); in dd_after_draw()
1168 if (unlikely(dctx->num_records > 10000)) { in dd_after_draw()
1169 dctx->api_stalled = true; in dd_after_draw()
1172 cnd_wait(&dctx->cond, &dctx->mutex); in dd_after_draw()
1173 dctx->api_stalled = false; in dd_after_draw()
1176 if (list_empty(&dctx->records)) in dd_after_draw()
1177 cnd_signal(&dctx->cond); in dd_after_draw()
1179 list_addtail(&record->list, &dctx->records); in dd_after_draw()
1180 dctx->record_pending = NULL; in dd_after_draw()
1181 dctx->num_records++; in dd_after_draw()
1182 mtx_unlock(&dctx->mutex); in dd_after_draw()
1184 ++dctx->num_draw_calls; in dd_after_draw()
1185 if (dscreen->skip_count && dctx->num_draw_calls % 10000 == 0) in dd_after_draw()
1187 dctx->num_draw_calls); in dd_after_draw()
1194 struct dd_context *dctx = dd_context(_pipe); in dd_context_draw_vbo() local
1195 struct pipe_context *pipe = dctx->pipe; in dd_context_draw_vbo()
1196 struct dd_draw_record *record = dd_create_record(dctx); in dd_context_draw_vbo()
1223 dd_before_draw(dctx, record); in dd_context_draw_vbo()
1225 dd_after_draw(dctx, record); in dd_context_draw_vbo()
1232 struct dd_context *dctx = dd_context(_pipe); in dd_context_launch_grid() local
1233 struct pipe_context *pipe = dctx->pipe; in dd_context_launch_grid()
1234 struct dd_draw_record *record = dd_create_record(dctx); in dd_context_launch_grid()
1241 dd_before_draw(dctx, record); in dd_context_launch_grid()
1243 dd_after_draw(dctx, record); in dd_context_launch_grid()
1253 struct dd_context *dctx = dd_context(_pipe); in dd_context_resource_copy_region() local
1254 struct pipe_context *pipe = dctx->pipe; in dd_context_resource_copy_region()
1255 struct dd_draw_record *record = dd_create_record(dctx); in dd_context_resource_copy_region()
1269 dd_before_draw(dctx, record); in dd_context_resource_copy_region()
1273 dd_after_draw(dctx, record); in dd_context_resource_copy_region()
1279 struct dd_context *dctx = dd_context(_pipe); in dd_context_blit() local
1280 struct pipe_context *pipe = dctx->pipe; in dd_context_blit()
1281 struct dd_draw_record *record = dd_create_record(dctx); in dd_context_blit()
1290 dd_before_draw(dctx, record); in dd_context_blit()
1292 dd_after_draw(dctx, record); in dd_context_blit()
1304 struct dd_context *dctx = dd_context(_pipe); in dd_context_generate_mipmap() local
1305 struct pipe_context *pipe = dctx->pipe; in dd_context_generate_mipmap()
1306 struct dd_draw_record *record = dd_create_record(dctx); in dd_context_generate_mipmap()
1318 dd_before_draw(dctx, record); in dd_context_generate_mipmap()
1321 dd_after_draw(dctx, record); in dd_context_generate_mipmap()
1334 struct dd_context *dctx = dd_context(_pipe); in dd_context_get_query_result_resource() local
1336 struct pipe_context *pipe = dctx->pipe; in dd_context_get_query_result_resource()
1337 struct dd_draw_record *record = dd_create_record(dctx); in dd_context_get_query_result_resource()
1352 dd_before_draw(dctx, record); in dd_context_get_query_result_resource()
1355 dd_after_draw(dctx, record); in dd_context_get_query_result_resource()
1362 struct dd_context *dctx = dd_context(_pipe); in dd_context_flush_resource() local
1363 struct pipe_context *pipe = dctx->pipe; in dd_context_flush_resource()
1364 struct dd_draw_record *record = dd_create_record(dctx); in dd_context_flush_resource()
1370 dd_before_draw(dctx, record); in dd_context_flush_resource()
1372 dd_after_draw(dctx, record); in dd_context_flush_resource()
1380 struct dd_context *dctx = dd_context(_pipe); in dd_context_clear() local
1381 struct pipe_context *pipe = dctx->pipe; in dd_context_clear()
1382 struct dd_draw_record *record = dd_create_record(dctx); in dd_context_clear()
1390 dd_before_draw(dctx, record); in dd_context_clear()
1392 dd_after_draw(dctx, record); in dd_context_clear()
1403 struct dd_context *dctx = dd_context(_pipe); in dd_context_clear_render_target() local
1404 struct pipe_context *pipe = dctx->pipe; in dd_context_clear_render_target()
1405 struct dd_draw_record *record = dd_create_record(dctx); in dd_context_clear_render_target()
1409 dd_before_draw(dctx, record); in dd_context_clear_render_target()
1412 dd_after_draw(dctx, record); in dd_context_clear_render_target()
1422 struct dd_context *dctx = dd_context(_pipe); in dd_context_clear_depth_stencil() local
1423 struct pipe_context *pipe = dctx->pipe; in dd_context_clear_depth_stencil()
1424 struct dd_draw_record *record = dd_create_record(dctx); in dd_context_clear_depth_stencil()
1428 dd_before_draw(dctx, record); in dd_context_clear_depth_stencil()
1432 dd_after_draw(dctx, record); in dd_context_clear_depth_stencil()
1440 struct dd_context *dctx = dd_context(_pipe); in dd_context_clear_buffer() local
1441 struct pipe_context *pipe = dctx->pipe; in dd_context_clear_buffer()
1442 struct dd_draw_record *record = dd_create_record(dctx); in dd_context_clear_buffer()
1452 dd_before_draw(dctx, record); in dd_context_clear_buffer()
1454 dd_after_draw(dctx, record); in dd_context_clear_buffer()
1464 struct dd_context *dctx = dd_context(_pipe); in dd_context_clear_texture() local
1465 struct pipe_context *pipe = dctx->pipe; in dd_context_clear_texture()
1466 struct dd_draw_record *record = dd_create_record(dctx); in dd_context_clear_texture()
1470 dd_before_draw(dctx, record); in dd_context_clear_texture()
1472 dd_after_draw(dctx, record); in dd_context_clear_texture()
1485 struct dd_context *dctx = dd_context(_pipe); in dd_context_transfer_map() local
1486 struct pipe_context *pipe = dctx->pipe; in dd_context_transfer_map()
1488 dd_screen(dctx->base.screen)->transfers ? dd_create_record(dctx) : NULL; in dd_context_transfer_map()
1493 dd_before_draw(dctx, record); in dd_context_transfer_map()
1508 dd_after_draw(dctx, record); in dd_context_transfer_map()
1518 struct dd_context *dctx = dd_context(_pipe); in dd_context_transfer_flush_region() local
1519 struct pipe_context *pipe = dctx->pipe; in dd_context_transfer_flush_region()
1521 dd_screen(dctx->base.screen)->transfers ? dd_create_record(dctx) : NULL; in dd_context_transfer_flush_region()
1533 dd_before_draw(dctx, record); in dd_context_transfer_flush_region()
1537 dd_after_draw(dctx, record); in dd_context_transfer_flush_region()
1544 struct dd_context *dctx = dd_context(_pipe); in dd_context_transfer_unmap() local
1545 struct pipe_context *pipe = dctx->pipe; in dd_context_transfer_unmap()
1547 dd_screen(dctx->base.screen)->transfers ? dd_create_record(dctx) : NULL; in dd_context_transfer_unmap()
1558 dd_before_draw(dctx, record); in dd_context_transfer_unmap()
1562 dd_after_draw(dctx, record); in dd_context_transfer_unmap()
1571 struct dd_context *dctx = dd_context(_pipe); in dd_context_buffer_subdata() local
1572 struct pipe_context *pipe = dctx->pipe; in dd_context_buffer_subdata()
1574 dd_screen(dctx->base.screen)->transfers ? dd_create_record(dctx) : NULL; in dd_context_buffer_subdata()
1585 dd_before_draw(dctx, record); in dd_context_buffer_subdata()
1589 dd_after_draw(dctx, record); in dd_context_buffer_subdata()
1600 struct dd_context *dctx = dd_context(_pipe); in dd_context_texture_subdata() local
1601 struct pipe_context *pipe = dctx->pipe; in dd_context_texture_subdata()
1603 dd_screen(dctx->base.screen)->transfers ? dd_create_record(dctx) : NULL; in dd_context_texture_subdata()
1616 dd_before_draw(dctx, record); in dd_context_texture_subdata()
1621 dd_after_draw(dctx, record); in dd_context_texture_subdata()
1625 dd_init_draw_functions(struct dd_context *dctx) in dd_init_draw_functions() argument