projects
/
platform
/
upstream
/
libva.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
5b5dfd0
)
i965_drv_video: simplify put_surface() and put_subpicture() args.
author
Gwenole Beauchesne
<gwenole.beauchesne@intel.com>
Tue, 28 Jun 2011 00:02:58 +0000
(17:02 -0700)
committer
Xiang, Haihao
<haihao.xiang@intel.com>
Wed, 29 Jun 2011 01:54:09 +0000
(09:54 +0800)
i965_drv_video/i965_drv_video.c
patch
|
blob
|
history
i965_drv_video/i965_post_processing.c
patch
|
blob
|
history
i965_drv_video/i965_post_processing.h
patch
|
blob
|
history
i965_drv_video/i965_render.c
patch
|
blob
|
history
i965_drv_video/i965_render.h
patch
|
blob
|
history
diff --git
a/i965_drv_video/i965_drv_video.c
b/i965_drv_video/i965_drv_video.c
index
cc49ac6
..
b147b84
100644
(file)
--- a/
i965_drv_video/i965_drv_video.c
+++ b/
i965_drv_video/i965_drv_video.c
@@
-2244,10
+2244,12
@@
i965_PutSurface(VADriverContextP ctx,
union dri_buffer *buffer;
struct intel_region *dest_region;
struct object_surface *obj_surface;
union dri_buffer *buffer;
struct intel_region *dest_region;
struct object_surface *obj_surface;
+ VARectangle src_rect, dst_rect;
int ret;
uint32_t name;
Bool new_region = False;
int pp_flag = 0;
int ret;
uint32_t name;
Bool new_region = False;
int pp_flag = 0;
+
/* Currently don't support DRI1 */
if (dri_state->driConnectedFlag != VA_DRI2)
return VA_STATUS_ERROR_UNKNOWN;
/* Currently don't support DRI1 */
if (dri_state->driConnectedFlag != VA_DRI2)
return VA_STATUS_ERROR_UNKNOWN;
@@
-2305,16
+2307,21
@@
i965_PutSurface(VADriverContextP ctx,
if (flags & (VA_BOTTOM_FIELD | VA_TOP_FIELD))
pp_flag |= I965_PP_FLAG_DEINTERLACING;
if (flags & (VA_BOTTOM_FIELD | VA_TOP_FIELD))
pp_flag |= I965_PP_FLAG_DEINTERLACING;
- intel_render_put_surface(ctx, surface,
- srcx, srcy, srcw, srch,
- destx, desty, destw, desth,
- pp_flag);
+ src_rect.x = srcx;
+ src_rect.y = srcy;
+ src_rect.width = srcw;
+ src_rect.height = srch;
+
+ dst_rect.x = destx;
+ dst_rect.y = desty;
+ dst_rect.width = destw;
+ dst_rect.height = desth;
+
+ intel_render_put_surface(ctx, surface, &src_rect, &dst_rect, pp_flag);
if(obj_surface->subpic != VA_INVALID_ID) {
if(obj_surface->subpic != VA_INVALID_ID) {
- intel_render_put_subpicture(ctx, surface,
- srcx, srcy, srcw, srch,
- destx, desty, destw, desth);
- }
+ intel_render_put_subpicture(ctx, surface, &src_rect, &dst_rect);
+ }
dri_swap_buffer(ctx, dri_drawable);
obj_surface->flags |= SURFACE_DISPLAYED;
dri_swap_buffer(ctx, dri_drawable);
obj_surface->flags |= SURFACE_DISPLAYED;
diff --git
a/i965_drv_video/i965_post_processing.c
b/i965_drv_video/i965_post_processing.c
index
23ca083
..
d0ad586
100644
(file)
--- a/
i965_drv_video/i965_post_processing.c
+++ b/
i965_drv_video/i965_post_processing.c
@@
-1748,18
+1748,14
@@
void pp_nv12_dndi_initialize(VADriverContextP ctx, VASurfaceID surface, int inpu
}
static void
}
static void
-ironlake_pp_initialize(VADriverContextP ctx,
- VASurfaceID surface,
- int input,
- short srcx,
- short srcy,
- unsigned short srcw,
- unsigned short srch,
- short destx,
- short desty,
- unsigned short destw,
- unsigned short desth,
- int pp_index)
+ironlake_pp_initialize(
+ VADriverContextP ctx,
+ VASurfaceID surface,
+ int input,
+ const VARectangle *src_rect,
+ const VARectangle *dst_rect,
+ int pp_index
+)
{
struct i965_driver_data *i965 = i965_driver_data(ctx);
struct i965_post_processing_context *pp_context = i965->pp_context;
{
struct i965_driver_data *i965 = i965_driver_data(ctx);
struct i965_post_processing_context *pp_context = i965->pp_context;
@@
-1842,44
+1838,35
@@
ironlake_pp_initialize(VADriverContextP ctx,
pp_module = &pp_context->pp_modules[pp_index];
if (pp_module->initialize)
pp_module = &pp_context->pp_modules[pp_index];
if (pp_module->initialize)
- pp_module->initialize(ctx, surface, input, srcw, srch, destw, desth);
+ pp_module->initialize(ctx, surface, input,
+ src_rect->width, src_rect->height,
+ dst_rect->width, dst_rect->height);
}
static void
}
static void
-ironlake_post_processing(VADriverContextP ctx,
- VASurfaceID surface,
- int input,
- short srcx,
- short srcy,
- unsigned short srcw,
- unsigned short srch,
- short destx,
- short desty,
- unsigned short destw,
- unsigned short desth,
- int pp_index)
+ironlake_post_processing(
+ VADriverContextP ctx,
+ VASurfaceID surface,
+ int input,
+ const VARectangle *src_rect,
+ const VARectangle *dst_rect,
+ int pp_index
+)
{
{
- ironlake_pp_initialize(ctx, surface, input,
- srcx, srcy, srcw, srch,
- destx, desty, destw, desth,
- pp_index);
+ ironlake_pp_initialize(ctx, surface, input, src_rect, dst_rect, pp_index);
ironlake_pp_states_setup(ctx);
ironlake_pp_pipeline_setup(ctx);
}
static void
ironlake_pp_states_setup(ctx);
ironlake_pp_pipeline_setup(ctx);
}
static void
-gen6_pp_initialize(VADriverContextP ctx,
- VASurfaceID surface,
- int input,
- short srcx,
- short srcy,
- unsigned short srcw,
- unsigned short srch,
- short destx,
- short desty,
- unsigned short destw,
- unsigned short desth,
- int pp_index)
+gen6_pp_initialize(
+ VADriverContextP ctx,
+ VASurfaceID surface,
+ int input,
+ const VARectangle *src_rect,
+ const VARectangle *dst_rect,
+ int pp_index
+)
{
struct i965_driver_data *i965 = i965_driver_data(ctx);
struct i965_post_processing_context *pp_context = i965->pp_context;
{
struct i965_driver_data *i965 = i965_driver_data(ctx);
struct i965_post_processing_context *pp_context = i965->pp_context;
@@
-1962,7
+1949,9
@@
gen6_pp_initialize(VADriverContextP ctx,
pp_module = &pp_context->pp_modules[pp_index];
if (pp_module->initialize)
pp_module = &pp_context->pp_modules[pp_index];
if (pp_module->initialize)
- pp_module->initialize(ctx, surface, input, srcw, srch, destw, desth);
+ pp_module->initialize(ctx, surface, input,
+ src_rect->width, src_rect->height,
+ dst_rect->width, dst_rect->height);
}
static void
}
static void
@@
-2206,68
+2195,48
@@
gen6_pp_pipeline_setup(VADriverContextP ctx)
}
static void
}
static void
-gen6_post_processing(VADriverContextP ctx,
- VASurfaceID surface,
- int input,
- short srcx,
- short srcy,
- unsigned short srcw,
- unsigned short srch,
- short destx,
- short desty,
- unsigned short destw,
- unsigned short desth,
- int pp_index)
+gen6_post_processing(
+ VADriverContextP ctx,
+ VASurfaceID surface,
+ int input,
+ const VARectangle *src_rect,
+ const VARectangle *dst_rect,
+ int pp_index
+)
{
{
- gen6_pp_initialize(ctx, surface, input,
- srcx, srcy, srcw, srch,
- destx, desty, destw, desth,
- pp_index);
+ gen6_pp_initialize(ctx, surface, input, src_rect, dst_rect, pp_index);
gen6_pp_states_setup(ctx);
gen6_pp_pipeline_setup(ctx);
}
static void
gen6_pp_states_setup(ctx);
gen6_pp_pipeline_setup(ctx);
}
static void
-i965_post_processing_internal(VADriverContextP ctx,
- VASurfaceID surface,
- int input,
- short srcx,
- short srcy,
- unsigned short srcw,
- unsigned short srch,
- short destx,
- short desty,
- unsigned short destw,
- unsigned short desth,
- int pp_index)
+i965_post_processing_internal(
+ VADriverContextP ctx,
+ VASurfaceID surface,
+ int input,
+ const VARectangle *src_rect,
+ const VARectangle *dst_rect,
+ int pp_index
+)
{
struct i965_driver_data *i965 = i965_driver_data(ctx);
if (IS_GEN6(i965->intel.device_id) ||
IS_GEN7(i965->intel.device_id))
{
struct i965_driver_data *i965 = i965_driver_data(ctx);
if (IS_GEN6(i965->intel.device_id) ||
IS_GEN7(i965->intel.device_id))
- gen6_post_processing(ctx, surface, input,
- srcx, srcy, srcw, srch,
- destx, desty, destw, desth,
- pp_index);
+ gen6_post_processing(ctx, surface, input, src_rect, dst_rect, pp_index);
else
else
- ironlake_post_processing(ctx, surface, input,
- srcx, srcy, srcw, srch,
- destx, desty, destw, desth,
+ ironlake_post_processing(ctx, surface, input, src_rect, dst_rect,
pp_index);
}
void
pp_index);
}
void
-i965_post_processing(VADriverContextP ctx,
- VASurfaceID surface,
- short srcx,
- short srcy,
- unsigned short srcw,
- unsigned short srch,
- short destx,
- short desty,
- unsigned short destw,
- unsigned short desth,
- unsigned int flag)
+i965_post_processing(
+ VADriverContextP ctx,
+ VASurfaceID surface,
+ const VARectangle *src_rect,
+ const VARectangle *dst_rect,
+ unsigned int flags
+)
{
struct i965_driver_data *i965 = i965_driver_data(ctx);
{
struct i965_driver_data *i965 = i965_driver_data(ctx);
@@
-2276,18
+2245,16
@@
i965_post_processing(VADriverContextP ctx,
if (i965->render_state.interleaved_uv) {
int internal_input = 0;
if (i965->render_state.interleaved_uv) {
int internal_input = 0;
- if (flag & I965_PP_FLAG_DEINTERLACING) {
+ if (flag
s
& I965_PP_FLAG_DEINTERLACING) {
i965_post_processing_internal(ctx, surface, internal_input,
i965_post_processing_internal(ctx, surface, internal_input,
- srcx, srcy, srcw, srch,
- destx, desty, destw, desth,
+ src_rect, dst_rect,
PP_NV12_DNDI);
internal_input = 1;
}
PP_NV12_DNDI);
internal_input = 1;
}
- if (flag & I965_PP_FLAG_AVS) {
+ if (flag
s
& I965_PP_FLAG_AVS) {
i965_post_processing_internal(ctx, surface, internal_input,
i965_post_processing_internal(ctx, surface, internal_input,
- srcx, srcy, srcw, srch,
- destx, desty, destw, desth,
+ src_rect, dst_rect,
PP_NV12_AVS);
}
}
PP_NV12_AVS);
}
}
diff --git
a/i965_drv_video/i965_post_processing.h
b/i965_drv_video/i965_post_processing.h
index
702014d
..
0982410
100644
(file)
--- a/
i965_drv_video/i965_post_processing.h
+++ b/
i965_drv_video/i965_post_processing.h
@@
-351,17
+351,14
@@
struct i965_post_processing_context
};
void
};
void
-i965_post_processing(VADriverContextP ctx,
- VASurfaceID surface,
- short srcx,
- short srcy,
- unsigned short srcw,
- unsigned short srch,
- short destx,
- short desty,
- unsigned short destw,
- unsigned short desth,
- unsigned int pp_index);
+i965_post_processing(
+ VADriverContextP ctx,
+ VASurfaceID surface,
+ const VARectangle *src_rect,
+ const VARectangle *dst_rect,
+ unsigned int flags
+);
+
Bool
i965_post_processing_terminate(VADriverContextP ctx);
Bool
Bool
i965_post_processing_terminate(VADriverContextP ctx);
Bool
diff --git
a/i965_drv_video/i965_render.c
b/i965_drv_video/i965_render.c
index
a05e40b
..
1742fe5
100644
(file)
--- a/
i965_drv_video/i965_render.c
+++ b/
i965_drv_video/i965_render.c
@@
-927,16
+927,12
@@
i965_subpic_render_upload_vertex(VADriverContextP ctx,
}
static void
}
static void
-i965_render_upload_vertex(VADriverContextP ctx,
- VASurfaceID surface,
- short srcx,
- short srcy,
- unsigned short srcw,
- unsigned short srch,
- short destx,
- short desty,
- unsigned short destw,
- unsigned short desth)
+i965_render_upload_vertex(
+ VADriverContextP ctx,
+ VASurfaceID surface,
+ const VARectangle *src_rect,
+ const VARectangle *dst_rect
+)
{
struct i965_driver_data *i965 = i965_driver_data(ctx);
struct i965_render_state *render_state = &i965->render_state;
{
struct i965_driver_data *i965 = i965_driver_data(ctx);
struct i965_render_state *render_state = &i965->render_state;
@@
-946,20
+942,20
@@
i965_render_upload_vertex(VADriverContextP ctx,
float u1, v1, u2, v2;
int i, width, height;
float u1, v1, u2, v2;
int i, width, height;
- int box_x1 = dest_region->x + d
est
x;
- int box_y1 = dest_region->y + d
est
y;
- int box_x2 = box_x1 + d
estw
;
- int box_y2 = box_y1 + d
esth
;
+ int box_x1 = dest_region->x + d
st_rect->
x;
+ int box_y1 = dest_region->y + d
st_rect->
y;
+ int box_x2 = box_x1 + d
st_rect->width
;
+ int box_y2 = box_y1 + d
st_rect->height
;
obj_surface = SURFACE(surface);
assert(surface);
width = obj_surface->orig_width;
height = obj_surface->orig_height;
obj_surface = SURFACE(surface);
assert(surface);
width = obj_surface->orig_width;
height = obj_surface->orig_height;
- u1 = (float)srcx / width;
- v1 = (float)srcy / height;
- u2 = (float)(src
x + srcw
) / width;
- v2 = (float)(src
y + srch
) / height;
+ u1 = (float)src
_rect->
x / width;
+ v1 = (float)src
_rect->
y / height;
+ u2 = (float)(src
_rect->x + src_rect->width
) / width;
+ v2 = (float)(src
_rect->y + src_rect->height
) / height;
dri_bo_map(render_state->vb.vertex_buffer, 1);
assert(render_state->vb.vertex_buffer->virtual);
dri_bo_map(render_state->vb.vertex_buffer, 1);
assert(render_state->vb.vertex_buffer->virtual);
@@
-1008,16
+1004,12
@@
i965_render_upload_constants(VADriverContextP ctx)
}
static void
}
static void
-i965_surface_render_state_setup(VADriverContextP ctx,
- VASurfaceID surface,
- short srcx,
- short srcy,
- unsigned short srcw,
- unsigned short srch,
- short destx,
- short desty,
- unsigned short destw,
- unsigned short desth)
+i965_surface_render_state_setup(
+ VADriverContextP ctx,
+ VASurfaceID surface,
+ const VARectangle *src_rect,
+ const VARectangle *dst_rect
+)
{
i965_render_vs_unit(ctx);
i965_render_sf_unit(ctx);
{
i965_render_vs_unit(ctx);
i965_render_sf_unit(ctx);
@@
-1027,22
+1019,16
@@
i965_surface_render_state_setup(VADriverContextP ctx,
i965_render_wm_unit(ctx);
i965_render_cc_viewport(ctx);
i965_render_cc_unit(ctx);
i965_render_wm_unit(ctx);
i965_render_cc_viewport(ctx);
i965_render_cc_unit(ctx);
- i965_render_upload_vertex(ctx, surface,
- srcx, srcy, srcw, srch,
- destx, desty, destw, desth);
+ i965_render_upload_vertex(ctx, surface, src_rect, dst_rect);
i965_render_upload_constants(ctx);
}
static void
i965_render_upload_constants(ctx);
}
static void
-i965_subpic_render_state_setup(VADriverContextP ctx,
- VASurfaceID surface,
- short srcx,
- short srcy,
- unsigned short srcw,
- unsigned short srch,
- short destx,
- short desty,
- unsigned short destw,
- unsigned short desth)
+i965_subpic_render_state_setup(
+ VADriverContextP ctx,
+ VASurfaceID surface,
+ const VARectangle *src_rect,
+ const VARectangle *dst_rect
+)
{
i965_render_vs_unit(ctx);
i965_render_sf_unit(ctx);
{
i965_render_vs_unit(ctx);
i965_render_sf_unit(ctx);
@@
-1052,13
+1038,7
@@
i965_subpic_render_state_setup(VADriverContextP ctx,
i965_subpic_render_wm_unit(ctx);
i965_render_cc_viewport(ctx);
i965_subpic_render_cc_unit(ctx);
i965_subpic_render_wm_unit(ctx);
i965_render_cc_viewport(ctx);
i965_subpic_render_cc_unit(ctx);
-
- VARectangle output_rect;
- output_rect.x = destx;
- output_rect.y = desty;
- output_rect.width = destw;
- output_rect.height = desth;
- i965_subpic_render_upload_vertex(ctx, surface, &output_rect);
+ i965_subpic_render_upload_vertex(ctx, surface, dst_rect);
}
}
@@
-1546,40
+1526,30
@@
i965_render_initialize(VADriverContextP ctx)
}
static void
}
static void
-i965_render_put_surface(VADriverContextP ctx,
- VASurfaceID surface,
- short srcx,
- short srcy,
- unsigned short srcw,
- unsigned short srch,
- short destx,
- short desty,
- unsigned short destw,
- unsigned short desth,
- unsigned int flag)
+i965_render_put_surface(
+ VADriverContextP ctx,
+ VASurfaceID surface,
+ const VARectangle *src_rect,
+ const VARectangle *dst_rect,
+ unsigned int flags
+)
{
struct i965_driver_data *i965 = i965_driver_data(ctx);
struct intel_batchbuffer *batch = i965->batch;
i965_render_initialize(ctx);
{
struct i965_driver_data *i965 = i965_driver_data(ctx);
struct intel_batchbuffer *batch = i965->batch;
i965_render_initialize(ctx);
- i965_surface_render_state_setup(ctx, surface,
- srcx, srcy, srcw, srch,
- destx, desty, destw, desth);
+ i965_surface_render_state_setup(ctx, surface, src_rect, dst_rect);
i965_surface_render_pipeline_setup(ctx);
intel_batchbuffer_flush(batch);
}
static void
i965_surface_render_pipeline_setup(ctx);
intel_batchbuffer_flush(batch);
}
static void
-i965_render_put_subpicture(VADriverContextP ctx,
- VASurfaceID surface,
- short srcx,
- short srcy,
- unsigned short srcw,
- unsigned short srch,
- short destx,
- short desty,
- unsigned short destw,
- unsigned short desth)
+i965_render_put_subpicture(
+ VADriverContextP ctx,
+ VASurfaceID surface,
+ const VARectangle *src_rect,
+ const VARectangle *dst_rect
+)
{
struct i965_driver_data *i965 = i965_driver_data(ctx);
struct intel_batchbuffer *batch = i965->batch;
{
struct i965_driver_data *i965 = i965_driver_data(ctx);
struct intel_batchbuffer *batch = i965->batch;
@@
-1589,9
+1559,7
@@
i965_render_put_subpicture(VADriverContextP ctx,
assert(obj_subpic);
i965_render_initialize(ctx);
assert(obj_subpic);
i965_render_initialize(ctx);
- i965_subpic_render_state_setup(ctx, surface,
- srcx, srcy, srcw, srch,
- destx, desty, destw, desth);
+ i965_subpic_render_state_setup(ctx, surface, src_rect, dst_rect);
i965_subpic_render_pipeline_setup(ctx);
i965_render_upload_image_palette(ctx, obj_subpic->image, 0xff);
intel_batchbuffer_flush(batch);
i965_subpic_render_pipeline_setup(ctx);
i965_render_upload_image_palette(ctx, obj_subpic->image, 0xff);
intel_batchbuffer_flush(batch);
@@
-1720,16
+1688,12
@@
gen6_render_depth_stencil_state(VADriverContextP ctx)
}
static void
}
static void
-gen6_render_setup_states(VADriverContextP ctx,
- VASurfaceID surface,
- short srcx,
- short srcy,
- unsigned short srcw,
- unsigned short srch,
- short destx,
- short desty,
- unsigned short destw,
- unsigned short desth)
+gen6_render_setup_states(
+ VADriverContextP ctx,
+ VASurfaceID surface,
+ const VARectangle *src_rect,
+ const VARectangle *dst_rect
+)
{
i965_render_dest_surface_state(ctx, 0);
i965_render_src_surfaces_state(ctx, surface);
{
i965_render_dest_surface_state(ctx, 0);
i965_render_src_surfaces_state(ctx, surface);
@@
-1739,9
+1703,7
@@
gen6_render_setup_states(VADriverContextP ctx,
gen6_render_blend_state(ctx);
gen6_render_depth_stencil_state(ctx);
i965_render_upload_constants(ctx);
gen6_render_blend_state(ctx);
gen6_render_depth_stencil_state(ctx);
i965_render_upload_constants(ctx);
- i965_render_upload_vertex(ctx, surface,
- srcx, srcy, srcw, srch,
- destx, desty, destw, desth);
+ i965_render_upload_vertex(ctx, surface, src_rect, dst_rect);
}
static void
}
static void
@@
-2088,25
+2050,19
@@
gen6_render_emit_states(VADriverContextP ctx, int kernel)
}
static void
}
static void
-gen6_render_put_surface(VADriverContextP ctx,
- VASurfaceID surface,
- short srcx,
- short srcy,
- unsigned short srcw,
- unsigned short srch,
- short destx,
- short desty,
- unsigned short destw,
- unsigned short desth,
- unsigned int flag)
+gen6_render_put_surface(
+ VADriverContextP ctx,
+ VASurfaceID surface,
+ const VARectangle *src_rect,
+ const VARectangle *dst_rect,
+ unsigned int flags
+)
{
struct i965_driver_data *i965 = i965_driver_data(ctx);
struct intel_batchbuffer *batch = i965->batch;
gen6_render_initialize(ctx);
{
struct i965_driver_data *i965 = i965_driver_data(ctx);
struct intel_batchbuffer *batch = i965->batch;
gen6_render_initialize(ctx);
- gen6_render_setup_states(ctx, surface,
- srcx, srcy, srcw, srch,
- destx, desty, destw, desth);
+ gen6_render_setup_states(ctx, surface, src_rect, dst_rect);
i965_clear_dest_region(ctx);
gen6_render_emit_states(ctx, PS_KERNEL);
intel_batchbuffer_flush(batch);
i965_clear_dest_region(ctx);
gen6_render_emit_states(ctx, PS_KERNEL);
intel_batchbuffer_flush(batch);
@@
-2135,24
+2091,13
@@
gen6_subpicture_render_blend_state(VADriverContextP ctx)
}
static void
}
static void
-gen6_subpicture_render_setup_states(VADriverContextP ctx,
- VASurfaceID surface,
- short srcx,
- short srcy,
- unsigned short srcw,
- unsigned short srch,
- short destx,
- short desty,
- unsigned short destw,
- unsigned short desth)
+gen6_subpicture_render_setup_states(
+ VADriverContextP ctx,
+ VASurfaceID surface,
+ const VARectangle *src_rect,
+ const VARectangle *dst_rect
+)
{
{
- VARectangle output_rect;
-
- output_rect.x = destx;
- output_rect.y = desty;
- output_rect.width = destw;
- output_rect.height = desth;
-
i965_render_dest_surface_state(ctx, 0);
i965_subpic_render_src_surfaces_state(ctx, surface);
i965_render_sampler(ctx);
i965_render_dest_surface_state(ctx, 0);
i965_subpic_render_src_surfaces_state(ctx, surface);
i965_render_sampler(ctx);
@@
-2160,20
+2105,16
@@
gen6_subpicture_render_setup_states(VADriverContextP ctx,
gen6_render_color_calc_state(ctx);
gen6_subpicture_render_blend_state(ctx);
gen6_render_depth_stencil_state(ctx);
gen6_render_color_calc_state(ctx);
gen6_subpicture_render_blend_state(ctx);
gen6_render_depth_stencil_state(ctx);
- i965_subpic_render_upload_vertex(ctx, surface,
&outpu
t_rect);
+ i965_subpic_render_upload_vertex(ctx, surface,
ds
t_rect);
}
static void
}
static void
-gen6_render_put_subpicture(VADriverContextP ctx,
- VASurfaceID surface,
- short srcx,
- short srcy,
- unsigned short srcw,
- unsigned short srch,
- short destx,
- short desty,
- unsigned short destw,
- unsigned short desth)
+gen6_render_put_subpicture(
+ VADriverContextP ctx,
+ VASurfaceID surface,
+ const VARectangle *src_rect,
+ const VARectangle *dst_rect
+)
{
struct i965_driver_data *i965 = i965_driver_data(ctx);
struct intel_batchbuffer *batch = i965->batch;
{
struct i965_driver_data *i965 = i965_driver_data(ctx);
struct intel_batchbuffer *batch = i965->batch;
@@
-2182,9
+2123,7
@@
gen6_render_put_subpicture(VADriverContextP ctx,
assert(obj_subpic);
gen6_render_initialize(ctx);
assert(obj_subpic);
gen6_render_initialize(ctx);
- gen6_subpicture_render_setup_states(ctx, surface,
- srcx, srcy, srcw, srch,
- destx, desty, destw, desth);
+ gen6_subpicture_render_setup_states(ctx, surface, src_rect, dst_rect);
gen6_render_emit_states(ctx, PS_SUBPIC_KERNEL);
i965_render_upload_image_palette(ctx, obj_subpic->image, 0xff);
intel_batchbuffer_flush(batch);
gen6_render_emit_states(ctx, PS_SUBPIC_KERNEL);
i965_render_upload_image_palette(ctx, obj_subpic->image, 0xff);
intel_batchbuffer_flush(batch);
@@
-2341,16
+2280,12
@@
gen7_render_sampler(VADriverContextP ctx)
}
static void
}
static void
-gen7_render_setup_states(VADriverContextP ctx,
- VASurfaceID surface,
- short srcx,
- short srcy,
- unsigned short srcw,
- unsigned short srch,
- short destx,
- short desty,
- unsigned short destw,
- unsigned short desth)
+gen7_render_setup_states(
+ VADriverContextP ctx,
+ VASurfaceID surface,
+ const VARectangle *src_rect,
+ const VARectangle *dst_rect
+)
{
i965_render_dest_surface_state(ctx, 0);
i965_render_src_surfaces_state(ctx, surface);
{
i965_render_dest_surface_state(ctx, 0);
i965_render_src_surfaces_state(ctx, surface);
@@
-2360,9
+2295,7
@@
gen7_render_setup_states(VADriverContextP ctx,
gen7_render_blend_state(ctx);
gen7_render_depth_stencil_state(ctx);
i965_render_upload_constants(ctx);
gen7_render_blend_state(ctx);
gen7_render_depth_stencil_state(ctx);
i965_render_upload_constants(ctx);
- i965_render_upload_vertex(ctx, surface,
- srcx, srcy, srcw, srch,
- destx, desty, destw, desth);
+ i965_render_upload_vertex(ctx, surface, src_rect, dst_rect);
}
static void
}
static void
@@
-2882,25
+2815,19
@@
gen7_render_emit_states(VADriverContextP ctx, int kernel)
}
static void
}
static void
-gen7_render_put_surface(VADriverContextP ctx,
- VASurfaceID surface,
- short srcx,
- short srcy,
- unsigned short srcw,
- unsigned short srch,
- short destx,
- short desty,
- unsigned short destw,
- unsigned short desth,
- unsigned int flag)
+gen7_render_put_surface(
+ VADriverContextP ctx,
+ VASurfaceID surface,
+ const VARectangle *src_rect,
+ const VARectangle *dst_rect,
+ unsigned int flags
+)
{
struct i965_driver_data *i965 = i965_driver_data(ctx);
struct intel_batchbuffer *batch = i965->batch;
gen7_render_initialize(ctx);
{
struct i965_driver_data *i965 = i965_driver_data(ctx);
struct intel_batchbuffer *batch = i965->batch;
gen7_render_initialize(ctx);
- gen7_render_setup_states(ctx, surface,
- srcx, srcy, srcw, srch,
- destx, desty, destw, desth);
+ gen7_render_setup_states(ctx, surface, src_rect, dst_rect);
i965_clear_dest_region(ctx);
gen7_render_emit_states(ctx, PS_KERNEL);
intel_batchbuffer_flush(batch);
i965_clear_dest_region(ctx);
gen7_render_emit_states(ctx, PS_KERNEL);
intel_batchbuffer_flush(batch);
@@
-2929,24
+2856,13
@@
gen7_subpicture_render_blend_state(VADriverContextP ctx)
}
static void
}
static void
-gen7_subpicture_render_setup_states(VADriverContextP ctx,
- VASurfaceID surface,
- short srcx,
- short srcy,
- unsigned short srcw,
- unsigned short srch,
- short destx,
- short desty,
- unsigned short destw,
- unsigned short desth)
+gen7_subpicture_render_setup_states(
+ VADriverContextP ctx,
+ VASurfaceID surface,
+ const VARectangle *src_rect,
+ const VARectangle *dst_rect
+)
{
{
- VARectangle output_rect;
-
- output_rect.x = destx;
- output_rect.y = desty;
- output_rect.width = destw;
- output_rect.height = desth;
-
i965_render_dest_surface_state(ctx, 0);
i965_subpic_render_src_surfaces_state(ctx, surface);
i965_render_sampler(ctx);
i965_render_dest_surface_state(ctx, 0);
i965_subpic_render_src_surfaces_state(ctx, surface);
i965_render_sampler(ctx);
@@
-2954,20
+2870,16
@@
gen7_subpicture_render_setup_states(VADriverContextP ctx,
gen7_render_color_calc_state(ctx);
gen7_subpicture_render_blend_state(ctx);
gen7_render_depth_stencil_state(ctx);
gen7_render_color_calc_state(ctx);
gen7_subpicture_render_blend_state(ctx);
gen7_render_depth_stencil_state(ctx);
- i965_subpic_render_upload_vertex(ctx, surface,
&outpu
t_rect);
+ i965_subpic_render_upload_vertex(ctx, surface,
ds
t_rect);
}
static void
}
static void
-gen7_render_put_subpicture(VADriverContextP ctx,
- VASurfaceID surface,
- short srcx,
- short srcy,
- unsigned short srcw,
- unsigned short srch,
- short destx,
- short desty,
- unsigned short destw,
- unsigned short desth)
+gen7_render_put_subpicture(
+ VADriverContextP ctx,
+ VASurfaceID surface,
+ const VARectangle *src_rect,
+ const VARectangle *dst_rect
+)
{
struct i965_driver_data *i965 = i965_driver_data(ctx);
struct intel_batchbuffer *batch = i965->batch;
{
struct i965_driver_data *i965 = i965_driver_data(ctx);
struct intel_batchbuffer *batch = i965->batch;
@@
-2976,9
+2888,7
@@
gen7_render_put_subpicture(VADriverContextP ctx,
assert(obj_subpic);
gen7_render_initialize(ctx);
assert(obj_subpic);
gen7_render_initialize(ctx);
- gen7_subpicture_render_setup_states(ctx, surface,
- srcx, srcy, srcw, srch,
- destx, desty, destw, desth);
+ gen7_subpicture_render_setup_states(ctx, surface, src_rect, dst_rect);
gen7_render_emit_states(ctx, PS_SUBPIC_KERNEL);
i965_render_upload_image_palette(ctx, obj_subpic->image, 0xff);
intel_batchbuffer_flush(batch);
gen7_render_emit_states(ctx, PS_SUBPIC_KERNEL);
i965_render_upload_image_palette(ctx, obj_subpic->image, 0xff);
intel_batchbuffer_flush(batch);
@@
-2988,69
+2898,44
@@
gen7_render_put_subpicture(VADriverContextP ctx,
/*
* global functions
*/
/*
* global functions
*/
+
void
void
-intel_render_put_surface(VADriverContextP ctx,
- VASurfaceID surface,
- short srcx,
- short srcy,
- unsigned short srcw,
- unsigned short srch,
- short destx,
- short desty,
- unsigned short destw,
- unsigned short desth,
- unsigned int flag)
+intel_render_put_surface(
+ VADriverContextP ctx,
+ VASurfaceID surface,
+ const VARectangle *src_rect,
+ const VARectangle *dst_rect,
+ unsigned int flags
+)
{
struct i965_driver_data *i965 = i965_driver_data(ctx);
{
struct i965_driver_data *i965 = i965_driver_data(ctx);
- i965_post_processing(ctx, surface,
- srcx, srcy, srcw, srch,
- destx, desty, destw, desth,
- flag);
+ i965_post_processing(ctx, surface, src_rect, dst_rect, flags);
if (IS_GEN7(i965->intel.device_id))
if (IS_GEN7(i965->intel.device_id))
- gen7_render_put_surface(ctx, surface,
- srcx, srcy, srcw, srch,
- destx, desty, destw, desth,
- flag);
+ gen7_render_put_surface(ctx, surface, src_rect, dst_rect, flags);
else if (IS_GEN6(i965->intel.device_id))
else if (IS_GEN6(i965->intel.device_id))
- gen6_render_put_surface(ctx, surface,
- srcx, srcy, srcw, srch,
- destx, desty, destw, desth,
- flag);
+ gen6_render_put_surface(ctx, surface, src_rect, dst_rect, flags);
else
else
- i965_render_put_surface(ctx, surface,
- srcx, srcy, srcw, srch,
- destx, desty, destw, desth,
- flag);
+ i965_render_put_surface(ctx, surface, src_rect, dst_rect, flags);
}
void
}
void
-intel_render_put_subpicture(VADriverContextP ctx,
- VASurfaceID surface,
- short srcx,
- short srcy,
- unsigned short srcw,
- unsigned short srch,
- short destx,
- short desty,
- unsigned short destw,
- unsigned short desth)
+intel_render_put_subpicture(
+ VADriverContextP ctx,
+ VASurfaceID surface,
+ const VARectangle *src_rect,
+ const VARectangle *dst_rect
+)
{
struct i965_driver_data *i965 = i965_driver_data(ctx);
if (IS_GEN7(i965->intel.device_id))
{
struct i965_driver_data *i965 = i965_driver_data(ctx);
if (IS_GEN7(i965->intel.device_id))
- gen7_render_put_subpicture(ctx, surface,
- srcx, srcy, srcw, srch,
- destx, desty, destw, desth);
+ gen7_render_put_subpicture(ctx, surface, src_rect, dst_rect);
else if (IS_GEN6(i965->intel.device_id))
else if (IS_GEN6(i965->intel.device_id))
- gen6_render_put_subpicture(ctx, surface,
- srcx, srcy, srcw, srch,
- destx, desty, destw, desth);
+ gen6_render_put_subpicture(ctx, surface, src_rect, dst_rect);
else
else
- i965_render_put_subpicture(ctx, surface,
- srcx, srcy, srcw, srch,
- destx, desty, destw, desth);
+ i965_render_put_subpicture(ctx, surface, src_rect, dst_rect);
}
Bool
}
Bool
diff --git
a/i965_drv_video/i965_render.h
b/i965_drv_video/i965_render.h
index
fd4be8f
..
a5034d9
100644
(file)
--- a/
i965_drv_video/i965_render.h
+++ b/
i965_drv_video/i965_render.h
@@
-81,28
+81,22
@@
struct i965_render_state
Bool i965_render_init(VADriverContextP ctx);
Bool i965_render_terminate(VADriverContextP ctx);
Bool i965_render_init(VADriverContextP ctx);
Bool i965_render_terminate(VADriverContextP ctx);
-void intel_render_put_surface(VADriverContextP ctx,
- VASurfaceID surface,
- short srcx,
- short srcy,
- unsigned short srcw,
- unsigned short srch,
- short destx,
- short desty,
- unsigned short destw,
- unsigned short desth,
- unsigned int flag);
+void
+intel_render_put_surface(
+ VADriverContextP ctx,
+ VASurfaceID surface,
+ const VARectangle *src_rect,
+ const VARectangle *dst_rect,
+ unsigned int flags
+);
void
void
-intel_render_put_subpicture(VADriverContextP ctx,
- VASurfaceID surface,
- short srcx,
- short srcy,
- unsigned short srcw,
- unsigned short srch,
- short destx,
- short desty,
- unsigned short destw,
- unsigned short desth);
+intel_render_put_subpicture(
+ VADriverContextP ctx,
+ VASurfaceID surface,
+ const VARectangle *src_rect,
+ const VARectangle *dst_rect
+);
+
#endif /* _I965_RENDER_H_ */
#endif /* _I965_RENDER_H_ */