summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2010-03-10 15:13:41 +0100
committerDaniel Vetter <daniel.vetter@ffwll.ch>2010-04-08 11:22:23 +0200
commit4edff6c972311df2370a8323e346eeabd49ced35 (patch)
tree5a9d647d7e0901758caac10a800bf4cc5763804d
parent9eeabf876d1f70f5525bbac438414557dd2d4335 (diff)
libXvMC: move drm_intel_bo to common intel_xvmc_surface
i965 lost the last field in it's private surface struct. Kill it and any associated headers. Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
-rw-r--r--src/xvmc/i915_xvmc.c46
-rw-r--r--src/xvmc/i915_xvmc.h1
-rw-r--r--src/xvmc/i965_xvmc.c14
-rw-r--r--src/xvmc/i965_xvmc.h7
-rw-r--r--src/xvmc/intel_xvmc.h1
-rw-r--r--src/xvmc/xvmc_vld.c33
-rw-r--r--src/xvmc/xvmc_vld.h1
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"