diff options
-rw-r--r-- | src/xvmc/i915_xvmc.c | 46 | ||||
-rw-r--r-- | src/xvmc/i915_xvmc.h | 1 | ||||
-rw-r--r-- | src/xvmc/i965_xvmc.c | 14 | ||||
-rw-r--r-- | src/xvmc/i965_xvmc.h | 7 | ||||
-rw-r--r-- | src/xvmc/intel_xvmc.h | 1 | ||||
-rw-r--r-- | src/xvmc/xvmc_vld.c | 33 | ||||
-rw-r--r-- | src/xvmc/xvmc_vld.h | 1 |
7 files changed, 48 insertions, 55 deletions
diff --git a/src/xvmc/i915_xvmc.c b/src/xvmc/i915_xvmc.c index 23f2f42f..2b96cf47 100644 --- a/src/xvmc/i915_xvmc.c +++ b/src/xvmc/i915_xvmc.c @@ -406,10 +406,10 @@ static void i915_mc_static_indirect_state_set(XvMCContext * context, buffer_info->dest_y.dw1.tiled_surface = 0; /* linear */ buffer_info->dest_y.dw1.walk = TILEWALK_XMAJOR; buffer_info->dest_y.dw1.pitch = (pI915Surface->yStride >> 2); /* in DWords */ - buffer_info->dest_y.dw2.base_address = pI915Surface->bo->offset >> 2; /* starting DWORD address */ + buffer_info->dest_y.dw2.base_address = pI915Surface->comm.bo->offset >> 2; /* starting DWORD address */ drm_intel_bo_emit_reloc(pI915XvMC->sis_bo, offsetof(typeof(*buffer_info),dest_y.dw2), - pI915Surface->bo, 0, + pI915Surface->comm.bo, 0, I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER); @@ -424,10 +424,10 @@ static void i915_mc_static_indirect_state_set(XvMCContext * context, buffer_info->dest_u.dw1.walk = TILEWALK_XMAJOR; buffer_info->dest_u.dw1.pitch = (pI915Surface->uvStride >> 2); /* in DWords */ buffer_info->dest_u.dw2.base_address = - (pI915Surface->bo->offset + UOFFSET(pI915Surface)) >> 2; + (pI915Surface->comm.bo->offset + UOFFSET(pI915Surface)) >> 2; drm_intel_bo_emit_reloc(pI915XvMC->sis_bo, offsetof(typeof(*buffer_info),dest_u.dw2), - pI915Surface->bo, UOFFSET(pI915Surface), + pI915Surface->comm.bo, UOFFSET(pI915Surface), I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER); @@ -442,10 +442,10 @@ static void i915_mc_static_indirect_state_set(XvMCContext * context, buffer_info->dest_v.dw1.walk = TILEWALK_XMAJOR; buffer_info->dest_v.dw1.pitch = (pI915Surface->uvStride >> 2); /* in Dwords */ buffer_info->dest_v.dw2.base_address = - (pI915Surface->bo->offset + VOFFSET(pI915Surface)) >> 2; + (pI915Surface->comm.bo->offset + VOFFSET(pI915Surface)) >> 2; drm_intel_bo_emit_reloc(pI915XvMC->sis_bo, offsetof(typeof(*buffer_info),dest_v.dw2), - pI915Surface->bo, VOFFSET(pI915Surface), + pI915Surface->comm.bo, VOFFSET(pI915Surface), I915_GEM_DOMAIN_RENDER, I915_GEM_DOMAIN_RENDER); @@ -554,10 +554,10 @@ static void i915_mc_map_state_set(XvMCContext * context, map_state->y_forward.tm2.depth = 0; map_state->y_forward.tm2.max_lod = 0; map_state->y_forward.tm2.cube_face = 0; - map_state->y_forward.tm0.base_address = privPast->bo->offset >> 2; + map_state->y_forward.tm0.base_address = privPast->comm.bo->offset >> 2; drm_intel_bo_emit_reloc(pI915XvMC->msb_bo, offsetof(typeof(*map_state),y_forward.tm0), - privPast->bo, 0, + privPast->comm.bo, 0, I915_GEM_DOMAIN_SAMPLER, 0); map_state->y_forward.tm2.pitch = (privPast->yStride >> 2) - 1; /* in DWords - 1 */ @@ -574,10 +574,10 @@ static void i915_mc_map_state_set(XvMCContext * context, map_state->y_backward.tm2.depth = 0; map_state->y_backward.tm2.max_lod = 0; map_state->y_backward.tm2.cube_face = 0; - map_state->y_backward.tm0.base_address = privFuture->bo->offset >> 2; + map_state->y_backward.tm0.base_address = privFuture->comm.bo->offset >> 2; drm_intel_bo_emit_reloc(pI915XvMC->msb_bo, offsetof(typeof(*map_state),y_backward.tm0), - privFuture->bo, 0, + privFuture->comm.bo, 0, I915_GEM_DOMAIN_SAMPLER, 0); map_state->y_backward.tm2.pitch = (privFuture->yStride >> 2) - 1; @@ -602,10 +602,10 @@ static void i915_mc_map_state_set(XvMCContext * context, map_state->u_forward.tm2.max_lod = 0; map_state->u_forward.tm2.cube_face = 0; map_state->u_forward.tm0.base_address = - (privPast->bo->offset + UOFFSET(privPast)) >> 2; + (privPast->comm.bo->offset + UOFFSET(privPast)) >> 2; drm_intel_bo_emit_reloc(pI915XvMC->msb_bo, offsetof(typeof(*map_state),u_forward.tm0), - privPast->bo, UOFFSET(privPast), + privPast->comm.bo, UOFFSET(privPast), I915_GEM_DOMAIN_SAMPLER, 0); map_state->u_forward.tm2.pitch = (privPast->uvStride >> 2) - 1; /* in DWords - 1 */ @@ -623,10 +623,10 @@ static void i915_mc_map_state_set(XvMCContext * context, map_state->u_backward.tm2.max_lod = 0; map_state->u_backward.tm2.cube_face = 0; map_state->u_backward.tm0.base_address = - (privFuture->bo->offset + UOFFSET(privFuture)) >> 2; + (privFuture->comm.bo->offset + UOFFSET(privFuture)) >> 2; drm_intel_bo_emit_reloc(pI915XvMC->msb_bo, offsetof(typeof(*map_state),u_backward.tm0), - privFuture->bo, UOFFSET(privFuture), + privFuture->comm.bo, UOFFSET(privFuture), I915_GEM_DOMAIN_SAMPLER, 0); map_state->u_backward.tm2.pitch = (privFuture->uvStride >> 2) - 1; @@ -651,10 +651,10 @@ static void i915_mc_map_state_set(XvMCContext * context, map_state->v_forward.tm2.max_lod = 0; map_state->v_forward.tm2.cube_face = 0; map_state->v_forward.tm0.base_address = - (privPast->bo->offset + VOFFSET(privPast)) >> 2; + (privPast->comm.bo->offset + VOFFSET(privPast)) >> 2; drm_intel_bo_emit_reloc(pI915XvMC->msb_bo, offsetof(typeof(*map_state),v_forward.tm0), - privPast->bo, VOFFSET(privPast), + privPast->comm.bo, VOFFSET(privPast), I915_GEM_DOMAIN_SAMPLER, 0); map_state->v_forward.tm2.pitch = (privPast->uvStride >> 2) - 1; /* in DWords - 1 */ @@ -672,10 +672,10 @@ static void i915_mc_map_state_set(XvMCContext * context, map_state->v_backward.tm2.max_lod = 0; map_state->v_backward.tm2.cube_face = 0; map_state->v_backward.tm0.base_address = - (privFuture->bo->offset + VOFFSET(privFuture)) >> 2; + (privFuture->comm.bo->offset + VOFFSET(privFuture)) >> 2; drm_intel_bo_emit_reloc(pI915XvMC->msb_bo, offsetof(typeof(*map_state),v_backward.tm0), - privFuture->bo, VOFFSET(privFuture), + privFuture->comm.bo, VOFFSET(privFuture), I915_GEM_DOMAIN_SAMPLER, 0); map_state->v_backward.tm2.pitch = (privFuture->uvStride >> 2) - 1; @@ -999,16 +999,16 @@ static Status i915_xvmc_mc_create_surface(Display * display, pI915Surface->privContext = pI915XvMC; pI915Surface->privSubPic = NULL; - pI915Surface->bo = drm_intel_bo_alloc(xvmc_driver->bufmgr, + pI915Surface->comm.bo = drm_intel_bo_alloc(xvmc_driver->bufmgr, "surface", SIZE_YUV420(context->width, context->height), GTT_PAGE_SIZE); /* X may still use this buffer when XVMC is already done with it. */ - drm_intel_bo_disable_reuse(pI915Surface->bo); + drm_intel_bo_disable_reuse(pI915Surface->comm.bo); - if (!pI915Surface->bo) { + if (!pI915Surface->comm.bo) { PPTHREAD_MUTEX_UNLOCK(); free(pI915Surface); return BadAlloc; @@ -1036,7 +1036,7 @@ static int i915_xvmc_mc_destroy_surface(Display * display, if (!(pI915XvMC = pI915Surface->privContext)) return XvMCBadSurface; - drm_intel_bo_unreference(pI915Surface->bo); + drm_intel_bo_unreference(pI915Surface->comm.bo); free(pI915Surface); surface->privData = NULL; @@ -1316,7 +1316,7 @@ static int i915_xvmc_mc_put_surface(Display * display, XvMCSurface * surface, PPTHREAD_MUTEX_LOCK(); - drm_intel_bo_flink(pI915Surface->bo, gem_handle); + drm_intel_bo_flink(pI915Surface->comm.bo, gem_handle); PPTHREAD_MUTEX_UNLOCK(); diff --git a/src/xvmc/i915_xvmc.h b/src/xvmc/i915_xvmc.h index af4e2047..4a5a98da 100644 --- a/src/xvmc/i915_xvmc.h +++ b/src/xvmc/i915_xvmc.h @@ -103,7 +103,6 @@ typedef struct _i915XvMCSurface { unsigned int uvStride; unsigned int width; /* Dimensions */ unsigned int height; - drm_intel_bo *bo; i915XvMCContext *privContext; i915XvMCSubpicture *privSubPic; /* Subpicture to be blended when * displaying. NULL if none. */ diff --git a/src/xvmc/i965_xvmc.c b/src/xvmc/i965_xvmc.c index 8d637ba3..32cb6c32 100644 --- a/src/xvmc/i965_xvmc.c +++ b/src/xvmc/i965_xvmc.c @@ -24,7 +24,7 @@ * Zou Nan hai <nanhai.zou@intel.com> * */ -#include "i965_xvmc.h" +#include "intel_xvmc.h" #include "i810_reg.h" #include "brw_defines.h" #include "brw_structs.h" @@ -256,7 +256,7 @@ static Status create_surface(Display * display, XvMCContext * context, XvMCSurface * surface, int priv_count, CARD32 * priv_data) { - struct i965_xvmc_surface *priv_surface = malloc(sizeof(struct i965_xvmc_surface)); + struct intel_xvmc_surface *priv_surface = malloc(sizeof(struct intel_xvmc_surface)); if (!priv_surface) return BadAlloc; @@ -273,7 +273,7 @@ static Status create_surface(Display * display, static Status destroy_surface(Display * display, XvMCSurface * surface) { - struct i965_xvmc_surface *priv_surface = surface->privData; + struct intel_xvmc_surface *priv_surface = surface->privData; XSync(display, False); drm_intel_bo_unreference(priv_surface->bo); free(priv_surface); @@ -722,11 +722,11 @@ static Status render_surface(Display * display, int i, j; struct i965_xvmc_context *i965_ctx; XvMCMacroBlock *mb; - struct i965_xvmc_surface *priv_target_surface = + struct intel_xvmc_surface *priv_target_surface = target_surface->privData; - struct i965_xvmc_surface *priv_past_surface = + struct intel_xvmc_surface *priv_past_surface = past_surface ? past_surface->privData : 0; - struct i965_xvmc_surface *priv_future_surface = + struct intel_xvmc_surface *priv_future_surface = future_surface ? future_surface->privData : 0; unsigned short *block_ptr; intel_ctx = intel_xvmc_find_context(context->context_id); @@ -884,7 +884,7 @@ static Status put_surface(Display * display, XvMCSurface * surface, unsigned short destw, unsigned short desth, int flags, uint32_t *gem_handle) { - struct i965_xvmc_surface *private_surface = surface->privData; + struct intel_xvmc_surface *private_surface = surface->privData; drm_intel_bo_flink(private_surface->bo, gem_handle); diff --git a/src/xvmc/i965_xvmc.h b/src/xvmc/i965_xvmc.h deleted file mode 100644 index a80866fe..00000000 --- a/src/xvmc/i965_xvmc.h +++ /dev/null @@ -1,7 +0,0 @@ -#include "intel_xvmc.h" - -#define I965_MAX_SURFACES 12 -struct i965_xvmc_surface { - struct intel_xvmc_surface comm; - dri_bo *bo; -}; diff --git a/src/xvmc/intel_xvmc.h b/src/xvmc/intel_xvmc.h index 8b4bd4d8..8628082a 100644 --- a/src/xvmc/intel_xvmc.h +++ b/src/xvmc/intel_xvmc.h @@ -113,6 +113,7 @@ struct intel_xvmc_surface { GC gc; Bool gc_init; Drawable last_draw; + drm_intel_bo *bo; uint32_t gem_handle; }; typedef struct intel_xvmc_surface *intel_xvmc_surface_ptr; diff --git a/src/xvmc/xvmc_vld.c b/src/xvmc/xvmc_vld.c index 080640b0..d122e89d 100644 --- a/src/xvmc/xvmc_vld.c +++ b/src/xvmc/xvmc_vld.c @@ -23,7 +23,7 @@ * Author: * Zou Nan hai <nanhai.zou@intel.com> */ -#include "xvmc_vld.h" +#include "intel_xvmc.h" #include "i830_hwmc.h" #include "i810_reg.h" #include "brw_defines.h" @@ -325,9 +325,10 @@ struct surface_state_obj { dri_bo *bo; }; +#define MAX_SURFACES 12 struct binding_table_obj { dri_bo *bo; - struct surface_state_obj surface_states[I965_MAX_SURFACES]; + struct surface_state_obj surface_states[MAX_SURFACES]; }; struct slice_data_obj { @@ -364,7 +365,7 @@ static int free_object(struct media_state *s) for (i = 0; i < MEDIA_KERNEL_NUM; i++) FREE_ONE_BO(s->vfe_state.interface.kernels[i].bo); FREE_ONE_BO(s->binding_table.bo); - for (i = 0; i < I965_MAX_SURFACES; i++) + for (i = 0; i < MAX_SURFACES; i++) FREE_ONE_BO(s->binding_table.surface_states[i].bo); FREE_ONE_BO(s->slice_data.bo); FREE_ONE_BO(s->mb_data.bo); @@ -376,7 +377,7 @@ static int alloc_object(struct media_state *s) { int i; - for (i = 0; i < I965_MAX_SURFACES; i++) { + for (i = 0; i < MAX_SURFACES; i++) { s->binding_table.surface_states[i].bo = drm_intel_bo_alloc(xvmc_driver->bufmgr, "surface_state", sizeof(struct brw_surface_state), @@ -461,7 +462,7 @@ static Status interface_descriptor() desc->desc1.const_urb_entry_read_offset = 0; desc->desc1.const_urb_entry_read_len = 30; - desc->desc3.binding_table_entry_count = I965_MAX_SURFACES - 1; + desc->desc3.binding_table_entry_count = MAX_SURFACES - 1; desc->desc3.binding_table_pointer = media_state.binding_table.bo->offset >> 5; @@ -528,18 +529,18 @@ out: static Status binding_tables() { - unsigned int table[I965_MAX_SURFACES]; + unsigned int table[MAX_SURFACES]; int i; if (media_state.binding_table.bo) drm_intel_bo_unreference(media_state.binding_table.bo); media_state.binding_table.bo = drm_intel_bo_alloc(xvmc_driver->bufmgr, "binding_table", - I965_MAX_SURFACES * 4, 0x1000); + MAX_SURFACES * 4, 0x1000); if (!media_state.binding_table.bo) return BadAlloc; - for (i = 0; i < I965_MAX_SURFACES; i++) { + for (i = 0; i < MAX_SURFACES; i++) { table[i] = media_state.binding_table.surface_states[i].bo->offset; drm_intel_bo_emit_reloc(media_state.binding_table.bo, @@ -620,7 +621,7 @@ static Status create_surface(Display * display, XvMCContext * context, XvMCSurface * surface, int priv_count, CARD32 * priv_data) { - struct i965_xvmc_surface *priv_surface = malloc(sizeof(struct i965_xvmc_surface)); + struct intel_xvmc_surface *priv_surface = malloc(sizeof(struct intel_xvmc_surface)); if (!priv_surface) return BadAlloc; @@ -637,7 +638,7 @@ static Status create_surface(Display * display, static Status destroy_surface(Display * display, XvMCSurface * surface) { - struct i965_xvmc_surface *priv_surface = surface->privData; + struct intel_xvmc_surface *priv_surface = surface->privData; XSync(display, False); drm_intel_bo_unreference(priv_surface->bo); free(priv_surface); @@ -754,9 +755,9 @@ static Status setup_media_surface(int index, dri_bo * bo, return Success; } -static Status setup_surface(struct i965_xvmc_surface *target, - struct i965_xvmc_surface *past, - struct i965_xvmc_surface *future, int w, int h) +static Status setup_surface(struct intel_xvmc_surface *target, + struct intel_xvmc_surface *past, + struct intel_xvmc_surface *future, int w, int h) { Status ret; ret = setup_media_surface(0, target->bo, 0, w, h, TRUE); @@ -810,7 +811,7 @@ static Status begin_surface(Display * display, XvMCContext * context, const XvMCMpegControl * control) { struct i965_xvmc_contex *i965_ctx; - struct i965_xvmc_surface *priv_target, *priv_past, *priv_future; + struct intel_xvmc_surface *priv_target, *priv_past, *priv_future; intel_xvmc_context_ptr intel_ctx; Status ret; @@ -1052,7 +1053,7 @@ static Status put_surface(Display * display, XvMCSurface * surface, unsigned short destw, unsigned short desth, int flags, uint32_t *gem_handle) { - struct i965_xvmc_surface *private_surface = surface->privData; + struct intel_xvmc_surface *private_surface = surface->privData; drm_intel_bo_flink(private_surface->bo, gem_handle); return Success; @@ -1070,7 +1071,7 @@ static Status render_surface(Display * display, XvMCMacroBlockArray * macroblock_array, XvMCBlockArray * blocks) { - struct i965_xvmc_surface *priv_target, *priv_past, *priv_future; + struct intel_xvmc_surface *priv_target, *priv_past, *priv_future; intel_xvmc_context_ptr intel_ctx; XvMCMacroBlock *mb; Status ret; diff --git a/src/xvmc/xvmc_vld.h b/src/xvmc/xvmc_vld.h deleted file mode 100644 index ad2b470c..00000000 --- a/src/xvmc/xvmc_vld.h +++ /dev/null @@ -1 +0,0 @@ -#include "i965_xvmc.h" |