From e8e3ac9b1e0e4342fc3a6d7b435ddaf93f274304 Mon Sep 17 00:00:00 2001 From: Jeff Dike Date: Wed, 21 Jul 2010 17:31:45 -0400 Subject: meta-emenlow: Layer for eMenlow-based systems. This layer provides a kernel suitable for booting on eMenlow-based systems, plus support for Poulsbo graphics. The Poulsbo support includes a kernel patch for the graphics driver, a couple of libraries, the 2D and 3D X drivers, and a properly configured X server. The closed portions of this support are in the 3D driver, xpsb-glx. This package contains the binaries for the libraries that communicate with the kernel driver and a mesa library which uses those libraries. There is a README in meta-emenlow/ describing how to enable this layer. Where possible, the recipes use bitbake's new .bbappend facility in order to avoid copying recipes from meta/. There are checksums and license information for all of the new packages. Signed-off-by: Jeff Dike --- .../libva-0.31.0/037_g45_add_vaPutImage.patch | 111 +++++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 meta-emenlow/packages/libva/libva-0.31.0/037_g45_add_vaPutImage.patch (limited to 'meta-emenlow/packages/libva/libva-0.31.0/037_g45_add_vaPutImage.patch') diff --git a/meta-emenlow/packages/libva/libva-0.31.0/037_g45_add_vaPutImage.patch b/meta-emenlow/packages/libva/libva-0.31.0/037_g45_add_vaPutImage.patch new file mode 100644 index 000000000..ce638cce5 --- /dev/null +++ b/meta-emenlow/packages/libva/libva-0.31.0/037_g45_add_vaPutImage.patch @@ -0,0 +1,111 @@ +From 000807cfbd8bcbc9cd4bf28a066087fee43396b4 Mon Sep 17 00:00:00 2001 +From: Gwenole Beauchesne +Date: Wed, 4 Nov 2009 13:36:39 +0000 +Subject: [PATCH] =?utf-8?q?[G45]=C2=A0Implement=20vaPutImage()=20for=20full-sized=20surface=20uploads.?= +MIME-Version: 1.0 +Content-Type: text/plain; charset=utf-8 +Content-Transfer-Encoding: 8bit + +--- + i965_drv_video/i965_drv_video.c | 78 +++++++++++++++++++++++++++++++-------- + 1 files changed, 62 insertions(+), 16 deletions(-) + +diff --git a/i965_drv_video/i965_drv_video.c b/i965_drv_video/i965_drv_video.c +index d8a7bd1..e8f638c 100644 +--- a/i965_drv_video/i965_drv_video.c ++++ b/i965_drv_video/i965_drv_video.c +@@ -443,22 +443,6 @@ i965_QueryImageFormats(VADriverContextP ctx, + } + + VAStatus +-i965_PutImage(VADriverContextP ctx, +- VASurfaceID surface, +- VAImageID image, +- int src_x, +- int src_y, +- unsigned int src_width, +- unsigned int src_height, +- int dest_x, +- int dest_y, +- unsigned int dest_width, +- unsigned int dest_height) +-{ +- return VA_STATUS_SUCCESS; +-} +- +-VAStatus + i965_QuerySubpictureFormats(VADriverContextP ctx, + VAImageFormat *format_list, /* out */ + unsigned int *flags, /* out */ +@@ -1439,6 +1423,68 @@ i965_GetImage(VADriverContextP ctx, + } + + VAStatus ++i965_PutImage(VADriverContextP ctx, ++ VASurfaceID surface, ++ VAImageID image, ++ int src_x, ++ int src_y, ++ unsigned int src_width, ++ unsigned int src_height, ++ int dest_x, ++ int dest_y, ++ unsigned int dest_width, ++ unsigned int dest_height) ++{ ++ struct i965_driver_data *i965 = i965_driver_data(ctx); ++ ++ struct object_surface *obj_surface = SURFACE(surface); ++ if (!obj_surface) ++ return VA_STATUS_ERROR_INVALID_SURFACE; ++ ++ struct object_image *obj_image = IMAGE(image); ++ if (!obj_image) ++ return VA_STATUS_ERROR_INVALID_IMAGE; ++ ++ /* XXX: we don't support partial video surface updates */ ++ if (src_x != 0 || ++ src_y != 0 || ++ src_width != obj_image->image.width || ++ src_height != obj_image->image.height) ++ return VA_STATUS_ERROR_OPERATION_FAILED; ++ if (dest_x != 0 || ++ dest_y != 0 || ++ dest_width != obj_surface->width || ++ dest_height != obj_surface->height) ++ return VA_STATUS_ERROR_OPERATION_FAILED; ++ if (src_width != dest_width || ++ src_height != dest_height) ++ return VA_STATUS_ERROR_OPERATION_FAILED; ++ ++ VAStatus va_status; ++ void *image_data = NULL; ++ ++ va_status = i965_MapBuffer(ctx, obj_image->image.buf, &image_data); ++ if (va_status != VA_STATUS_SUCCESS) ++ return va_status; ++ ++ dri_bo_map(obj_surface->bo, 1); ++ ++ switch (obj_image->image.format.fourcc) { ++ case VA_FOURCC('Y','V','1','2'): /* YV12 is native format here */ ++ memcpy(obj_surface->bo->virtual, image_data, obj_surface->bo->size); ++ break; ++ default: ++ va_status = VA_STATUS_ERROR_OPERATION_FAILED; ++ break; ++ } ++ ++ dri_bo_unmap(obj_surface->bo); ++ ++ i965_UnmapBuffer(ctx, obj_image->image.buf); ++ return va_status; ++} ++ ++VAStatus + i965_PutSurface(VADriverContextP ctx, + VASurfaceID surface, + Drawable draw, /* X Drawable */ +-- +1.5.4.3 + -- cgit v1.2.3