Home | History | Annotate | Download | only in ddebug

Lines Matching defs:dctx

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