From eca21e63590c165c5aaf14cbd51c7f325b731aba Mon Sep 17 00:00:00 2001 From: Tom Zanussi Date: Mon, 20 Dec 2010 12:24:36 -0600 Subject: meta-emenlow: update to the new BSP layout This modifies the meta-emenlow BSP layer to reflect the new BSP standard layout as defined in the latestYocto BSP Developer's Guide. There's no change in functionality here - this simply moves things around, adds a README, and makes the SRCREVs local. Signed-off-by: Tom Zanussi --- meta-emenlow/README | 78 + meta-emenlow/binary/.gitignore | 0 meta-emenlow/conf/layer.conf | 4 +- meta-emenlow/conf/machine/emenlow.conf | 3 + .../formfactor/formfactor/emenlow/machconfig | 3 + .../recipes-bsp/formfactor/formfactor_0.0.bbappend | 3 + .../libdrm-poulsbo-2.3.0/libdrm-poulsbo.patch | 61 + .../libdrm-poulsbo/libdrm-poulsbo_2.3.0.bb | 19 + .../libva-0.31.0/033_g45_add_rgba_subpic.patch | 111 + .../034_g45_fix_return_for_unimpl.patch | 83 + .../035_g45_add_yv12_image_format.patch | 102 + .../libva-0.31.0/036_g45_add_vaGetImage.patch | 71 + .../libva-0.31.0/037_g45_add_vaPutImage.patch | 111 + .../038_g45_vaPutSurface_cliprects.patch | 531 ++++ .../libva-0.31.0/102_attribute_visibility.patch | 47 + .../libva/libva-0.31.0/103_fix_vainfo_deps.patch | 24 + .../104_fix_libva_pkgconfig_deps.patch | 18 + .../105_dont_search_LIBGL_DRIVERS_PATH.patch | 21 + .../libva/libva-0.31.0/108_drivers_path.patch | 25 + .../libva-0.31.0/203_fix_fglrx_detection.patch | 542 ++++ .../libva-0.31.0/204_check_ATIFGLEXTENSION.patch | 312 ++ .../libva/libva-0.31.0/300_sds_version.patch | 87 + .../libva/libva-0.31.0/301_vdpau_mpeg4.patch | 26 + .../320_move_vaPutSurface_flags_def.patch | 60 + .../libva/libva-0.31.0/321_libva_glx.base.patch | 212 ++ .../libva/libva-0.31.0/322_libva_glx.patch | 2024 ++++++++++++ .../libva/libva-0.31.0/390_compat.base.patch | 135 + .../libva/libva-0.31.0/391_compat.patch | 3273 ++++++++++++++++++++ .../libva/libva-0.31.0/392_compat.dso.patch | 183 ++ .../libva/libva-0.31.0/libdrm-poulsbo.patch | 26 + .../recipes-graphics/libva/libva_0.31.0.bb | 40 + .../psb-firmware/psb-firmware_0.30.bb | 15 + .../psb-kernel-source-4.42.0/build.patch | 175 ++ .../psb-kernel-source/psb-kernel-source_4.42.0.bb | 24 + .../xorg-xserver/files/crosscompile.patch | 19 + .../files/fix_open_max_preprocessor_error.patch | 13 + .../xorg-xserver/files/libdrm-poulsbo.patch | 26 + .../xorg-xserver/files/macro_tweak.patch | 18 + .../xorg-xserver/files/nodolt.patch | 12 + .../xorg-xserver/xserver-psb_1.7.99.2.bb | 21 + .../xserver-xf86-config/emenlow/xorg.conf | 13 + .../xorg-xserver/xserver-xf86-config_0.1.bbappend | 3 + .../xpsb-glx/xpsb-glx-0.18/cross-compile.patch | 58 + .../xpsb-glx/xpsb-glx-0.18/libdrmname.patch | 63 + .../xpsb-glx/xpsb-glx-0.18/native-matypes.patch | 20 + .../recipes-graphics/xpsb-glx/xpsb-glx_0.18.bb | 46 + .../01_disable_lid_timer.patch | 12 + .../xserver-xorg-video-psb-0.32.1/dri-h.patch | 20 + .../libdrm-poulsbo.patch | 13 + .../xserver-xorg-video-psb-0.32.1/psb_mixed.patch | 35 + .../psb_xvtempfix.patch | 17 + .../xserver-xorg-video-psb-0.32.1/stubs.patch | 23 + .../xserver-xorg-video-psb-0.32.1/visibility.patch | 12 + .../xorg-x11-drv-psb-0.31.0-ignoreacpi.patch | 11 + .../xorg-x11-drv-psb-0.31.0-xserver17.patch | 85 + .../xserver-xorg-video-psb-0.31.0-assert.patch | 11 + ...rver-xorg-video-psb-0.31.0-comment_unused.patch | 75 + .../xserver-xorg-video-psb-0.31.0-greedy.patch | 19 + .../xserver-xorg-video-psb-0.31.0-loader.patch | 84 + .../xserver-xorg-video-psb_0.32.1.bb | 34 + .../recipes-kernel/linux/linux-2.6.33.2/defconfig | 68 + .../linux/linux-yocto-stable_git.bbappend | 3 + .../recipes-kernel/linux/linux_2.6.33.2.bbappend | 3 + .../formfactor/formfactor/emenlow/machconfig | 3 - .../recipes/formfactor/formfactor_0.0.bbappend | 3 - .../libdrm-poulsbo-2.3.0/libdrm-poulsbo.patch | 61 - .../recipes/libdrm-poulsbo/libdrm-poulsbo_2.3.0.bb | 19 - .../libva-0.31.0/033_g45_add_rgba_subpic.patch | 111 - .../034_g45_fix_return_for_unimpl.patch | 83 - .../035_g45_add_yv12_image_format.patch | 102 - .../libva-0.31.0/036_g45_add_vaGetImage.patch | 71 - .../libva-0.31.0/037_g45_add_vaPutImage.patch | 111 - .../038_g45_vaPutSurface_cliprects.patch | 531 ---- .../libva-0.31.0/102_attribute_visibility.patch | 47 - .../libva/libva-0.31.0/103_fix_vainfo_deps.patch | 24 - .../104_fix_libva_pkgconfig_deps.patch | 18 - .../105_dont_search_LIBGL_DRIVERS_PATH.patch | 21 - .../libva/libva-0.31.0/108_drivers_path.patch | 25 - .../libva-0.31.0/203_fix_fglrx_detection.patch | 542 ---- .../libva-0.31.0/204_check_ATIFGLEXTENSION.patch | 312 -- .../libva/libva-0.31.0/300_sds_version.patch | 87 - .../libva/libva-0.31.0/301_vdpau_mpeg4.patch | 26 - .../320_move_vaPutSurface_flags_def.patch | 60 - .../libva/libva-0.31.0/321_libva_glx.base.patch | 212 -- .../recipes/libva/libva-0.31.0/322_libva_glx.patch | 2024 ------------ .../libva/libva-0.31.0/390_compat.base.patch | 135 - .../recipes/libva/libva-0.31.0/391_compat.patch | 3273 -------------------- .../libva/libva-0.31.0/392_compat.dso.patch | 183 -- .../libva/libva-0.31.0/libdrm-poulsbo.patch | 26 - meta-emenlow/recipes/libva/libva_0.31.0.bb | 40 - .../recipes/linux/linux-2.6.33.2/defconfig | 68 - .../recipes/linux/linux-yocto-stable_git.bbappend | 3 - meta-emenlow/recipes/linux/linux_2.6.33.2.bbappend | 3 - .../recipes/psb-firmware/psb-firmware_0.30.bb | 15 - .../psb-kernel-source-4.42.0/build.patch | 175 -- .../psb-kernel-source/psb-kernel-source_4.42.0.bb | 24 - .../recipes/xorg-xserver/files/crosscompile.patch | 19 - .../files/fix_open_max_preprocessor_error.patch | 13 - .../xorg-xserver/files/libdrm-poulsbo.patch | 26 - .../recipes/xorg-xserver/files/macro_tweak.patch | 18 - .../recipes/xorg-xserver/files/nodolt.patch | 12 - .../recipes/xorg-xserver/xserver-psb_1.7.99.2.bb | 21 - .../xserver-xf86-config/emenlow/xorg.conf | 13 - .../xorg-xserver/xserver-xf86-config_0.1.bbappend | 3 - .../xpsb-glx/xpsb-glx-0.18/cross-compile.patch | 58 - .../xpsb-glx/xpsb-glx-0.18/libdrmname.patch | 63 - .../xpsb-glx/xpsb-glx-0.18/native-matypes.patch | 20 - meta-emenlow/recipes/xpsb-glx/xpsb-glx_0.18.bb | 46 - .../01_disable_lid_timer.patch | 12 - .../xserver-xorg-video-psb-0.32.1/dri-h.patch | 20 - .../libdrm-poulsbo.patch | 13 - .../xserver-xorg-video-psb-0.32.1/psb_mixed.patch | 35 - .../psb_xvtempfix.patch | 17 - .../xserver-xorg-video-psb-0.32.1/stubs.patch | 23 - .../xserver-xorg-video-psb-0.32.1/visibility.patch | 12 - .../xorg-x11-drv-psb-0.31.0-ignoreacpi.patch | 11 - .../xorg-x11-drv-psb-0.31.0-xserver17.patch | 85 - .../xserver-xorg-video-psb-0.31.0-assert.patch | 11 - ...rver-xorg-video-psb-0.31.0-comment_unused.patch | 75 - .../xserver-xorg-video-psb-0.31.0-greedy.patch | 19 - .../xserver-xorg-video-psb-0.31.0-loader.patch | 84 - .../xserver-xorg-video-psb_0.32.1.bb | 34 - .../conf/distro/include/poky-default-revisions.inc | 1 - 123 files changed, 9284 insertions(+), 9204 deletions(-) create mode 100644 meta-emenlow/README create mode 100644 meta-emenlow/binary/.gitignore create mode 100644 meta-emenlow/recipes-bsp/formfactor/formfactor/emenlow/machconfig create mode 100644 meta-emenlow/recipes-bsp/formfactor/formfactor_0.0.bbappend create mode 100644 meta-emenlow/recipes-graphics/libdrm-poulsbo/libdrm-poulsbo-2.3.0/libdrm-poulsbo.patch create mode 100644 meta-emenlow/recipes-graphics/libdrm-poulsbo/libdrm-poulsbo_2.3.0.bb create mode 100644 meta-emenlow/recipes-graphics/libva/libva-0.31.0/033_g45_add_rgba_subpic.patch create mode 100644 meta-emenlow/recipes-graphics/libva/libva-0.31.0/034_g45_fix_return_for_unimpl.patch create mode 100644 meta-emenlow/recipes-graphics/libva/libva-0.31.0/035_g45_add_yv12_image_format.patch create mode 100644 meta-emenlow/recipes-graphics/libva/libva-0.31.0/036_g45_add_vaGetImage.patch create mode 100644 meta-emenlow/recipes-graphics/libva/libva-0.31.0/037_g45_add_vaPutImage.patch create mode 100644 meta-emenlow/recipes-graphics/libva/libva-0.31.0/038_g45_vaPutSurface_cliprects.patch create mode 100644 meta-emenlow/recipes-graphics/libva/libva-0.31.0/102_attribute_visibility.patch create mode 100644 meta-emenlow/recipes-graphics/libva/libva-0.31.0/103_fix_vainfo_deps.patch create mode 100644 meta-emenlow/recipes-graphics/libva/libva-0.31.0/104_fix_libva_pkgconfig_deps.patch create mode 100644 meta-emenlow/recipes-graphics/libva/libva-0.31.0/105_dont_search_LIBGL_DRIVERS_PATH.patch create mode 100644 meta-emenlow/recipes-graphics/libva/libva-0.31.0/108_drivers_path.patch create mode 100644 meta-emenlow/recipes-graphics/libva/libva-0.31.0/203_fix_fglrx_detection.patch create mode 100644 meta-emenlow/recipes-graphics/libva/libva-0.31.0/204_check_ATIFGLEXTENSION.patch create mode 100644 meta-emenlow/recipes-graphics/libva/libva-0.31.0/300_sds_version.patch create mode 100644 meta-emenlow/recipes-graphics/libva/libva-0.31.0/301_vdpau_mpeg4.patch create mode 100644 meta-emenlow/recipes-graphics/libva/libva-0.31.0/320_move_vaPutSurface_flags_def.patch create mode 100644 meta-emenlow/recipes-graphics/libva/libva-0.31.0/321_libva_glx.base.patch create mode 100644 meta-emenlow/recipes-graphics/libva/libva-0.31.0/322_libva_glx.patch create mode 100644 meta-emenlow/recipes-graphics/libva/libva-0.31.0/390_compat.base.patch create mode 100644 meta-emenlow/recipes-graphics/libva/libva-0.31.0/391_compat.patch create mode 100644 meta-emenlow/recipes-graphics/libva/libva-0.31.0/392_compat.dso.patch create mode 100644 meta-emenlow/recipes-graphics/libva/libva-0.31.0/libdrm-poulsbo.patch create mode 100644 meta-emenlow/recipes-graphics/libva/libva_0.31.0.bb create mode 100644 meta-emenlow/recipes-graphics/psb-firmware/psb-firmware_0.30.bb create mode 100644 meta-emenlow/recipes-graphics/psb-kernel-source/psb-kernel-source-4.42.0/build.patch create mode 100644 meta-emenlow/recipes-graphics/psb-kernel-source/psb-kernel-source_4.42.0.bb create mode 100644 meta-emenlow/recipes-graphics/xorg-xserver/files/crosscompile.patch create mode 100644 meta-emenlow/recipes-graphics/xorg-xserver/files/fix_open_max_preprocessor_error.patch create mode 100644 meta-emenlow/recipes-graphics/xorg-xserver/files/libdrm-poulsbo.patch create mode 100644 meta-emenlow/recipes-graphics/xorg-xserver/files/macro_tweak.patch create mode 100644 meta-emenlow/recipes-graphics/xorg-xserver/files/nodolt.patch create mode 100644 meta-emenlow/recipes-graphics/xorg-xserver/xserver-psb_1.7.99.2.bb create mode 100644 meta-emenlow/recipes-graphics/xorg-xserver/xserver-xf86-config/emenlow/xorg.conf create mode 100644 meta-emenlow/recipes-graphics/xorg-xserver/xserver-xf86-config_0.1.bbappend create mode 100644 meta-emenlow/recipes-graphics/xpsb-glx/xpsb-glx-0.18/cross-compile.patch create mode 100644 meta-emenlow/recipes-graphics/xpsb-glx/xpsb-glx-0.18/libdrmname.patch create mode 100644 meta-emenlow/recipes-graphics/xpsb-glx/xpsb-glx-0.18/native-matypes.patch create mode 100644 meta-emenlow/recipes-graphics/xpsb-glx/xpsb-glx_0.18.bb create mode 100644 meta-emenlow/recipes-graphics/xserver-xorg-video-psb/xserver-xorg-video-psb-0.32.1/01_disable_lid_timer.patch create mode 100644 meta-emenlow/recipes-graphics/xserver-xorg-video-psb/xserver-xorg-video-psb-0.32.1/dri-h.patch create mode 100644 meta-emenlow/recipes-graphics/xserver-xorg-video-psb/xserver-xorg-video-psb-0.32.1/libdrm-poulsbo.patch create mode 100644 meta-emenlow/recipes-graphics/xserver-xorg-video-psb/xserver-xorg-video-psb-0.32.1/psb_mixed.patch create mode 100644 meta-emenlow/recipes-graphics/xserver-xorg-video-psb/xserver-xorg-video-psb-0.32.1/psb_xvtempfix.patch create mode 100644 meta-emenlow/recipes-graphics/xserver-xorg-video-psb/xserver-xorg-video-psb-0.32.1/stubs.patch create mode 100644 meta-emenlow/recipes-graphics/xserver-xorg-video-psb/xserver-xorg-video-psb-0.32.1/visibility.patch create mode 100644 meta-emenlow/recipes-graphics/xserver-xorg-video-psb/xserver-xorg-video-psb-0.32.1/xorg-x11-drv-psb-0.31.0-ignoreacpi.patch create mode 100644 meta-emenlow/recipes-graphics/xserver-xorg-video-psb/xserver-xorg-video-psb-0.32.1/xorg-x11-drv-psb-0.31.0-xserver17.patch create mode 100644 meta-emenlow/recipes-graphics/xserver-xorg-video-psb/xserver-xorg-video-psb-0.32.1/xserver-xorg-video-psb-0.31.0-assert.patch create mode 100644 meta-emenlow/recipes-graphics/xserver-xorg-video-psb/xserver-xorg-video-psb-0.32.1/xserver-xorg-video-psb-0.31.0-comment_unused.patch create mode 100644 meta-emenlow/recipes-graphics/xserver-xorg-video-psb/xserver-xorg-video-psb-0.32.1/xserver-xorg-video-psb-0.31.0-greedy.patch create mode 100644 meta-emenlow/recipes-graphics/xserver-xorg-video-psb/xserver-xorg-video-psb-0.32.1/xserver-xorg-video-psb-0.31.0-loader.patch create mode 100644 meta-emenlow/recipes-graphics/xserver-xorg-video-psb/xserver-xorg-video-psb_0.32.1.bb create mode 100644 meta-emenlow/recipes-kernel/linux/linux-2.6.33.2/defconfig create mode 100644 meta-emenlow/recipes-kernel/linux/linux-yocto-stable_git.bbappend create mode 100644 meta-emenlow/recipes-kernel/linux/linux_2.6.33.2.bbappend delete mode 100644 meta-emenlow/recipes/formfactor/formfactor/emenlow/machconfig delete mode 100644 meta-emenlow/recipes/formfactor/formfactor_0.0.bbappend delete mode 100644 meta-emenlow/recipes/libdrm-poulsbo/libdrm-poulsbo-2.3.0/libdrm-poulsbo.patch delete mode 100644 meta-emenlow/recipes/libdrm-poulsbo/libdrm-poulsbo_2.3.0.bb delete mode 100644 meta-emenlow/recipes/libva/libva-0.31.0/033_g45_add_rgba_subpic.patch delete mode 100644 meta-emenlow/recipes/libva/libva-0.31.0/034_g45_fix_return_for_unimpl.patch delete mode 100644 meta-emenlow/recipes/libva/libva-0.31.0/035_g45_add_yv12_image_format.patch delete mode 100644 meta-emenlow/recipes/libva/libva-0.31.0/036_g45_add_vaGetImage.patch delete mode 100644 meta-emenlow/recipes/libva/libva-0.31.0/037_g45_add_vaPutImage.patch delete mode 100644 meta-emenlow/recipes/libva/libva-0.31.0/038_g45_vaPutSurface_cliprects.patch delete mode 100644 meta-emenlow/recipes/libva/libva-0.31.0/102_attribute_visibility.patch delete mode 100644 meta-emenlow/recipes/libva/libva-0.31.0/103_fix_vainfo_deps.patch delete mode 100644 meta-emenlow/recipes/libva/libva-0.31.0/104_fix_libva_pkgconfig_deps.patch delete mode 100644 meta-emenlow/recipes/libva/libva-0.31.0/105_dont_search_LIBGL_DRIVERS_PATH.patch delete mode 100644 meta-emenlow/recipes/libva/libva-0.31.0/108_drivers_path.patch delete mode 100644 meta-emenlow/recipes/libva/libva-0.31.0/203_fix_fglrx_detection.patch delete mode 100644 meta-emenlow/recipes/libva/libva-0.31.0/204_check_ATIFGLEXTENSION.patch delete mode 100644 meta-emenlow/recipes/libva/libva-0.31.0/300_sds_version.patch delete mode 100644 meta-emenlow/recipes/libva/libva-0.31.0/301_vdpau_mpeg4.patch delete mode 100644 meta-emenlow/recipes/libva/libva-0.31.0/320_move_vaPutSurface_flags_def.patch delete mode 100644 meta-emenlow/recipes/libva/libva-0.31.0/321_libva_glx.base.patch delete mode 100644 meta-emenlow/recipes/libva/libva-0.31.0/322_libva_glx.patch delete mode 100644 meta-emenlow/recipes/libva/libva-0.31.0/390_compat.base.patch delete mode 100644 meta-emenlow/recipes/libva/libva-0.31.0/391_compat.patch delete mode 100644 meta-emenlow/recipes/libva/libva-0.31.0/392_compat.dso.patch delete mode 100644 meta-emenlow/recipes/libva/libva-0.31.0/libdrm-poulsbo.patch delete mode 100644 meta-emenlow/recipes/libva/libva_0.31.0.bb delete mode 100644 meta-emenlow/recipes/linux/linux-2.6.33.2/defconfig delete mode 100644 meta-emenlow/recipes/linux/linux-yocto-stable_git.bbappend delete mode 100644 meta-emenlow/recipes/linux/linux_2.6.33.2.bbappend delete mode 100644 meta-emenlow/recipes/psb-firmware/psb-firmware_0.30.bb delete mode 100644 meta-emenlow/recipes/psb-kernel-source/psb-kernel-source-4.42.0/build.patch delete mode 100644 meta-emenlow/recipes/psb-kernel-source/psb-kernel-source_4.42.0.bb delete mode 100644 meta-emenlow/recipes/xorg-xserver/files/crosscompile.patch delete mode 100644 meta-emenlow/recipes/xorg-xserver/files/fix_open_max_preprocessor_error.patch delete mode 100644 meta-emenlow/recipes/xorg-xserver/files/libdrm-poulsbo.patch delete mode 100644 meta-emenlow/recipes/xorg-xserver/files/macro_tweak.patch delete mode 100644 meta-emenlow/recipes/xorg-xserver/files/nodolt.patch delete mode 100644 meta-emenlow/recipes/xorg-xserver/xserver-psb_1.7.99.2.bb delete mode 100644 meta-emenlow/recipes/xorg-xserver/xserver-xf86-config/emenlow/xorg.conf delete mode 100644 meta-emenlow/recipes/xorg-xserver/xserver-xf86-config_0.1.bbappend delete mode 100644 meta-emenlow/recipes/xpsb-glx/xpsb-glx-0.18/cross-compile.patch delete mode 100644 meta-emenlow/recipes/xpsb-glx/xpsb-glx-0.18/libdrmname.patch delete mode 100644 meta-emenlow/recipes/xpsb-glx/xpsb-glx-0.18/native-matypes.patch delete mode 100644 meta-emenlow/recipes/xpsb-glx/xpsb-glx_0.18.bb delete mode 100644 meta-emenlow/recipes/xserver-xorg-video-psb/xserver-xorg-video-psb-0.32.1/01_disable_lid_timer.patch delete mode 100644 meta-emenlow/recipes/xserver-xorg-video-psb/xserver-xorg-video-psb-0.32.1/dri-h.patch delete mode 100644 meta-emenlow/recipes/xserver-xorg-video-psb/xserver-xorg-video-psb-0.32.1/libdrm-poulsbo.patch delete mode 100644 meta-emenlow/recipes/xserver-xorg-video-psb/xserver-xorg-video-psb-0.32.1/psb_mixed.patch delete mode 100644 meta-emenlow/recipes/xserver-xorg-video-psb/xserver-xorg-video-psb-0.32.1/psb_xvtempfix.patch delete mode 100644 meta-emenlow/recipes/xserver-xorg-video-psb/xserver-xorg-video-psb-0.32.1/stubs.patch delete mode 100644 meta-emenlow/recipes/xserver-xorg-video-psb/xserver-xorg-video-psb-0.32.1/visibility.patch delete mode 100644 meta-emenlow/recipes/xserver-xorg-video-psb/xserver-xorg-video-psb-0.32.1/xorg-x11-drv-psb-0.31.0-ignoreacpi.patch delete mode 100644 meta-emenlow/recipes/xserver-xorg-video-psb/xserver-xorg-video-psb-0.32.1/xorg-x11-drv-psb-0.31.0-xserver17.patch delete mode 100644 meta-emenlow/recipes/xserver-xorg-video-psb/xserver-xorg-video-psb-0.32.1/xserver-xorg-video-psb-0.31.0-assert.patch delete mode 100644 meta-emenlow/recipes/xserver-xorg-video-psb/xserver-xorg-video-psb-0.32.1/xserver-xorg-video-psb-0.31.0-comment_unused.patch delete mode 100644 meta-emenlow/recipes/xserver-xorg-video-psb/xserver-xorg-video-psb-0.32.1/xserver-xorg-video-psb-0.31.0-greedy.patch delete mode 100644 meta-emenlow/recipes/xserver-xorg-video-psb/xserver-xorg-video-psb-0.32.1/xserver-xorg-video-psb-0.31.0-loader.patch delete mode 100644 meta-emenlow/recipes/xserver-xorg-video-psb/xserver-xorg-video-psb_0.32.1.bb diff --git a/meta-emenlow/README b/meta-emenlow/README new file mode 100644 index 0000000000..862af5481b --- /dev/null +++ b/meta-emenlow/README @@ -0,0 +1,78 @@ +This README file contains information on building the meta-emenlow +BSP layer using any of the supported machine configurations, and +booting the images contained in the /binary directory. + +If you're only interested in booting the images in the /binary +directory of a BSP tarball you've downloaded, there's nothing special +to do - the appropriate images are already in the /binary directory +depending on which BSP tarball you downloaded. + +Please see the corresponding sections below for details. + + +Table of Contents +================= + + I. Building the meta-emenlow BSP layer +II. Booting the images in /binary + + +I. Building the meta-emenlow BSP layer +======================================= + +In order to build an image with BSP support for emenlow, you just need +to check out the poky master branch. + +Having done that, you can build an emenlow image by adding the +location of the meta-emenlow layer to bblayers.conf e.g.: + + yocto/meta-emenlow \ + +To enable the emenlow layer, add the emenlow MACHINE to local.conf: + + MACHINE ?= "emenlow" + +You should then be able to build an emenlow image as such: + + $ source poky-init-build-env + $ bitbake poky-image-sato-live + +At the end of a successful build, you should have a live image that +you can boot from a USB flash drive (see instructions on how to do +that below, in the section 'Booting the images from /binary'). + + +II. Booting the images in /binary +================================= + +This BSP contains bootable live images, which can be used to directly +boot Yocto off of a USB flash drive. + +Under Linux, insert a USB flash drive. Assuming the USB flash drive +takes device /dev/sdf, use dd to copy the live image to it. For +example: + +# dd if=poky-image-sato-live-emenlow-20101207053738.hddimg of=/dev/sdf +# sync +# eject /dev/sdf + +This should give you a bootable USB flash device. Insert the device +into a bootable USB socket on the target, and power on. This should +result in a system booted to the Sato graphical desktop. + +If you want a terminal, use the arrows at the top of the UI to move to +different pages of available applications, one of which is named +'Terminal'. Clicking that should give you a root terminal. + +If you want to ssh into the system, you can use the root terminal to +ifconfig the IP address and use that to ssh in. The root password is +empty, so to log in type 'root' for the user name and hit 'Enter' at +the Password prompt: and you should be in. + +---- + +If you find you're getting corrupt images on the USB (it doesn't show +the syslinux boot: prompt, or the boot: prompt contains strange +characters), try doing this first: + +# dd if=/dev/zero of=/dev/sdf bs=1M count=512 diff --git a/meta-emenlow/binary/.gitignore b/meta-emenlow/binary/.gitignore new file mode 100644 index 0000000000..e69de29bb2 diff --git a/meta-emenlow/conf/layer.conf b/meta-emenlow/conf/layer.conf index 4017787c62..563b9c8e6e 100644 --- a/meta-emenlow/conf/layer.conf +++ b/meta-emenlow/conf/layer.conf @@ -2,8 +2,8 @@ BBPATH := "${BBPATH}:${LAYERDIR}" # We have a packages directory, add to BBFILES -BBFILES := "${BBFILES} ${LAYERDIR}/recipes/*/*.bb \ - ${LAYERDIR}/recipes/*/*.bbappend" +BBFILES := "${BBFILES} ${LAYERDIR}/recipes-*/*/*.bb \ + ${LAYERDIR}/recipes-*/*/*.bbappend" BBFILE_COLLECTIONS += "emenlow" BBFILE_PATTERN_emenlow := "^${LAYERDIR}/" diff --git a/meta-emenlow/conf/machine/emenlow.conf b/meta-emenlow/conf/machine/emenlow.conf index b8dea64038..d4234ffba7 100644 --- a/meta-emenlow/conf/machine/emenlow.conf +++ b/meta-emenlow/conf/machine/emenlow.conf @@ -43,3 +43,6 @@ IMAGE_FSTYPES ?= "ext3 cpio.gz" GLIBC_ADDONS = "nptl" GLIBC_EXTRA_OECONF = "--with-tls" + +SRCREV_machine_pn-linux-yocto-stable_emenlow ?= "aae69fdf104b0a9d7b3710f808aac6ab303490f7" +SRCREV_meta_pn-linux-yocto-stable_emenlow ?= "50ccd2b3213b6a1bacb3f898c035119802dac420" \ No newline at end of file diff --git a/meta-emenlow/recipes-bsp/formfactor/formfactor/emenlow/machconfig b/meta-emenlow/recipes-bsp/formfactor/formfactor/emenlow/machconfig new file mode 100644 index 0000000000..ffce012270 --- /dev/null +++ b/meta-emenlow/recipes-bsp/formfactor/formfactor/emenlow/machconfig @@ -0,0 +1,3 @@ +# Assume a USB mouse and keyboard are connected +HAVE_TOUCHSCREEN=0 +HAVE_KEYBOARD=1 diff --git a/meta-emenlow/recipes-bsp/formfactor/formfactor_0.0.bbappend b/meta-emenlow/recipes-bsp/formfactor/formfactor_0.0.bbappend new file mode 100644 index 0000000000..4a41d4871d --- /dev/null +++ b/meta-emenlow/recipes-bsp/formfactor/formfactor_0.0.bbappend @@ -0,0 +1,3 @@ +FILESEXTRAPATHS := "${THISDIR}/${PN}" + +PRINC = "1" diff --git a/meta-emenlow/recipes-graphics/libdrm-poulsbo/libdrm-poulsbo-2.3.0/libdrm-poulsbo.patch b/meta-emenlow/recipes-graphics/libdrm-poulsbo/libdrm-poulsbo-2.3.0/libdrm-poulsbo.patch new file mode 100644 index 0000000000..14bde6887a --- /dev/null +++ b/meta-emenlow/recipes-graphics/libdrm-poulsbo/libdrm-poulsbo-2.3.0/libdrm-poulsbo.patch @@ -0,0 +1,61 @@ +# Make this package produce libdrm-poulsbo instead of libdrm so that the +# emenlow libdrm can coexist with the normal libdrm. +# jdike@linux.intel.com + +Index: libdrm-poulsbo-2.3.0/configure.ac +=================================================================== +--- libdrm-poulsbo-2.3.0.orig/configure.ac ++++ libdrm-poulsbo-2.3.0/configure.ac +@@ -19,7 +19,7 @@ + # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + AC_PREREQ(2.57) +-AC_INIT([libdrm], 2.3.1, [dri-devel@lists.sourceforge.net], libdrm) ++AC_INIT([libdrm_poulsbo], 2.3.1, [dri-devel@lists.sourceforge.net], libdrm_poulsbo) + AC_CONFIG_SRCDIR([Makefile.am]) + AM_INIT_AUTOMAKE([dist-bzip2]) + +@@ -35,4 +35,4 @@ AC_SYS_LARGEFILE + pkgconfigdir=${libdir}/pkgconfig + AC_SUBST(pkgconfigdir) + +-AC_OUTPUT([Makefile libdrm/Makefile shared-core/Makefile libdrm.pc]) ++AC_OUTPUT([Makefile libdrm/Makefile shared-core/Makefile libdrm_poulsbo.pc]) +Index: libdrm-poulsbo-2.3.0/Makefile.am +=================================================================== +--- libdrm-poulsbo-2.3.0.orig/Makefile.am ++++ libdrm-poulsbo-2.3.0/Makefile.am +@@ -25,6 +25,6 @@ AUTOMAKE_OPTIONS = foreign + SUBDIRS = libdrm shared-core + + pkgconfigdir = @pkgconfigdir@ +-pkgconfig_DATA = libdrm.pc ++pkgconfig_DATA = libdrm_poulsbo.pc + +-EXTRA_DIST = libdrm.pc.in ++EXTRA_DIST = libdrm_poulsbo.pc.in +Index: libdrm-poulsbo-2.3.0/libdrm/Makefile.am +=================================================================== +--- libdrm-poulsbo-2.3.0.orig/libdrm/Makefile.am ++++ libdrm-poulsbo-2.3.0/libdrm/Makefile.am +@@ -18,14 +18,14 @@ + # IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +-libdrm_la_LTLIBRARIES = libdrm.la +-libdrm_ladir = $(libdir) +-libdrm_la_LDFLAGS = -version-number 2:3:0 -no-undefined ++libdrm_poulsbo_la_LTLIBRARIES = libdrm_poulsbo.la ++libdrm_poulsbo_ladir = $(libdir) ++libdrm_poulsbo_la_LDFLAGS = -version-number 2:3:0 -no-undefined + + AM_CFLAGS = -I$(top_srcdir)/shared-core +-libdrm_la_SOURCES = xf86drm.c xf86drmHash.c xf86drmRandom.c xf86drmSL.c xf86drmMode.c ++libdrm_poulsbo_la_SOURCES = xf86drm.c xf86drmHash.c xf86drmRandom.c xf86drmSL.c xf86drmMode.c + +-libdrmincludedir = ${includedir}/psb +-libdrminclude_HEADERS = xf86drm.h xf86mm.h xf86drmMode.h ++libdrm_poulsboincludedir = ${includedir}/psb ++libdrm_poulsboinclude_HEADERS = xf86drm.h xf86mm.h xf86drmMode.h + + EXTRA_DIST = ChangeLog TODO diff --git a/meta-emenlow/recipes-graphics/libdrm-poulsbo/libdrm-poulsbo_2.3.0.bb b/meta-emenlow/recipes-graphics/libdrm-poulsbo/libdrm-poulsbo_2.3.0.bb new file mode 100644 index 0000000000..d0e14a5622 --- /dev/null +++ b/meta-emenlow/recipes-graphics/libdrm-poulsbo/libdrm-poulsbo_2.3.0.bb @@ -0,0 +1,19 @@ +DESCRIPTION = "Userspace interface to kernel DRM services" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://MIT_License.txt;md5=732825ecdcf420261531d935fcd914a7" +PR = "r4" + +PROVIDES = "libdrm-poulsbo" + +inherit autotools pkgconfig + +SRC_URI = "https://launchpad.net/~gma500/+archive/ppa/+files/libdrm-poulsbo_2.3.0-1ubuntu0sarvatt4~1004um1ubuntu1.tar.gz \ + file://libdrm-poulsbo.patch" + +SRC_URI[md5sum] = "82c00bb9f1239f1d00b18411b89c2380" +SRC_URI[sha256sum] = "335d4ac6694687475efe07b44a2d77a9a9fadcbc16946d01ea8a02339ae7d9ec" + +do_configure_prepend() { + sed -e 's/-ldrm/-ldrm_poulsbo/' -e 's/libdrm/libdrm_poulsbo/' \ + < ${S}/libdrm.pc.in > ${S}/libdrm_poulsbo.pc.in +} diff --git a/meta-emenlow/recipes-graphics/libva/libva-0.31.0/033_g45_add_rgba_subpic.patch b/meta-emenlow/recipes-graphics/libva/libva-0.31.0/033_g45_add_rgba_subpic.patch new file mode 100644 index 0000000000..1b928b4c09 --- /dev/null +++ b/meta-emenlow/recipes-graphics/libva/libva-0.31.0/033_g45_add_rgba_subpic.patch @@ -0,0 +1,111 @@ +From 6622e8eba85cea476f8ef5b8c3620c4a0f024dcd Mon Sep 17 00:00:00 2001 +From: Gwenole Beauchesne +Date: Wed, 4 Nov 2009 10:56:54 +0000 +Subject: [PATCH] [G45] Add RGBA subpictures. + +--- + i965_drv_video/i965_drv_video.c | 18 ++++++++++++++++++ + i965_drv_video/i965_drv_video.h | 3 ++- + i965_drv_video/i965_render.c | 8 ++++---- + 3 files changed, 24 insertions(+), 5 deletions(-) + +diff --git a/i965_drv_video/i965_drv_video.c b/i965_drv_video/i965_drv_video.c +index 8f4bfc1..92c4785 100644 +--- a/i965_drv_video/i965_drv_video.c ++++ b/i965_drv_video/i965_drv_video.c +@@ -70,6 +70,14 @@ i965_subpic_formats_map[I965_MAX_SUBPIC_FORMATS + 1] = { + { I965_SURFACETYPE_INDEXED, I965_SURFACEFORMAT_A4P4_UNORM, + { VA_FOURCC('A','I','4','4'), VA_MSB_FIRST, 8, }, + 0 }, ++ { I965_SURFACETYPE_RGBA, I965_SURFACEFORMAT_B8G8R8A8_UNORM, ++ { VA_FOURCC('B','G','R','A'), VA_LSB_FIRST, 32, ++ 32, 0x00ff0000, 0x0000ff00, 0x000000ff, 0xff000000 }, ++ 0 }, ++ { I965_SURFACETYPE_RGBA, I965_SURFACEFORMAT_R8G8B8A8_UNORM, ++ { VA_FOURCC('R','G','B','A'), VA_LSB_FIRST, 32, ++ 32, 0x000000ff, 0x0000ff00, 0x00ff0000, 0xff000000 }, ++ 0 }, + }; + + static const i965_subpic_format_map_t * +@@ -467,6 +475,7 @@ i965_CreateSubpicture(VADriverContextP ctx, + obj_subpic->format = m->format; + obj_subpic->width = obj_image->image.width; + obj_subpic->height = obj_image->image.height; ++ obj_subpic->pitch = obj_image->image.pitches[0]; + obj_subpic->bo = obj_image->bo; + return VA_STATUS_SUCCESS; + } +@@ -1218,6 +1227,15 @@ i965_CreateImage(VADriverContextP ctx, + image->component_order[1] = 'G'; + image->component_order[2] = 'B'; + break; ++ case VA_FOURCC('A','R','G','B'): ++ case VA_FOURCC('A','B','G','R'): ++ case VA_FOURCC('B','G','R','A'): ++ case VA_FOURCC('R','G','B','A'): ++ image->num_planes = 1; ++ image->pitches[0] = width * 4; ++ image->offsets[0] = 0; ++ image->data_size = image->offsets[0] + image->pitches[0] * height; ++ break; + default: + goto error; + } +diff --git a/i965_drv_video/i965_drv_video.h b/i965_drv_video/i965_drv_video.h +index c95c799..4d775da 100644 +--- a/i965_drv_video/i965_drv_video.h ++++ b/i965_drv_video/i965_drv_video.h +@@ -42,7 +42,7 @@ + #define I965_MAX_ENTRYPOINTS 5 + #define I965_MAX_CONFIG_ATTRIBUTES 10 + #define I965_MAX_IMAGE_FORMATS 10 +-#define I965_MAX_SUBPIC_FORMATS 2 ++#define I965_MAX_SUBPIC_FORMATS 4 + #define I965_MAX_DISPLAY_ATTRIBUTES 4 + #define I965_STR_VENDOR "i965 Driver 0.1" + +@@ -124,6 +124,7 @@ struct object_subpic + unsigned int format; + int width; + int height; ++ int pitch; + dri_bo *bo; + }; + +diff --git a/i965_drv_video/i965_render.c b/i965_drv_video/i965_render.c +index f105e90..0476087 100644 +--- a/i965_drv_video/i965_render.c ++++ b/i965_drv_video/i965_render.c +@@ -586,7 +586,7 @@ i965_subpic_render_src_surface_state(VADriverContextP ctx, + int index, + dri_bo *region, + unsigned long offset, +- int w, int h, int format) ++ int w, int h, int p, int format) + { + struct i965_driver_data *i965 = i965_driver_data(ctx); + struct i965_render_state *render_state = &i965->render_state; +@@ -620,7 +620,7 @@ i965_subpic_render_src_surface_state(VADriverContextP ctx, + ss->ss2.mip_count = 0; + ss->ss2.render_target_rotation = 0; + +- ss->ss3.pitch = w - 1; ++ ss->ss3.pitch = p - 1; + + dri_bo_emit_reloc(ss_bo, + I915_GEM_DOMAIN_SAMPLER, 0, +@@ -678,8 +678,8 @@ i965_subpic_render_src_surfaces_state(VADriverContextP ctx, + region = obj_surface->bo; + subpic_region = obj_image->bo; + /*subpicture surface*/ +- i965_subpic_render_src_surface_state(ctx, 1, subpic_region, 0, obj_subpic->width, obj_subpic->height, obj_subpic->format); +- i965_subpic_render_src_surface_state(ctx, 2, subpic_region, 0, obj_subpic->width, obj_subpic->height, obj_subpic->format); ++ i965_subpic_render_src_surface_state(ctx, 1, subpic_region, 0, obj_subpic->width, obj_subpic->height, obj_subpic->pitch, obj_subpic->format); ++ i965_subpic_render_src_surface_state(ctx, 2, subpic_region, 0, obj_subpic->width, obj_subpic->height, obj_subpic->pitch, obj_subpic->format); + } + + static void +-- +1.5.4.3 + diff --git a/meta-emenlow/recipes-graphics/libva/libva-0.31.0/034_g45_fix_return_for_unimpl.patch b/meta-emenlow/recipes-graphics/libva/libva-0.31.0/034_g45_fix_return_for_unimpl.patch new file mode 100644 index 0000000000..a4612133bb --- /dev/null +++ b/meta-emenlow/recipes-graphics/libva/libva-0.31.0/034_g45_fix_return_for_unimpl.patch @@ -0,0 +1,83 @@ +From 3935c6a836b8f90947f0af658a76b97a08a03c67 Mon Sep 17 00:00:00 2001 +From: Gwenole Beauchesne +Date: Wed, 4 Nov 2009 13:23:40 +0000 +Subject: [PATCH] [G45] Don't return VA_STATUS_SUCCESS for unimplemented functions. + +--- + i965_drv_video/i965_drv_video.c | 18 +++++++++++------- + 1 files changed, 11 insertions(+), 7 deletions(-) + +diff --git a/i965_drv_video/i965_drv_video.c b/i965_drv_video/i965_drv_video.c +index 10baffb..d8a7bd1 100644 +--- a/i965_drv_video/i965_drv_video.c ++++ b/i965_drv_video/i965_drv_video.c +@@ -534,7 +534,8 @@ i965_SetSubpictureImage(VADriverContextP ctx, + VASubpictureID subpicture, + VAImageID image) + { +- return VA_STATUS_SUCCESS; ++ /* TODO */ ++ return VA_STATUS_ERROR_UNIMPLEMENTED; + } + + VAStatus +@@ -544,7 +545,8 @@ i965_SetSubpictureChromakey(VADriverContextP ctx, + unsigned int chromakey_max, + unsigned int chromakey_mask) + { +- return VA_STATUS_SUCCESS; ++ /* TODO */ ++ return VA_STATUS_ERROR_UNIMPLEMENTED; + } + + VAStatus +@@ -552,7 +554,8 @@ i965_SetSubpictureGlobalAlpha(VADriverContextP ctx, + VASubpictureID subpicture, + float global_alpha) + { +- return VA_STATUS_SUCCESS; ++ /* TODO */ ++ return VA_STATUS_ERROR_UNIMPLEMENTED; + } + + VAStatus +@@ -1141,7 +1144,7 @@ i965_GetDisplayAttributes(VADriverContextP ctx, + int num_attributes) + { + /* TODO */ +- return VA_STATUS_ERROR_UNKNOWN; ++ return VA_STATUS_ERROR_UNIMPLEMENTED; + } + + /* +@@ -1156,7 +1159,7 @@ i965_SetDisplayAttributes(VADriverContextP ctx, + int num_attributes) + { + /* TODO */ +- return VA_STATUS_ERROR_UNKNOWN; ++ return VA_STATUS_ERROR_UNIMPLEMENTED; + } + + VAStatus +@@ -1166,7 +1169,7 @@ i965_DbgCopySurfaceToBuffer(VADriverContextP ctx, + unsigned int *stride) /* out */ + { + /* TODO */ +- return VA_STATUS_ERROR_UNKNOWN; ++ return VA_STATUS_ERROR_UNIMPLEMENTED; + } + + static VAStatus +@@ -1318,7 +1321,8 @@ VAStatus i965_DeriveImage(VADriverContextP ctx, + VASurfaceID surface, + VAImage *image) /* out */ + { +- return VA_STATUS_SUCCESS; ++ /* TODO */ ++ return VA_STATUS_ERROR_OPERATION_FAILED; + } + + static void +-- +1.5.4.3 + diff --git a/meta-emenlow/recipes-graphics/libva/libva-0.31.0/035_g45_add_yv12_image_format.patch b/meta-emenlow/recipes-graphics/libva/libva-0.31.0/035_g45_add_yv12_image_format.patch new file mode 100644 index 0000000000..92d814c1a8 --- /dev/null +++ b/meta-emenlow/recipes-graphics/libva/libva-0.31.0/035_g45_add_yv12_image_format.patch @@ -0,0 +1,102 @@ +From 23b23e8d65551779f10aedddee7882c2e71ac162 Mon Sep 17 00:00:00 2001 +From: Gwenole Beauchesne +Date: Wed, 4 Nov 2009 13:01:44 +0000 +Subject: [PATCH] [G45] Add YV12 image format. + +--- + i965_drv_video/i965_drv_video.c | 50 ++++++++++++++++++++++++++++++++++++++- + i965_drv_video/i965_drv_video.h | 2 +- + 2 files changed, 50 insertions(+), 2 deletions(-) + +diff --git a/i965_drv_video/i965_drv_video.c b/i965_drv_video/i965_drv_video.c +index 1f026bc..8558d0e 100644 +--- a/i965_drv_video/i965_drv_video.c ++++ b/i965_drv_video/i965_drv_video.c +@@ -54,6 +54,36 @@ enum { + I965_SURFACETYPE_INDEXED + }; + ++/* List of supported image formats */ ++typedef struct { ++ unsigned int type; ++ VAImageFormat va_format; ++} i965_image_format_map_t; ++ ++static const i965_image_format_map_t ++i965_image_formats_map[I965_MAX_IMAGE_FORMATS + 1] = { ++ { I965_SURFACETYPE_YUV, ++ { VA_FOURCC('Y','V','1','2'), VA_LSB_FIRST, 12, } }, ++}; ++ ++static const i965_image_format_map_t * ++get_image_format(const VAImageFormat *va_format) ++{ ++ unsigned int i; ++ for (i = 0; i965_image_formats_map[i].type != 0; i++) { ++ const i965_image_format_map_t * const m = &i965_image_formats_map[i]; ++ if (m->va_format.fourcc == va_format->fourcc && ++ (m->type == I965_SURFACETYPE_RGBA ? ++ (m->va_format.byte_order == va_format->byte_order && ++ m->va_format.red_mask == va_format->red_mask && ++ m->va_format.green_mask == va_format->green_mask && ++ m->va_format.blue_mask == va_format->blue_mask && ++ m->va_format.alpha_mask == va_format->alpha_mask) : 1)) ++ return m; ++ } ++ return NULL; ++} ++ + /* List of supported subpicture formats */ + typedef struct { + unsigned int type; +@@ -398,8 +428,16 @@ i965_QueryImageFormats(VADriverContextP ctx, + VAImageFormat *format_list, /* out */ + int *num_formats) /* out */ + { ++ int n; ++ ++ for (n = 0; i965_image_formats_map[n].va_format.fourcc != 0; n++) { ++ const i965_image_format_map_t * const m = &i965_image_formats_map[n]; ++ if (format_list) ++ format_list[n] = m->va_format; ++ } ++ + if (num_formats) +- *num_formats = 0; ++ *num_formats = n; + + return VA_STATUS_SUCCESS; + } +@@ -1236,6 +1274,16 @@ i965_CreateImage(VADriverContextP ctx, + image->offsets[0] = 0; + image->data_size = image->offsets[0] + image->pitches[0] * height; + break; ++ case VA_FOURCC('Y','V','1','2'): ++ image->num_planes = 3; ++ image->pitches[0] = width; ++ image->offsets[0] = 0; ++ image->pitches[1] = width2; ++ image->offsets[1] = size; ++ image->pitches[2] = width2; ++ image->offsets[2] = size + size2; ++ image->data_size = size + 2 * size2; ++ break; + default: + goto error; + } +diff --git a/i965_drv_video/i965_drv_video.h b/i965_drv_video/i965_drv_video.h +index 4d775da..f512793 100644 +--- a/i965_drv_video/i965_drv_video.h ++++ b/i965_drv_video/i965_drv_video.h +@@ -41,7 +41,7 @@ + #define I965_MAX_PROFILES 11 + #define I965_MAX_ENTRYPOINTS 5 + #define I965_MAX_CONFIG_ATTRIBUTES 10 +-#define I965_MAX_IMAGE_FORMATS 10 ++#define I965_MAX_IMAGE_FORMATS 1 + #define I965_MAX_SUBPIC_FORMATS 4 + #define I965_MAX_DISPLAY_ATTRIBUTES 4 + #define I965_STR_VENDOR "i965 Driver 0.1" +-- +1.5.4.3 + diff --git a/meta-emenlow/recipes-graphics/libva/libva-0.31.0/036_g45_add_vaGetImage.patch b/meta-emenlow/recipes-graphics/libva/libva-0.31.0/036_g45_add_vaGetImage.patch new file mode 100644 index 0000000000..dc25d9f9e9 --- /dev/null +++ b/meta-emenlow/recipes-graphics/libva/libva-0.31.0/036_g45_add_vaGetImage.patch @@ -0,0 +1,71 @@ +From 37f40c0cdc9667907dfb784874b42fb16c2c9bde Mon Sep 17 00:00:00 2001 +From: Gwenole Beauchesne +Date: Wed, 4 Nov 2009 13:16:34 +0000 +Subject: [PATCH] =?utf-8?q?[G45]=C2=A0Implement=20vaGetImage()=20for=20full-sized=20surface=20readback.?= +MIME-Version: 1.0 +Content-Type: text/plain; charset=utf-8 +Content-Transfer-Encoding: 8bit + +--- + i965_drv_video/i965_drv_video.c | 45 ++++++++++++++++++++++++++++++++++++++- + 1 files changed, 44 insertions(+), 1 deletions(-) + +diff --git a/i965_drv_video/i965_drv_video.c b/i965_drv_video/i965_drv_video.c +index 8558d0e..10baffb 100644 +--- a/i965_drv_video/i965_drv_video.c ++++ b/i965_drv_video/i965_drv_video.c +@@ -1388,7 +1388,50 @@ i965_GetImage(VADriverContextP ctx, + unsigned int height, + VAImageID image) + { +- return VA_STATUS_SUCCESS; ++ 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 only support full-size surface readback */ ++ if (x != 0 || ++ y != 0 || ++ width != obj_surface->width || ++ height != obj_surface->height) ++ return VA_STATUS_ERROR_INVALID_PARAMETER; ++ ++ /* XXX: we only support 1:1 image copies */ ++ if (width != obj_image->image.width || ++ height != obj_image->image.height) ++ return VA_STATUS_ERROR_INVALID_PARAMETER; ++ ++ 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, 0); ++ ++ switch (obj_image->image.format.fourcc) { ++ case VA_FOURCC('Y','V','1','2'): /* YV12 is native format here */ ++ memcpy(image_data, obj_surface->bo->virtual, 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 +-- +1.5.4.3 + diff --git a/meta-emenlow/recipes-graphics/libva/libva-0.31.0/037_g45_add_vaPutImage.patch b/meta-emenlow/recipes-graphics/libva/libva-0.31.0/037_g45_add_vaPutImage.patch new file mode 100644 index 0000000000..ce638cce52 --- /dev/null +++ b/meta-emenlow/recipes-graphics/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 + diff --git a/meta-emenlow/recipes-graphics/libva/libva-0.31.0/038_g45_vaPutSurface_cliprects.patch b/meta-emenlow/recipes-graphics/libva/libva-0.31.0/038_g45_vaPutSurface_cliprects.patch new file mode 100644 index 0000000000..ca2e1bd471 --- /dev/null +++ b/meta-emenlow/recipes-graphics/libva/libva-0.31.0/038_g45_vaPutSurface_cliprects.patch @@ -0,0 +1,531 @@ +From 90de12a47e26ccc0b4cc8189c76991609481870d Mon Sep 17 00:00:00 2001 +From: Gwenole Beauchesne +Date: Wed, 4 Nov 2009 17:34:53 +0000 +Subject: [PATCH] [G45] Handle cliprects in vaPutSurface(). + +--- + i965_drv_video/i965_drv_video.c | 39 ++++-- + i965_drv_video/i965_render.c | 284 +++++++++++++++++++-------------------- + i965_drv_video/i965_render.h | 30 ++--- + 3 files changed, 176 insertions(+), 177 deletions(-) + +diff --git a/i965_drv_video/i965_drv_video.c b/i965_drv_video/i965_drv_video.c +index e8f638c..20d6bab 100644 +--- a/i965_drv_video/i965_drv_video.c ++++ b/i965_drv_video/i965_drv_video.c +@@ -1507,13 +1507,23 @@ i965_PutSurface(VADriverContextP ctx, + union dri_buffer *buffer; + struct intel_region *dest_region; + struct object_surface *obj_surface; +- int ret; ++ int ret; + uint32_t name; ++ VARectangle src_rect, dst_rect; + Bool new_region = False; ++ + /* Currently don't support DRI1 */ + if (dri_state->driConnectedFlag != VA_DRI2) + return VA_STATUS_ERROR_UNKNOWN; + ++ /* XXX: we currently only support up to 64 cliprects */ ++ if (number_cliprects > MAX_CLIP_RECTS) ++ return VA_STATUS_ERROR_OPERATION_FAILED; ++ ++ obj_surface = SURFACE(surface); ++ if (!obj_surface) ++ return VA_STATUS_ERROR_INVALID_SURFACE; ++ + dri_drawable = dri_get_drawable(ctx, draw); + assert(dri_drawable); + +@@ -1552,17 +1562,24 @@ i965_PutSurface(VADriverContextP ctx, + assert(ret == 0); + } + +- i965_render_put_surface(ctx, surface, +- srcx, srcy, srcw, srch, +- destx, desty, destw, desth); +- obj_surface = SURFACE(surface); +- if(obj_surface->subpic != VA_INVALID_ID) { +- i965_render_put_subpic(ctx, surface, +- srcx, srcy, srcw, srch, +- destx, desty, destw, desth); +- } +- dri_swap_buffer(ctx, dri_drawable); ++ 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; + ++ i965_render_put_surface(ctx, surface, &src_rect, &dst_rect, ++ cliprects, number_cliprects); ++ ++ if (obj_surface->subpic != VA_INVALID_ID) ++ i965_render_put_subpic(ctx, surface, &src_rect, &dst_rect, ++ cliprects, number_cliprects); ++ ++ dri_swap_buffer(ctx, dri_drawable); + return VA_STATUS_SUCCESS; + } + +diff --git a/i965_drv_video/i965_render.c b/i965_drv_video/i965_render.c +index 0476087..d7cd8fe 100644 +--- a/i965_drv_video/i965_render.c ++++ b/i965_drv_video/i965_render.c +@@ -787,13 +787,81 @@ i965_render_binding_table(VADriverContextP ctx) + dri_bo_unmap(render_state->wm.binding_table); + } + +-static void ++static unsigned int ++i965_render_do_upload_vertex(VADriverContextP ctx, ++ unsigned int width, ++ unsigned int height, ++ const VARectangle *src_rect, ++ const VARectangle *dst_rect, ++ const VARectangle *cliprects, ++ unsigned int num_cliprects) ++{ ++ struct i965_driver_data *i965 = i965_driver_data(ctx); ++ struct i965_render_state *render_state = &i965->render_state; ++ struct intel_region *dest_region = render_state->draw_region; ++ float *vb, tx1, tx2, ty1, ty2; ++ int x1, x2, y1, y2; ++ unsigned int i, n; ++ ++ if (!cliprects || num_cliprects == 0) { ++ cliprects = dst_rect; ++ num_cliprects = 1; ++ } ++ ++ dri_bo_map(render_state->vb.vertex_buffer, 1); ++ assert(render_state->vb.vertex_buffer->virtual); ++ vb = render_state->vb.vertex_buffer->virtual; ++ ++ for (n = 0, i = 0; i < num_cliprects; i++) { ++ x1 = dest_region->x + cliprects[i].x; ++ y1 = dest_region->y + cliprects[i].y; ++ x2 = x1 + cliprects[i].width; ++ y2 = y1 + cliprects[i].height; ++ x1 = MAX(x1, dst_rect->x); ++ y1 = MAX(y1, dst_rect->y); ++ x2 = MIN(x2, dst_rect->x + dst_rect->width); ++ y2 = MIN(y2, dst_rect->y + dst_rect->height); ++ ++ if (x2 <= x1 || y2 <= y1) ++ continue; ++ ++ const float sx1 = (float)(x1 - dst_rect->x) / (float)dst_rect->width; ++ const float sy1 = (float)(y1 - dst_rect->y) / (float)dst_rect->height; ++ const float sx2 = (float)(x2 - dst_rect->x) / (float)dst_rect->width; ++ const float sy2 = (float)(y2 - dst_rect->y) / (float)dst_rect->height; ++ tx1 = ((float)src_rect->x + sx1 * (float)src_rect->width) / width; ++ ty1 = ((float)src_rect->y + sy1 * (float)src_rect->height) / height; ++ tx2 = ((float)src_rect->x + sx2 * (float)src_rect->width) / width; ++ ty2 = ((float)src_rect->y + sy2 * (float)src_rect->height) / height; ++ ++ vb[n++] = tx2; ++ vb[n++] = ty2; ++ vb[n++] = x2; ++ vb[n++] = y2; ++ ++ vb[n++] = tx1; ++ vb[n++] = ty2; ++ vb[n++] = x1; ++ vb[n++] = y2; ++ ++ vb[n++] = tx1; ++ vb[n++] = ty1; ++ vb[n++] = x1; ++ vb[n++] = y1; ++ } ++ ++ dri_bo_unmap(render_state->vb.vertex_buffer); ++ return n / 12; ++} ++ ++static unsigned int + i965_subpic_render_upload_vertex(VADriverContextP ctx, + VASurfaceID surface, +- const VARectangle *output_rect) +-{ ++ const VARectangle *output_rect, ++ const VARectangle *cliprects, ++ unsigned int num_cliprects) ++{ + struct i965_driver_data *i965 = i965_driver_data(ctx); +- struct i965_render_state *render_state = &i965->render_state; + struct object_surface *obj_surface = SURFACE(surface); + struct object_subpic *obj_subpic = SUBPIC(obj_surface->subpic); + +@@ -803,8 +871,6 @@ i965_subpic_render_upload_vertex(VADriverContextP ctx, + const float ssy = (float)output_rect->height / (float)obj_surface->height; + const float sx = psx * ssx; + const float sy = psy * ssy; +- float *vb, tx1, tx2, ty1, ty2, x1, x2, y1, y2; +- int i = 0; + + VARectangle dst_rect; + dst_rect.x = output_rect->x + sx * (float)obj_subpic->dst_rect.x; +@@ -812,106 +878,38 @@ i965_subpic_render_upload_vertex(VADriverContextP ctx, + dst_rect.width = sx * (float)obj_subpic->dst_rect.width; + dst_rect.height = sy * (float)obj_subpic->dst_rect.height; + +- dri_bo_map(render_state->vb.vertex_buffer, 1); +- assert(render_state->vb.vertex_buffer->virtual); +- vb = render_state->vb.vertex_buffer->virtual; +- +- tx1 = (float)obj_subpic->src_rect.x / (float)obj_subpic->width; +- ty1 = (float)obj_subpic->src_rect.y / (float)obj_subpic->height; +- tx2 = (float)(obj_subpic->src_rect.x + obj_subpic->src_rect.width) / (float)obj_subpic->width; +- ty2 = (float)(obj_subpic->src_rect.y + obj_subpic->src_rect.height) / (float)obj_subpic->height; +- +- x1 = (float)dst_rect.x; +- y1 = (float)dst_rect.y; +- x2 = (float)(dst_rect.x + dst_rect.width); +- y2 = (float)(dst_rect.y + dst_rect.height); +- +- vb[i++] = tx2; +- vb[i++] = ty2; +- vb[i++] = x2; +- vb[i++] = y2; +- +- vb[i++] = tx1; +- vb[i++] = ty2; +- vb[i++] = x1; +- vb[i++] = y2; +- +- vb[i++] = tx1; +- vb[i++] = ty1; +- vb[i++] = x1; +- vb[i++] = y1; +- dri_bo_unmap(render_state->vb.vertex_buffer); ++ return i965_render_do_upload_vertex(ctx, ++ obj_subpic->width, obj_subpic->height, ++ &obj_subpic->src_rect, &dst_rect, ++ cliprects, num_cliprects); + } + +-static void ++static unsigned int + 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) ++ const VARectangle *src_rect, ++ const VARectangle *dst_rect, ++ const VARectangle *cliprects, ++ unsigned int num_cliprects) + { + struct i965_driver_data *i965 = i965_driver_data(ctx); +- struct i965_render_state *render_state = &i965->render_state; +- struct intel_region *dest_region = render_state->draw_region; +- struct object_surface *obj_surface; +- float *vb; +- +- float u1, v1, u2, v2; +- int i, width, height; +- int box_x1 = dest_region->x + destx; +- int box_y1 = dest_region->y + desty; +- int box_x2 = box_x1 + destw; +- int box_y2 = box_y1 + desth; +- +- obj_surface = SURFACE(surface); +- assert(surface); +- width = obj_surface->width; +- height = obj_surface->height; +- +- u1 = (float)srcx / width; +- v1 = (float)srcy / height; +- u2 = (float)(srcx + srcw) / width; +- v2 = (float)(srcy + srch) / height; +- +- dri_bo_map(render_state->vb.vertex_buffer, 1); +- assert(render_state->vb.vertex_buffer->virtual); +- vb = render_state->vb.vertex_buffer->virtual; +- +- i = 0; +- vb[i++] = u2; +- vb[i++] = v2; +- vb[i++] = (float)box_x2; +- vb[i++] = (float)box_y2; +- +- vb[i++] = u1; +- vb[i++] = v2; +- vb[i++] = (float)box_x1; +- vb[i++] = (float)box_y2; +- +- vb[i++] = u1; +- vb[i++] = v1; +- vb[i++] = (float)box_x1; +- vb[i++] = (float)box_y1; ++ struct object_surface *obj_surface = SURFACE(surface); ++ assert(obj_surface); + +- dri_bo_unmap(render_state->vb.vertex_buffer); ++ return i965_render_do_upload_vertex(ctx, ++ obj_surface->width, obj_surface->height, ++ src_rect, ++ dst_rect, ++ cliprects, num_cliprects); + } + +-static void ++static unsigned int + 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) ++ VASurfaceID surface, ++ const VARectangle *src_rect, ++ const VARectangle *dst_rect, ++ const VARectangle *cliprects, ++ unsigned int num_cliprects) + { + i965_render_vs_unit(ctx); + i965_render_sf_unit(ctx); +@@ -922,21 +920,17 @@ i965_surface_render_state_setup(VADriverContextP ctx, + i965_render_cc_viewport(ctx); + i965_render_cc_unit(ctx); + i965_render_binding_table(ctx); +- i965_render_upload_vertex(ctx, surface, +- srcx, srcy, srcw, srch, +- destx, desty, destw, desth); ++ return i965_render_upload_vertex(ctx, surface, src_rect, dst_rect, ++ cliprects, num_cliprects); + } +-static void ++ ++static unsigned int + 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) ++ VASurfaceID surface, ++ const VARectangle *src_rect, ++ const VARectangle *dst_rect, ++ const VARectangle *cliprects, ++ unsigned int num_cliprects) + { + i965_render_vs_unit(ctx); + i965_render_sf_unit(ctx); +@@ -947,16 +941,10 @@ i965_subpic_render_state_setup(VADriverContextP ctx, + i965_render_cc_viewport(ctx); + i965_subpic_render_cc_unit(ctx); + i965_render_binding_table(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); ++ return i965_subpic_render_upload_vertex(ctx, surface, dst_rect, ++ cliprects, num_cliprects); + } + +- + static void + i965_render_pipeline_select(VADriverContextP ctx) + { +@@ -1192,7 +1180,7 @@ i965_render_upload_image_palette( + } + + static void +-i965_render_startup(VADriverContextP ctx) ++i965_render_startup(VADriverContextP ctx, unsigned int vb_offset) + { + struct i965_driver_data *i965 = i965_driver_data(ctx); + struct i965_render_state *render_state = &i965->render_state; +@@ -1203,7 +1191,7 @@ i965_render_startup(VADriverContextP ctx) + (0 << VB0_BUFFER_INDEX_SHIFT) | + VB0_VERTEXDATA | + ((4 * 4) << VB0_BUFFER_PITCH_SHIFT)); +- OUT_RELOC(ctx, render_state->vb.vertex_buffer, I915_GEM_DOMAIN_VERTEX, 0, 0); ++ OUT_RELOC(ctx, render_state->vb.vertex_buffer, I915_GEM_DOMAIN_VERTEX, 0, vb_offset); + + if (IS_IGDNG(i965->intel.device_id)) + OUT_RELOC(ctx, render_state->vb.vertex_buffer, I915_GEM_DOMAIN_VERTEX, 0, 12 * 4); +@@ -1268,8 +1256,10 @@ i965_clear_dest_region(VADriverContextP ctx) + } + + static void +-i965_surface_render_pipeline_setup(VADriverContextP ctx) ++i965_surface_render_pipeline_setup(VADriverContextP ctx, unsigned int n_rects) + { ++ unsigned int i; ++ + intel_batchbuffer_start_atomic(ctx, 0x1000); + intel_batchbuffer_emit_mi_flush(ctx); + i965_clear_dest_region(ctx); +@@ -1283,13 +1273,16 @@ i965_surface_render_pipeline_setup(VADriverContextP ctx) + i965_render_cs_urb_layout(ctx); + i965_render_drawing_rectangle(ctx); + i965_render_vertex_elements(ctx); +- i965_render_startup(ctx); ++ for (i = 0; i < n_rects; i++) ++ i965_render_startup(ctx, 48 * i); + intel_batchbuffer_end_atomic(ctx); + } + + static void +-i965_subpic_render_pipeline_setup(VADriverContextP ctx) ++i965_subpic_render_pipeline_setup(VADriverContextP ctx, unsigned int n_rects) + { ++ unsigned int i; ++ + intel_batchbuffer_start_atomic(ctx, 0x1000); + intel_batchbuffer_emit_mi_flush(ctx); + i965_render_pipeline_select(ctx); +@@ -1302,7 +1295,8 @@ i965_subpic_render_pipeline_setup(VADriverContextP ctx) + i965_render_cs_urb_layout(ctx); + i965_render_drawing_rectangle(ctx); + i965_render_vertex_elements(ctx); +- i965_render_startup(ctx); ++ for (i = 0; i < n_rects; i++) ++ i965_render_startup(ctx, 48 * i); + intel_batchbuffer_end_atomic(ctx); + } + +@@ -1396,45 +1390,39 @@ i965_render_initialize(VADriverContextP ctx) + 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) ++ const VARectangle *src_rect, ++ const VARectangle *dst_rect, ++ const VARectangle *cliprects, ++ unsigned int num_cliprects) + { ++ unsigned int n_rects; ++ + i965_render_initialize(ctx); +- i965_surface_render_state_setup(ctx, surface, +- srcx, srcy, srcw, srch, +- destx, desty, destw, desth); +- i965_surface_render_pipeline_setup(ctx); ++ n_rects = i965_surface_render_state_setup(ctx, surface, ++ src_rect, dst_rect, ++ cliprects, num_cliprects); ++ i965_surface_render_pipeline_setup(ctx, n_rects); + intel_batchbuffer_flush(ctx); + } + + void + i965_render_put_subpic(VADriverContextP ctx, +- VASurfaceID surface, +- short srcx, +- short srcy, +- unsigned short srcw, +- unsigned short srch, +- short destx, +- short desty, +- unsigned short destw, +- unsigned short desth) ++ VASurfaceID surface, ++ const VARectangle *src_rect, ++ const VARectangle *dst_rect, ++ const VARectangle *cliprects, ++ unsigned int num_cliprects) + { + struct i965_driver_data *i965 = i965_driver_data(ctx); + struct object_surface *obj_surface =