Home | History | Annotate | Download | only in src

Lines Matching defs:obj_context

965     object_context_p obj_context = NULL;
1001 obj_context = CONTEXT(obj_surface->context_id);
1002 if (obj_context != NULL) {
1003 for (j = 0; j < obj_context->num_render_targets; j++) {
1004 if (obj_context->render_targets[j] == obj_surface->surface_id) {
1005 obj_context->render_targets[j] = VA_INVALID_SURFACE;
1103 object_context_p obj_context = CONTEXT(contextID);
1104 CHECK_ALLOCATION(obj_context);
1108 MEMSET_OBJECT(obj_context, struct object_context_s);
1110 obj_context->driver_data = driver_data;
1111 obj_context->current_render_target = NULL;
1112 obj_context->ec_target = NULL;
1113 obj_context->ec_candidate = NULL;
1114 obj_context->is_oold = driver_data->is_oold;
1115 obj_context->context_id = contextID;
1116 obj_context->config_id = config_id;
1117 obj_context->picture_width = picture_width;
1118 obj_context->picture_height = picture_height;
1119 obj_context->num_render_targets = num_render_targets;
1120 obj_context->msvdx_scaling = 0;
1122 obj_context->msvdx_frame_end = 0;
1126 obj_context->modular_drm = 1;
1131 obj_context->scaling_width = 0;
1132 obj_context->scaling_height = 0;
1135 obj_context->render_targets = (VASurfaceID *) calloc(1, num_render_targets * sizeof(VASurfaceID));
1136 if (obj_context->render_targets == NULL) {
1140 object_heap_free(&driver_data->context_heap, (object_base_p) obj_context);
1147 obj_context->num_buffers = 10;
1148 obj_context->buffer_list = (object_buffer_p *) calloc(1, sizeof(object_buffer_p) * obj_context->num_buffers);
1149 if (obj_context->buffer_list == NULL) {
1153 if (NULL != obj_context->render_targets)
1154 free(obj_context->render_targets);
1155 object_heap_free(&driver_data->context_heap, (object_base_p) obj_context);
1160 memset(obj_context->buffers_unused, 0, sizeof(obj_context->buffers_unused));
1161 memset(obj_context->buffers_unused_count, 0, sizeof(obj_context->buffers_unused_count));
1162 memset(obj_context->buffers_unused_tail, 0, sizeof(obj_context->buffers_unused_tail));
1163 memset(obj_context->buffers_active, 0, sizeof(obj_context->buffers_active));
1204 obj_context->render_targets[i] = render_targets[i];
1209 obj_context->msvdx_tile = psb__tile_stride_log2_512(obj_surface->width);
1214 obj_context->msvdx_tile = psb__tile_stride_log2_256(obj_context->picture_width);
1216 obj_context->msvdx_tile = psb__tile_stride_log2_256(obj_surface->width);
1230 obj_context->render_targets[i] = VA_INVALID_SURFACE;
1234 obj_context->va_flags = flag;
1235 obj_context->format_vtable = obj_config->format_vtable;
1236 obj_context->format_data = NULL;
1239 vaStatus = obj_context->format_vtable->createContext(obj_context, obj_config);
1244 obj_context->context_id = -1;
1245 obj_context->config_id = -1;
1246 obj_context->picture_width = 0;
1247 obj_context->picture_height = 0;
1248 if (NULL != obj_context->render_targets)
1249 free(obj_context->render_targets);
1250 free(obj_context->buffer_list);
1251 obj_context->num_buffers = 0;
1252 obj_context->render_targets = NULL;
1253 obj_context->num_render_targets = 0;
1254 obj_context->va_flags = 0;
1255 object_heap_free(&driver_data->context_heap, (object_base_p) obj_context);
1262 obj_context->pnw_cmdbuf_list[i] = NULL;
1267 obj_context->tng_cmdbuf_list[i] = NULL;
1273 obj_context->vsp_cmdbuf_list[i] = NULL;
1278 obj_context->cmdbuf_list[i] = NULL;
1285 if (IS_MRFL(obj_context->driver_data)) {
1286 obj_context->tng_cmdbuf_list[i] = calloc(1, sizeof(struct tng_cmdbuf_s));
1287 if (NULL == obj_context->tng_cmdbuf_list[i]) {
1295 if (IS_MFLD(obj_context->driver_data)) {
1296 obj_context->pnw_cmdbuf_list[i] = calloc(1, sizeof(struct pnw_cmdbuf_s));
1297 if (NULL == obj_context->pnw_cmdbuf_list[i]) {
1307 obj_context->cmdbuf_list[i] = calloc(1, sizeof(struct psb_cmdbuf_s));
1308 if (NULL == obj_context->cmdbuf_list[i]) {
1315 else if (IS_MRFL(obj_context->driver_data)) {
1316 obj_context->vsp_cmdbuf_list[i] = calloc(1, sizeof(struct vsp_cmdbuf_s));
1317 if (NULL == obj_context->vsp_cmdbuf_list[i]) {
1326 obj_context->cmdbuf_list[i] = calloc(1, sizeof(struct psb_cmdbuf_s));
1327 if (NULL == obj_context->cmdbuf_list[i]) {
1338 if (IS_MRFL(obj_context->driver_data)) {
1339 vaStatus = tng_cmdbuf_create(obj_context, driver_data, (tng_cmdbuf_p)obj_context->tng_cmdbuf_list[i]);
1341 free(obj_context->tng_cmdbuf_list[i]);
1348 if (IS_MFLD(obj_context->driver_data)) {
1349 vaStatus = pnw_cmdbuf_create(obj_context, driver_data, (pnw_cmdbuf_p)obj_context->pnw_cmdbuf_list[i]);
1351 free(obj_context->pnw_cmdbuf_list[i]);
1359 vaStatus = psb_cmdbuf_create(obj_context, driver_data, (psb_cmdbuf_p)obj_context->cmdbuf_list[i]);
1361 free(obj_context->cmdbuf_list[i]);
1367 else if (IS_MRFL(obj_context->driver_data)) {
1368 vaStatus = vsp_cmdbuf_create(obj_context, driver_data, (vsp_cmdbuf_p)obj_context->vsp_cmdbuf_list[i]);
1370 free(obj_context->vsp_cmdbuf_list[i]);
1378 vaStatus = psb_cmdbuf_create(obj_context, driver_data, (psb_cmdbuf_p)obj_context->cmdbuf_list[i]);
1380 free(obj_context->cmdbuf_list[i]);
1390 tng_cmdbuf_destroy((tng_cmdbuf_p)obj_context->tng_cmdbuf_list[i]);
1391 free(obj_context->tng_cmdbuf_list[i]);
1394 pnw_cmdbuf_destroy((pnw_cmdbuf_p)obj_context->pnw_cmdbuf_list[i]);
1395 free(obj_context->pnw_cmdbuf_list[i]);
1404 obj_context->cmdbuf_current = -1;
1405 obj_context->cmdbuf = NULL;
1406 obj_context->pnw_cmdbuf = NULL;
1407 obj_context->tng_cmdbuf = NULL;
1409 obj_context->vsp_cmdbuf = NULL;
1411 obj_context->frame_count = 0;
1412 obj_context->slice_count = 0;
1413 obj_context->msvdx_context = ((driver_data->msvdx_context_base & 0xff0000) >> 16) |
1416 obj_context
1419 obj_context->profile = obj_config->profile;
1420 obj_context->entry_point = obj_config->entrypoint;
1428 if (obj_context->pnw_cmdbuf_list[i]) {
1429 pnw_cmdbuf_destroy(obj_context->pnw_cmdbuf_list[i]);
1430 free(obj_context->pnw_cmdbuf_list[i]);
1431 obj_context->pnw_cmdbuf_list[i] = NULL;
1435 if (obj_context->tng_cmdbuf_list[i]) {
1436 tng_cmdbuf_destroy(obj_context->tng_cmdbuf_list[i]);
1437 free(obj_context->tng_cmdbuf_list[i]);
1438 obj_context->tng_cmdbuf_list[i] = NULL;
1441 if (obj_context->cmdbuf_list[i]) {
1442 psb_cmdbuf_destroy(obj_context->cmdbuf_list[i]);
1443 free(obj_context->cmdbuf_list[i]);
1444 obj_context->cmdbuf_list[i] = NULL;
1447 if (obj_context->vsp_cmdbuf_list[i]) {
1448 vsp_cmdbuf_destroy(obj_context->vsp_cmdbuf_list[i]);
1449 free(obj_context->vsp_cmdbuf_list[i]);
1450 obj_context->vsp_cmdbuf_list[i] = NULL;
1455 obj_context->cmdbuf = NULL;
1457 obj_context->vsp_cmdbuf = NULL;
1460 obj_context->context_id = -1;
1461 obj_context->config_id = -1;
1462 obj_context->picture_width = 0;
1463 obj_context->picture_height = 0;
1464 if (NULL != obj_context->render_targets)
1465 free(obj_context->render_targets);
1466 free(obj_context->buffer_list);
1467 obj_context->num_buffers = 0;
1468 obj_context->render_targets = NULL;
1469 obj_context->num_render_targets = 0;
1470 obj_context->va_flags = 0;
1471 object_heap_free(&driver_data->context_heap, (object_base_p) obj_context);
1473 obj_context->ctp_type = (((obj_config->profile << 8) |
1478 obj_context->ctp_type = (((obj_config->profile << 8) |
1482 obj_context->ctp_type |= ((obj_context->msvdx_tile & 0xff) << 16);
1485 if (obj_context->ctp_type & VAEntrypointVLD) {
1487 obj_context->ctp_type |= PSB_SURFACE_UNAVAILABLE;
1491 if (obj_context->ctp_type & VAEntrypointVLD) {
1493 obj_context->ctp_type |= PSB_SURFACE_UNAVAILABLE;
1506 obj_context->ctp_type |= (width_in_mb << 32);
1507 obj_context->ctp_type |= (height_in_mb << 48);
1511 int ret = psb_new_context(driver_data, obj_context->ctp_type | driver_data->protected);
1531 static VAStatus psb__allocate_BO_buffer(psb_driver_data_p driver_data, object_context_p __maybe_unused obj_context, object_buffer_p obj_buffer, int size, unsigned char *data, VABufferType type)
1643 object_context_p obj_context = obj_buffer->context;
1655 obj_buffer->last_used = obj_context->frame_count;
1656 if (obj_context->buffers_unused_tail[type]) {
1657 obj_buffer->pptr_prev_next = &(obj_context->buffers_unused_tail[type]->ptr_next);
1659 obj_buffer->pptr_prev_next = &(obj_context->buffers_unused[type]);
1662 obj_context->buffers_unused_tail[type] = obj_buffer;
1663 obj_context->buffers_unused_count[type]++;
1666 buffer_type_to_string(obj_buffer->type), obj_context->buffers_unused_count[type]);
1681 static void psb__destroy_context(psb_driver_data_p driver_data, object_context_p obj_context)
1685 if (obj_context->entry_point == VAEntrypointEncSlice)
1690 obj_context->format_vtable->destroyContext(obj_context);
1694 obj_buffer = obj_context->buffers_active[i];
1699 obj_buffer = obj_context->buffers_unused[i];
1704 obj_context->buffers_unused_count[i] = 0;
1708 if (obj_context->pnw_cmdbuf_list[i]) {
1709 pnw_cmdbuf_destroy(obj_context->pnw_cmdbuf_list[i]);
1710 free(obj_context->pnw_cmdbuf_list[i]);
1711 obj_context->pnw_cmdbuf_list[i] = NULL;
1717 if (obj_context->tng_cmdbuf_list[i]) {
1718 tng_cmdbuf_destroy(obj_context->tng_cmdbuf_list[i]);
1719 free(obj_context->tng_cmdbuf_list[i]);
1720 obj_context->tng_cmdbuf_list[i] = NULL;
1726 if (obj_context->vsp_cmdbuf_list[i]) {
1727 vsp_cmdbuf_destroy(obj_context->vsp_cmdbuf_list[i]);
1728 free(obj_context->vsp_cmdbuf_list[i]);
1729 obj_context->vsp_cmdbuf_list[i] = NULL;
1735 if (obj_context->cmdbuf_list[i]) {
1736 psb_cmdbuf_destroy(obj_context->cmdbuf_list[i]);
1737 free(obj_context->cmdbuf_list[i]);
1738 obj_context->cmdbuf_list[i] = NULL;
1741 obj_context->cmdbuf = NULL;
1743 obj_context->vsp_cmdbuf = NULL;
1746 obj_context->context_id = -1;
1747 obj_context->config_id = -1;
1748 obj_context->picture_width = 0;
1749 obj_context->picture_height = 0;
1750 if (obj_context->render_targets)
1751 free(obj_context->render_targets);
1752 obj_context->render_targets = NULL;
1753 obj_context->num_render_targets = 0;
1754 obj_context->va_flags = 0;
1756 obj_context->current_render_target = NULL;
1757 obj_context->ec_target = NULL;
1758 obj_context->ec_candidate = NULL;
1759 if (obj_context->buffer_list)
1760 free(obj_context->buffer_list);
1761 obj_context->num_buffers = 0;
1763 object_heap_free(&driver_data->context_heap, (object_base_p) obj_context);
1776 object_context_p obj_context = CONTEXT(context);
1777 CHECK_CONTEXT(obj_context);
1779 psb__destroy_context(driver_data, obj_context);
1787 object_context_p obj_context, /* in */
1808 obj_buffer = obj_context ? obj_context->buffers_unused[type] : NULL;
1809 unused_count = obj_context ? obj_context->buffers_unused_count[type] : 0;
1841 } else if ((obj_buffer->last_used == obj_context->frame_count) && (unused_count < MAX_UNUSED_BUFFERS)) {
1845 } else if (obj_context->frame_count - obj_buffer->last_used < 5) {
1858 obj_context->buffers_unused[type] = obj_buffer->ptr_next;
1859 if (obj_context->buffers_unused[type]) {
1860 obj_context->buffers_unused[type]->pptr_prev_next = &(obj_context->buffers_unused[type]);
1861 ASSERT(obj_context->buffers_unused_tail[type] != obj_buffer);
1863 ASSERT(obj_context->buffers_unused_tail[type] == obj_buffer);
1864 obj_context->buffers_unused_tail[type] = 0;
1866 obj_context->buffers_unused_count[type]--;
1870 ASSERT(obj_context == obj_buffer->context);
1885 obj_buffer->context = obj_context;
1887 if (obj_context) {
1889 obj_buffer->ptr_next = obj_context->buffers_active[type];
1893 obj_buffer->pptr_prev_next = &(obj_context->buffers_active[type]);
1908 vaStatus = psb__allocate_BO_buffer(driver_data, obj_context,obj_buffer, size * num_elements, data, obj_buffer->type);
2016 object_context_p obj_context = CONTEXT(context);
2017 CHECK_CONTEXT(obj_context);
2020 vaStatus = psb__CreateBuffer(driver_data, obj_context, type, size, num_elements, data, buf_desc);
2150 object_context_p obj_context;
2155 obj_context = CONTEXT(context);
2156 CHECK_CONTEXT(obj_context);
2159 ASSERT(obj_context->current_render_target == NULL);
2164 obj_context->current_render_surface_id = render_target;
2165 obj_context->current_render_target = obj_surface;
2166 obj_context->slice_count = 0;
2168 obj_config = CONFIG(obj_context->config_id);
2172 for (i = 0; i < (unsigned int)obj_context->num_render_targets; i++) {
2173 if (obj_context->render_targets[i] == obj_surface->surface_id) {
2175 } else if (SURFACE(obj_context->render_targets[i]) == NULL) {
2180 if (i >= (unsigned int)obj_context->num_render_targets) {
2181 if (j < (unsigned int)obj_context->num_render_targets) {
2182 obj_context->render_targets[j] = obj_surface->surface_id;
2183 obj_surface->context_id = obj_context->context_id;
2188 obj_context->msvdx_tile = psb__tile_stride_log2_512(obj_surface->width);
2193 obj_context->msvdx_tile = psb__tile_stride_log2_256(obj_context->picture_width);
2195 obj_context->msvdx_tile = psb__tile_stride_log2_256(obj_surface->width);
2200 obj_context->msvdx_tile &= 0xf; /* clear rotate tile */
2201 obj_context->ctp_type &= (~PSB_CTX_TILING_MASK); /* clear tile context */
2202 obj_context->ctp_type |= ((obj_context->msvdx_tile & 0xff) << 16);
2203 obj_context->ctp_type &= (~PSB_SURFACE_UNAVAILABLE);
2204 psb_update_context(driver_data, obj_context->ctp_type | driver_data->protected);
2210 !(obj_context->ctp_type & VA_RT_FORMAT_PROTECTED)) {
2211 obj_context->ctp_type |= VA_RT_FORMAT_PROTECTED;
2212 psb_update_context(driver_data, obj_context->ctp_type);
2222 vaStatus = obj_context->format_vtable->beginPicture(obj_context);
2231 psb_RecalcAlternativeOutput(obj_context);
2238 if (obj_context->interlaced_stream || driver_data->disable_msvdx_rotate) {
2240 obj_context->msvdx_rotate = 0;
2241 if (obj_context->num_render_targets > 0) {
2242 for (i = 0; i < obj_context->num_render_targets; i++) {
2243 object_surface_p obj_surface = SURFACE(obj_context->render_targets[i]);
2252 obj_context->msvdx_rotate = driver_data->msvdx_rotate_want;
2259 SET_SURFACE_INFO_rotate(obj_surface->psb_surface, obj_context->msvdx_rotate);
2261 if (CONTEXT_SCALING(obj_context) && obj_config->entrypoint != VAEntrypointEncSlice)
2262 if(VA_STATUS_SUCCESS != psb_CreateScalingSurface(obj_context, obj_surface)) {
2263 obj_context->msvdx_scaling = 0;
2267 if (CONTEXT_ROTATE(obj_context)) {
2272 vaStatus = psb_CreateRotateSurface(obj_context, obj_surface, obj_context->msvdx_rotate);
2275 obj_context->msvdx_rotate = 0;
2276 vaStatus = psb_DestroyRotateBuffer(obj_context, obj_surface);
2280 vaStatus = psb_CreateRotateSurface(obj_context, obj_surface, obj_context->msvdx_rotate);
2287 obj_surface->share_info->surface_rotate = VAROTATION2HAL(obj_context->msvdx_rotate);
2304 vaStatus = psb_buffer_create(obj_context->driver_data,
2315 obj_context->is_oold = driver_data->is_oold;
2318 render_target, obj_context->frame_count);
2319 psb__trace_message("------Trace frame %d------\n", obj_context->frame_count);
2335 object_context_p obj_context;
2339 obj_context = CONTEXT(context);
2340 CHECK_CONTEXT(obj_context);
2346 ASSERT(obj_context->current_render_target != NULL);
2348 if (num_buffers > obj_context->num_buffers) {
2349 free(obj_context->buffer_list);
2351 obj_context->buffer_list = (object_buffer_p *) calloc(1, sizeof(object_buffer_p) * num_buffers);
2352 if (obj_context->buffer_list == NULL) {
2354 obj_context->num_buffers = 0;
2357 obj_context->num_buffers = num_buffers;
2359 buffer_list = obj_context->buffer_list;
2374 vaStatus = obj_context->format_vtable->renderPicture(obj_context, buffer_list, num_buffers);
2398 object_context_p obj_context;
2400 obj_context = CONTEXT(context);
2401 CHECK_CONTEXT(obj_context);
2403 vaStatus = obj_context->format_vtable->endPicture(obj_context);
2405 drv_debug_msg(VIDEO_DEBUG_GENERAL, "---EndPicture for frame %d --\n", obj_context->frame_count);
2407 obj_context->current_render_target = NULL;
2408 obj_context->frame_count++;
2410 psb__trace_message("FrameCount = %03d\n", obj_context->frame_count);
2411 drv_debug_msg(VIDEO_DEBUG_GENERAL, "FrameCount = %03d\n", obj_context->frame_count);
2415 //psb_SyncSurface(ctx, obj_context->current_render_surface_id);
2427 object_context_p obj_context;
2439 obj_context = CONTEXT(obj_surface->context_id);
2440 if (NULL == obj_context) /* not associate with a context */
2443 obj_config = CONFIG(obj_context->config_id);
2483 object_context_p obj_context = NULL;
2491 obj_context = CONTEXT(obj_surface->context_id);
2492 if (obj_context) {
2493 obj_config = CONFIG(obj_context->config_id);
2524 (obj_context->msvdx_rotate == VA_ROTATION_90 || obj_context->msvdx_rotate == VA_ROTATION_270) &&
2583 object_context_p obj_context = NULL;
2594 obj_context = CONTEXT(obj_surface->context_id);
2595 CHECK_CONTEXT(obj_context);
2597 (obj_context->msvdx_rotate == VA_ROTATION_90 || obj_context->msvdx_rotate == VA_ROTATION_270) &&
3157 object_context_p obj_context;
3164 obj_context = (object_context_p) object_heap_first(&driver_data->context_heap, &iter);
3165 while (obj_context) {
3166 drv_debug_msg(VIDEO_DEBUG_INIT, "vaTerminate: contextID %08x still allocated, destroying\n", obj_context->base.id);
3167 psb__destroy_context(driver_data, obj_context);
3168 obj_context = (object_context_p) object_heap_next(&driver_data->context_heap, &iter);