* Re: [PATCH 1/6] qt4-embedded-gles: Add support for new version of the Graphics SDK
2013-11-22 15:45 [PATCH 1/6] qt4-embedded-gles: Add support for new version of the Graphics SDK Franklin S. Cooper Jr
@ 2013-11-22 15:02 ` Denys Dmytriyenko
2013-11-22 15:13 ` Cooper Jr., Franklin
2013-11-22 15:45 ` [PATCH 2/6] arago-prefs.inc Use version 05.00.00.01 of the Graphics SDK for am335 and am43x Franklin S. Cooper Jr
` (4 subsequent siblings)
5 siblings, 1 reply; 18+ messages in thread
From: Denys Dmytriyenko @ 2013-11-22 15:02 UTC (permalink / raw)
To: Franklin S. Cooper Jr; +Cc: meta-arago
I believe I already had this set?
On Fri, Nov 22, 2013 at 09:45:16AM -0600, Franklin S. Cooper Jr wrote:
> * Add support for the Graphics SDK version 5.00.00.01
> * For now only apply the patches to AM43x and AM335x since this alpha release of
> the Graphics SDK has only been sanity tested for these platforms.
> * The official release should support all the typical platforms and this patch
> can be applied for all devices.
>
> Signed-off-by: Franklin S. Cooper Jr <fcooper@ti.com>
> ---
> ...hanges-for-integrating-with-TI-graphics-S.patch | 719 ++++++++++++++++++++
> .../recipes-qt/qt4/qt4-embedded-gles_4.8.4.bb | 4 +-
> 2 files changed, 722 insertions(+), 1 deletions(-)
> create mode 100644 meta-arago-extras/recipes-qt/qt4/qt4-embedded-gles/0001-Qt-4.x-v2-Changes-for-integrating-with-TI-graphics-S.patch
>
> diff --git a/meta-arago-extras/recipes-qt/qt4/qt4-embedded-gles/0001-Qt-4.x-v2-Changes-for-integrating-with-TI-graphics-S.patch b/meta-arago-extras/recipes-qt/qt4/qt4-embedded-gles/0001-Qt-4.x-v2-Changes-for-integrating-with-TI-graphics-S.patch
> new file mode 100644
> index 0000000..73ef094
> --- /dev/null
> +++ b/meta-arago-extras/recipes-qt/qt4/qt4-embedded-gles/0001-Qt-4.x-v2-Changes-for-integrating-with-TI-graphics-S.patch
> @@ -0,0 +1,719 @@
> +From c463092eb5465cf7a7f9f783425dd75ec48d5f89 Mon Sep 17 00:00:00 2001
> +From: Prathap Srinivas <msprathap@ti.com>
> +Date: Tue, 5 Nov 2013 07:52:34 -0600
> +Subject: [PATCH] Qt 4.x v2: Changes for integrating with TI graphics SDK release 04.10.00.01
> +
> +This patch adds the changes required for Qt 4.x to work with 04.10 TI gfx sdk.
> +04.10.00.01 TI gfx sdk is based on 1.10 Linux DDK from Imagination Technologies
> +wsegl.h, pvr2d.h has been updated with 1.10 DDK.
> +This patch includes the updated files and also makes the required changes.
> +The changes are in QWSWSEGL to interface with updated wsegl.h.
> +
> +Version 2:
> +Updated to apply cleanly
> +---
> + src/3rdparty/powervr/wsegl2/pvr2d.h | 190 +++++++++++++-------
> + src/3rdparty/powervr/wsegl2/wsegl.h | 172 ++++++++++++------
> + .../gfxdrivers/powervr/QWSWSEGL/pvrqwswsegl.c | 28 +++-
> + 3 files changed, 269 insertions(+), 121 deletions(-)
> +
> +diff --git a/src/3rdparty/powervr/wsegl2/pvr2d.h b/src/3rdparty/powervr/wsegl2/pvr2d.h
> +index 0f44833..d7e8123 100644
> +--- a/src/3rdparty/powervr/wsegl2/pvr2d.h
> ++++ b/src/3rdparty/powervr/wsegl2/pvr2d.h
> +@@ -1,39 +1,47 @@
> +-/**********************************************************************
> +-*
> +-* Copyright(c) Imagination Technologies Ltd.
> +-*
> +-* The contents of this file are subject to the MIT license as set out below.
> +-*
> +-* Permission is hereby granted, free of charge, to any person obtaining a copy
> +-* of this software and associated documentation files (the "Software"),
> +-* to deal in the Software without restriction, including without limitation
> +-* the rights to use, copy, modify, merge, publish, distribute, sublicense,
> +-* and/or sell copies of the Software, and to permit persons to whom the
> +-* Software is furnished to do so, subject to the following conditions:
> +-*
> +-* The above copyright notice and this permission notice shall be included
> +-* in all copies or substantial portions of the Software.
> +-*
> +-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
> +-* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> +-* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
> +-* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
> +-* DAMAGES OR OTHER LIABILITY, WHETHER 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.
> +-*
> +-* This License is also included in this distribution in the file called
> +-* "COPYING".
> +-*
> +-******************************************************************************/
> +-
> +-
> ++/*************************************************************************/ /*!
> ++@Copyright Copyright (c) Imagination Technologies Ltd. All Rights Reserved
> ++@License Dual MIT/GPLv2
> ++
> ++The contents of this file are subject to the MIT license as set out below.
> ++
> ++Permission is hereby granted, free of charge, to any person obtaining a copy
> ++of this software and associated documentation files (the "Software"), to deal
> ++in the Software without restriction, including without limitation the rights
> ++to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
> ++copies of the Software, and to permit persons to whom the Software is
> ++furnished to do so, subject to the following conditions:
> ++
> ++The above copyright notice and this permission notice shall be included in
> ++all copies or substantial portions of the Software.
> ++
> ++Alternatively, the contents of this file may be used under the terms of
> ++the GNU General Public License Version 2 ("GPL") in which case the provisions
> ++of GPL are applicable instead of those above.
> ++
> ++If you wish to allow use of your version of this file only under the terms of
> ++GPL, and not to allow others to use your version of this file under the terms
> ++of the MIT license, indicate your decision by deleting the provisions above
> ++and replace them with the notice and other provisions required by GPL as set
> ++out in the file called "GPL-COPYING" included in this distribution. If you do
> ++not delete the provisions above, a recipient may use your version of this file
> ++under the terms of either the MIT license or GPL.
> ++
> ++This License is also included in this distribution in the file called
> ++"MIT-COPYING".
> ++
> ++EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS
> ++PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
> ++BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
> ++PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
> ++COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
> ++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.
> ++
> ++*/ /**************************************************************************/
> +
> + /******************************************************************************
> + Modifications :-
> + $Log: pvr2d.h $
> +-
> +- --- Revision Logs Removed ---
> + ******************************************************************************/
> +
> + #ifndef _PVR2D_H_
> +@@ -54,7 +62,7 @@ extern "C" {
> +
> + /* PVR2D header revision */
> + #define PVR2D_REV_MAJOR 3
> +-#define PVR2D_REV_MINOR 5
> ++#define PVR2D_REV_MINOR 6
> +
> + /* Basic types */
> + typedef enum
> +@@ -67,13 +75,20 @@ typedef void* PVR2D_HANDLE;
> +
> + typedef char PVR2D_CHAR, *PVR2D_PCHAR;
> + typedef unsigned char PVR2D_UCHAR, *PVR2D_PUCHAR;
> ++
> + typedef int PVR2D_INT, *PVR2D_PINT;
> + typedef unsigned int PVR2D_UINT, *PVR2D_PUINT;
> ++
> ++typedef unsigned short PVR2D_UINT16, *PVR2D_PUINT16;
> ++typedef signed short PVR2D_INT16, *PVR2D_PINT16;
> ++
> + typedef long PVR2D_LONG, *PVR2D_PLONG;
> + typedef unsigned long PVR2D_ULONG, *PVR2D_PULONG;
> +
> + typedef void PVR2D_VOID, *PVR2D_PVOID;
> +
> ++/* services/stream ID */
> ++typedef unsigned int PVR2D_SID;
> +
> + /* error codes */
> + typedef enum
> +@@ -99,7 +114,7 @@ typedef unsigned long PVR2DFORMAT;
> + #define PVR2D_1BPP 0x00UL // 1bpp mask surface or palletized 1 bit source with 2x32 bit CLUT
> + #define PVR2D_RGB565 0x01UL // Common rgb 565 format
> + #define PVR2D_ARGB4444 0x02UL // Common argb 4444 format
> +-#define PVR2D_RGB888 0x03UL // Common rgb 888 format (not supported)
> ++#define PVR2D_RGB888 0x03UL // Common rgb 888 format
> + #define PVR2D_ARGB8888 0x04UL // Common argb 8888 format
> + #define PVR2D_ARGB1555 0x05UL // Common argb 1555 format
> + #define PVR2D_ALPHA8 0x06UL // Alpha-only 8 bit per pixel (used with a constant fill colour)
> +@@ -114,16 +129,18 @@ typedef unsigned long PVR2DFORMAT;
> + #define PVR2D_YUV422_UYVY 0x14UL // YUV 422 low-high byte order UY0VY1
> + #define PVR2D_YUV422_YVYU 0x15UL // YUV 422 low-high byte order Y0VY1U
> + #define PVR2D_YUV422_VYUY 0x16UL // YUV 422 low-high byte order VY0UY1
> +-#define PVR2D_YUV420_2PLANE 0x17UL // YUV420 2 Plane
> +-#define PVR2D_YUV420_3PLANE 0x18UL // YUV420 3 Plane
> +-#define PVR2D_2101010ARGB 0x19UL // 32 bit 2 10 10 10
> +-#define PVR2D_888RSGSBS 0x1AUL
> ++#define PVR2D_YUV420_2PLANE 0x17UL // YUV420 2 Plane with UV interleaved in plane 2
> ++#define PVR2D_YVU420_3PLANE 0x18UL // YVU420 3 Plane
> ++#define PVR2D_YUV420_3PLANE 0x21UL // YUV420 3 Plane
> ++#define PVR2D_2101010ARGB 0x19UL // 32 bit 2 10 10 10
> ++#define PVR2D_888RSGSBS 0x1AUL // 3 channel signed 8 bit
> + #define PVR2D_16BPP_RAW 0x1BUL // 16 bit raw (no format conversion)
> + #define PVR2D_32BPP_RAW 0x1CUL // 32 bit raw
> + #define PVR2D_64BPP_RAW 0x1DUL // 64 bit raw
> + #define PVR2D_128BPP_RAW 0x1EUL // 128 bit raw
> +-
> +-#define PVR2D_NO_OF_FORMATS 0x1FUL
> ++#define PVR2D_AYUV8888 0x1FUL
> ++#define PVR2D_F16 0x20UL
> ++#define PVR2D_NO_OF_FORMATS 0x22UL
> +
> + /* Format modifier bit field (DstFormat and SrcFormat bits 16..23) */
> + #define PVR2D_FORMAT_MASK 0x0000FFFFUL // PVR2D Format bits
> +@@ -141,7 +158,8 @@ typedef unsigned long PVR2DFORMAT;
> + This flag requests a surface pdump, to capture the pixel state after host writes.
> + Not needed if the surface state has resulted from previous SGX 2D/3D core writes.
> + */
> +-#define PVR2D_SURFACE_PDUMP 0x00100000UL // calls PVRSRVPDumpMem to capture the surface (pdump builds only)
> ++#define PVR2D_SURFACE_PDUMP 0x00100000UL // calls PVRSRVPDumpMem to capture the surface (pdump builds only)
> ++#define PVR2D_BLTRECT_PDUMP 0x00200000UL // calls PVRSRVPDumpMem to capture the blt rectangle (pdump builds only)
> +
> + /*
> + Low level 3D format extension - for blts via the 3D core only.
> +@@ -155,8 +173,7 @@ typedef unsigned long PVR2DFORMAT;
> + typedef enum
> + {
> + PVR2D_WRAPFLAG_NONCONTIGUOUS = 0,
> +- PVR2D_WRAPFLAG_CONTIGUOUS = 1,
> +-
> ++ PVR2D_WRAPFLAG_CONTIGUOUS = 1
> + }PVR2DWRAPFLAGS;
> +
> + #define PVR2D_CONTEXT_FLAGS_PRIORITY_MASK 0x00000003
> +@@ -171,7 +188,7 @@ typedef enum
> + PVR2D_BLIT_DISABLE_ALL = 0x00000000, /* disable all additional controls */
> + PVR2D_BLIT_CK_ENABLE = 0x00000001, /* enable colour key */
> + PVR2D_BLIT_GLOBAL_ALPHA_ENABLE = 0x00000002, /* enable standard global alpha */
> +- PVR2D_BLIT_PERPIXEL_ALPHABLEND_ENABLE = 0x00000004, /* enable per-pixel alpha bleding */
> ++ PVR2D_BLIT_PERPIXEL_ALPHABLEND_ENABLE = 0x00000004, /* enable per-pixel alpha blending */
> + PVR2D_BLIT_PAT_SURFACE_ENABLE = 0x00000008, /* enable pattern surf (disable fill) */
> + PVR2D_BLIT_FULLY_SPECIFIED_ALPHA_ENABLE = 0x00000010, /* enable fully specified alpha */
> + PVR2D_BLIT_ROT_90 = 0x00000020, /* apply 90 degree rotation to the blt */
> +@@ -186,11 +203,12 @@ typedef enum
> + PVR2D_BLIT_COLKEY_MASKED = 0x00004000, /* Mask enabled for colour key */
> + PVR2D_BLIT_COLKEY_OP_PASS = 0x00008000, /* Colour key op = pass */
> + PVR2D_BLIT_COLKEY_OP_REJECT = 0x00010000, /* Colour key op = reject */
> ++ PVR2D_BLIT_ROP4 = 0x00020000, /* rop4 pattern support */
> + PVR2D_BLIT_PATH_2DCORE = 0x00100000, /* Blt via dedicated 2D Core or PTLA */
> + PVR2D_BLIT_PATH_3DCORE = 0x00200000, /* Blt via 3D Core */
> + PVR2D_BLIT_PATH_SWBLT = 0x00400000, /* Blt via host software */
> + PVR2D_BLIT_NO_SRC_SYNC_INFO = 0x00800000, /* Dont send a source sync info*/
> +- PVR2D_BLIT_ISSUE_STATUS_UPDATES = 0x01000000, /* Issue status updates */
> ++ PVR2D_BLIT_ISSUE_STATUS_UPDATES = 0x01000000, /* Issue SyncInfo status updates */
> +
> + } PVR2DBLITFLAGS;
> +
> +@@ -288,6 +306,17 @@ typedef struct _PVR2MISCDISPLAYINFO
> +
> + }PVR2DMISCDISPLAYINFO;
> +
> ++typedef struct
> ++{
> ++ PVR2DMEMINFO *pSurfMemInfo; /* surface memory */
> ++ PVR2D_ULONG SurfOffset; /* byte offset from start of allocation to destination surface pixel 0,0 */
> ++ PVR2D_LONG Stride; /* signed stride */
> ++ PVR2DFORMAT Format; /* format */
> ++ PVR2D_ULONG SurfWidth; /* surface width in pixels */
> ++ PVR2D_ULONG SurfHeight; /* surface height in pixels */
> ++
> ++} PVR2D_SURFACE, *PPVR2D_SURFACE;
> ++
> +
> + typedef struct _PVR2DBLTINFO
> + {
> +@@ -326,34 +355,28 @@ typedef struct _PVR2DBLTINFO
> + PVR2D_LONG MaskX, MaskY; /* mask rect top left (mask size = blt size) */
> + PVR2D_ULONG MaskSurfWidth; /* size of mask surface in pixels */
> + PVR2D_ULONG MaskSurfHeight; /* size of mask surface in pixels */
> +-
> ++
> + PPVR2D_ALPHABLT pAlpha; /* fully specified alpha blend (2DCore only) */
> +-
> ++
> + PVR2D_ULONG uSrcChromaPlane1; /* mem offset from start of source alloc to chroma plane 1 */
> + PVR2D_ULONG uSrcChromaPlane2; /* mem offset from start of source alloc to chroma plane 2 */
> + PVR2D_ULONG uDstChromaPlane1; /* mem offset from start of dest alloc to chroma plane 1 */
> + PVR2D_ULONG uDstChromaPlane2; /* mem offset from start of dest alloc to chroma plane 2 */
> +-
> ++
> + PVR2D_ULONG ColourKeyMask; /* 32 bit colour key mask, only valid when PVR2D_BLIT_COLKEY_MASKED is set */
> +
> ++ PPVR2D_SURFACE pPat; /* full rop4 support for patterns if PVR2D_BLIT_ROP4 set (2D Core hardware only) */
> ++ PVR2D_LONG PatX, PatY; /* pattern start offset if PVR2D_BLIT_ROP4 set (2D Core hardware only) */
> ++
> + }PVR2DBLTINFO, *PPVR2DBLTINFO;
> +
> ++
> + typedef struct _PVR2DRECT
> + {
> + PVR2D_LONG left, top;
> + PVR2D_LONG right, bottom;
> +-} PVR2DRECT;
> ++} PVR2DRECT, *PPVR2DRECT;
> +
> +-typedef struct
> +-{
> +- PVR2DMEMINFO *pSurfMemInfo; /* surface memory */
> +- PVR2D_ULONG SurfOffset; /* byte offset from start of allocation to destination surface pixel 0,0 */
> +- PVR2D_LONG Stride; /* signed stride */
> +- PVR2DFORMAT Format; /* format */
> +- PVR2D_ULONG SurfWidth; /* surface width in pixels */
> +- PVR2D_ULONG SurfHeight; /* surface height in pixels */
> +-
> +-} PVR2D_SURFACE, *PPVR2D_SURFACE;
> +
> + typedef struct
> + {
> +@@ -479,8 +502,8 @@ typedef void* PVR2DFLIPCHAINHANDLE;
> +
> + #define PVR2D_CREATE_FLIPCHAIN_SHARED (1UL << 0)
> + #define PVR2D_CREATE_FLIPCHAIN_QUERY (1UL << 1)
> +-#define PVR2D_CREATE_FLIPCHAIN_OEMOVERLAY (1UL << 2)
> +-#define PVR2D_CREATE_FLIPCHAIN_AS_BLITCHAIN (1UL << 3)
> ++#define PVR2D_CREATE_FLIPCHAIN_OEMOVERLAY (1UL << 2)
> ++#define PVR2D_CREATE_FLIPCHAIN_AS_BLITCHAIN (1UL << 3)
> +
> + /* Colour-key colour must be translated into argb8888 format */
> + #define CKEY_8888(P) (P)
> +@@ -498,7 +521,8 @@ typedef void* PVR2DFLIPCHAINHANDLE;
> + #define CFILL_565(P) (((P&0xF800UL)<<8) | ((P&0x7E0UL)<<5) | ((P&0x1FUL)<<3))
> +
> + /* PVR2DCreateDeviceContext flags */
> +-#define PVR2D_XSERVER_PROC 0x00000001UL /*!< Set for the Xserver connection */
> ++#define PVR2D_XSERVER_PROC 0x00000001UL /* Set for the Xserver connection */
> ++#define PVR2D_FLAGS_PDUMP_ACTIVE 0x00000002UL /* Set when pdumping from multiple processes */
> +
> + /* PVR2DMemAlloc flags */
> + #define PVR2D_MEM_UNCACHED 0x00000000UL /* Default */
> +@@ -508,7 +532,7 @@ typedef void* PVR2DFLIPCHAINHANDLE;
> + /* Functions that the library exports */
> +
> + PVR2D_IMPORT
> +-int PVR2DEnumerateDevices(PVR2DDEVICEINFO *pDevInfo);
> ++PVR2D_INT PVR2DEnumerateDevices(PVR2DDEVICEINFO *pDevInfo);
> +
> + PVR2D_IMPORT
> + PVR2DERROR PVR2DCreateDeviceContext(PVR2D_ULONG ulDevID,
> +@@ -633,7 +657,7 @@ PVR2DERROR PVR2DSetPresentFlipProperties(PVR2DCONTEXTHANDLE hContext,
> + PVR2D_ULONG ulPropertyMask,
> + PVR2D_LONG lDstXPos,
> + PVR2D_LONG lDstYPos,
> +- PVR2D_ULONG ulNumClipRects,
> ++ PVR2D_ULONG ulNumClipRects,
> + PVR2DRECT *pClipRects,
> + PVR2D_ULONG ulSwapInterval);
> +
> +@@ -658,6 +682,44 @@ PVR2DERROR PVR2DBlt3D (const PVR2DCONTEXTHANDLE hContext, const PPVR2D_3DBLT pBl
> + PVR2D_IMPORT
> + PVR2DERROR PVR2DBlt3DExt (const PVR2DCONTEXTHANDLE hContext, const PPVR2D_3DBLT_EXT pBlt3D);
> +
> ++
> ++PVR2D_IMPORT
> ++PVR2DERROR PVR2DModifyPendingOps(const PVR2DCONTEXTHANDLE hContext,
> ++ PVR2D_HANDLE *phSyncModObj,
> ++ PVR2DMEMINFO *psMemInfo,
> ++ PVR2D_BOOL bIsWriteOp,
> ++ PVR2D_ULONG *pulReadOpsPending,
> ++ PVR2D_ULONG *pulWriteOpsPending);
> ++
> ++PVR2D_IMPORT
> ++PVR2DERROR PVR2DModifyCompleteOps(const PVR2DCONTEXTHANDLE hContext,
> ++ PVR2D_HANDLE hSyncModObj);
> ++
> ++PVR2D_IMPORT
> ++PVR2DERROR PVR2DFlushToSyncModObj(const PVR2DCONTEXTHANDLE hContext,
> ++ PVR2D_HANDLE hSyncModObj,
> ++ PVR2D_BOOL bWait);
> ++
> ++PVR2D_IMPORT
> ++PVR2DERROR PVR2DTakeSyncToken(const PVR2DCONTEXTHANDLE hContext,
> ++ PVR2DMEMINFO *psMemInfo,
> ++ PVR2D_HANDLE *phSyncToken,
> ++ PVR2D_ULONG *pulReadOpsPending,
> ++ PVR2D_ULONG *pulWriteOpsPending);
> ++
> ++PVR2D_IMPORT
> ++PVR2DERROR PVR2DReleaseSyncToken(const PVR2DCONTEXTHANDLE hContext,
> ++ PVR2D_HANDLE hSyncToken);
> ++
> ++PVR2D_IMPORT
> ++PVR2DERROR PVR2DFlushToSyncToken(const PVR2DCONTEXTHANDLE hContext,
> ++ PVR2DMEMINFO *psMemInfo,
> ++ PVR2D_HANDLE hSyncToken,
> ++ PVR2D_BOOL bWait);
> ++
> ++PVR2D_IMPORT
> ++PVR2DERROR PVR2DWaitForNextHardwareEvent(const PVR2DCONTEXTHANDLE hContext);
> ++
> + #ifdef __cplusplus
> + }
> + #endif
> +diff --git a/src/3rdparty/powervr/wsegl2/wsegl.h b/src/3rdparty/powervr/wsegl2/wsegl.h
> +index a2c3ffc..480179b 100644
> +--- a/src/3rdparty/powervr/wsegl2/wsegl.h
> ++++ b/src/3rdparty/powervr/wsegl2/wsegl.h
> +@@ -1,34 +1,43 @@
> +-/**********************************************************************
> +-*
> +-* Copyright(c) Imagination Technologies Ltd.
> +-*
> +-* The contents of this file are subject to the MIT license as set out below.
> +-*
> +-* Permission is hereby granted, free of charge, to any person obtaining a copy
> +-* of this software and associated documentation files (the "Software"),
> +-* to deal in the Software without restriction, including without limitation
> +-* the rights to use, copy, modify, merge, publish, distribute, sublicense,
> +-* and/or sell copies of the Software, and to permit persons to whom the
> +-* Software is furnished to do so, subject to the following conditions:
> +-*
> +-* The above copyright notice and this permission notice shall be included
> +-* in all copies or substantial portions of the Software.
> +-*
> +-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
> +-* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> +-* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
> +-* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
> +-* DAMAGES OR OTHER LIABILITY, WHETHER 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.
> +-*
> +-* This License is also included in this distribution in the file called
> +-* "COPYING".
> +-*
> +-******************************************************************************/
> +-
> +-
> +-
> ++/*************************************************************************/ /*!
> ++@Copyright Copyright (c) Imagination Technologies Ltd. All Rights Reserved
> ++@License Dual MIT/GPLv2
> ++
> ++The contents of this file are subject to the MIT license as set out below.
> ++
> ++Permission is hereby granted, free of charge, to any person obtaining a copy
> ++of this software and associated documentation files (the "Software"), to deal
> ++in the Software without restriction, including without limitation the rights
> ++to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
> ++copies of the Software, and to permit persons to whom the Software is
> ++furnished to do so, subject to the following conditions:
> ++
> ++The above copyright notice and this permission notice shall be included in
> ++all copies or substantial portions of the Software.
> ++
> ++Alternatively, the contents of this file may be used under the terms of
> ++the GNU General Public License Version 2 ("GPL") in which case the provisions
> ++of GPL are applicable instead of those above.
> ++
> ++If you wish to allow use of your version of this file only under the terms of
> ++GPL, and not to allow others to use your version of this file under the terms
> ++of the MIT license, indicate your decision by deleting the provisions above
> ++and replace them with the notice and other provisions required by GPL as set
> ++out in the file called "GPL-COPYING" included in this distribution. If you do
> ++not delete the provisions above, a recipient may use your version of this file
> ++under the terms of either the MIT license or GPL.
> ++
> ++This License is also included in this distribution in the file called
> ++"MIT-COPYING".
> ++
> ++EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS
> ++PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
> ++BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
> ++PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
> ++COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
> ++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.
> ++
> ++*/ /**************************************************************************/
> + #if !defined(__WSEGL_H__)
> + #define __WSEGL_H__
> +
> +@@ -51,7 +60,7 @@ extern "C" {
> + // WSEGL API Version Number
> + */
> +
> +-#define WSEGL_VERSION 2
> ++#define WSEGL_VERSION 4
> + #define WSEGL_DEFAULT_DISPLAY 0
> + #define WSEGL_DEFAULT_NATIVE_ENGINE 0
> +
> +@@ -78,6 +87,11 @@ typedef enum WSEGLCapsType_TAG
> + WSEGL_CAP_WINDOWS_USE_HW_SYNC = 3, /* System default value = 0 (FALSE) */
> + WSEGL_CAP_PIXMAPS_USE_HW_SYNC = 4, /* System default value = 0 (FALSE) */
> +
> ++ /* When this capability is set, the EGL lock is not taken around calls
> ++ to WSEGL functions. The WSEGL module is responsible for performing
> ++ its own locking in this case. */
> ++ WSEGL_CAP_UNLOCKED = 5, /* System default value = 0 */
> ++
> + } WSEGLCapsType;
> +
> + /*
> +@@ -97,6 +111,19 @@ typedef struct WSEGLCaps_TAG
> + #define WSEGL_DRAWABLE_WINDOW 0x1
> + #define WSEGL_DRAWABLE_PIXMAP 0x2
> +
> ++/*
> ++// YUV format flags and sync
> ++*/
> ++#define WSEGL_FLAGS_YUV_CONFORMANT_RANGE (0 << 0)
> ++#define WSEGL_FLAGS_YUV_FULL_RANGE (1 << 0)
> ++#define WSEGL_FLAGS_YUV_BT601 (0 << 1)
> ++#define WSEGL_FLAGS_YUV_BT709 (1 << 1)
> ++#define WSEGL_FLAGS_EGLIMAGE_COMPOSITION_SYNC (1 << 2)
> ++
> ++/*
> ++// Maximum number of optional PowerVR Services 4 SYNCINFO objects
> ++*/
> ++#define WSEGL_MAX_SRC_SYNCS 32
> +
> + /*
> + // Pixel format of display/drawable
> +@@ -110,6 +137,16 @@ typedef enum WSEGLPixelFormat_TAG
> + WSEGL_PIXELFORMAT_ARGB1555 = 3,
> + WSEGL_PIXELFORMAT_ABGR8888 = 4,
> + WSEGL_PIXELFORMAT_XBGR8888 = 5,
> ++ WSEGL_PIXELFORMAT_NV12 = 6,
> ++ WSEGL_PIXELFORMAT_YUYV = 7,
> ++ WSEGL_PIXELFORMAT_YV12 = 8,
> ++ WSEGL_PIXELFORMAT_XRGB8888 = 9,
> ++ WSEGL_PIXELFORMAT_UYVY = 10,
> ++ WSEGL_PIXELFORMAT_NV12_4KALIGN = 11,
> ++ WSEGL_PIXELFORMAT_NV21_4KALIGN = 12,
> ++ WSEGL_PIXELFORMAT_R8 = 13,
> ++ WSEGL_PIXELFORMAT_R8G8 = 14,
> ++ WSEGL_PIXELFORMAT_NV21 = 15,
> +
> + /* These are compatibility names only; new WSEGL
> + * modules should not use them.
> +@@ -138,31 +175,33 @@ typedef struct WSEGLConfig_TAG
> + {
> + /*
> + // Type of drawables this configuration applies to -
> +- // OR'd values of drawable types.
> ++ // OR'd values of drawable types.
> + */
> +- unsigned long ui32DrawableType;
> ++ unsigned long ui32DrawableType;
> +
> + /* Pixel format */
> +- WSEGLPixelFormat ePixelFormat;
> ++ WSEGLPixelFormat ePixelFormat;
> +
> + /* Native Renderable - set to WSEGL_TRUE if native renderable */
> +- unsigned long ulNativeRenderable;
> ++ unsigned long ulNativeRenderable;
> +
> + /* FrameBuffer Level Parameter */
> +- unsigned long ulFrameBufferLevel;
> ++ unsigned long ulFrameBufferLevel;
> +
> + /* Native Visual ID */
> +- unsigned long ulNativeVisualID;
> ++ unsigned long ulNativeVisualID;
> +
> + /* Native Visual */
> +- void *hNativeVisual;
> ++ unsigned long ulNativeVisualType;
> +
> + /* Transparent Type */
> +- WSEGLTransparentType eTransparentType;
> ++ WSEGLTransparentType eTransparentType;
> +
> + /* Transparent Color - only used if transparent type is COLOR_KEY */
> +- unsigned long ulTransparentColor; /* packed as 0x00RRGGBB */
> ++ unsigned long ulTransparentColor; /* packed as 0x00RRGGBB */
> +
> ++ /* Framebuffer Target - set to WSEGL_TRUE if config compatible with framebuffer */
> ++ unsigned long ulFramebufferTarget;
> +
> + } WSEGLConfig;
> +
> +@@ -180,13 +219,14 @@ typedef enum WSEGLError_TAG
> + WSEGL_BAD_DRAWABLE = 6,
> + WSEGL_BAD_MATCH = 7,
> + WSEGL_OUT_OF_MEMORY = 8,
> ++ WSEGL_RETRY = 9,
> +
> + /* These are compatibility names only; new WSEGL
> + * modules should not use them.
> + */
> + WSEGL_BAD_CONFIG = WSEGL_BAD_MATCH,
> +
> +-} WSEGLError;
> ++} WSEGLError;
> +
> + /*
> + // Drawable orientation (in degrees anti-clockwise)
> +@@ -198,7 +238,7 @@ typedef enum WSEGLRotationAngle_TAG
> + WSEGL_ROTATE_180 = 2,
> + WSEGL_ROTATE_270 = 3
> +
> +-} WSEGLRotationAngle;
> ++} WSEGLRotationAngle;
> +
> + /*
> + // Drawable information required by OpenGL-ES driver
> +@@ -206,26 +246,46 @@ typedef enum WSEGLRotationAngle_TAG
> + typedef struct WSEGLDrawableParams_TAG
> + {
> + /* Width in pixels of the drawable */
> +- unsigned long ui32Width;
> ++ unsigned long ui32Width;
> +
> + /* Height in pixels of the drawable */
> +- unsigned long ui32Height;
> ++ unsigned long ui32Height;
> +
> + /* Stride in pixels of the drawable */
> +- unsigned long ui32Stride;
> ++ unsigned long ui32Stride;
> +
> + /* Pixel format of the drawable */
> +- WSEGLPixelFormat ePixelFormat;
> ++ WSEGLPixelFormat ePixelFormat;
> +
> + /* User space cpu virtual address of the drawable */
> +- void *pvLinearAddress;
> ++ void *pvLinearAddress;
> +
> + /* HW address of the drawable */
> +- unsigned long ui32HWAddress;
> ++ unsigned long ui32HWAddress;
> ++
> ++ /* Override display's HW_SYNC mode */
> ++ unsigned long bWaitForRender;
> +
> +- /* Private data for the drawable */
> +- void *hPrivateData;
> ++ /* Flags */
> ++ unsigned long ulFlags;
> +
> ++ /* Rotation angle of drawable (presently source only) */
> ++ WSEGLRotationAngle eRotationAngle;
> ++
> ++ /*
> ++ // Optional PowerVR Services 4 MEMINFO pointer. This may be used for
> ++ // internal (implicit) synchronization purposes, and by PDUMP. It should
> ++ // refer to the same object as the other fields in this structure.
> ++ */
> ++ void *hMemInfo;
> ++
> ++ /*
> ++ // Optional PowerVR Services 4 SYNCINFO pointers to sent down as source
> ++ // surface (texture) dependencies of a render. If these are provided
> ++ // when not applicable, they will be ignored. If a sync is not needed,
> ++ // it should be passed as NULL.
> ++ */
> ++ void *ahSyncInfo[WSEGL_MAX_SRC_SYNCS];
> +
> + } WSEGLDrawableParams;
> +
> +@@ -262,12 +322,18 @@ typedef struct WSEGL_FunctionTable_TAG
> +
> + WSEGLError (*pfnWSEGL_CopyFromPBuffer)(void *, unsigned long, unsigned long, unsigned long, WSEGLPixelFormat, NativePixmapType);
> +
> +- WSEGLError (*pfnWSEGL_GetDrawableParameters)(WSEGLDrawableHandle, WSEGLDrawableParams *, WSEGLDrawableParams *);
> ++ WSEGLError (*pfnWSEGL_GetDrawableParameters)(WSEGLDrawableHandle, WSEGLDrawableParams *, WSEGLDrawableParams *, unsigned long);
> +
> + WSEGLError (*pfnWSEGL_ConnectDrawable)(WSEGLDrawableHandle);
> +
> + WSEGLError (*pfnWSEGL_DisconnectDrawable)(WSEGLDrawableHandle);
> +
> ++ WSEGLError (*pfnWSEGL_FlagStartFrame)(void);
> ++
> ++
> ++#if defined (__QNXNTO__)
> ++ WSEGLError (*pfnWSEGL_WaitForDrawableRenderBuffer)(WSEGLDrawableHandle);
> ++#endif
> +
> + } WSEGL_FunctionTable;
> +
> +@@ -276,7 +342,7 @@ WSEGL_IMPORT const WSEGL_FunctionTable *WSEGL_GetFunctionTablePointer(void);
> +
> + #ifdef __cplusplus
> + }
> +-#endif
> ++#endif
> +
> + #endif /* __WSEGL_H__ */
> +
> +diff --git a/src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwswsegl.c b/src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwswsegl.c
> +index d42e59f..24e5b0d 100644
> +--- a/src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwswsegl.c
> ++++ b/src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwswsegl.c
> +@@ -336,12 +336,17 @@ static WSEGLError wseglCopyFromPBuffer
> + /* Return the parameters of a drawable that are needed by the EGL layer */
> + static WSEGLError wseglGetDrawableParameters
> + (WSEGLDrawableHandle _drawable, WSEGLDrawableParams *sourceParams,
> +- WSEGLDrawableParams *renderParams)
> ++ WSEGLDrawableParams *renderParams,unsigned long ulPlaneOffset)
> + {
> + PvrQwsDrawable *drawable = (PvrQwsDrawable *)_drawable;
> + PVR2DMEMINFO *source, *render;
> + WSEGLPixelFormat pixelFormat;
> +
> ++ WSEGL_UNREFERENCED_PARAMETER(ulPlaneOffset);
> ++
> ++ memset(renderParams, 0, sizeof(*renderParams));
> ++ memset(sourceParams, 0, sizeof(*sourceParams));
> ++
> + if (!pvrQwsGetBuffers(drawable, &source, &render))
> + return WSEGL_BAD_DRAWABLE;
> +
> +@@ -366,7 +371,7 @@ static WSEGLError wseglGetDrawableParameters
> + sourceParams->ePixelFormat = pixelFormat;
> + sourceParams->pvLinearAddress = source->pBase;
> + sourceParams->ui32HWAddress = source->ui32DevAddr;
> +- sourceParams->hPrivateData = source->hPrivateData;
> ++ sourceParams->hMemInfo = source->hPrivateData;
> +
> + renderParams->ui32Width = drawable->rect.width;
> + renderParams->ui32Height = drawable->rect.height;
> +@@ -374,7 +379,7 @@ static WSEGLError wseglGetDrawableParameters
> + renderParams->ePixelFormat = pixelFormat;
> + renderParams->pvLinearAddress = render->pBase;
> + renderParams->ui32HWAddress = render->ui32DevAddr;
> +- renderParams->hPrivateData = render->hPrivateData;
> ++ renderParams->hMemInfo = render->hPrivateData;
> +
> + return WSEGL_SUCCESS;
> + }
> +@@ -393,6 +398,20 @@ static WSEGLError wseglDisconnectDrawable(WSEGLDrawableHandle hDrawable)
> + return WSEGL_SUCCESS;
> + }
> +
> ++/***********************************************************************************
> ++ Function Name : WSEGL_FlagStartFrame
> ++ Inputs : hDrawable
> ++ Outputs : None
> ++ Returns : Error code
> ++ Description : Indicates that there have been rendering commands submitted
> ++ by a client driver
> ++************************************************************************************/
> ++static WSEGLError wseglFlagStartFrame(void)
> ++{
> ++ return WSEGL_SUCCESS;
> ++}
> ++
> ++
> + static WSEGL_FunctionTable const wseglFunctions = {
> + WSEGL_VERSION,
> + wseglIsDisplayValid,
> +@@ -408,7 +427,8 @@ static WSEGL_FunctionTable const wseglFunctions = {
> + wseglCopyFromPBuffer,
> + wseglGetDrawableParameters,
> + wseglConnectDrawable,
> +- wseglDisconnectDrawable
> ++ wseglDisconnectDrawable,
> ++ wseglFlagStartFrame,
> + };
> +
> + /* Return the table of WSEGL functions to the EGL implementation */
> +--
> +1.7.0.4
> +
> diff --git a/meta-arago-extras/recipes-qt/qt4/qt4-embedded-gles_4.8.4.bb b/meta-arago-extras/recipes-qt/qt4/qt4-embedded-gles_4.8.4.bb
> index fa2d31c..460de67 100644
> --- a/meta-arago-extras/recipes-qt/qt4/qt4-embedded-gles_4.8.4.bb
> +++ b/meta-arago-extras/recipes-qt/qt4/qt4-embedded-gles_4.8.4.bb
> @@ -1,7 +1,7 @@
> require ${COREBASE}/meta/recipes-qt/qt4/qt4-${PV}.inc
> require ${COREBASE}/meta/recipes-qt/qt4/qt4-embedded.inc
>
> -PR = "${INC_PR}.2"
> +PR = "${INC_PR}.3"
>
> FILESEXTRAPATHS_append := "${THISDIR}/${PN}:${COREBASE}/meta/recipes-qt/qt4/qt4-${PV}:${COREBASE}/meta/recipes-qt/qt4/files:"
>
> @@ -12,6 +12,8 @@ SRC_URI += " \
> file://002_pvrqwswsegl.c.patch \
> file://cursor-hack.diff \
> "
> +SRC_URI_append_ti33x = " file://0001-Qt-4.x-v2-Changes-for-integrating-with-TI-graphics-S.patch"
> +SRC_URI_append_ti43x = " file://0001-Qt-4.x-v2-Changes-for-integrating-with-TI-graphics-S.patch"
>
> QT_CONFIG_FLAGS_append_armv6 = " -no-neon "
>
> --
> 1.7.0.4
>
> _______________________________________________
> meta-arago mailing list
> meta-arago@arago-project.org
> http://arago-project.org/cgi-bin/mailman/listinfo/meta-arago
>
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 1/6] qt4-embedded-gles: Add support for new version of the Graphics SDK
2013-11-22 15:02 ` Denys Dmytriyenko
@ 2013-11-22 15:13 ` Cooper Jr., Franklin
2013-11-22 18:51 ` Denys Dmytriyenko
0 siblings, 1 reply; 18+ messages in thread
From: Cooper Jr., Franklin @ 2013-11-22 15:13 UTC (permalink / raw)
To: Denys Dmytriyenko; +Cc: meta-arago@arago-project.org
I don't think you sent a patch for qt4-embedded-gles.
Are you sure you're not thinking about the qtwebkit patch?
http://arago-project.org/git/meta-arago.git?a=commit;h=370c6ed8e738eb3066160f133897a14eb3af1955
> -----Original Message-----
> From: Denys Dmytriyenko [mailto:denis@denix.org]
> Sent: Friday, November 22, 2013 9:03 AM
> To: Cooper Jr., Franklin
> Cc: meta-arago@arago-project.org
> Subject: Re: [meta-arago] [PATCH 1/6] qt4-embedded-gles: Add support for
> new version of the Graphics SDK
>
> I believe I already had this set?
>
> On Fri, Nov 22, 2013 at 09:45:16AM -0600, Franklin S. Cooper Jr wrote:
> > * Add support for the Graphics SDK version 5.00.00.01
> > * For now only apply the patches to AM43x and AM335x since this alpha
> release of
> > the Graphics SDK has only been sanity tested for these platforms.
> > * The official release should support all the typical platforms and this patch
> > can be applied for all devices.
> >
> > Signed-off-by: Franklin S. Cooper Jr <fcooper@ti.com>
> > ---
> > ...hanges-for-integrating-with-TI-graphics-S.patch | 719
> ++++++++++++++++++++
> > .../recipes-qt/qt4/qt4-embedded-gles_4.8.4.bb | 4 +-
> > 2 files changed, 722 insertions(+), 1 deletions(-) create mode
> > 100644
> > meta-arago-extras/recipes-qt/qt4/qt4-embedded-gles/0001-Qt-4.x-v2-Chan
> > ges-for-integrating-with-TI-graphics-S.patch
> >
> > diff --git
> > a/meta-arago-extras/recipes-qt/qt4/qt4-embedded-gles/0001-Qt-4.x-v2-Ch
> > anges-for-integrating-with-TI-graphics-S.patch
> > b/meta-arago-extras/recipes-qt/qt4/qt4-embedded-gles/0001-Qt-4.x-v2-Ch
> > anges-for-integrating-with-TI-graphics-S.patch
> > new file mode 100644
> > index 0000000..73ef094
> > --- /dev/null
> > +++ b/meta-arago-extras/recipes-qt/qt4/qt4-embedded-gles/0001-Qt-4.x-v
> > +++ 2-Changes-for-integrating-with-TI-graphics-S.patch
> > @@ -0,0 +1,719 @@
> > +From c463092eb5465cf7a7f9f783425dd75ec48d5f89 Mon Sep 17
> 00:00:00
> > +2001
> > +From: Prathap Srinivas <msprathap@ti.com>
> > +Date: Tue, 5 Nov 2013 07:52:34 -0600
> > +Subject: [PATCH] Qt 4.x v2: Changes for integrating with TI graphics
> > +SDK release 04.10.00.01
> > +
> > +This patch adds the changes required for Qt 4.x to work with 04.10 TI gfx
> sdk.
> > +04.10.00.01 TI gfx sdk is based on 1.10 Linux DDK from Imagination
> > +Technologies wsegl.h, pvr2d.h has been updated with 1.10 DDK.
> > +This patch includes the updated files and also makes the required changes.
> > +The changes are in QWSWSEGL to interface with updated wsegl.h.
> > +
> > +Version 2:
> > +Updated to apply cleanly
> > +---
> > + src/3rdparty/powervr/wsegl2/pvr2d.h | 190 +++++++++++++------
> -
> > + src/3rdparty/powervr/wsegl2/wsegl.h | 172 ++++++++++++------
> > + .../gfxdrivers/powervr/QWSWSEGL/pvrqwswsegl.c | 28 +++-
> > + 3 files changed, 269 insertions(+), 121 deletions(-)
> > +
> > +diff --git a/src/3rdparty/powervr/wsegl2/pvr2d.h
> > +b/src/3rdparty/powervr/wsegl2/pvr2d.h
> > +index 0f44833..d7e8123 100644
> > +--- a/src/3rdparty/powervr/wsegl2/pvr2d.h
> > ++++ b/src/3rdparty/powervr/wsegl2/pvr2d.h
> > +@@ -1,39 +1,47 @@
> > +-
> /************************************************************
> *******
> > +***
> > +-*
> > +-* Copyright(c) Imagination Technologies Ltd.
> > +-*
> > +-* The contents of this file are subject to the MIT license as set out below.
> > +-*
> > +-* Permission is hereby granted, free of charge, to any person
> > +obtaining a copy
> > +-* of this software and associated documentation files (the
> > +"Software"),
> > +-* to deal in the Software without restriction, including without
> > +limitation
> > +-* the rights to use, copy, modify, merge, publish, distribute,
> > +sublicense,
> > +-* and/or sell copies of the Software, and to permit persons to whom
> > +the
> > +-* Software is furnished to do so, subject to the following conditions:
> > +-*
> > +-* The above copyright notice and this permission notice shall be
> > +included
> > +-* in all copies or substantial portions of the Software.
> > +-*
> > +-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
> KIND,
> > +EXPRESS
> > +-* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
> > +MERCHANTABILITY,
> > +-* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
> > +-* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
> FOR
> > +ANY CLAIM,
> > +-* DAMAGES OR OTHER LIABILITY, WHETHER 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.
> > +-*
> > +-* This License is also included in this distribution in the file
> > +called
> > +-* "COPYING".
> > +-*
> > +-
> *************************************************************
> *******
> > +**********/
> > +-
> > +-
> >
> ++/**********************************************************
> ***************/ /*!
> > ++@Copyright Copyright (c) Imagination Technologies Ltd. All Rights
> Reserved
> > ++@License Dual MIT/GPLv2
> > ++
> > ++The contents of this file are subject to the MIT license as set out below.
> > ++
> > ++Permission is hereby granted, free of charge, to any person
> > ++obtaining a copy of this software and associated documentation files
> > ++(the "Software"), to deal in the Software without restriction,
> > ++including without limitation the rights to use, copy, modify, merge,
> > ++publish, distribute, sublicense, and/or sell copies of the Software,
> > ++and to permit persons to whom the Software is furnished to do so, subject
> to the following conditions:
> > ++
> > ++The above copyright notice and this permission notice shall be
> > ++included in all copies or substantial portions of the Software.
> > ++
> > ++Alternatively, the contents of this file may be used under the terms
> > ++of the GNU General Public License Version 2 ("GPL") in which case
> > ++the provisions of GPL are applicable instead of those above.
> > ++
> > ++If you wish to allow use of your version of this file only under the
> > ++terms of GPL, and not to allow others to use your version of this
> > ++file under the terms of the MIT license, indicate your decision by
> > ++deleting the provisions above and replace them with the notice and
> > ++other provisions required by GPL as set out in the file called
> > ++"GPL-COPYING" included in this distribution. If you do not delete
> > ++the provisions above, a recipient may use your version of this file under the
> terms of either the MIT license or GPL.
> > ++
> > ++This License is also included in this distribution in the file
> > ++called "MIT-COPYING".
> > ++
> > ++EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE
> > ++SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
> EXPRESS
> > ++OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
> > ++MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
> > ++NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
> COPYRIGHT
> > ++HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
> WHETHER
> > ++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.
> > ++
> > ++*/
> >
> ++/**********************************************************
> *********
> > ++*******/
> > +
> > +
> >
> +/***********************************************************
> *********
> > +**********
> > + Modifications :-
> > + $Log: pvr2d.h $
> > +-
> > +- --- Revision Logs Removed ---
> > +
> >
> +************************************************************
> *********
> > +*********/
> > +
> > + #ifndef _PVR2D_H_
> > +@@ -54,7 +62,7 @@ extern "C" {
> > +
> > + /* PVR2D header revision */
> > + #define PVR2D_REV_MAJOR 3
> > +-#define PVR2D_REV_MINOR 5
> > ++#define PVR2D_REV_MINOR 6
> > +
> > + /* Basic types */
> > + typedef enum
> > +@@ -67,13 +75,20 @@ typedef void* PVR2D_HANDLE;
> > +
> > + typedef char PVR2D_CHAR, *PVR2D_PCHAR;
> > + typedef unsigned char PVR2D_UCHAR, *PVR2D_PUCHAR;
> > ++
> > + typedef int PVR2D_INT, *PVR2D_PINT;
> > + typedef unsigned int PVR2D_UINT, *PVR2D_PUINT;
> > ++
> > ++typedef unsigned short PVR2D_UINT16, *PVR2D_PUINT16;
> > ++typedef signed short PVR2D_INT16, *PVR2D_PINT16;
> > ++
> > + typedef long PVR2D_LONG, *PVR2D_PLONG;
> > + typedef unsigned long PVR2D_ULONG, *PVR2D_PULONG;
> > +
> > + typedef void PVR2D_VOID, *PVR2D_PVOID;
> > +
> > ++/* services/stream ID */
> > ++typedef unsigned int PVR2D_SID;
> > +
> > + /* error codes */
> > + typedef enum
> > +@@ -99,7 +114,7 @@ typedef unsigned long PVR2DFORMAT;
> > + #define PVR2D_1BPP
> 0x00UL // 1bpp mask surface or palletized 1 bit source with 2x32 bit
> CLUT
> > + #define PVR2D_RGB565
> 0x01UL // Common rgb 565 format
> > + #define PVR2D_ARGB4444
> 0x02UL // Common argb 4444 format
> > +-#define PVR2D_RGB888
> 0x03UL // Common rgb 888 format (not supported)
> > ++#define PVR2D_RGB888
> 0x03UL // Common rgb 888 format
> > + #define PVR2D_ARGB8888
> 0x04UL // Common argb 8888 format
> > + #define PVR2D_ARGB1555
> 0x05UL // Common argb 1555 format
> > + #define PVR2D_ALPHA8
> 0x06UL // Alpha-only 8 bit per pixel (used with a constant fill colour)
> > +@@ -114,16 +129,18 @@ typedef unsigned long PVR2DFORMAT;
> > + #define PVR2D_YUV422_UYVY 0x14UL //
> YUV 422 low-high byte order UY0VY1
> > + #define PVR2D_YUV422_YVYU 0x15UL //
> YUV 422 low-high byte order Y0VY1U
> > + #define PVR2D_YUV422_VYUY 0x16UL //
> YUV 422 low-high byte order VY0UY1
> > +-#define PVR2D_YUV420_2PLANE 0x17UL //
> YUV420 2 Plane
> > +-#define PVR2D_YUV420_3PLANE 0x18UL //
> YUV420 3 Plane
> > +-#define PVR2D_2101010ARGB 0x19UL // 32
> bit 2 10 10 10
> > +-#define PVR2D_888RSGSBS 0x1AUL
> > ++#define PVR2D_YUV420_2PLANE 0x17UL //
> YUV420 2 Plane with UV interleaved in plane 2
> > ++#define PVR2D_YVU420_3PLANE 0x18UL //
> YVU420 3 Plane
> > ++#define PVR2D_YUV420_3PLANE 0x21UL //
> YUV420 3 Plane
> > ++#define PVR2D_2101010ARGB 0x19UL // 32
> bit 2 10 10 10
> > ++#define PVR2D_888RSGSBS 0x1AUL // 3
> channel signed 8 bit
> > + #define PVR2D_16BPP_RAW
> 0x1BUL // 16 bit raw (no format conversion)
> > + #define PVR2D_32BPP_RAW
> 0x1CUL // 32 bit raw
> > + #define PVR2D_64BPP_RAW
> 0x1DUL // 64 bit raw
> > + #define PVR2D_128BPP_RAW 0x1EUL //
> 128 bit raw
> > +-
> > +-#define PVR2D_NO_OF_FORMATS
> 0x1FUL
> > ++#define PVR2D_AYUV8888 0x1FUL
> > ++#define PVR2D_F16
> 0x20UL
> > ++#define PVR2D_NO_OF_FORMATS
> 0x22UL
> > +
> > + /* Format modifier bit field (DstFormat and SrcFormat bits 16..23) */
> > + #define PVR2D_FORMAT_MASK
> 0x0000FFFFUL // PVR2D Format bits
> > +@@ -141,7 +158,8 @@ typedef unsigned long PVR2DFORMAT;
> > + This flag requests a surface pdump, to capture the pixel state after host
> writes.
> > + Not needed if the surface state has resulted from previous SGX 2D/3D
> core writes.
> > + */
> > +-#define PVR2D_SURFACE_PDUMP
> 0x00100000UL // calls PVRSRVPDumpMem to capture the surface
> (pdump builds only)
> > ++#define PVR2D_SURFACE_PDUMP
> 0x00100000UL // calls PVRSRVPDumpMem to capture the surface
> (pdump builds only)
> > ++#define PVR2D_BLTRECT_PDUMP
> 0x00200000UL // calls PVRSRVPDumpMem to capture the blt rectangle
> (pdump builds only)
> > +
> > + /*
> > + Low level 3D format extension - for blts via the 3D core only.
> > +@@ -155,8 +173,7 @@ typedef unsigned long PVR2DFORMAT; typedef
> enum
> > +{
> > + PVR2D_WRAPFLAG_NONCONTIGUOUS = 0,
> > +- PVR2D_WRAPFLAG_CONTIGUOUS = 1,
> > +-
> > ++ PVR2D_WRAPFLAG_CONTIGUOUS = 1
> > + }PVR2DWRAPFLAGS;
> > +
> > + #define PVR2D_CONTEXT_FLAGS_PRIORITY_MASK
> 0x00000003
> > +@@ -171,7 +188,7 @@ typedef enum
> > + PVR2D_BLIT_DISABLE_ALL =
> 0x00000000, /* disable all additional controls */
> > + PVR2D_BLIT_CK_ENABLE =
> 0x00000001, /* enable colour key */
> > + PVR2D_BLIT_GLOBAL_ALPHA_ENABLE =
> 0x00000002, /* enable standard global alpha */
> > +- PVR2D_BLIT_PERPIXEL_ALPHABLEND_ENABLE = 0x00000004, /*
> enable per-pixel alpha bleding */
> > ++ PVR2D_BLIT_PERPIXEL_ALPHABLEND_ENABLE = 0x00000004, /*
> enable per-pixel alpha blending */
> > + PVR2D_BLIT_PAT_SURFACE_ENABLE =
> 0x00000008, /* enable pattern surf (disable fill) */
> > + PVR2D_BLIT_FULLY_SPECIFIED_ALPHA_ENABLE = 0x00000010, /*
> enable fully specified alpha */
> > + PVR2D_BLIT_ROT_90 =
> 0x00000020, /* apply 90 degree rotation to the blt */
> > +@@ -186,11 +203,12 @@ typedef enum
> > + PVR2D_BLIT_COLKEY_MASKED =
> 0x00004000, /* Mask enabled for colour key */
> > + PVR2D_BLIT_COLKEY_OP_PASS =
> 0x00008000, /* Colour key op = pass */
> > + PVR2D_BLIT_COLKEY_OP_REJECT =
> 0x00010000, /* Colour key op = reject */
> > ++ PVR2D_BLIT_ROP4
> = 0x00020000, /* rop4 pattern support */
> > + PVR2D_BLIT_PATH_2DCORE =
> 0x00100000, /* Blt via dedicated 2D Core or PTLA */
> > + PVR2D_BLIT_PATH_3DCORE =
> 0x00200000, /* Blt via 3D Core */
> > + PVR2D_BLIT_PATH_SWBLT =
> 0x00400000, /* Blt via host software */
> > + PVR2D_BLIT_NO_SRC_SYNC_INFO =
> 0x00800000, /* Dont send a source sync info*/
> > +- PVR2D_BLIT_ISSUE_STATUS_UPDATES =
> 0x01000000, /* Issue status updates */
> > ++ PVR2D_BLIT_ISSUE_STATUS_UPDATES =
> 0x01000000, /* Issue SyncInfo status updates */
> > +
> > + } PVR2DBLITFLAGS;
> > +
> > +@@ -288,6 +306,17 @@ typedef struct _PVR2MISCDISPLAYINFO
> > +
> > + }PVR2DMISCDISPLAYINFO;
> > +
> > ++typedef struct
> > ++{
> > ++ PVR2DMEMINFO *pSurfMemInfo; /* surface
> memory */
> > ++ PVR2D_ULONG SurfOffset; /* byte offset
> from start of allocation to destination surface pixel 0,0 */
> > ++ PVR2D_LONG Stride; /* signed
> stride */
> > ++ PVR2DFORMAT Format; /* format */
> > ++ PVR2D_ULONG SurfWidth; /* surface
> width in pixels */
> > ++ PVR2D_ULONG SurfHeight; /* surface
> height in pixels */
> > ++
> > ++} PVR2D_SURFACE, *PPVR2D_SURFACE;
> > ++
> > +
> > + typedef struct _PVR2DBLTINFO
> > + {
> > +@@ -326,34 +355,28 @@ typedef struct _PVR2DBLTINFO
> > + PVR2D_LONG MaskX, MaskY; /* mask rect top left
> (mask size = blt size) */
> > + PVR2D_ULONG MaskSurfWidth; /* size of
> mask surface in pixels */
> > + PVR2D_ULONG MaskSurfHeight; /* size of
> mask surface in pixels */
> > +-
> > ++
> > + PPVR2D_ALPHABLT pAlpha; /* fully
> specified alpha blend (2DCore only) */
> > +-
> > ++
> > + PVR2D_ULONG uSrcChromaPlane1; /* mem offset from
> start of source alloc to chroma plane 1 */
> > + PVR2D_ULONG uSrcChromaPlane2; /* mem offset from
> start of source alloc to chroma plane 2 */
> > + PVR2D_ULONG uDstChromaPlane1; /* mem offset from
> start of dest alloc to chroma plane 1 */
> > + PVR2D_ULONG uDstChromaPlane2; /* mem offset from
> start of dest alloc to chroma plane 2 */
> > +-
> > ++
> > + PVR2D_ULONG ColourKeyMask; /* 32 bit
> colour key mask, only valid when PVR2D_BLIT_COLKEY_MASKED is set */
> > +
> > ++ PPVR2D_SURFACE pPat; /* full rop4
> support for patterns if PVR2D_BLIT_ROP4 set (2D Core hardware only) */
> > ++ PVR2D_LONG PatX, PatY; /* pattern
> start offset if PVR2D_BLIT_ROP4 set (2D Core hardware only) */
> > ++
> > + }PVR2DBLTINFO, *PPVR2DBLTINFO;
> > +
> > ++
> > + typedef struct _PVR2DRECT
> > + {
> > + PVR2D_LONG left, top;
> > + PVR2D_LONG right, bottom;
> > +-} PVR2DRECT;
> > ++} PVR2DRECT, *PPVR2DRECT;
> > +
> > +-typedef struct
> > +-{
> > +- PVR2DMEMINFO *pSurfMemInfo; /* surface
> memory */
> > +- PVR2D_ULONG SurfOffset; /* byte offset
> from start of allocation to destination surface pixel 0,0 */
> > +- PVR2D_LONG Stride; /* signed
> stride */
> > +- PVR2DFORMAT Format; /* format */
> > +- PVR2D_ULONG SurfWidth; /* surface
> width in pixels */
> > +- PVR2D_ULONG SurfHeight; /* surface
> height in pixels */
> > +-
> > +-} PVR2D_SURFACE, *PPVR2D_SURFACE;
> > +
> > + typedef struct
> > + {
> > +@@ -479,8 +502,8 @@ typedef void* PVR2DFLIPCHAINHANDLE;
> > +
> > + #define PVR2D_CREATE_FLIPCHAIN_SHARED (1UL << 0)
> > + #define PVR2D_CREATE_FLIPCHAIN_QUERY (1UL << 1)
> > +-#define PVR2D_CREATE_FLIPCHAIN_OEMOVERLAY (1UL << 2)
> > +-#define PVR2D_CREATE_FLIPCHAIN_AS_BLITCHAIN (1UL << 3)
> > ++#define PVR2D_CREATE_FLIPCHAIN_OEMOVERLAY (1UL << 2)
> > ++#define PVR2D_CREATE_FLIPCHAIN_AS_BLITCHAIN (1UL << 3)
> > +
> > + /* Colour-key colour must be translated into argb8888 format */
> > + #define CKEY_8888(P) (P)
> > +@@ -498,7 +521,8 @@ typedef void* PVR2DFLIPCHAINHANDLE;
> > + #define CFILL_565(P) (((P&0xF800UL)<<8) |
> ((P&0x7E0UL)<<5) | ((P&0x1FUL)<<3))
> > +
> > + /* PVR2DCreateDeviceContext flags */
> > +-#define PVR2D_XSERVER_PROC 0x00000001UL
> /*!< Set for the Xserver connection */
> > ++#define PVR2D_XSERVER_PROC 0x00000001UL
> /* Set for the Xserver connection */
> > ++#define PVR2D_FLAGS_PDUMP_ACTIVE 0x00000002UL /* Set
> when pdumping from multiple processes */
> > +
> > + /* PVR2DMemAlloc flags */
> > + #define PVR2D_MEM_UNCACHED 0x00000000UL /*
> Default */
> > +@@ -508,7 +532,7 @@ typedef void* PVR2DFLIPCHAINHANDLE;
> > + /* Functions that the library exports */
> > +
> > + PVR2D_IMPORT
> > +-int PVR2DEnumerateDevices(PVR2DDEVICEINFO *pDevInfo);
> > ++PVR2D_INT PVR2DEnumerateDevices(PVR2DDEVICEINFO *pDevInfo);
> > +
> > + PVR2D_IMPORT
> > + PVR2DERROR PVR2DCreateDeviceContext(PVR2D_ULONG ulDevID, @@ -
> 633,7
> > ++657,7 @@ PVR2DERROR
> PVR2DSetPresentFlipProperties(PVR2DCONTEXTHANDLE hContext,
> > +
> PVR2D_ULONG ulPropertyMask,
> > +
> PVR2D_LONG lDstXPos,
> > +
> PVR2D_LONG lDstYPos,
> > +-
> PVR2D_ULONG ulNumClipRects,
> > ++
> PVR2D_ULONG ulNumClipRects,
> > +
> PVR2DRECT *pClipRects,
> > +
> PVR2D_ULONG ulSwapInterval);
> > +
> > +@@ -658,6 +682,44 @@ PVR2DERROR PVR2DBlt3D (const
> PVR2DCONTEXTHANDLE
> > +hContext, const PPVR2D_3DBLT pBl PVR2D_IMPORT PVR2DERROR
> > +PVR2DBlt3DExt (const PVR2DCONTEXTHANDLE hContext, const
> > +PPVR2D_3DBLT_EXT pBlt3D);
> > +
> > ++
> > ++PVR2D_IMPORT
> > ++PVR2DERROR PVR2DModifyPendingOps(const PVR2DCONTEXTHANDLE
> hContext,
> > ++
> PVR2D_HANDLE *phSyncModObj,
> > ++
> PVR2DMEMINFO *psMemInfo,
> > ++
> PVR2D_BOOL bIsWriteOp,
> > ++
> PVR2D_ULONG *pulReadOpsPending,
> > ++
> PVR2D_ULONG *pulWriteOpsPending);
> > ++
> > ++PVR2D_IMPORT
> > ++PVR2DERROR PVR2DModifyCompleteOps(const PVR2DCONTEXTHANDLE
> hContext,
> > ++
> PVR2D_HANDLE hSyncModObj);
> > ++
> > ++PVR2D_IMPORT
> > ++PVR2DERROR PVR2DFlushToSyncModObj(const PVR2DCONTEXTHANDLE
> hContext,
> > ++
> PVR2D_HANDLE hSyncModObj,
> > ++
> PVR2D_BOOL bWait);
> > ++
> > ++PVR2D_IMPORT
> > ++PVR2DERROR PVR2DTakeSyncToken(const PVR2DCONTEXTHANDLE
> hContext,
> > ++ PVR2DMEMINFO
> *psMemInfo,
> > ++ PVR2D_HANDLE
> *phSyncToken,
> > ++ PVR2D_ULONG
> *pulReadOpsPending,
> > ++ PVR2D_ULONG
> *pulWriteOpsPending);
> > ++
> > ++PVR2D_IMPORT
> > ++PVR2DERROR PVR2DReleaseSyncToken(const PVR2DCONTEXTHANDLE
> hContext,
> > ++
> PVR2D_HANDLE hSyncToken);
> > ++
> > ++PVR2D_IMPORT
> > ++PVR2DERROR PVR2DFlushToSyncToken(const PVR2DCONTEXTHANDLE
> hContext,
> > ++
> PVR2DMEMINFO *psMemInfo,
> > ++
> PVR2D_HANDLE hSyncToken,
> > ++
> PVR2D_BOOL bWait);
> > ++
> > ++PVR2D_IMPORT
> > ++PVR2DERROR PVR2DWaitForNextHardwareEvent(const
> PVR2DCONTEXTHANDLE
> > ++hContext);
> > ++
> > + #ifdef __cplusplus
> > + }
> > + #endif
> > +diff --git a/src/3rdparty/powervr/wsegl2/wsegl.h
> > +b/src/3rdparty/powervr/wsegl2/wsegl.h
> > +index a2c3ffc..480179b 100644
> > +--- a/src/3rdparty/powervr/wsegl2/wsegl.h
> > ++++ b/src/3rdparty/powervr/wsegl2/wsegl.h
> > +@@ -1,34 +1,43 @@
> > +-
> /************************************************************
> *******
> > +***
> > +-*
> > +-* Copyright(c) Imagination Technologies Ltd.
> > +-*
> > +-* The contents of this file are subject to the MIT license as set out below.
> > +-*
> > +-* Permission is hereby granted, free of charge, to any person
> > +obtaining a copy
> > +-* of this software and associated documentation files (the
> > +"Software"),
> > +-* to deal in the Software without restriction, including without
> > +limitation
> > +-* the rights to use, copy, modify, merge, publish, distribute,
> > +sublicense,
> > +-* and/or sell copies of the Software, and to permit persons to whom
> > +the
> > +-* Software is furnished to do so, subject to the following conditions:
> > +-*
> > +-* The above copyright notice and this permission notice shall be
> > +included
> > +-* in all copies or substantial portions of the Software.
> > +-*
> > +-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
> KIND,
> > +EXPRESS
> > +-* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
> > +MERCHANTABILITY,
> > +-* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
> > +-* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
> FOR
> > +ANY CLAIM,
> > +-* DAMAGES OR OTHER LIABILITY, WHETHER 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.
> > +-*
> > +-* This License is also included in this distribution in the file
> > +called
> > +-* "COPYING".
> > +-*
> > +-
> *************************************************************
> *******
> > +**********/
> > +-
> > +-
> > +-
> >
> ++/**********************************************************
> ***************/ /*!
> > ++@Copyright Copyright (c) Imagination Technologies Ltd. All Rights
> Reserved
> > ++@License Dual MIT/GPLv2
> > ++
> > ++The contents of this file are subject to the MIT license as set out below.
> > ++
> > ++Permission is hereby granted, free of charge, to any person
> > ++obtaining a copy of this software and associated documentation files
> > ++(the "Software"), to deal in the Software without restriction,
> > ++including without limitation the rights to use, copy, modify, merge,
> > ++publish, distribute, sublicense, and/or sell copies of the Software,
> > ++and to permit persons to whom the Software is furnished to do so, subject
> to the following conditions:
> > ++
> > ++The above copyright notice and this permission notice shall be
> > ++included in all copies or substantial portions of the Software.
> > ++
> > ++Alternatively, the contents of this file may be used under the terms
> > ++of the GNU General Public License Version 2 ("GPL") in which case
> > ++the provisions of GPL are applicable instead of those above.
> > ++
> > ++If you wish to allow use of your version of this file only under the
> > ++terms of GPL, and not to allow others to use your version of this
> > ++file under the terms of the MIT license, indicate your decision by
> > ++deleting the provisions above and replace them with the notice and
> > ++other provisions required by GPL as set out in the file called
> > ++"GPL-COPYING" included in this distribution. If you do not delete
> > ++the provisions above, a recipient may use your version of this file under the
> terms of either the MIT license or GPL.
> > ++
> > ++This License is also included in this distribution in the file
> > ++called "MIT-COPYING".
> > ++
> > ++EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE
> > ++SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
> EXPRESS
> > ++OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
> > ++MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
> > ++NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
> COPYRIGHT
> > ++HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
> WHETHER
> > ++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.
> > ++
> > ++*/
> >
> ++/**********************************************************
> *********
> > ++*******/
> > + #if !defined(__WSEGL_H__)
> > + #define __WSEGL_H__
> > +
> > +@@ -51,7 +60,7 @@ extern "C" {
> > + // WSEGL API Version Number
> > + */
> > +
> > +-#define WSEGL_VERSION 2
> > ++#define WSEGL_VERSION 4
> > + #define WSEGL_DEFAULT_DISPLAY 0
> > + #define WSEGL_DEFAULT_NATIVE_ENGINE 0
> > +
> > +@@ -78,6 +87,11 @@ typedef enum WSEGLCapsType_TAG
> > + WSEGL_CAP_WINDOWS_USE_HW_SYNC = 3, /* System default value
> = 0 (FALSE) */
> > + WSEGL_CAP_PIXMAPS_USE_HW_SYNC = 4, /* System default value =
> 0
> > +(FALSE) */
> > +
> > ++ /* When this capability is set, the EGL lock is not taken around calls
> > ++ to WSEGL functions. The WSEGL module is responsible for performing
> > ++ its own locking in this case. */
> > ++ WSEGL_CAP_UNLOCKED = 5, /* System default value = 0 */
> > ++
> > + } WSEGLCapsType;
> > +
> > + /*
> > +@@ -97,6 +111,19 @@ typedef struct WSEGLCaps_TAG
> > + #define WSEGL_DRAWABLE_WINDOW 0x1
> > + #define WSEGL_DRAWABLE_PIXMAP 0x2
> > +
> > ++/*
> > ++// YUV format flags and sync
> > ++*/
> > ++#define WSEGL_FLAGS_YUV_CONFORMANT_RANGE (0 <<
> 0)
> > ++#define WSEGL_FLAGS_YUV_FULL_RANGE (1 <<
> 0)
> > ++#define WSEGL_FLAGS_YUV_BT601 (0 <<
> 1)
> > ++#define WSEGL_FLAGS_YUV_BT709 (1 <<
> 1)
> > ++#define WSEGL_FLAGS_EGLIMAGE_COMPOSITION_SYNC (1 << 2)
> > ++
> > ++/*
> > ++// Maximum number of optional PowerVR Services 4 SYNCINFO objects */
> > ++#define WSEGL_MAX_SRC_SYNCS 32
> > +
> > + /*
> > + // Pixel format of display/drawable
> > +@@ -110,6 +137,16 @@ typedef enum WSEGLPixelFormat_TAG
> > + WSEGL_PIXELFORMAT_ARGB1555 = 3,
> > + WSEGL_PIXELFORMAT_ABGR8888 = 4,
> > + WSEGL_PIXELFORMAT_XBGR8888 = 5,
> > ++ WSEGL_PIXELFORMAT_NV12 = 6,
> > ++ WSEGL_PIXELFORMAT_YUYV = 7,
> > ++ WSEGL_PIXELFORMAT_YV12 = 8,
> > ++ WSEGL_PIXELFORMAT_XRGB8888 = 9,
> > ++ WSEGL_PIXELFORMAT_UYVY = 10,
> > ++ WSEGL_PIXELFORMAT_NV12_4KALIGN = 11,
> > ++ WSEGL_PIXELFORMAT_NV21_4KALIGN = 12,
> > ++ WSEGL_PIXELFORMAT_R8 = 13,
> > ++ WSEGL_PIXELFORMAT_R8G8 = 14,
> > ++ WSEGL_PIXELFORMAT_NV21 = 15,
> > +
> > + /* These are compatibility names only; new WSEGL
> > + * modules should not use them.
> > +@@ -138,31 +175,33 @@ typedef struct WSEGLConfig_TAG {
> > + /*
> > + // Type of drawables this configuration applies to -
> > +- // OR'd values of drawable types.
> > ++ // OR'd values of drawable types.
> > + */
> > +- unsigned long ui32DrawableType;
> > ++ unsigned long ui32DrawableType;
> > +
> > + /* Pixel format */
> > +- WSEGLPixelFormat ePixelFormat;
> > ++ WSEGLPixelFormat ePixelFormat;
> > +
> > + /* Native Renderable - set to WSEGL_TRUE if native renderable */
> > +- unsigned long ulNativeRenderable;
> > ++ unsigned long ulNativeRenderable;
> > +
> > + /* FrameBuffer Level Parameter */
> > +- unsigned long ulFrameBufferLevel;
> > ++ unsigned long ulFrameBufferLevel;
> > +
> > + /* Native Visual ID */
> > +- unsigned long ulNativeVisualID;
> > ++ unsigned long ulNativeVisualID;
> > +
> > + /* Native Visual */
> > +- void *hNativeVisual;
> > ++ unsigned long ulNativeVisualType;
> > +
> > + /* Transparent Type */
> > +- WSEGLTransparentType eTransparentType;
> > ++ WSEGLTransparentType eTransparentType;
> > +
> > + /* Transparent Color - only used if transparent type is COLOR_KEY */
> > +- unsigned long ulTransparentColor; /* packed as 0x00RRGGBB */
> > ++ unsigned long ulTransparentColor; /* packed as
> 0x00RRGGBB */
> > +
> > ++ /* Framebuffer Target - set to WSEGL_TRUE if config compatible with
> framebuffer */
> > ++ unsigned long ulFramebufferTarget;
> > +
> > + } WSEGLConfig;
> > +
> > +@@ -180,13 +219,14 @@ typedef enum WSEGLError_TAG
> > + WSEGL_BAD_DRAWABLE = 6,
> > + WSEGL_BAD_MATCH = 7,
> > + WSEGL_OUT_OF_MEMORY = 8,
> > ++ WSEGL_RETRY = 9,
> > +
> > + /* These are compatibility names only; new WSEGL
> > + * modules should not use them.
> > + */
> > + WSEGL_BAD_CONFIG = WSEGL_BAD_MATCH,
> > +
> > +-} WSEGLError;
> > ++} WSEGLError;
> > +
> > + /*
> > + // Drawable orientation (in degrees anti-clockwise) @@ -198,7 +238,7
> > +@@ typedef enum WSEGLRotationAngle_TAG
> > + WSEGL_ROTATE_180 = 2,
> > + WSEGL_ROTATE_270 = 3
> > +
> > +-} WSEGLRotationAngle;
> > ++} WSEGLRotationAngle;
> > +
> > + /*
> > + // Drawable information required by OpenGL-ES driver @@ -206,26
> > ++246,46 @@ typedef enum WSEGLRotationAngle_TAG typedef struct
> > +WSEGLDrawableParams_TAG {
> > + /* Width in pixels of the drawable */
> > +- unsigned long ui32Width;
> > ++ unsigned long ui32Width;
> > +
> > + /* Height in pixels of the drawable */
> > +- unsigned long ui32Height;
> > ++ unsigned long ui32Height;
> > +
> > + /* Stride in pixels of the drawable */
> > +- unsigned long ui32Stride;
> > ++ unsigned long ui32Stride;
> > +
> > + /* Pixel format of the drawable */
> > +- WSEGLPixelFormat ePixelFormat;
> > ++ WSEGLPixelFormat ePixelFormat;
> > +
> > + /* User space cpu virtual address of the drawable */
> > +- void *pvLinearAddress;
> > ++ void *pvLinearAddress;
> > +
> > + /* HW address of the drawable */
> > +- unsigned long ui32HWAddress;
> > ++ unsigned long ui32HWAddress;
> > ++
> > ++ /* Override display's HW_SYNC mode */
> > ++ unsigned long bWaitForRender;
> > +
> > +- /* Private data for the drawable */
> > +- void *hPrivateData;
> > ++ /* Flags */
> > ++ unsigned long ulFlags;
> > +
> > ++ /* Rotation angle of drawable (presently source only) */
> > ++ WSEGLRotationAngle eRotationAngle;
> > ++
> > ++ /*
> > ++ // Optional PowerVR Services 4 MEMINFO pointer. This may be used for
> > ++ // internal (implicit) synchronization purposes, and by PDUMP. It should
> > ++ // refer to the same object as the other fields in this structure.
> > ++ */
> > ++ void *hMemInfo;
> > ++
> > ++ /*
> > ++ // Optional PowerVR Services 4 SYNCINFO pointers to sent down as
> source
> > ++ // surface (texture) dependencies of a render. If these are provided
> > ++ // when not applicable, they will be ignored. If a sync is not needed,
> > ++ // it should be passed as NULL.
> > ++ */
> > ++ void
> *ahSyncInfo[WSEGL_MAX_SRC_SYNCS];
> > +
> > + } WSEGLDrawableParams;
> > +
> > +@@ -262,12 +322,18 @@ typedef struct WSEGL_FunctionTable_TAG
> > +
> > + WSEGLError (*pfnWSEGL_CopyFromPBuffer)(void *, unsigned long,
> > + unsigned long, unsigned long, WSEGLPixelFormat, NativePixmapType);
> > +
> > +- WSEGLError
> (*pfnWSEGL_GetDrawableParameters)(WSEGLDrawableHandle,
> WSEGLDrawableParams *, WSEGLDrawableParams *);
> > ++ WSEGLError
> (*pfnWSEGL_GetDrawableParameters)(WSEGLDrawableHandle,
> > ++WSEGLDrawableParams *, WSEGLDrawableParams *, unsigned long);
> > +
> > + WSEGLError (*pfnWSEGL_ConnectDrawable)(WSEGLDrawableHandle);
> > +
> > + WSEGLError
> (*pfnWSEGL_DisconnectDrawable)(WSEGLDrawableHandle);
> > +
> > ++ WSEGLError (*pfnWSEGL_FlagStartFrame)(void);
> > ++
> > ++
> > ++#if defined (__QNXNTO__)
> > ++ WSEGLError
> > ++(*pfnWSEGL_WaitForDrawableRenderBuffer)(WSEGLDrawableHandle);
> > ++#endif
> > +
> > + } WSEGL_FunctionTable;
> > +
> > +@@ -276,7 +342,7 @@ WSEGL_IMPORT const WSEGL_FunctionTable
> > +*WSEGL_GetFunctionTablePointer(void);
> > +
> > + #ifdef __cplusplus
> > + }
> > +-#endif
> > ++#endif
> > +
> > + #endif /* __WSEGL_H__ */
> > +
> > +diff --git a/src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwswsegl.c
> > +b/src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwswsegl.c
> > +index d42e59f..24e5b0d 100644
> > +--- a/src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwswsegl.c
> > ++++ b/src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwswsegl.c
> > +@@ -336,12 +336,17 @@ static WSEGLError wseglCopyFromPBuffer
> > + /* Return the parameters of a drawable that are needed by the EGL
> > +layer */ static WSEGLError wseglGetDrawableParameters
> > + (WSEGLDrawableHandle _drawable, WSEGLDrawableParams
> *sourceParams,
> > +- WSEGLDrawableParams *renderParams)
> > ++ WSEGLDrawableParams *renderParams,unsigned long ulPlaneOffset)
> > + {
> > + PvrQwsDrawable *drawable = (PvrQwsDrawable *)_drawable;
> > + PVR2DMEMINFO *source, *render;
> > + WSEGLPixelFormat pixelFormat;
> > +
> > ++ WSEGL_UNREFERENCED_PARAMETER(ulPlaneOffset);
> > ++
> > ++ memset(renderParams, 0, sizeof(*renderParams));
> > ++ memset(sourceParams, 0, sizeof(*sourceParams));
> > ++
> > + if (!pvrQwsGetBuffers(drawable, &source, &render))
> > + return WSEGL_BAD_DRAWABLE;
> > +
> > +@@ -366,7 +371,7 @@ static WSEGLError wseglGetDrawableParameters
> > + sourceParams->ePixelFormat = pixelFormat;
> > + sourceParams->pvLinearAddress = source->pBase;
> > + sourceParams->ui32HWAddress = source->ui32DevAddr;
> > +- sourceParams->hPrivateData = source->hPrivateData;
> > ++ sourceParams->hMemInfo = source->hPrivateData;
> > +
> > + renderParams->ui32Width = drawable->rect.width;
> > + renderParams->ui32Height = drawable->rect.height; @@ -374,7
> > ++379,7 @@ static WSEGLError wseglGetDrawableParameters
> > + renderParams->ePixelFormat = pixelFormat;
> > + renderParams->pvLinearAddress = render->pBase;
> > + renderParams->ui32HWAddress = render->ui32DevAddr;
> > +- renderParams->hPrivateData = render->hPrivateData;
> > ++ renderParams->hMemInfo = render->hPrivateData;
> > +
> > + return WSEGL_SUCCESS;
> > + }
> > +@@ -393,6 +398,20 @@ static WSEGLError
> wseglDisconnectDrawable(WSEGLDrawableHandle hDrawable)
> > + return WSEGL_SUCCESS;
> > + }
> > +
> >
> ++/**********************************************************
> *************************
> > ++ Function Name : WSEGL_FlagStartFrame
> > ++ Inputs : hDrawable
> > ++ Outputs : None
> > ++ Returns : Error code
> > ++ Description : Indicates that there have been rendering commands
> submitted
> > ++ by a client driver
> >
> ++***********************************************************
> *********
> > ++****************/ static WSEGLError wseglFlagStartFrame(void) {
> > ++ return WSEGL_SUCCESS;
> > ++}
> > ++
> > ++
> > + static WSEGL_FunctionTable const wseglFunctions = {
> > + WSEGL_VERSION,
> > + wseglIsDisplayValid,
> > +@@ -408,7 +427,8 @@ static WSEGL_FunctionTable const wseglFunctions =
> {
> > + wseglCopyFromPBuffer,
> > + wseglGetDrawableParameters,
> > + wseglConnectDrawable,
> > +- wseglDisconnectDrawable
> > ++ wseglDisconnectDrawable,
> > ++ wseglFlagStartFrame,
> > + };
> > +
> > + /* Return the table of WSEGL functions to the EGL implementation */
> > +--
> > +1.7.0.4
> > +
> > diff --git
> > a/meta-arago-extras/recipes-qt/qt4/qt4-embedded-gles_4.8.4.bb
> > b/meta-arago-extras/recipes-qt/qt4/qt4-embedded-gles_4.8.4.bb
> > index fa2d31c..460de67 100644
> > --- a/meta-arago-extras/recipes-qt/qt4/qt4-embedded-gles_4.8.4.bb
> > +++ b/meta-arago-extras/recipes-qt/qt4/qt4-embedded-gles_4.8.4.bb
> > @@ -1,7 +1,7 @@
> > require ${COREBASE}/meta/recipes-qt/qt4/qt4-${PV}.inc
> > require ${COREBASE}/meta/recipes-qt/qt4/qt4-embedded.inc
> >
> > -PR = "${INC_PR}.2"
> > +PR = "${INC_PR}.3"
> >
> > FILESEXTRAPATHS_append :=
> "${THISDIR}/${PN}:${COREBASE}/meta/recipes-qt/qt4/qt4-
> ${PV}:${COREBASE}/meta/recipes-qt/qt4/files:"
> >
> > @@ -12,6 +12,8 @@ SRC_URI += " \
> > file://002_pvrqwswsegl.c.patch \
> > file://cursor-hack.diff \
> > "
> > +SRC_URI_append_ti33x = " file://0001-Qt-4.x-v2-Changes-for-integrating-
> with-TI-graphics-S.patch"
> > +SRC_URI_append_ti43x = " file://0001-Qt-4.x-v2-Changes-for-integrating-
> with-TI-graphics-S.patch"
> >
> > QT_CONFIG_FLAGS_append_armv6 = " -no-neon "
> >
> > --
> > 1.7.0.4
> >
> > _______________________________________________
> > meta-arago mailing list
> > meta-arago@arago-project.org
> > http://arago-project.org/cgi-bin/mailman/listinfo/meta-arago
> >
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PATCH 1/6] qt4-embedded-gles: Add support for new version of the Graphics SDK
@ 2013-11-22 15:45 Franklin S. Cooper Jr
2013-11-22 15:02 ` Denys Dmytriyenko
` (5 more replies)
0 siblings, 6 replies; 18+ messages in thread
From: Franklin S. Cooper Jr @ 2013-11-22 15:45 UTC (permalink / raw)
To: meta-arago; +Cc: Franklin S. Cooper Jr
* Add support for the Graphics SDK version 5.00.00.01
* For now only apply the patches to AM43x and AM335x since this alpha release of
the Graphics SDK has only been sanity tested for these platforms.
* The official release should support all the typical platforms and this patch
can be applied for all devices.
Signed-off-by: Franklin S. Cooper Jr <fcooper@ti.com>
---
...hanges-for-integrating-with-TI-graphics-S.patch | 719 ++++++++++++++++++++
.../recipes-qt/qt4/qt4-embedded-gles_4.8.4.bb | 4 +-
2 files changed, 722 insertions(+), 1 deletions(-)
create mode 100644 meta-arago-extras/recipes-qt/qt4/qt4-embedded-gles/0001-Qt-4.x-v2-Changes-for-integrating-with-TI-graphics-S.patch
diff --git a/meta-arago-extras/recipes-qt/qt4/qt4-embedded-gles/0001-Qt-4.x-v2-Changes-for-integrating-with-TI-graphics-S.patch b/meta-arago-extras/recipes-qt/qt4/qt4-embedded-gles/0001-Qt-4.x-v2-Changes-for-integrating-with-TI-graphics-S.patch
new file mode 100644
index 0000000..73ef094
--- /dev/null
+++ b/meta-arago-extras/recipes-qt/qt4/qt4-embedded-gles/0001-Qt-4.x-v2-Changes-for-integrating-with-TI-graphics-S.patch
@@ -0,0 +1,719 @@
+From c463092eb5465cf7a7f9f783425dd75ec48d5f89 Mon Sep 17 00:00:00 2001
+From: Prathap Srinivas <msprathap@ti.com>
+Date: Tue, 5 Nov 2013 07:52:34 -0600
+Subject: [PATCH] Qt 4.x v2: Changes for integrating with TI graphics SDK release 04.10.00.01
+
+This patch adds the changes required for Qt 4.x to work with 04.10 TI gfx sdk.
+04.10.00.01 TI gfx sdk is based on 1.10 Linux DDK from Imagination Technologies
+wsegl.h, pvr2d.h has been updated with 1.10 DDK.
+This patch includes the updated files and also makes the required changes.
+The changes are in QWSWSEGL to interface with updated wsegl.h.
+
+Version 2:
+Updated to apply cleanly
+---
+ src/3rdparty/powervr/wsegl2/pvr2d.h | 190 +++++++++++++-------
+ src/3rdparty/powervr/wsegl2/wsegl.h | 172 ++++++++++++------
+ .../gfxdrivers/powervr/QWSWSEGL/pvrqwswsegl.c | 28 +++-
+ 3 files changed, 269 insertions(+), 121 deletions(-)
+
+diff --git a/src/3rdparty/powervr/wsegl2/pvr2d.h b/src/3rdparty/powervr/wsegl2/pvr2d.h
+index 0f44833..d7e8123 100644
+--- a/src/3rdparty/powervr/wsegl2/pvr2d.h
++++ b/src/3rdparty/powervr/wsegl2/pvr2d.h
+@@ -1,39 +1,47 @@
+-/**********************************************************************
+-*
+-* Copyright(c) Imagination Technologies Ltd.
+-*
+-* The contents of this file are subject to the MIT license as set out below.
+-*
+-* Permission is hereby granted, free of charge, to any person obtaining a copy
+-* of this software and associated documentation files (the "Software"),
+-* to deal in the Software without restriction, including without limitation
+-* the rights to use, copy, modify, merge, publish, distribute, sublicense,
+-* and/or sell copies of the Software, and to permit persons to whom the
+-* Software is furnished to do so, subject to the following conditions:
+-*
+-* The above copyright notice and this permission notice shall be included
+-* in all copies or substantial portions of the Software.
+-*
+-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+-* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+-* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+-* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+-* DAMAGES OR OTHER LIABILITY, WHETHER 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.
+-*
+-* This License is also included in this distribution in the file called
+-* "COPYING".
+-*
+-******************************************************************************/
+-
+-
++/*************************************************************************/ /*!
++@Copyright Copyright (c) Imagination Technologies Ltd. All Rights Reserved
++@License Dual MIT/GPLv2
++
++The contents of this file are subject to the MIT license as set out below.
++
++Permission is hereby granted, free of charge, to any person obtaining a copy
++of this software and associated documentation files (the "Software"), to deal
++in the Software without restriction, including without limitation the rights
++to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
++copies of the Software, and to permit persons to whom the Software is
++furnished to do so, subject to the following conditions:
++
++The above copyright notice and this permission notice shall be included in
++all copies or substantial portions of the Software.
++
++Alternatively, the contents of this file may be used under the terms of
++the GNU General Public License Version 2 ("GPL") in which case the provisions
++of GPL are applicable instead of those above.
++
++If you wish to allow use of your version of this file only under the terms of
++GPL, and not to allow others to use your version of this file under the terms
++of the MIT license, indicate your decision by deleting the provisions above
++and replace them with the notice and other provisions required by GPL as set
++out in the file called "GPL-COPYING" included in this distribution. If you do
++not delete the provisions above, a recipient may use your version of this file
++under the terms of either the MIT license or GPL.
++
++This License is also included in this distribution in the file called
++"MIT-COPYING".
++
++EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS
++PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
++BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
++PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
++COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
++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.
++
++*/ /**************************************************************************/
+
+ /******************************************************************************
+ Modifications :-
+ $Log: pvr2d.h $
+-
+- --- Revision Logs Removed ---
+ ******************************************************************************/
+
+ #ifndef _PVR2D_H_
+@@ -54,7 +62,7 @@ extern "C" {
+
+ /* PVR2D header revision */
+ #define PVR2D_REV_MAJOR 3
+-#define PVR2D_REV_MINOR 5
++#define PVR2D_REV_MINOR 6
+
+ /* Basic types */
+ typedef enum
+@@ -67,13 +75,20 @@ typedef void* PVR2D_HANDLE;
+
+ typedef char PVR2D_CHAR, *PVR2D_PCHAR;
+ typedef unsigned char PVR2D_UCHAR, *PVR2D_PUCHAR;
++
+ typedef int PVR2D_INT, *PVR2D_PINT;
+ typedef unsigned int PVR2D_UINT, *PVR2D_PUINT;
++
++typedef unsigned short PVR2D_UINT16, *PVR2D_PUINT16;
++typedef signed short PVR2D_INT16, *PVR2D_PINT16;
++
+ typedef long PVR2D_LONG, *PVR2D_PLONG;
+ typedef unsigned long PVR2D_ULONG, *PVR2D_PULONG;
+
+ typedef void PVR2D_VOID, *PVR2D_PVOID;
+
++/* services/stream ID */
++typedef unsigned int PVR2D_SID;
+
+ /* error codes */
+ typedef enum
+@@ -99,7 +114,7 @@ typedef unsigned long PVR2DFORMAT;
+ #define PVR2D_1BPP 0x00UL // 1bpp mask surface or palletized 1 bit source with 2x32 bit CLUT
+ #define PVR2D_RGB565 0x01UL // Common rgb 565 format
+ #define PVR2D_ARGB4444 0x02UL // Common argb 4444 format
+-#define PVR2D_RGB888 0x03UL // Common rgb 888 format (not supported)
++#define PVR2D_RGB888 0x03UL // Common rgb 888 format
+ #define PVR2D_ARGB8888 0x04UL // Common argb 8888 format
+ #define PVR2D_ARGB1555 0x05UL // Common argb 1555 format
+ #define PVR2D_ALPHA8 0x06UL // Alpha-only 8 bit per pixel (used with a constant fill colour)
+@@ -114,16 +129,18 @@ typedef unsigned long PVR2DFORMAT;
+ #define PVR2D_YUV422_UYVY 0x14UL // YUV 422 low-high byte order UY0VY1
+ #define PVR2D_YUV422_YVYU 0x15UL // YUV 422 low-high byte order Y0VY1U
+ #define PVR2D_YUV422_VYUY 0x16UL // YUV 422 low-high byte order VY0UY1
+-#define PVR2D_YUV420_2PLANE 0x17UL // YUV420 2 Plane
+-#define PVR2D_YUV420_3PLANE 0x18UL // YUV420 3 Plane
+-#define PVR2D_2101010ARGB 0x19UL // 32 bit 2 10 10 10
+-#define PVR2D_888RSGSBS 0x1AUL
++#define PVR2D_YUV420_2PLANE 0x17UL // YUV420 2 Plane with UV interleaved in plane 2
++#define PVR2D_YVU420_3PLANE 0x18UL // YVU420 3 Plane
++#define PVR2D_YUV420_3PLANE 0x21UL // YUV420 3 Plane
++#define PVR2D_2101010ARGB 0x19UL // 32 bit 2 10 10 10
++#define PVR2D_888RSGSBS 0x1AUL // 3 channel signed 8 bit
+ #define PVR2D_16BPP_RAW 0x1BUL // 16 bit raw (no format conversion)
+ #define PVR2D_32BPP_RAW 0x1CUL // 32 bit raw
+ #define PVR2D_64BPP_RAW 0x1DUL // 64 bit raw
+ #define PVR2D_128BPP_RAW 0x1EUL // 128 bit raw
+-
+-#define PVR2D_NO_OF_FORMATS 0x1FUL
++#define PVR2D_AYUV8888 0x1FUL
++#define PVR2D_F16 0x20UL
++#define PVR2D_NO_OF_FORMATS 0x22UL
+
+ /* Format modifier bit field (DstFormat and SrcFormat bits 16..23) */
+ #define PVR2D_FORMAT_MASK 0x0000FFFFUL // PVR2D Format bits
+@@ -141,7 +158,8 @@ typedef unsigned long PVR2DFORMAT;
+ This flag requests a surface pdump, to capture the pixel state after host writes.
+ Not needed if the surface state has resulted from previous SGX 2D/3D core writes.
+ */
+-#define PVR2D_SURFACE_PDUMP 0x00100000UL // calls PVRSRVPDumpMem to capture the surface (pdump builds only)
++#define PVR2D_SURFACE_PDUMP 0x00100000UL // calls PVRSRVPDumpMem to capture the surface (pdump builds only)
++#define PVR2D_BLTRECT_PDUMP 0x00200000UL // calls PVRSRVPDumpMem to capture the blt rectangle (pdump builds only)
+
+ /*
+ Low level 3D format extension - for blts via the 3D core only.
+@@ -155,8 +173,7 @@ typedef unsigned long PVR2DFORMAT;
+ typedef enum
+ {
+ PVR2D_WRAPFLAG_NONCONTIGUOUS = 0,
+- PVR2D_WRAPFLAG_CONTIGUOUS = 1,
+-
++ PVR2D_WRAPFLAG_CONTIGUOUS = 1
+ }PVR2DWRAPFLAGS;
+
+ #define PVR2D_CONTEXT_FLAGS_PRIORITY_MASK 0x00000003
+@@ -171,7 +188,7 @@ typedef enum
+ PVR2D_BLIT_DISABLE_ALL = 0x00000000, /* disable all additional controls */
+ PVR2D_BLIT_CK_ENABLE = 0x00000001, /* enable colour key */
+ PVR2D_BLIT_GLOBAL_ALPHA_ENABLE = 0x00000002, /* enable standard global alpha */
+- PVR2D_BLIT_PERPIXEL_ALPHABLEND_ENABLE = 0x00000004, /* enable per-pixel alpha bleding */
++ PVR2D_BLIT_PERPIXEL_ALPHABLEND_ENABLE = 0x00000004, /* enable per-pixel alpha blending */
+ PVR2D_BLIT_PAT_SURFACE_ENABLE = 0x00000008, /* enable pattern surf (disable fill) */
+ PVR2D_BLIT_FULLY_SPECIFIED_ALPHA_ENABLE = 0x00000010, /* enable fully specified alpha */
+ PVR2D_BLIT_ROT_90 = 0x00000020, /* apply 90 degree rotation to the blt */
+@@ -186,11 +203,12 @@ typedef enum
+ PVR2D_BLIT_COLKEY_MASKED = 0x00004000, /* Mask enabled for colour key */
+ PVR2D_BLIT_COLKEY_OP_PASS = 0x00008000, /* Colour key op = pass */
+ PVR2D_BLIT_COLKEY_OP_REJECT = 0x00010000, /* Colour key op = reject */
++ PVR2D_BLIT_ROP4 = 0x00020000, /* rop4 pattern support */
+ PVR2D_BLIT_PATH_2DCORE = 0x00100000, /* Blt via dedicated 2D Core or PTLA */
+ PVR2D_BLIT_PATH_3DCORE = 0x00200000, /* Blt via 3D Core */
+ PVR2D_BLIT_PATH_SWBLT = 0x00400000, /* Blt via host software */
+ PVR2D_BLIT_NO_SRC_SYNC_INFO = 0x00800000, /* Dont send a source sync info*/
+- PVR2D_BLIT_ISSUE_STATUS_UPDATES = 0x01000000, /* Issue status updates */
++ PVR2D_BLIT_ISSUE_STATUS_UPDATES = 0x01000000, /* Issue SyncInfo status updates */
+
+ } PVR2DBLITFLAGS;
+
+@@ -288,6 +306,17 @@ typedef struct _PVR2MISCDISPLAYINFO
+
+ }PVR2DMISCDISPLAYINFO;
+
++typedef struct
++{
++ PVR2DMEMINFO *pSurfMemInfo; /* surface memory */
++ PVR2D_ULONG SurfOffset; /* byte offset from start of allocation to destination surface pixel 0,0 */
++ PVR2D_LONG Stride; /* signed stride */
++ PVR2DFORMAT Format; /* format */
++ PVR2D_ULONG SurfWidth; /* surface width in pixels */
++ PVR2D_ULONG SurfHeight; /* surface height in pixels */
++
++} PVR2D_SURFACE, *PPVR2D_SURFACE;
++
+
+ typedef struct _PVR2DBLTINFO
+ {
+@@ -326,34 +355,28 @@ typedef struct _PVR2DBLTINFO
+ PVR2D_LONG MaskX, MaskY; /* mask rect top left (mask size = blt size) */
+ PVR2D_ULONG MaskSurfWidth; /* size of mask surface in pixels */
+ PVR2D_ULONG MaskSurfHeight; /* size of mask surface in pixels */
+-
++
+ PPVR2D_ALPHABLT pAlpha; /* fully specified alpha blend (2DCore only) */
+-
++
+ PVR2D_ULONG uSrcChromaPlane1; /* mem offset from start of source alloc to chroma plane 1 */
+ PVR2D_ULONG uSrcChromaPlane2; /* mem offset from start of source alloc to chroma plane 2 */
+ PVR2D_ULONG uDstChromaPlane1; /* mem offset from start of dest alloc to chroma plane 1 */
+ PVR2D_ULONG uDstChromaPlane2; /* mem offset from start of dest alloc to chroma plane 2 */
+-
++
+ PVR2D_ULONG ColourKeyMask; /* 32 bit colour key mask, only valid when PVR2D_BLIT_COLKEY_MASKED is set */
+
++ PPVR2D_SURFACE pPat; /* full rop4 support for patterns if PVR2D_BLIT_ROP4 set (2D Core hardware only) */
++ PVR2D_LONG PatX, PatY; /* pattern start offset if PVR2D_BLIT_ROP4 set (2D Core hardware only) */
++
+ }PVR2DBLTINFO, *PPVR2DBLTINFO;
+
++
+ typedef struct _PVR2DRECT
+ {
+ PVR2D_LONG left, top;
+ PVR2D_LONG right, bottom;
+-} PVR2DRECT;
++} PVR2DRECT, *PPVR2DRECT;
+
+-typedef struct
+-{
+- PVR2DMEMINFO *pSurfMemInfo; /* surface memory */
+- PVR2D_ULONG SurfOffset; /* byte offset from start of allocation to destination surface pixel 0,0 */
+- PVR2D_LONG Stride; /* signed stride */
+- PVR2DFORMAT Format; /* format */
+- PVR2D_ULONG SurfWidth; /* surface width in pixels */
+- PVR2D_ULONG SurfHeight; /* surface height in pixels */
+-
+-} PVR2D_SURFACE, *PPVR2D_SURFACE;
+
+ typedef struct
+ {
+@@ -479,8 +502,8 @@ typedef void* PVR2DFLIPCHAINHANDLE;
+
+ #define PVR2D_CREATE_FLIPCHAIN_SHARED (1UL << 0)
+ #define PVR2D_CREATE_FLIPCHAIN_QUERY (1UL << 1)
+-#define PVR2D_CREATE_FLIPCHAIN_OEMOVERLAY (1UL << 2)
+-#define PVR2D_CREATE_FLIPCHAIN_AS_BLITCHAIN (1UL << 3)
++#define PVR2D_CREATE_FLIPCHAIN_OEMOVERLAY (1UL << 2)
++#define PVR2D_CREATE_FLIPCHAIN_AS_BLITCHAIN (1UL << 3)
+
+ /* Colour-key colour must be translated into argb8888 format */
+ #define CKEY_8888(P) (P)
+@@ -498,7 +521,8 @@ typedef void* PVR2DFLIPCHAINHANDLE;
+ #define CFILL_565(P) (((P&0xF800UL)<<8) | ((P&0x7E0UL)<<5) | ((P&0x1FUL)<<3))
+
+ /* PVR2DCreateDeviceContext flags */
+-#define PVR2D_XSERVER_PROC 0x00000001UL /*!< Set for the Xserver connection */
++#define PVR2D_XSERVER_PROC 0x00000001UL /* Set for the Xserver connection */
++#define PVR2D_FLAGS_PDUMP_ACTIVE 0x00000002UL /* Set when pdumping from multiple processes */
+
+ /* PVR2DMemAlloc flags */
+ #define PVR2D_MEM_UNCACHED 0x00000000UL /* Default */
+@@ -508,7 +532,7 @@ typedef void* PVR2DFLIPCHAINHANDLE;
+ /* Functions that the library exports */
+
+ PVR2D_IMPORT
+-int PVR2DEnumerateDevices(PVR2DDEVICEINFO *pDevInfo);
++PVR2D_INT PVR2DEnumerateDevices(PVR2DDEVICEINFO *pDevInfo);
+
+ PVR2D_IMPORT
+ PVR2DERROR PVR2DCreateDeviceContext(PVR2D_ULONG ulDevID,
+@@ -633,7 +657,7 @@ PVR2DERROR PVR2DSetPresentFlipProperties(PVR2DCONTEXTHANDLE hContext,
+ PVR2D_ULONG ulPropertyMask,
+ PVR2D_LONG lDstXPos,
+ PVR2D_LONG lDstYPos,
+- PVR2D_ULONG ulNumClipRects,
++ PVR2D_ULONG ulNumClipRects,
+ PVR2DRECT *pClipRects,
+ PVR2D_ULONG ulSwapInterval);
+
+@@ -658,6 +682,44 @@ PVR2DERROR PVR2DBlt3D (const PVR2DCONTEXTHANDLE hContext, const PPVR2D_3DBLT pBl
+ PVR2D_IMPORT
+ PVR2DERROR PVR2DBlt3DExt (const PVR2DCONTEXTHANDLE hContext, const PPVR2D_3DBLT_EXT pBlt3D);
+
++
++PVR2D_IMPORT
++PVR2DERROR PVR2DModifyPendingOps(const PVR2DCONTEXTHANDLE hContext,
++ PVR2D_HANDLE *phSyncModObj,
++ PVR2DMEMINFO *psMemInfo,
++ PVR2D_BOOL bIsWriteOp,
++ PVR2D_ULONG *pulReadOpsPending,
++ PVR2D_ULONG *pulWriteOpsPending);
++
++PVR2D_IMPORT
++PVR2DERROR PVR2DModifyCompleteOps(const PVR2DCONTEXTHANDLE hContext,
++ PVR2D_HANDLE hSyncModObj);
++
++PVR2D_IMPORT
++PVR2DERROR PVR2DFlushToSyncModObj(const PVR2DCONTEXTHANDLE hContext,
++ PVR2D_HANDLE hSyncModObj,
++ PVR2D_BOOL bWait);
++
++PVR2D_IMPORT
++PVR2DERROR PVR2DTakeSyncToken(const PVR2DCONTEXTHANDLE hContext,
++ PVR2DMEMINFO *psMemInfo,
++ PVR2D_HANDLE *phSyncToken,
++ PVR2D_ULONG *pulReadOpsPending,
++ PVR2D_ULONG *pulWriteOpsPending);
++
++PVR2D_IMPORT
++PVR2DERROR PVR2DReleaseSyncToken(const PVR2DCONTEXTHANDLE hContext,
++ PVR2D_HANDLE hSyncToken);
++
++PVR2D_IMPORT
++PVR2DERROR PVR2DFlushToSyncToken(const PVR2DCONTEXTHANDLE hContext,
++ PVR2DMEMINFO *psMemInfo,
++ PVR2D_HANDLE hSyncToken,
++ PVR2D_BOOL bWait);
++
++PVR2D_IMPORT
++PVR2DERROR PVR2DWaitForNextHardwareEvent(const PVR2DCONTEXTHANDLE hContext);
++
+ #ifdef __cplusplus
+ }
+ #endif
+diff --git a/src/3rdparty/powervr/wsegl2/wsegl.h b/src/3rdparty/powervr/wsegl2/wsegl.h
+index a2c3ffc..480179b 100644
+--- a/src/3rdparty/powervr/wsegl2/wsegl.h
++++ b/src/3rdparty/powervr/wsegl2/wsegl.h
+@@ -1,34 +1,43 @@
+-/**********************************************************************
+-*
+-* Copyright(c) Imagination Technologies Ltd.
+-*
+-* The contents of this file are subject to the MIT license as set out below.
+-*
+-* Permission is hereby granted, free of charge, to any person obtaining a copy
+-* of this software and associated documentation files (the "Software"),
+-* to deal in the Software without restriction, including without limitation
+-* the rights to use, copy, modify, merge, publish, distribute, sublicense,
+-* and/or sell copies of the Software, and to permit persons to whom the
+-* Software is furnished to do so, subject to the following conditions:
+-*
+-* The above copyright notice and this permission notice shall be included
+-* in all copies or substantial portions of the Software.
+-*
+-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+-* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+-* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+-* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+-* DAMAGES OR OTHER LIABILITY, WHETHER 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.
+-*
+-* This License is also included in this distribution in the file called
+-* "COPYING".
+-*
+-******************************************************************************/
+-
+-
+-
++/*************************************************************************/ /*!
++@Copyright Copyright (c) Imagination Technologies Ltd. All Rights Reserved
++@License Dual MIT/GPLv2
++
++The contents of this file are subject to the MIT license as set out below.
++
++Permission is hereby granted, free of charge, to any person obtaining a copy
++of this software and associated documentation files (the "Software"), to deal
++in the Software without restriction, including without limitation the rights
++to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
++copies of the Software, and to permit persons to whom the Software is
++furnished to do so, subject to the following conditions:
++
++The above copyright notice and this permission notice shall be included in
++all copies or substantial portions of the Software.
++
++Alternatively, the contents of this file may be used under the terms of
++the GNU General Public License Version 2 ("GPL") in which case the provisions
++of GPL are applicable instead of those above.
++
++If you wish to allow use of your version of this file only under the terms of
++GPL, and not to allow others to use your version of this file under the terms
++of the MIT license, indicate your decision by deleting the provisions above
++and replace them with the notice and other provisions required by GPL as set
++out in the file called "GPL-COPYING" included in this distribution. If you do
++not delete the provisions above, a recipient may use your version of this file
++under the terms of either the MIT license or GPL.
++
++This License is also included in this distribution in the file called
++"MIT-COPYING".
++
++EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS
++PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
++BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
++PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
++COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
++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.
++
++*/ /**************************************************************************/
+ #if !defined(__WSEGL_H__)
+ #define __WSEGL_H__
+
+@@ -51,7 +60,7 @@ extern "C" {
+ // WSEGL API Version Number
+ */
+
+-#define WSEGL_VERSION 2
++#define WSEGL_VERSION 4
+ #define WSEGL_DEFAULT_DISPLAY 0
+ #define WSEGL_DEFAULT_NATIVE_ENGINE 0
+
+@@ -78,6 +87,11 @@ typedef enum WSEGLCapsType_TAG
+ WSEGL_CAP_WINDOWS_USE_HW_SYNC = 3, /* System default value = 0 (FALSE) */
+ WSEGL_CAP_PIXMAPS_USE_HW_SYNC = 4, /* System default value = 0 (FALSE) */
+
++ /* When this capability is set, the EGL lock is not taken around calls
++ to WSEGL functions. The WSEGL module is responsible for performing
++ its own locking in this case. */
++ WSEGL_CAP_UNLOCKED = 5, /* System default value = 0 */
++
+ } WSEGLCapsType;
+
+ /*
+@@ -97,6 +111,19 @@ typedef struct WSEGLCaps_TAG
+ #define WSEGL_DRAWABLE_WINDOW 0x1
+ #define WSEGL_DRAWABLE_PIXMAP 0x2
+
++/*
++// YUV format flags and sync
++*/
++#define WSEGL_FLAGS_YUV_CONFORMANT_RANGE (0 << 0)
++#define WSEGL_FLAGS_YUV_FULL_RANGE (1 << 0)
++#define WSEGL_FLAGS_YUV_BT601 (0 << 1)
++#define WSEGL_FLAGS_YUV_BT709 (1 << 1)
++#define WSEGL_FLAGS_EGLIMAGE_COMPOSITION_SYNC (1 << 2)
++
++/*
++// Maximum number of optional PowerVR Services 4 SYNCINFO objects
++*/
++#define WSEGL_MAX_SRC_SYNCS 32
+
+ /*
+ // Pixel format of display/drawable
+@@ -110,6 +137,16 @@ typedef enum WSEGLPixelFormat_TAG
+ WSEGL_PIXELFORMAT_ARGB1555 = 3,
+ WSEGL_PIXELFORMAT_ABGR8888 = 4,
+ WSEGL_PIXELFORMAT_XBGR8888 = 5,
++ WSEGL_PIXELFORMAT_NV12 = 6,
++ WSEGL_PIXELFORMAT_YUYV = 7,
++ WSEGL_PIXELFORMAT_YV12 = 8,
++ WSEGL_PIXELFORMAT_XRGB8888 = 9,
++ WSEGL_PIXELFORMAT_UYVY = 10,
++ WSEGL_PIXELFORMAT_NV12_4KALIGN = 11,
++ WSEGL_PIXELFORMAT_NV21_4KALIGN = 12,
++ WSEGL_PIXELFORMAT_R8 = 13,
++ WSEGL_PIXELFORMAT_R8G8 = 14,
++ WSEGL_PIXELFORMAT_NV21 = 15,
+
+ /* These are compatibility names only; new WSEGL
+ * modules should not use them.
+@@ -138,31 +175,33 @@ typedef struct WSEGLConfig_TAG
+ {
+ /*
+ // Type of drawables this configuration applies to -
+- // OR'd values of drawable types.
++ // OR'd values of drawable types.
+ */
+- unsigned long ui32DrawableType;
++ unsigned long ui32DrawableType;
+
+ /* Pixel format */
+- WSEGLPixelFormat ePixelFormat;
++ WSEGLPixelFormat ePixelFormat;
+
+ /* Native Renderable - set to WSEGL_TRUE if native renderable */
+- unsigned long ulNativeRenderable;
++ unsigned long ulNativeRenderable;
+
+ /* FrameBuffer Level Parameter */
+- unsigned long ulFrameBufferLevel;
++ unsigned long ulFrameBufferLevel;
+
+ /* Native Visual ID */
+- unsigned long ulNativeVisualID;
++ unsigned long ulNativeVisualID;
+
+ /* Native Visual */
+- void *hNativeVisual;
++ unsigned long ulNativeVisualType;
+
+ /* Transparent Type */
+- WSEGLTransparentType eTransparentType;
++ WSEGLTransparentType eTransparentType;
+
+ /* Transparent Color - only used if transparent type is COLOR_KEY */
+- unsigned long ulTransparentColor; /* packed as 0x00RRGGBB */
++ unsigned long ulTransparentColor; /* packed as 0x00RRGGBB */
+
++ /* Framebuffer Target - set to WSEGL_TRUE if config compatible with framebuffer */
++ unsigned long ulFramebufferTarget;
+
+ } WSEGLConfig;
+
+@@ -180,13 +219,14 @@ typedef enum WSEGLError_TAG
+ WSEGL_BAD_DRAWABLE = 6,
+ WSEGL_BAD_MATCH = 7,
+ WSEGL_OUT_OF_MEMORY = 8,
++ WSEGL_RETRY = 9,
+
+ /* These are compatibility names only; new WSEGL
+ * modules should not use them.
+ */
+ WSEGL_BAD_CONFIG = WSEGL_BAD_MATCH,
+
+-} WSEGLError;
++} WSEGLError;
+
+ /*
+ // Drawable orientation (in degrees anti-clockwise)
+@@ -198,7 +238,7 @@ typedef enum WSEGLRotationAngle_TAG
+ WSEGL_ROTATE_180 = 2,
+ WSEGL_ROTATE_270 = 3
+
+-} WSEGLRotationAngle;
++} WSEGLRotationAngle;
+
+ /*
+ // Drawable information required by OpenGL-ES driver
+@@ -206,26 +246,46 @@ typedef enum WSEGLRotationAngle_TAG
+ typedef struct WSEGLDrawableParams_TAG
+ {
+ /* Width in pixels of the drawable */
+- unsigned long ui32Width;
++ unsigned long ui32Width;
+
+ /* Height in pixels of the drawable */
+- unsigned long ui32Height;
++ unsigned long ui32Height;
+
+ /* Stride in pixels of the drawable */
+- unsigned long ui32Stride;
++ unsigned long ui32Stride;
+
+ /* Pixel format of the drawable */
+- WSEGLPixelFormat ePixelFormat;
++ WSEGLPixelFormat ePixelFormat;
+
+ /* User space cpu virtual address of the drawable */
+- void *pvLinearAddress;
++ void *pvLinearAddress;
+
+ /* HW address of the drawable */
+- unsigned long ui32HWAddress;
++ unsigned long ui32HWAddress;
++
++ /* Override display's HW_SYNC mode */
++ unsigned long bWaitForRender;
+
+- /* Private data for the drawable */
+- void *hPrivateData;
++ /* Flags */
++ unsigned long ulFlags;
+
++ /* Rotation angle of drawable (presently source only) */
++ WSEGLRotationAngle eRotationAngle;
++
++ /*
++ // Optional PowerVR Services 4 MEMINFO pointer. This may be used for
++ // internal (implicit) synchronization purposes, and by PDUMP. It should
++ // refer to the same object as the other fields in this structure.
++ */
++ void *hMemInfo;
++
++ /*
++ // Optional PowerVR Services 4 SYNCINFO pointers to sent down as source
++ // surface (texture) dependencies of a render. If these are provided
++ // when not applicable, they will be ignored. If a sync is not needed,
++ // it should be passed as NULL.
++ */
++ void *ahSyncInfo[WSEGL_MAX_SRC_SYNCS];
+
+ } WSEGLDrawableParams;
+
+@@ -262,12 +322,18 @@ typedef struct WSEGL_FunctionTable_TAG
+
+ WSEGLError (*pfnWSEGL_CopyFromPBuffer)(void *, unsigned long, unsigned long, unsigned long, WSEGLPixelFormat, NativePixmapType);
+
+- WSEGLError (*pfnWSEGL_GetDrawableParameters)(WSEGLDrawableHandle, WSEGLDrawableParams *, WSEGLDrawableParams *);
++ WSEGLError (*pfnWSEGL_GetDrawableParameters)(WSEGLDrawableHandle, WSEGLDrawableParams *, WSEGLDrawableParams *, unsigned long);
+
+ WSEGLError (*pfnWSEGL_ConnectDrawable)(WSEGLDrawableHandle);
+
+ WSEGLError (*pfnWSEGL_DisconnectDrawable)(WSEGLDrawableHandle);
+
++ WSEGLError (*pfnWSEGL_FlagStartFrame)(void);
++
++
++#if defined (__QNXNTO__)
++ WSEGLError (*pfnWSEGL_WaitForDrawableRenderBuffer)(WSEGLDrawableHandle);
++#endif
+
+ } WSEGL_FunctionTable;
+
+@@ -276,7 +342,7 @@ WSEGL_IMPORT const WSEGL_FunctionTable *WSEGL_GetFunctionTablePointer(void);
+
+ #ifdef __cplusplus
+ }
+-#endif
++#endif
+
+ #endif /* __WSEGL_H__ */
+
+diff --git a/src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwswsegl.c b/src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwswsegl.c
+index d42e59f..24e5b0d 100644
+--- a/src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwswsegl.c
++++ b/src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwswsegl.c
+@@ -336,12 +336,17 @@ static WSEGLError wseglCopyFromPBuffer
+ /* Return the parameters of a drawable that are needed by the EGL layer */
+ static WSEGLError wseglGetDrawableParameters
+ (WSEGLDrawableHandle _drawable, WSEGLDrawableParams *sourceParams,
+- WSEGLDrawableParams *renderParams)
++ WSEGLDrawableParams *renderParams,unsigned long ulPlaneOffset)
+ {
+ PvrQwsDrawable *drawable = (PvrQwsDrawable *)_drawable;
+ PVR2DMEMINFO *source, *render;
+ WSEGLPixelFormat pixelFormat;
+
++ WSEGL_UNREFERENCED_PARAMETER(ulPlaneOffset);
++
++ memset(renderParams, 0, sizeof(*renderParams));
++ memset(sourceParams, 0, sizeof(*sourceParams));
++
+ if (!pvrQwsGetBuffers(drawable, &source, &render))
+ return WSEGL_BAD_DRAWABLE;
+
+@@ -366,7 +371,7 @@ static WSEGLError wseglGetDrawableParameters
+ sourceParams->ePixelFormat = pixelFormat;
+ sourceParams->pvLinearAddress = source->pBase;
+ sourceParams->ui32HWAddress = source->ui32DevAddr;
+- sourceParams->hPrivateData = source->hPrivateData;
++ sourceParams->hMemInfo = source->hPrivateData;
+
+ renderParams->ui32Width = drawable->rect.width;
+ renderParams->ui32Height = drawable->rect.height;
+@@ -374,7 +379,7 @@ static WSEGLError wseglGetDrawableParameters
+ renderParams->ePixelFormat = pixelFormat;
+ renderParams->pvLinearAddress = render->pBase;
+ renderParams->ui32HWAddress = render->ui32DevAddr;
+- renderParams->hPrivateData = render->hPrivateData;
++ renderParams->hMemInfo = render->hPrivateData;
+
+ return WSEGL_SUCCESS;
+ }
+@@ -393,6 +398,20 @@ static WSEGLError wseglDisconnectDrawable(WSEGLDrawableHandle hDrawable)
+ return WSEGL_SUCCESS;
+ }
+
++/***********************************************************************************
++ Function Name : WSEGL_FlagStartFrame
++ Inputs : hDrawable
++ Outputs : None
++ Returns : Error code
++ Description : Indicates that there have been rendering commands submitted
++ by a client driver
++************************************************************************************/
++static WSEGLError wseglFlagStartFrame(void)
++{
++ return WSEGL_SUCCESS;
++}
++
++
+ static WSEGL_FunctionTable const wseglFunctions = {
+ WSEGL_VERSION,
+ wseglIsDisplayValid,
+@@ -408,7 +427,8 @@ static WSEGL_FunctionTable const wseglFunctions = {
+ wseglCopyFromPBuffer,
+ wseglGetDrawableParameters,
+ wseglConnectDrawable,
+- wseglDisconnectDrawable
++ wseglDisconnectDrawable,
++ wseglFlagStartFrame,
+ };
+
+ /* Return the table of WSEGL functions to the EGL implementation */
+--
+1.7.0.4
+
diff --git a/meta-arago-extras/recipes-qt/qt4/qt4-embedded-gles_4.8.4.bb b/meta-arago-extras/recipes-qt/qt4/qt4-embedded-gles_4.8.4.bb
index fa2d31c..460de67 100644
--- a/meta-arago-extras/recipes-qt/qt4/qt4-embedded-gles_4.8.4.bb
+++ b/meta-arago-extras/recipes-qt/qt4/qt4-embedded-gles_4.8.4.bb
@@ -1,7 +1,7 @@
require ${COREBASE}/meta/recipes-qt/qt4/qt4-${PV}.inc
require ${COREBASE}/meta/recipes-qt/qt4/qt4-embedded.inc
-PR = "${INC_PR}.2"
+PR = "${INC_PR}.3"
FILESEXTRAPATHS_append := "${THISDIR}/${PN}:${COREBASE}/meta/recipes-qt/qt4/qt4-${PV}:${COREBASE}/meta/recipes-qt/qt4/files:"
@@ -12,6 +12,8 @@ SRC_URI += " \
file://002_pvrqwswsegl.c.patch \
file://cursor-hack.diff \
"
+SRC_URI_append_ti33x = " file://0001-Qt-4.x-v2-Changes-for-integrating-with-TI-graphics-S.patch"
+SRC_URI_append_ti43x = " file://0001-Qt-4.x-v2-Changes-for-integrating-with-TI-graphics-S.patch"
QT_CONFIG_FLAGS_append_armv6 = " -no-neon "
--
1.7.0.4
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH 2/6] arago-prefs.inc Use version 05.00.00.01 of the Graphics SDK for am335 and am43x
2013-11-22 15:45 [PATCH 1/6] qt4-embedded-gles: Add support for new version of the Graphics SDK Franklin S. Cooper Jr
2013-11-22 15:02 ` Denys Dmytriyenko
@ 2013-11-22 15:45 ` Franklin S. Cooper Jr
2013-11-22 15:45 ` [PATCH 3/6] branding-core: Dont remove SGX from MACHINE_FEATURES Franklin S. Cooper Jr
` (3 subsequent siblings)
5 siblings, 0 replies; 18+ messages in thread
From: Franklin S. Cooper Jr @ 2013-11-22 15:45 UTC (permalink / raw)
To: meta-arago; +Cc: Franklin S. Cooper Jr
* The latest version of the Graphics SDK in meta-ti is an early alpha release
and has only been validated on am335x and am43x.
* Until it has been properly validated across all platforms don't use this
version by default on other platforms.
---
.../conf/distro/include/arago-prefs.inc | 7 +++++++
1 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/meta-arago-distro/conf/distro/include/arago-prefs.inc b/meta-arago-distro/conf/distro/include/arago-prefs.inc
index 24f3785..7d9afe7 100644
--- a/meta-arago-distro/conf/distro/include/arago-prefs.inc
+++ b/meta-arago-distro/conf/distro/include/arago-prefs.inc
@@ -17,6 +17,13 @@ PREFERRED_VERSION_linux-libc-headers = "3.8"
# Use v4.09.00.01 of the Graphics SDK
PREFERRED_VERSION_omap3-sgx-modules = "4.09.00.01"
PREFERRED_VERSION_libgles-omap3 = "4.09.00.01"
+
+# Use v5.00.00.01 of the Graphics SDK
+PREFERRED_VERSION_omap3-sgx-modules_ti33x = "5.00.00.01"
+PREFERRED_VERSION_omap3-sgx-modules_ti43x = "5.00.00.01"
+PREFERRED_VERSION_libgles-omap3_ti43x = "5.00.00.01"
+PREFERRED_VERSION_libgles-omap3_ti33x = "5.00.00.01"
+
PREFERRED_PROVIDER_omap3-sgx-modules = "omap3-sgx-modules"
PREFERRED_PROVIDER_libgles-omap3 = "libgles-omap3"
PREFERRED_PROVIDER_libgles-omap3-dev = "libgles-omap3-dev"
--
1.7.0.4
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH 3/6] branding-core: Dont remove SGX from MACHINE_FEATURES
2013-11-22 15:45 [PATCH 1/6] qt4-embedded-gles: Add support for new version of the Graphics SDK Franklin S. Cooper Jr
2013-11-22 15:02 ` Denys Dmytriyenko
2013-11-22 15:45 ` [PATCH 2/6] arago-prefs.inc Use version 05.00.00.01 of the Graphics SDK for am335 and am43x Franklin S. Cooper Jr
@ 2013-11-22 15:45 ` Franklin S. Cooper Jr
2013-11-22 15:45 ` [PATCH 4/6] Revert "packagegroup-arago-tisdk-amsdk.bb, mount-sdcard: Remove mount-sdcard" Franklin S. Cooper Jr
` (2 subsequent siblings)
5 siblings, 0 replies; 18+ messages in thread
From: Franklin S. Cooper Jr @ 2013-11-22 15:45 UTC (permalink / raw)
To: meta-arago; +Cc: Franklin S. Cooper Jr
* A version of the Graphics SDK has been added that supports 3.12+ kernels.
* No need to remove sgx from the list of MACHINE_FEATURES
Signed-off-by: Franklin S. Cooper Jr <fcooper@ti.com>
---
.../conf/distro/include/branding-core.inc | 4 ----
1 files changed, 0 insertions(+), 4 deletions(-)
diff --git a/meta-arago-distro/conf/distro/include/branding-core.inc b/meta-arago-distro/conf/distro/include/branding-core.inc
index 3850434..b1ae89b 100644
--- a/meta-arago-distro/conf/distro/include/branding-core.inc
+++ b/meta-arago-distro/conf/distro/include/branding-core.inc
@@ -4,7 +4,3 @@
# Please avoid creating multiple versions of the same brand, if possible
# The policy is for the "Core" brand to be the default,
# hence this file is mostly empty and used as a template
-
-# Temporarily disable "sgx" machine feature for ti33x SOC while building
-# latest 3.12 integration kernel, until Graphics SDK catches up
-MACHINE_FEATURES_ti33x := "${@d.getVar('MACHINE_FEATURES', True).replace('sgx', '')}"
--
1.7.0.4
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH 4/6] Revert "packagegroup-arago-tisdk-amsdk.bb, mount-sdcard: Remove mount-sdcard"
2013-11-22 15:45 [PATCH 1/6] qt4-embedded-gles: Add support for new version of the Graphics SDK Franklin S. Cooper Jr
` (2 preceding siblings ...)
2013-11-22 15:45 ` [PATCH 3/6] branding-core: Dont remove SGX from MACHINE_FEATURES Franklin S. Cooper Jr
@ 2013-11-22 15:45 ` Franklin S. Cooper Jr
2013-11-22 15:45 ` [PATCH 5/6] mount-sdcard: Update to use new udev entry Franklin S. Cooper Jr
2013-11-22 15:45 ` [PATCH 6/6] packagegroup-arago-tisdk-amsdk-sdk-host: Don't bother packaging blank uEnv.txt Franklin S. Cooper Jr
5 siblings, 0 replies; 18+ messages in thread
From: Franklin S. Cooper Jr @ 2013-11-22 15:45 UTC (permalink / raw)
To: meta-arago; +Cc: Franklin S. Cooper Jr
This reverts commit c304ad98cf74b9781cabeabcbceeec48fdcd27df.
udev for some reason is still not running the udev rule that auto mounts the
specific mmc partition.
---
.../packagegroup-arago-tisdk-amsdk.bb | 3 +-
.../recipes-tisdk/mount-sdcard/mount-sdcard.bb | 30 ++++++++++++++++++++
.../recipes-tisdk/mount-sdcard/mount-sdcard/init | 20 +++++++++++++
3 files changed, 52 insertions(+), 1 deletions(-)
create mode 100644 meta-arago-distro/recipes-tisdk/mount-sdcard/mount-sdcard.bb
create mode 100644 meta-arago-distro/recipes-tisdk/mount-sdcard/mount-sdcard/init
diff --git a/meta-arago-distro/recipes-core/packagegroups/packagegroup-arago-tisdk-amsdk.bb b/meta-arago-distro/recipes-core/packagegroups/packagegroup-arago-tisdk-amsdk.bb
index c2eb72b..254caf8 100644
--- a/meta-arago-distro/recipes-core/packagegroups/packagegroup-arago-tisdk-amsdk.bb
+++ b/meta-arago-distro/recipes-core/packagegroups/packagegroup-arago-tisdk-amsdk.bb
@@ -1,6 +1,6 @@
DESCRIPTION = "Task to install additional packages only used in the Arago SDK"
LICENSE = "MIT"
-PR = "r9"
+PR = "r10"
inherit packagegroup
@@ -23,6 +23,7 @@ EXTRA_APPLICATIONS = "\
"
RDEPENDS_${PN} = "\
+ mount-sdcard \
${OOBE} \
${EXTRA_APPLICATIONS} \
"
diff --git a/meta-arago-distro/recipes-tisdk/mount-sdcard/mount-sdcard.bb b/meta-arago-distro/recipes-tisdk/mount-sdcard/mount-sdcard.bb
new file mode 100644
index 0000000..29ff489
--- /dev/null
+++ b/meta-arago-distro/recipes-tisdk/mount-sdcard/mount-sdcard.bb
@@ -0,0 +1,30 @@
+# This recipe is meant to be a temporary fix until we can figure out why
+# the SD card partitions are not automounted anymore.
+
+DESCRIPTION = "Script to mount SD card partitions when available"
+
+LICENSE = "MIT"
+LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
+
+# RDEPEND on udev since we re-use the mount.sh script
+RDEPENDS_${PN} += "udev"
+
+PACKAGE_ARCH = "all"
+
+inherit update-rc.d
+
+PR = "r0"
+
+SRC_URI = "file://init"
+
+INITSCRIPT_NAME = "mount-sdcard"
+
+# Mount it early enough that other scripts can find the partitions.
+INITSCRIPT_PARAMS = "defaults 90"
+
+do_install() {
+ install -d ${D}${sysconfdir}/init.d
+ install -m 0755 ${WORKDIR}/init ${D}${sysconfdir}/init.d/mount-sdcard
+}
+
+FILES_${PN} = "${sysconfdir} ${bindir}"
diff --git a/meta-arago-distro/recipes-tisdk/mount-sdcard/mount-sdcard/init b/meta-arago-distro/recipes-tisdk/mount-sdcard/mount-sdcard/init
new file mode 100644
index 0000000..61200b5
--- /dev/null
+++ b/meta-arago-distro/recipes-tisdk/mount-sdcard/mount-sdcard/init
@@ -0,0 +1,20 @@
+#!/bin/sh
+
+devices="/dev/mmcblk0p1 /dev/mmcblk0p2 /dev/mmcblk0p3"
+
+case "$1" in
+ start )
+ for d in $devices
+ do
+ DEVNAME=$d ACTION=add /etc/udev/scripts/mount.sh > /dev/null 2>&1
+ done
+ ;;
+ stop )
+ for d in $devices
+ do
+ DEVNAME=$d ACTION=remove /etc/udev/scripts/mount.sh > /dev/null 2>&1
+ done
+ ;;
+esac
+
+exit 0;
--
1.7.0.4
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH 5/6] mount-sdcard: Update to use new udev entry
2013-11-22 15:45 [PATCH 1/6] qt4-embedded-gles: Add support for new version of the Graphics SDK Franklin S. Cooper Jr
` (3 preceding siblings ...)
2013-11-22 15:45 ` [PATCH 4/6] Revert "packagegroup-arago-tisdk-amsdk.bb, mount-sdcard: Remove mount-sdcard" Franklin S. Cooper Jr
@ 2013-11-22 15:45 ` Franklin S. Cooper Jr
2013-11-22 20:00 ` Tom Rini
2013-11-22 15:45 ` [PATCH 6/6] packagegroup-arago-tisdk-amsdk-sdk-host: Don't bother packaging blank uEnv.txt Franklin S. Cooper Jr
5 siblings, 1 reply; 18+ messages in thread
From: Franklin S. Cooper Jr @ 2013-11-22 15:45 UTC (permalink / raw)
To: meta-arago; +Cc: Franklin S. Cooper Jr
* Patch 1c1b695310309ec3526f1b6b415c5e1b74a567e1 added a udev entry to
automatically mount sd card partition.
* For some reason that udev entry isn't automatically ran.
* As a workaround manually trigger udev to run twice (not sure why thats needed)
for the udev rule to run correctly.
Signed-off-by: Franklin S. Cooper Jr <fcooper@ti.com>
---
.../recipes-tisdk/mount-sdcard/mount-sdcard.bb | 2 +-
.../recipes-tisdk/mount-sdcard/mount-sdcard/init | 14 ++++----------
2 files changed, 5 insertions(+), 11 deletions(-)
diff --git a/meta-arago-distro/recipes-tisdk/mount-sdcard/mount-sdcard.bb b/meta-arago-distro/recipes-tisdk/mount-sdcard/mount-sdcard.bb
index 29ff489..699c255 100644
--- a/meta-arago-distro/recipes-tisdk/mount-sdcard/mount-sdcard.bb
+++ b/meta-arago-distro/recipes-tisdk/mount-sdcard/mount-sdcard.bb
@@ -13,7 +13,7 @@ PACKAGE_ARCH = "all"
inherit update-rc.d
-PR = "r0"
+PR = "r1"
SRC_URI = "file://init"
diff --git a/meta-arago-distro/recipes-tisdk/mount-sdcard/mount-sdcard/init b/meta-arago-distro/recipes-tisdk/mount-sdcard/mount-sdcard/init
index 61200b5..6634c55 100644
--- a/meta-arago-distro/recipes-tisdk/mount-sdcard/mount-sdcard/init
+++ b/meta-arago-distro/recipes-tisdk/mount-sdcard/mount-sdcard/init
@@ -1,19 +1,13 @@
#!/bin/sh
-devices="/dev/mmcblk0p1 /dev/mmcblk0p2 /dev/mmcblk0p3"
-
case "$1" in
start )
- for d in $devices
- do
- DEVNAME=$d ACTION=add /etc/udev/scripts/mount.sh > /dev/null 2>&1
- done
+ udevadm trigger --action=add --subsystem-match=block
+ udevadm trigger --action=add --subsystem-match=block
;;
stop )
- for d in $devices
- do
- DEVNAME=$d ACTION=remove /etc/udev/scripts/mount.sh > /dev/null 2>&1
- done
+ udevadm trigger --action=remove --subsystem-match=block
+ udevadm trigger --action=remove --subsystem-match=block
;;
esac
--
1.7.0.4
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PATCH 6/6] packagegroup-arago-tisdk-amsdk-sdk-host: Don't bother packaging blank uEnv.txt
2013-11-22 15:45 [PATCH 1/6] qt4-embedded-gles: Add support for new version of the Graphics SDK Franklin S. Cooper Jr
` (4 preceding siblings ...)
2013-11-22 15:45 ` [PATCH 5/6] mount-sdcard: Update to use new udev entry Franklin S. Cooper Jr
@ 2013-11-22 15:45 ` Franklin S. Cooper Jr
5 siblings, 0 replies; 18+ messages in thread
From: Franklin S. Cooper Jr @ 2013-11-22 15:45 UTC (permalink / raw)
To: meta-arago; +Cc: Franklin S. Cooper Jr
* Some devices such as omap-a15 need to override the default u-boot settings to
work. Therefore, the default uEnv.txt is needed.
* For devices that currently don't need to override the default u-boot settings
no point in packaging up a blank file.
Signed-off-by: Franklin S. Cooper Jr <fcooper@ti.com>
---
.../packagegroup-arago-tisdk-amsdk-sdk-host.bb | 6 +++---
1 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/meta-arago-distro/recipes-core/packagegroups/packagegroup-arago-tisdk-amsdk-sdk-host.bb b/meta-arago-distro/recipes-core/packagegroups/packagegroup-arago-tisdk-amsdk-sdk-host.bb
index 89da2ff..cb95ae9 100644
--- a/meta-arago-distro/recipes-core/packagegroups/packagegroup-arago-tisdk-amsdk-sdk-host.bb
+++ b/meta-arago-distro/recipes-core/packagegroups/packagegroup-arago-tisdk-amsdk-sdk-host.bb
@@ -1,6 +1,6 @@
DESCRIPTION = "Task to install additional scripts and applications into the SDK"
LICENSE = "MIT"
-PR = "r16"
+PR = "r17"
inherit packagegroup
@@ -19,8 +19,8 @@ TOOLS_append_am3517-evm = " flash-utility"
EXTRA_FILES = ""
EXTRA_FILES_omap-a15 = "tisdk-readme tisdk-uenv"
-EXTRA_FILES_ti33x = "${@base_contains('ARAGO_BRAND','amsdk','','tisdk-readme tisdk-uenv',d)}"
-EXTRA_FILES_ti43x = "${@base_contains('ARAGO_BRAND','amsdk','','tisdk-readme tisdk-uenv',d)}"
+EXTRA_FILES_ti33x = "${@base_contains('ARAGO_BRAND','amsdk','','tisdk-readme',d)}"
+EXTRA_FILES_ti43x = "${@base_contains('ARAGO_BRAND','amsdk','','tisdk-readme',d)}"
RDEPENDS_${PN} = "\
${TOOLS} \
--
1.7.0.4
^ permalink raw reply related [flat|nested] 18+ messages in thread
* Re: [PATCH 1/6] qt4-embedded-gles: Add support for new version of the Graphics SDK
2013-11-22 15:13 ` Cooper Jr., Franklin
@ 2013-11-22 18:51 ` Denys Dmytriyenko
2013-11-22 19:00 ` Cooper Jr., Franklin
0 siblings, 1 reply; 18+ messages in thread
From: Denys Dmytriyenko @ 2013-11-22 18:51 UTC (permalink / raw)
To: Cooper Jr., Franklin; +Cc: meta-arago@arago-project.org
Sorry, I meant I had received this set from you previously, as it looked
familiar. But it appears the previous submission was not on the list, right?
On Fri, Nov 22, 2013 at 03:13:35PM +0000, Cooper Jr., Franklin wrote:
> I don't think you sent a patch for qt4-embedded-gles.
>
> Are you sure you're not thinking about the qtwebkit patch?
> http://arago-project.org/git/meta-arago.git?a=commit;h=370c6ed8e738eb3066160f133897a14eb3af1955
>
> > -----Original Message-----
> > From: Denys Dmytriyenko [mailto:denis@denix.org]
> > Sent: Friday, November 22, 2013 9:03 AM
> > To: Cooper Jr., Franklin
> > Cc: meta-arago@arago-project.org
> > Subject: Re: [meta-arago] [PATCH 1/6] qt4-embedded-gles: Add support for
> > new version of the Graphics SDK
> >
> > I believe I already had this set?
> >
> > On Fri, Nov 22, 2013 at 09:45:16AM -0600, Franklin S. Cooper Jr wrote:
> > > * Add support for the Graphics SDK version 5.00.00.01
> > > * For now only apply the patches to AM43x and AM335x since this alpha
> > release of
> > > the Graphics SDK has only been sanity tested for these platforms.
> > > * The official release should support all the typical platforms and this patch
> > > can be applied for all devices.
> > >
> > > Signed-off-by: Franklin S. Cooper Jr <fcooper@ti.com>
> > > ---
> > > ...hanges-for-integrating-with-TI-graphics-S.patch | 719
> > ++++++++++++++++++++
> > > .../recipes-qt/qt4/qt4-embedded-gles_4.8.4.bb | 4 +-
> > > 2 files changed, 722 insertions(+), 1 deletions(-) create mode
> > > 100644
> > > meta-arago-extras/recipes-qt/qt4/qt4-embedded-gles/0001-Qt-4.x-v2-Chan
> > > ges-for-integrating-with-TI-graphics-S.patch
> > >
> > > diff --git
> > > a/meta-arago-extras/recipes-qt/qt4/qt4-embedded-gles/0001-Qt-4.x-v2-Ch
> > > anges-for-integrating-with-TI-graphics-S.patch
> > > b/meta-arago-extras/recipes-qt/qt4/qt4-embedded-gles/0001-Qt-4.x-v2-Ch
> > > anges-for-integrating-with-TI-graphics-S.patch
> > > new file mode 100644
> > > index 0000000..73ef094
> > > --- /dev/null
> > > +++ b/meta-arago-extras/recipes-qt/qt4/qt4-embedded-gles/0001-Qt-4.x-v
> > > +++ 2-Changes-for-integrating-with-TI-graphics-S.patch
> > > @@ -0,0 +1,719 @@
> > > +From c463092eb5465cf7a7f9f783425dd75ec48d5f89 Mon Sep 17
> > 00:00:00
> > > +2001
> > > +From: Prathap Srinivas <msprathap@ti.com>
> > > +Date: Tue, 5 Nov 2013 07:52:34 -0600
> > > +Subject: [PATCH] Qt 4.x v2: Changes for integrating with TI graphics
> > > +SDK release 04.10.00.01
> > > +
> > > +This patch adds the changes required for Qt 4.x to work with 04.10 TI gfx
> > sdk.
> > > +04.10.00.01 TI gfx sdk is based on 1.10 Linux DDK from Imagination
> > > +Technologies wsegl.h, pvr2d.h has been updated with 1.10 DDK.
> > > +This patch includes the updated files and also makes the required changes.
> > > +The changes are in QWSWSEGL to interface with updated wsegl.h.
> > > +
> > > +Version 2:
> > > +Updated to apply cleanly
> > > +---
> > > + src/3rdparty/powervr/wsegl2/pvr2d.h | 190 +++++++++++++------
> > -
> > > + src/3rdparty/powervr/wsegl2/wsegl.h | 172 ++++++++++++------
> > > + .../gfxdrivers/powervr/QWSWSEGL/pvrqwswsegl.c | 28 +++-
> > > + 3 files changed, 269 insertions(+), 121 deletions(-)
> > > +
> > > +diff --git a/src/3rdparty/powervr/wsegl2/pvr2d.h
> > > +b/src/3rdparty/powervr/wsegl2/pvr2d.h
> > > +index 0f44833..d7e8123 100644
> > > +--- a/src/3rdparty/powervr/wsegl2/pvr2d.h
> > > ++++ b/src/3rdparty/powervr/wsegl2/pvr2d.h
> > > +@@ -1,39 +1,47 @@
> > > +-
> > /************************************************************
> > *******
> > > +***
> > > +-*
> > > +-* Copyright(c) Imagination Technologies Ltd.
> > > +-*
> > > +-* The contents of this file are subject to the MIT license as set out below.
> > > +-*
> > > +-* Permission is hereby granted, free of charge, to any person
> > > +obtaining a copy
> > > +-* of this software and associated documentation files (the
> > > +"Software"),
> > > +-* to deal in the Software without restriction, including without
> > > +limitation
> > > +-* the rights to use, copy, modify, merge, publish, distribute,
> > > +sublicense,
> > > +-* and/or sell copies of the Software, and to permit persons to whom
> > > +the
> > > +-* Software is furnished to do so, subject to the following conditions:
> > > +-*
> > > +-* The above copyright notice and this permission notice shall be
> > > +included
> > > +-* in all copies or substantial portions of the Software.
> > > +-*
> > > +-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
> > KIND,
> > > +EXPRESS
> > > +-* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
> > > +MERCHANTABILITY,
> > > +-* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
> > > +-* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
> > FOR
> > > +ANY CLAIM,
> > > +-* DAMAGES OR OTHER LIABILITY, WHETHER 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.
> > > +-*
> > > +-* This License is also included in this distribution in the file
> > > +called
> > > +-* "COPYING".
> > > +-*
> > > +-
> > *************************************************************
> > *******
> > > +**********/
> > > +-
> > > +-
> > >
> > ++/**********************************************************
> > ***************/ /*!
> > > ++@Copyright Copyright (c) Imagination Technologies Ltd. All Rights
> > Reserved
> > > ++@License Dual MIT/GPLv2
> > > ++
> > > ++The contents of this file are subject to the MIT license as set out below.
> > > ++
> > > ++Permission is hereby granted, free of charge, to any person
> > > ++obtaining a copy of this software and associated documentation files
> > > ++(the "Software"), to deal in the Software without restriction,
> > > ++including without limitation the rights to use, copy, modify, merge,
> > > ++publish, distribute, sublicense, and/or sell copies of the Software,
> > > ++and to permit persons to whom the Software is furnished to do so, subject
> > to the following conditions:
> > > ++
> > > ++The above copyright notice and this permission notice shall be
> > > ++included in all copies or substantial portions of the Software.
> > > ++
> > > ++Alternatively, the contents of this file may be used under the terms
> > > ++of the GNU General Public License Version 2 ("GPL") in which case
> > > ++the provisions of GPL are applicable instead of those above.
> > > ++
> > > ++If you wish to allow use of your version of this file only under the
> > > ++terms of GPL, and not to allow others to use your version of this
> > > ++file under the terms of the MIT license, indicate your decision by
> > > ++deleting the provisions above and replace them with the notice and
> > > ++other provisions required by GPL as set out in the file called
> > > ++"GPL-COPYING" included in this distribution. If you do not delete
> > > ++the provisions above, a recipient may use your version of this file under the
> > terms of either the MIT license or GPL.
> > > ++
> > > ++This License is also included in this distribution in the file
> > > ++called "MIT-COPYING".
> > > ++
> > > ++EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE
> > > ++SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
> > EXPRESS
> > > ++OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
> > > ++MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
> > > ++NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
> > COPYRIGHT
> > > ++HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
> > WHETHER
> > > ++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.
> > > ++
> > > ++*/
> > >
> > ++/**********************************************************
> > *********
> > > ++*******/
> > > +
> > > +
> > >
> > +/***********************************************************
> > *********
> > > +**********
> > > + Modifications :-
> > > + $Log: pvr2d.h $
> > > +-
> > > +- --- Revision Logs Removed ---
> > > +
> > >
> > +************************************************************
> > *********
> > > +*********/
> > > +
> > > + #ifndef _PVR2D_H_
> > > +@@ -54,7 +62,7 @@ extern "C" {
> > > +
> > > + /* PVR2D header revision */
> > > + #define PVR2D_REV_MAJOR 3
> > > +-#define PVR2D_REV_MINOR 5
> > > ++#define PVR2D_REV_MINOR 6
> > > +
> > > + /* Basic types */
> > > + typedef enum
> > > +@@ -67,13 +75,20 @@ typedef void* PVR2D_HANDLE;
> > > +
> > > + typedef char PVR2D_CHAR, *PVR2D_PCHAR;
> > > + typedef unsigned char PVR2D_UCHAR, *PVR2D_PUCHAR;
> > > ++
> > > + typedef int PVR2D_INT, *PVR2D_PINT;
> > > + typedef unsigned int PVR2D_UINT, *PVR2D_PUINT;
> > > ++
> > > ++typedef unsigned short PVR2D_UINT16, *PVR2D_PUINT16;
> > > ++typedef signed short PVR2D_INT16, *PVR2D_PINT16;
> > > ++
> > > + typedef long PVR2D_LONG, *PVR2D_PLONG;
> > > + typedef unsigned long PVR2D_ULONG, *PVR2D_PULONG;
> > > +
> > > + typedef void PVR2D_VOID, *PVR2D_PVOID;
> > > +
> > > ++/* services/stream ID */
> > > ++typedef unsigned int PVR2D_SID;
> > > +
> > > + /* error codes */
> > > + typedef enum
> > > +@@ -99,7 +114,7 @@ typedef unsigned long PVR2DFORMAT;
> > > + #define PVR2D_1BPP
> > 0x00UL // 1bpp mask surface or palletized 1 bit source with 2x32 bit
> > CLUT
> > > + #define PVR2D_RGB565
> > 0x01UL // Common rgb 565 format
> > > + #define PVR2D_ARGB4444
> > 0x02UL // Common argb 4444 format
> > > +-#define PVR2D_RGB888
> > 0x03UL // Common rgb 888 format (not supported)
> > > ++#define PVR2D_RGB888
> > 0x03UL // Common rgb 888 format
> > > + #define PVR2D_ARGB8888
> > 0x04UL // Common argb 8888 format
> > > + #define PVR2D_ARGB1555
> > 0x05UL // Common argb 1555 format
> > > + #define PVR2D_ALPHA8
> > 0x06UL // Alpha-only 8 bit per pixel (used with a constant fill colour)
> > > +@@ -114,16 +129,18 @@ typedef unsigned long PVR2DFORMAT;
> > > + #define PVR2D_YUV422_UYVY 0x14UL //
> > YUV 422 low-high byte order UY0VY1
> > > + #define PVR2D_YUV422_YVYU 0x15UL //
> > YUV 422 low-high byte order Y0VY1U
> > > + #define PVR2D_YUV422_VYUY 0x16UL //
> > YUV 422 low-high byte order VY0UY1
> > > +-#define PVR2D_YUV420_2PLANE 0x17UL //
> > YUV420 2 Plane
> > > +-#define PVR2D_YUV420_3PLANE 0x18UL //
> > YUV420 3 Plane
> > > +-#define PVR2D_2101010ARGB 0x19UL // 32
> > bit 2 10 10 10
> > > +-#define PVR2D_888RSGSBS 0x1AUL
> > > ++#define PVR2D_YUV420_2PLANE 0x17UL //
> > YUV420 2 Plane with UV interleaved in plane 2
> > > ++#define PVR2D_YVU420_3PLANE 0x18UL //
> > YVU420 3 Plane
> > > ++#define PVR2D_YUV420_3PLANE 0x21UL //
> > YUV420 3 Plane
> > > ++#define PVR2D_2101010ARGB 0x19UL // 32
> > bit 2 10 10 10
> > > ++#define PVR2D_888RSGSBS 0x1AUL // 3
> > channel signed 8 bit
> > > + #define PVR2D_16BPP_RAW
> > 0x1BUL // 16 bit raw (no format conversion)
> > > + #define PVR2D_32BPP_RAW
> > 0x1CUL // 32 bit raw
> > > + #define PVR2D_64BPP_RAW
> > 0x1DUL // 64 bit raw
> > > + #define PVR2D_128BPP_RAW 0x1EUL //
> > 128 bit raw
> > > +-
> > > +-#define PVR2D_NO_OF_FORMATS
> > 0x1FUL
> > > ++#define PVR2D_AYUV8888 0x1FUL
> > > ++#define PVR2D_F16
> > 0x20UL
> > > ++#define PVR2D_NO_OF_FORMATS
> > 0x22UL
> > > +
> > > + /* Format modifier bit field (DstFormat and SrcFormat bits 16..23) */
> > > + #define PVR2D_FORMAT_MASK
> > 0x0000FFFFUL // PVR2D Format bits
> > > +@@ -141,7 +158,8 @@ typedef unsigned long PVR2DFORMAT;
> > > + This flag requests a surface pdump, to capture the pixel state after host
> > writes.
> > > + Not needed if the surface state has resulted from previous SGX 2D/3D
> > core writes.
> > > + */
> > > +-#define PVR2D_SURFACE_PDUMP
> > 0x00100000UL // calls PVRSRVPDumpMem to capture the surface
> > (pdump builds only)
> > > ++#define PVR2D_SURFACE_PDUMP
> > 0x00100000UL // calls PVRSRVPDumpMem to capture the surface
> > (pdump builds only)
> > > ++#define PVR2D_BLTRECT_PDUMP
> > 0x00200000UL // calls PVRSRVPDumpMem to capture the blt rectangle
> > (pdump builds only)
> > > +
> > > + /*
> > > + Low level 3D format extension - for blts via the 3D core only.
> > > +@@ -155,8 +173,7 @@ typedef unsigned long PVR2DFORMAT; typedef
> > enum
> > > +{
> > > + PVR2D_WRAPFLAG_NONCONTIGUOUS = 0,
> > > +- PVR2D_WRAPFLAG_CONTIGUOUS = 1,
> > > +-
> > > ++ PVR2D_WRAPFLAG_CONTIGUOUS = 1
> > > + }PVR2DWRAPFLAGS;
> > > +
> > > + #define PVR2D_CONTEXT_FLAGS_PRIORITY_MASK
> > 0x00000003
> > > +@@ -171,7 +188,7 @@ typedef enum
> > > + PVR2D_BLIT_DISABLE_ALL =
> > 0x00000000, /* disable all additional controls */
> > > + PVR2D_BLIT_CK_ENABLE =
> > 0x00000001, /* enable colour key */
> > > + PVR2D_BLIT_GLOBAL_ALPHA_ENABLE =
> > 0x00000002, /* enable standard global alpha */
> > > +- PVR2D_BLIT_PERPIXEL_ALPHABLEND_ENABLE = 0x00000004, /*
> > enable per-pixel alpha bleding */
> > > ++ PVR2D_BLIT_PERPIXEL_ALPHABLEND_ENABLE = 0x00000004, /*
> > enable per-pixel alpha blending */
> > > + PVR2D_BLIT_PAT_SURFACE_ENABLE =
> > 0x00000008, /* enable pattern surf (disable fill) */
> > > + PVR2D_BLIT_FULLY_SPECIFIED_ALPHA_ENABLE = 0x00000010, /*
> > enable fully specified alpha */
> > > + PVR2D_BLIT_ROT_90 =
> > 0x00000020, /* apply 90 degree rotation to the blt */
> > > +@@ -186,11 +203,12 @@ typedef enum
> > > + PVR2D_BLIT_COLKEY_MASKED =
> > 0x00004000, /* Mask enabled for colour key */
> > > + PVR2D_BLIT_COLKEY_OP_PASS =
> > 0x00008000, /* Colour key op = pass */
> > > + PVR2D_BLIT_COLKEY_OP_REJECT =
> > 0x00010000, /* Colour key op = reject */
> > > ++ PVR2D_BLIT_ROP4
> > = 0x00020000, /* rop4 pattern support */
> > > + PVR2D_BLIT_PATH_2DCORE =
> > 0x00100000, /* Blt via dedicated 2D Core or PTLA */
> > > + PVR2D_BLIT_PATH_3DCORE =
> > 0x00200000, /* Blt via 3D Core */
> > > + PVR2D_BLIT_PATH_SWBLT =
> > 0x00400000, /* Blt via host software */
> > > + PVR2D_BLIT_NO_SRC_SYNC_INFO =
> > 0x00800000, /* Dont send a source sync info*/
> > > +- PVR2D_BLIT_ISSUE_STATUS_UPDATES =
> > 0x01000000, /* Issue status updates */
> > > ++ PVR2D_BLIT_ISSUE_STATUS_UPDATES =
> > 0x01000000, /* Issue SyncInfo status updates */
> > > +
> > > + } PVR2DBLITFLAGS;
> > > +
> > > +@@ -288,6 +306,17 @@ typedef struct _PVR2MISCDISPLAYINFO
> > > +
> > > + }PVR2DMISCDISPLAYINFO;
> > > +
> > > ++typedef struct
> > > ++{
> > > ++ PVR2DMEMINFO *pSurfMemInfo; /* surface
> > memory */
> > > ++ PVR2D_ULONG SurfOffset; /* byte offset
> > from start of allocation to destination surface pixel 0,0 */
> > > ++ PVR2D_LONG Stride; /* signed
> > stride */
> > > ++ PVR2DFORMAT Format; /* format */
> > > ++ PVR2D_ULONG SurfWidth; /* surface
> > width in pixels */
> > > ++ PVR2D_ULONG SurfHeight; /* surface
> > height in pixels */
> > > ++
> > > ++} PVR2D_SURFACE, *PPVR2D_SURFACE;
> > > ++
> > > +
> > > + typedef struct _PVR2DBLTINFO
> > > + {
> > > +@@ -326,34 +355,28 @@ typedef struct _PVR2DBLTINFO
> > > + PVR2D_LONG MaskX, MaskY; /* mask rect top left
> > (mask size = blt size) */
> > > + PVR2D_ULONG MaskSurfWidth; /* size of
> > mask surface in pixels */
> > > + PVR2D_ULONG MaskSurfHeight; /* size of
> > mask surface in pixels */
> > > +-
> > > ++
> > > + PPVR2D_ALPHABLT pAlpha; /* fully
> > specified alpha blend (2DCore only) */
> > > +-
> > > ++
> > > + PVR2D_ULONG uSrcChromaPlane1; /* mem offset from
> > start of source alloc to chroma plane 1 */
> > > + PVR2D_ULONG uSrcChromaPlane2; /* mem offset from
> > start of source alloc to chroma plane 2 */
> > > + PVR2D_ULONG uDstChromaPlane1; /* mem offset from
> > start of dest alloc to chroma plane 1 */
> > > + PVR2D_ULONG uDstChromaPlane2; /* mem offset from
> > start of dest alloc to chroma plane 2 */
> > > +-
> > > ++
> > > + PVR2D_ULONG ColourKeyMask; /* 32 bit
> > colour key mask, only valid when PVR2D_BLIT_COLKEY_MASKED is set */
> > > +
> > > ++ PPVR2D_SURFACE pPat; /* full rop4
> > support for patterns if PVR2D_BLIT_ROP4 set (2D Core hardware only) */
> > > ++ PVR2D_LONG PatX, PatY; /* pattern
> > start offset if PVR2D_BLIT_ROP4 set (2D Core hardware only) */
> > > ++
> > > + }PVR2DBLTINFO, *PPVR2DBLTINFO;
> > > +
> > > ++
> > > + typedef struct _PVR2DRECT
> > > + {
> > > + PVR2D_LONG left, top;
> > > + PVR2D_LONG right, bottom;
> > > +-} PVR2DRECT;
> > > ++} PVR2DRECT, *PPVR2DRECT;
> > > +
> > > +-typedef struct
> > > +-{
> > > +- PVR2DMEMINFO *pSurfMemInfo; /* surface
> > memory */
> > > +- PVR2D_ULONG SurfOffset; /* byte offset
> > from start of allocation to destination surface pixel 0,0 */
> > > +- PVR2D_LONG Stride; /* signed
> > stride */
> > > +- PVR2DFORMAT Format; /* format */
> > > +- PVR2D_ULONG SurfWidth; /* surface
> > width in pixels */
> > > +- PVR2D_ULONG SurfHeight; /* surface
> > height in pixels */
> > > +-
> > > +-} PVR2D_SURFACE, *PPVR2D_SURFACE;
> > > +
> > > + typedef struct
> > > + {
> > > +@@ -479,8 +502,8 @@ typedef void* PVR2DFLIPCHAINHANDLE;
> > > +
> > > + #define PVR2D_CREATE_FLIPCHAIN_SHARED (1UL << 0)
> > > + #define PVR2D_CREATE_FLIPCHAIN_QUERY (1UL << 1)
> > > +-#define PVR2D_CREATE_FLIPCHAIN_OEMOVERLAY (1UL << 2)
> > > +-#define PVR2D_CREATE_FLIPCHAIN_AS_BLITCHAIN (1UL << 3)
> > > ++#define PVR2D_CREATE_FLIPCHAIN_OEMOVERLAY (1UL << 2)
> > > ++#define PVR2D_CREATE_FLIPCHAIN_AS_BLITCHAIN (1UL << 3)
> > > +
> > > + /* Colour-key colour must be translated into argb8888 format */
> > > + #define CKEY_8888(P) (P)
> > > +@@ -498,7 +521,8 @@ typedef void* PVR2DFLIPCHAINHANDLE;
> > > + #define CFILL_565(P) (((P&0xF800UL)<<8) |
> > ((P&0x7E0UL)<<5) | ((P&0x1FUL)<<3))
> > > +
> > > + /* PVR2DCreateDeviceContext flags */
> > > +-#define PVR2D_XSERVER_PROC 0x00000001UL
> > /*!< Set for the Xserver connection */
> > > ++#define PVR2D_XSERVER_PROC 0x00000001UL
> > /* Set for the Xserver connection */
> > > ++#define PVR2D_FLAGS_PDUMP_ACTIVE 0x00000002UL /* Set
> > when pdumping from multiple processes */
> > > +
> > > + /* PVR2DMemAlloc flags */
> > > + #define PVR2D_MEM_UNCACHED 0x00000000UL /*
> > Default */
> > > +@@ -508,7 +532,7 @@ typedef void* PVR2DFLIPCHAINHANDLE;
> > > + /* Functions that the library exports */
> > > +
> > > + PVR2D_IMPORT
> > > +-int PVR2DEnumerateDevices(PVR2DDEVICEINFO *pDevInfo);
> > > ++PVR2D_INT PVR2DEnumerateDevices(PVR2DDEVICEINFO *pDevInfo);
> > > +
> > > + PVR2D_IMPORT
> > > + PVR2DERROR PVR2DCreateDeviceContext(PVR2D_ULONG ulDevID, @@ -
> > 633,7
> > > ++657,7 @@ PVR2DERROR
> > PVR2DSetPresentFlipProperties(PVR2DCONTEXTHANDLE hContext,
> > > +
> > PVR2D_ULONG ulPropertyMask,
> > > +
> > PVR2D_LONG lDstXPos,
> > > +
> > PVR2D_LONG lDstYPos,
> > > +-
> > PVR2D_ULONG ulNumClipRects,
> > > ++
> > PVR2D_ULONG ulNumClipRects,
> > > +
> > PVR2DRECT *pClipRects,
> > > +
> > PVR2D_ULONG ulSwapInterval);
> > > +
> > > +@@ -658,6 +682,44 @@ PVR2DERROR PVR2DBlt3D (const
> > PVR2DCONTEXTHANDLE
> > > +hContext, const PPVR2D_3DBLT pBl PVR2D_IMPORT PVR2DERROR
> > > +PVR2DBlt3DExt (const PVR2DCONTEXTHANDLE hContext, const
> > > +PPVR2D_3DBLT_EXT pBlt3D);
> > > +
> > > ++
> > > ++PVR2D_IMPORT
> > > ++PVR2DERROR PVR2DModifyPendingOps(const PVR2DCONTEXTHANDLE
> > hContext,
> > > ++
> > PVR2D_HANDLE *phSyncModObj,
> > > ++
> > PVR2DMEMINFO *psMemInfo,
> > > ++
> > PVR2D_BOOL bIsWriteOp,
> > > ++
> > PVR2D_ULONG *pulReadOpsPending,
> > > ++
> > PVR2D_ULONG *pulWriteOpsPending);
> > > ++
> > > ++PVR2D_IMPORT
> > > ++PVR2DERROR PVR2DModifyCompleteOps(const PVR2DCONTEXTHANDLE
> > hContext,
> > > ++
> > PVR2D_HANDLE hSyncModObj);
> > > ++
> > > ++PVR2D_IMPORT
> > > ++PVR2DERROR PVR2DFlushToSyncModObj(const PVR2DCONTEXTHANDLE
> > hContext,
> > > ++
> > PVR2D_HANDLE hSyncModObj,
> > > ++
> > PVR2D_BOOL bWait);
> > > ++
> > > ++PVR2D_IMPORT
> > > ++PVR2DERROR PVR2DTakeSyncToken(const PVR2DCONTEXTHANDLE
> > hContext,
> > > ++ PVR2DMEMINFO
> > *psMemInfo,
> > > ++ PVR2D_HANDLE
> > *phSyncToken,
> > > ++ PVR2D_ULONG
> > *pulReadOpsPending,
> > > ++ PVR2D_ULONG
> > *pulWriteOpsPending);
> > > ++
> > > ++PVR2D_IMPORT
> > > ++PVR2DERROR PVR2DReleaseSyncToken(const PVR2DCONTEXTHANDLE
> > hContext,
> > > ++
> > PVR2D_HANDLE hSyncToken);
> > > ++
> > > ++PVR2D_IMPORT
> > > ++PVR2DERROR PVR2DFlushToSyncToken(const PVR2DCONTEXTHANDLE
> > hContext,
> > > ++
> > PVR2DMEMINFO *psMemInfo,
> > > ++
> > PVR2D_HANDLE hSyncToken,
> > > ++
> > PVR2D_BOOL bWait);
> > > ++
> > > ++PVR2D_IMPORT
> > > ++PVR2DERROR PVR2DWaitForNextHardwareEvent(const
> > PVR2DCONTEXTHANDLE
> > > ++hContext);
> > > ++
> > > + #ifdef __cplusplus
> > > + }
> > > + #endif
> > > +diff --git a/src/3rdparty/powervr/wsegl2/wsegl.h
> > > +b/src/3rdparty/powervr/wsegl2/wsegl.h
> > > +index a2c3ffc..480179b 100644
> > > +--- a/src/3rdparty/powervr/wsegl2/wsegl.h
> > > ++++ b/src/3rdparty/powervr/wsegl2/wsegl.h
> > > +@@ -1,34 +1,43 @@
> > > +-
> > /************************************************************
> > *******
> > > +***
> > > +-*
> > > +-* Copyright(c) Imagination Technologies Ltd.
> > > +-*
> > > +-* The contents of this file are subject to the MIT license as set out below.
> > > +-*
> > > +-* Permission is hereby granted, free of charge, to any person
> > > +obtaining a copy
> > > +-* of this software and associated documentation files (the
> > > +"Software"),
> > > +-* to deal in the Software without restriction, including without
> > > +limitation
> > > +-* the rights to use, copy, modify, merge, publish, distribute,
> > > +sublicense,
> > > +-* and/or sell copies of the Software, and to permit persons to whom
> > > +the
> > > +-* Software is furnished to do so, subject to the following conditions:
> > > +-*
> > > +-* The above copyright notice and this permission notice shall be
> > > +included
> > > +-* in all copies or substantial portions of the Software.
> > > +-*
> > > +-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
> > KIND,
> > > +EXPRESS
> > > +-* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
> > > +MERCHANTABILITY,
> > > +-* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
> > > +-* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
> > FOR
> > > +ANY CLAIM,
> > > +-* DAMAGES OR OTHER LIABILITY, WHETHER 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.
> > > +-*
> > > +-* This License is also included in this distribution in the file
> > > +called
> > > +-* "COPYING".
> > > +-*
> > > +-
> > *************************************************************
> > *******
> > > +**********/
> > > +-
> > > +-
> > > +-
> > >
> > ++/**********************************************************
> > ***************/ /*!
> > > ++@Copyright Copyright (c) Imagination Technologies Ltd. All Rights
> > Reserved
> > > ++@License Dual MIT/GPLv2
> > > ++
> > > ++The contents of this file are subject to the MIT license as set out below.
> > > ++
> > > ++Permission is hereby granted, free of charge, to any person
> > > ++obtaining a copy of this software and associated documentation files
> > > ++(the "Software"), to deal in the Software without restriction,
> > > ++including without limitation the rights to use, copy, modify, merge,
> > > ++publish, distribute, sublicense, and/or sell copies of the Software,
> > > ++and to permit persons to whom the Software is furnished to do so, subject
> > to the following conditions:
> > > ++
> > > ++The above copyright notice and this permission notice shall be
> > > ++included in all copies or substantial portions of the Software.
> > > ++
> > > ++Alternatively, the contents of this file may be used under the terms
> > > ++of the GNU General Public License Version 2 ("GPL") in which case
> > > ++the provisions of GPL are applicable instead of those above.
> > > ++
> > > ++If you wish to allow use of your version of this file only under the
> > > ++terms of GPL, and not to allow others to use your version of this
> > > ++file under the terms of the MIT license, indicate your decision by
> > > ++deleting the provisions above and replace them with the notice and
> > > ++other provisions required by GPL as set out in the file called
> > > ++"GPL-COPYING" included in this distribution. If you do not delete
> > > ++the provisions above, a recipient may use your version of this file under the
> > terms of either the MIT license or GPL.
> > > ++
> > > ++This License is also included in this distribution in the file
> > > ++called "MIT-COPYING".
> > > ++
> > > ++EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE
> > > ++SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
> > EXPRESS
> > > ++OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
> > > ++MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
> > > ++NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
> > COPYRIGHT
> > > ++HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
> > WHETHER
> > > ++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.
> > > ++
> > > ++*/
> > >
> > ++/**********************************************************
> > *********
> > > ++*******/
> > > + #if !defined(__WSEGL_H__)
> > > + #define __WSEGL_H__
> > > +
> > > +@@ -51,7 +60,7 @@ extern "C" {
> > > + // WSEGL API Version Number
> > > + */
> > > +
> > > +-#define WSEGL_VERSION 2
> > > ++#define WSEGL_VERSION 4
> > > + #define WSEGL_DEFAULT_DISPLAY 0
> > > + #define WSEGL_DEFAULT_NATIVE_ENGINE 0
> > > +
> > > +@@ -78,6 +87,11 @@ typedef enum WSEGLCapsType_TAG
> > > + WSEGL_CAP_WINDOWS_USE_HW_SYNC = 3, /* System default value
> > = 0 (FALSE) */
> > > + WSEGL_CAP_PIXMAPS_USE_HW_SYNC = 4, /* System default value =
> > 0
> > > +(FALSE) */
> > > +
> > > ++ /* When this capability is set, the EGL lock is not taken around calls
> > > ++ to WSEGL functions. The WSEGL module is responsible for performing
> > > ++ its own locking in this case. */
> > > ++ WSEGL_CAP_UNLOCKED = 5, /* System default value = 0 */
> > > ++
> > > + } WSEGLCapsType;
> > > +
> > > + /*
> > > +@@ -97,6 +111,19 @@ typedef struct WSEGLCaps_TAG
> > > + #define WSEGL_DRAWABLE_WINDOW 0x1
> > > + #define WSEGL_DRAWABLE_PIXMAP 0x2
> > > +
> > > ++/*
> > > ++// YUV format flags and sync
> > > ++*/
> > > ++#define WSEGL_FLAGS_YUV_CONFORMANT_RANGE (0 <<
> > 0)
> > > ++#define WSEGL_FLAGS_YUV_FULL_RANGE (1 <<
> > 0)
> > > ++#define WSEGL_FLAGS_YUV_BT601 (0 <<
> > 1)
> > > ++#define WSEGL_FLAGS_YUV_BT709 (1 <<
> > 1)
> > > ++#define WSEGL_FLAGS_EGLIMAGE_COMPOSITION_SYNC (1 << 2)
> > > ++
> > > ++/*
> > > ++// Maximum number of optional PowerVR Services 4 SYNCINFO objects */
> > > ++#define WSEGL_MAX_SRC_SYNCS 32
> > > +
> > > + /*
> > > + // Pixel format of display/drawable
> > > +@@ -110,6 +137,16 @@ typedef enum WSEGLPixelFormat_TAG
> > > + WSEGL_PIXELFORMAT_ARGB1555 = 3,
> > > + WSEGL_PIXELFORMAT_ABGR8888 = 4,
> > > + WSEGL_PIXELFORMAT_XBGR8888 = 5,
> > > ++ WSEGL_PIXELFORMAT_NV12 = 6,
> > > ++ WSEGL_PIXELFORMAT_YUYV = 7,
> > > ++ WSEGL_PIXELFORMAT_YV12 = 8,
> > > ++ WSEGL_PIXELFORMAT_XRGB8888 = 9,
> > > ++ WSEGL_PIXELFORMAT_UYVY = 10,
> > > ++ WSEGL_PIXELFORMAT_NV12_4KALIGN = 11,
> > > ++ WSEGL_PIXELFORMAT_NV21_4KALIGN = 12,
> > > ++ WSEGL_PIXELFORMAT_R8 = 13,
> > > ++ WSEGL_PIXELFORMAT_R8G8 = 14,
> > > ++ WSEGL_PIXELFORMAT_NV21 = 15,
> > > +
> > > + /* These are compatibility names only; new WSEGL
> > > + * modules should not use them.
> > > +@@ -138,31 +175,33 @@ typedef struct WSEGLConfig_TAG {
> > > + /*
> > > + // Type of drawables this configuration applies to -
> > > +- // OR'd values of drawable types.
> > > ++ // OR'd values of drawable types.
> > > + */
> > > +- unsigned long ui32DrawableType;
> > > ++ unsigned long ui32DrawableType;
> > > +
> > > + /* Pixel format */
> > > +- WSEGLPixelFormat ePixelFormat;
> > > ++ WSEGLPixelFormat ePixelFormat;
> > > +
> > > + /* Native Renderable - set to WSEGL_TRUE if native renderable */
> > > +- unsigned long ulNativeRenderable;
> > > ++ unsigned long ulNativeRenderable;
> > > +
> > > + /* FrameBuffer Level Parameter */
> > > +- unsigned long ulFrameBufferLevel;
> > > ++ unsigned long ulFrameBufferLevel;
> > > +
> > > + /* Native Visual ID */
> > > +- unsigned long ulNativeVisualID;
> > > ++ unsigned long ulNativeVisualID;
> > > +
> > > + /* Native Visual */
> > > +- void *hNativeVisual;
> > > ++ unsigned long ulNativeVisualType;
> > > +
> > > + /* Transparent Type */
> > > +- WSEGLTransparentType eTransparentType;
> > > ++ WSEGLTransparentType eTransparentType;
> > > +
> > > + /* Transparent Color - only used if transparent type is COLOR_KEY */
> > > +- unsigned long ulTransparentColor; /* packed as 0x00RRGGBB */
> > > ++ unsigned long ulTransparentColor; /* packed as
> > 0x00RRGGBB */
> > > +
> > > ++ /* Framebuffer Target - set to WSEGL_TRUE if config compatible with
> > framebuffer */
> > > ++ unsigned long ulFramebufferTarget;
> > > +
> > > + } WSEGLConfig;
> > > +
> > > +@@ -180,13 +219,14 @@ typedef enum WSEGLError_TAG
> > > + WSEGL_BAD_DRAWABLE = 6,
> > > + WSEGL_BAD_MATCH = 7,
> > > + WSEGL_OUT_OF_MEMORY = 8,
> > > ++ WSEGL_RETRY = 9,
> > > +
> > > + /* These are compatibility names only; new WSEGL
> > > + * modules should not use them.
> > > + */
> > > + WSEGL_BAD_CONFIG = WSEGL_BAD_MATCH,
> > > +
> > > +-} WSEGLError;
> > > ++} WSEGLError;
> > > +
> > > + /*
> > > + // Drawable orientation (in degrees anti-clockwise) @@ -198,7 +238,7
> > > +@@ typedef enum WSEGLRotationAngle_TAG
> > > + WSEGL_ROTATE_180 = 2,
> > > + WSEGL_ROTATE_270 = 3
> > > +
> > > +-} WSEGLRotationAngle;
> > > ++} WSEGLRotationAngle;
> > > +
> > > + /*
> > > + // Drawable information required by OpenGL-ES driver @@ -206,26
> > > ++246,46 @@ typedef enum WSEGLRotationAngle_TAG typedef struct
> > > +WSEGLDrawableParams_TAG {
> > > + /* Width in pixels of the drawable */
> > > +- unsigned long ui32Width;
> > > ++ unsigned long ui32Width;
> > > +
> > > + /* Height in pixels of the drawable */
> > > +- unsigned long ui32Height;
> > > ++ unsigned long ui32Height;
> > > +
> > > + /* Stride in pixels of the drawable */
> > > +- unsigned long ui32Stride;
> > > ++ unsigned long ui32Stride;
> > > +
> > > + /* Pixel format of the drawable */
> > > +- WSEGLPixelFormat ePixelFormat;
> > > ++ WSEGLPixelFormat ePixelFormat;
> > > +
> > > + /* User space cpu virtual address of the drawable */
> > > +- void *pvLinearAddress;
> > > ++ void *pvLinearAddress;
> > > +
> > > + /* HW address of the drawable */
> > > +- unsigned long ui32HWAddress;
> > > ++ unsigned long ui32HWAddress;
> > > ++
> > > ++ /* Override display's HW_SYNC mode */
> > > ++ unsigned long bWaitForRender;
> > > +
> > > +- /* Private data for the drawable */
> > > +- void *hPrivateData;
> > > ++ /* Flags */
> > > ++ unsigned long ulFlags;
> > > +
> > > ++ /* Rotation angle of drawable (presently source only) */
> > > ++ WSEGLRotationAngle eRotationAngle;
> > > ++
> > > ++ /*
> > > ++ // Optional PowerVR Services 4 MEMINFO pointer. This may be used for
> > > ++ // internal (implicit) synchronization purposes, and by PDUMP. It should
> > > ++ // refer to the same object as the other fields in this structure.
> > > ++ */
> > > ++ void *hMemInfo;
> > > ++
> > > ++ /*
> > > ++ // Optional PowerVR Services 4 SYNCINFO pointers to sent down as
> > source
> > > ++ // surface (texture) dependencies of a render. If these are provided
> > > ++ // when not applicable, they will be ignored. If a sync is not needed,
> > > ++ // it should be passed as NULL.
> > > ++ */
> > > ++ void
> > *ahSyncInfo[WSEGL_MAX_SRC_SYNCS];
> > > +
> > > + } WSEGLDrawableParams;
> > > +
> > > +@@ -262,12 +322,18 @@ typedef struct WSEGL_FunctionTable_TAG
> > > +
> > > + WSEGLError (*pfnWSEGL_CopyFromPBuffer)(void *, unsigned long,
> > > + unsigned long, unsigned long, WSEGLPixelFormat, NativePixmapType);
> > > +
> > > +- WSEGLError
> > (*pfnWSEGL_GetDrawableParameters)(WSEGLDrawableHandle,
> > WSEGLDrawableParams *, WSEGLDrawableParams *);
> > > ++ WSEGLError
> > (*pfnWSEGL_GetDrawableParameters)(WSEGLDrawableHandle,
> > > ++WSEGLDrawableParams *, WSEGLDrawableParams *, unsigned long);
> > > +
> > > + WSEGLError (*pfnWSEGL_ConnectDrawable)(WSEGLDrawableHandle);
> > > +
> > > + WSEGLError
> > (*pfnWSEGL_DisconnectDrawable)(WSEGLDrawableHandle);
> > > +
> > > ++ WSEGLError (*pfnWSEGL_FlagStartFrame)(void);
> > > ++
> > > ++
> > > ++#if defined (__QNXNTO__)
> > > ++ WSEGLError
> > > ++(*pfnWSEGL_WaitForDrawableRenderBuffer)(WSEGLDrawableHandle);
> > > ++#endif
> > > +
> > > + } WSEGL_FunctionTable;
> > > +
> > > +@@ -276,7 +342,7 @@ WSEGL_IMPORT const WSEGL_FunctionTable
> > > +*WSEGL_GetFunctionTablePointer(void);
> > > +
> > > + #ifdef __cplusplus
> > > + }
> > > +-#endif
> > > ++#endif
> > > +
> > > + #endif /* __WSEGL_H__ */
> > > +
> > > +diff --git a/src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwswsegl.c
> > > +b/src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwswsegl.c
> > > +index d42e59f..24e5b0d 100644
> > > +--- a/src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwswsegl.c
> > > ++++ b/src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwswsegl.c
> > > +@@ -336,12 +336,17 @@ static WSEGLError wseglCopyFromPBuffer
> > > + /* Return the parameters of a drawable that are needed by the EGL
> > > +layer */ static WSEGLError wseglGetDrawableParameters
> > > + (WSEGLDrawableHandle _drawable, WSEGLDrawableParams
> > *sourceParams,
> > > +- WSEGLDrawableParams *renderParams)
> > > ++ WSEGLDrawableParams *renderParams,unsigned long ulPlaneOffset)
> > > + {
> > > + PvrQwsDrawable *drawable = (PvrQwsDrawable *)_drawable;
> > > + PVR2DMEMINFO *source, *render;
> > > + WSEGLPixelFormat pixelFormat;
> > > +
> > > ++ WSEGL_UNREFERENCED_PARAMETER(ulPlaneOffset);
> > > ++
> > > ++ memset(renderParams, 0, sizeof(*renderParams));
> > > ++ memset(sourceParams, 0, sizeof(*sourceParams));
> > > ++
> > > + if (!pvrQwsGetBuffers(drawable, &source, &render))
> > > + return WSEGL_BAD_DRAWABLE;
> > > +
> > > +@@ -366,7 +371,7 @@ static WSEGLError wseglGetDrawableParameters
> > > + sourceParams->ePixelFormat = pixelFormat;
> > > + sourceParams->pvLinearAddress = source->pBase;
> > > + sourceParams->ui32HWAddress = source->ui32DevAddr;
> > > +- sourceParams->hPrivateData = source->hPrivateData;
> > > ++ sourceParams->hMemInfo = source->hPrivateData;
> > > +
> > > + renderParams->ui32Width = drawable->rect.width;
> > > + renderParams->ui32Height = drawable->rect.height; @@ -374,7
> > > ++379,7 @@ static WSEGLError wseglGetDrawableParameters
> > > + renderParams->ePixelFormat = pixelFormat;
> > > + renderParams->pvLinearAddress = render->pBase;
> > > + renderParams->ui32HWAddress = render->ui32DevAddr;
> > > +- renderParams->hPrivateData = render->hPrivateData;
> > > ++ renderParams->hMemInfo = render->hPrivateData;
> > > +
> > > + return WSEGL_SUCCESS;
> > > + }
> > > +@@ -393,6 +398,20 @@ static WSEGLError
> > wseglDisconnectDrawable(WSEGLDrawableHandle hDrawable)
> > > + return WSEGL_SUCCESS;
> > > + }
> > > +
> > >
> > ++/**********************************************************
> > *************************
> > > ++ Function Name : WSEGL_FlagStartFrame
> > > ++ Inputs : hDrawable
> > > ++ Outputs : None
> > > ++ Returns : Error code
> > > ++ Description : Indicates that there have been rendering commands
> > submitted
> > > ++ by a client driver
> > >
> > ++***********************************************************
> > *********
> > > ++****************/ static WSEGLError wseglFlagStartFrame(void) {
> > > ++ return WSEGL_SUCCESS;
> > > ++}
> > > ++
> > > ++
> > > + static WSEGL_FunctionTable const wseglFunctions = {
> > > + WSEGL_VERSION,
> > > + wseglIsDisplayValid,
> > > +@@ -408,7 +427,8 @@ static WSEGL_FunctionTable const wseglFunctions =
> > {
> > > + wseglCopyFromPBuffer,
> > > + wseglGetDrawableParameters,
> > > + wseglConnectDrawable,
> > > +- wseglDisconnectDrawable
> > > ++ wseglDisconnectDrawable,
> > > ++ wseglFlagStartFrame,
> > > + };
> > > +
> > > + /* Return the table of WSEGL functions to the EGL implementation */
> > > +--
> > > +1.7.0.4
> > > +
> > > diff --git
> > > a/meta-arago-extras/recipes-qt/qt4/qt4-embedded-gles_4.8.4.bb
> > > b/meta-arago-extras/recipes-qt/qt4/qt4-embedded-gles_4.8.4.bb
> > > index fa2d31c..460de67 100644
> > > --- a/meta-arago-extras/recipes-qt/qt4/qt4-embedded-gles_4.8.4.bb
> > > +++ b/meta-arago-extras/recipes-qt/qt4/qt4-embedded-gles_4.8.4.bb
> > > @@ -1,7 +1,7 @@
> > > require ${COREBASE}/meta/recipes-qt/qt4/qt4-${PV}.inc
> > > require ${COREBASE}/meta/recipes-qt/qt4/qt4-embedded.inc
> > >
> > > -PR = "${INC_PR}.2"
> > > +PR = "${INC_PR}.3"
> > >
> > > FILESEXTRAPATHS_append :=
> > "${THISDIR}/${PN}:${COREBASE}/meta/recipes-qt/qt4/qt4-
> > ${PV}:${COREBASE}/meta/recipes-qt/qt4/files:"
> > >
> > > @@ -12,6 +12,8 @@ SRC_URI += " \
> > > file://002_pvrqwswsegl.c.patch \
> > > file://cursor-hack.diff \
> > > "
> > > +SRC_URI_append_ti33x = " file://0001-Qt-4.x-v2-Changes-for-integrating-
> > with-TI-graphics-S.patch"
> > > +SRC_URI_append_ti43x = " file://0001-Qt-4.x-v2-Changes-for-integrating-
> > with-TI-graphics-S.patch"
> > >
> > > QT_CONFIG_FLAGS_append_armv6 = " -no-neon "
> > >
> > > --
> > > 1.7.0.4
> > >
> > > _______________________________________________
> > > meta-arago mailing list
> > > meta-arago@arago-project.org
> > > http://arago-project.org/cgi-bin/mailman/listinfo/meta-arago
> > >
> _______________________________________________
> meta-arago mailing list
> meta-arago@arago-project.org
> http://arago-project.org/cgi-bin/mailman/listinfo/meta-arago
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 1/6] qt4-embedded-gles: Add support for new version of the Graphics SDK
2013-11-22 18:51 ` Denys Dmytriyenko
@ 2013-11-22 19:00 ` Cooper Jr., Franklin
0 siblings, 0 replies; 18+ messages in thread
From: Cooper Jr., Franklin @ 2013-11-22 19:00 UTC (permalink / raw)
To: Dmytriyenko, Denys; +Cc: meta-arago@arago-project.org
Ah yes. I didn't send you all of these patches but yeah I sent you this patch ( Nov 7th ) before since the graphics SDK wasn't public yet.
> On Nov 22, 2013, at 12:51 PM, "Dmytriyenko, Denys" <denys@ti.com> wrote:
>
> Sorry, I meant I had received this set from you previously, as it looked
> familiar. But it appears the previous submission was not on the list, right?
>
>
>> On Fri, Nov 22, 2013 at 03:13:35PM +0000, Cooper Jr., Franklin wrote:
>> I don't think you sent a patch for qt4-embedded-gles.
>>
>> Are you sure you're not thinking about the qtwebkit patch?
>> http://arago-project.org/git/meta-arago.git?a=commit;h=370c6ed8e738eb3066160f133897a14eb3af1955
>>
>>> -----Original Message-----
>>> From: Denys Dmytriyenko [mailto:denis@denix.org]
>>> Sent: Friday, November 22, 2013 9:03 AM
>>> To: Cooper Jr., Franklin
>>> Cc: meta-arago@arago-project.org
>>> Subject: Re: [meta-arago] [PATCH 1/6] qt4-embedded-gles: Add support for
>>> new version of the Graphics SDK
>>>
>>> I believe I already had this set?
>>>
>>>> On Fri, Nov 22, 2013 at 09:45:16AM -0600, Franklin S. Cooper Jr wrote:
>>>> * Add support for the Graphics SDK version 5.00.00.01
>>>> * For now only apply the patches to AM43x and AM335x since this alpha
>>> release of
>>>> the Graphics SDK has only been sanity tested for these platforms.
>>>> * The official release should support all the typical platforms and this patch
>>>> can be applied for all devices.
>>>>
>>>> Signed-off-by: Franklin S. Cooper Jr <fcooper@ti.com>
>>>> ---
>>>> ...hanges-for-integrating-with-TI-graphics-S.patch | 719
>>> ++++++++++++++++++++
>>>> .../recipes-qt/qt4/qt4-embedded-gles_4.8.4.bb | 4 +-
>>>> 2 files changed, 722 insertions(+), 1 deletions(-) create mode
>>>> 100644
>>>> meta-arago-extras/recipes-qt/qt4/qt4-embedded-gles/0001-Qt-4.x-v2-Chan
>>>> ges-for-integrating-with-TI-graphics-S.patch
>>>>
>>>> diff --git
>>>> a/meta-arago-extras/recipes-qt/qt4/qt4-embedded-gles/0001-Qt-4.x-v2-Ch
>>>> anges-for-integrating-with-TI-graphics-S.patch
>>>> b/meta-arago-extras/recipes-qt/qt4/qt4-embedded-gles/0001-Qt-4.x-v2-Ch
>>>> anges-for-integrating-with-TI-graphics-S.patch
>>>> new file mode 100644
>>>> index 0000000..73ef094
>>>> --- /dev/null
>>>> +++ b/meta-arago-extras/recipes-qt/qt4/qt4-embedded-gles/0001-Qt-4.x-v
>>>> +++ 2-Changes-for-integrating-with-TI-graphics-S.patch
>>>> @@ -0,0 +1,719 @@
>>>> +From c463092eb5465cf7a7f9f783425dd75ec48d5f89 Mon Sep 17
>>> 00:00:00
>>>> +2001
>>>> +From: Prathap Srinivas <msprathap@ti.com>
>>>> +Date: Tue, 5 Nov 2013 07:52:34 -0600
>>>> +Subject: [PATCH] Qt 4.x v2: Changes for integrating with TI graphics
>>>> +SDK release 04.10.00.01
>>>> +
>>>> +This patch adds the changes required for Qt 4.x to work with 04.10 TI gfx
>>> sdk.
>>>> +04.10.00.01 TI gfx sdk is based on 1.10 Linux DDK from Imagination
>>>> +Technologies wsegl.h, pvr2d.h has been updated with 1.10 DDK.
>>>> +This patch includes the updated files and also makes the required changes.
>>>> +The changes are in QWSWSEGL to interface with updated wsegl.h.
>>>> +
>>>> +Version 2:
>>>> +Updated to apply cleanly
>>>> +---
>>>> + src/3rdparty/powervr/wsegl2/pvr2d.h | 190 +++++++++++++------
>>> -
>>>> + src/3rdparty/powervr/wsegl2/wsegl.h | 172 ++++++++++++------
>>>> + .../gfxdrivers/powervr/QWSWSEGL/pvrqwswsegl.c | 28 +++-
>>>> + 3 files changed, 269 insertions(+), 121 deletions(-)
>>>> +
>>>> +diff --git a/src/3rdparty/powervr/wsegl2/pvr2d.h
>>>> +b/src/3rdparty/powervr/wsegl2/pvr2d.h
>>>> +index 0f44833..d7e8123 100644
>>>> +--- a/src/3rdparty/powervr/wsegl2/pvr2d.h
>>>> ++++ b/src/3rdparty/powervr/wsegl2/pvr2d.h
>>>> +@@ -1,39 +1,47 @@
>>>> +-
>>> /************************************************************
>>> *******
>>>> +***
>>>> +-*
>>>> +-* Copyright(c) Imagination Technologies Ltd.
>>>> +-*
>>>> +-* The contents of this file are subject to the MIT license as set out below.
>>>> +-*
>>>> +-* Permission is hereby granted, free of charge, to any person
>>>> +obtaining a copy
>>>> +-* of this software and associated documentation files (the
>>>> +"Software"),
>>>> +-* to deal in the Software without restriction, including without
>>>> +limitation
>>>> +-* the rights to use, copy, modify, merge, publish, distribute,
>>>> +sublicense,
>>>> +-* and/or sell copies of the Software, and to permit persons to whom
>>>> +the
>>>> +-* Software is furnished to do so, subject to the following conditions:
>>>> +-*
>>>> +-* The above copyright notice and this permission notice shall be
>>>> +included
>>>> +-* in all copies or substantial portions of the Software.
>>>> +-*
>>>> +-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
>>> KIND,
>>>> +EXPRESS
>>>> +-* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
>>>> +MERCHANTABILITY,
>>>> +-* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
>>>> +-* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
>>> FOR
>>>> +ANY CLAIM,
>>>> +-* DAMAGES OR OTHER LIABILITY, WHETHER 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.
>>>> +-*
>>>> +-* This License is also included in this distribution in the file
>>>> +called
>>>> +-* "COPYING".
>>>> +-*
>>>> +-
>>> *************************************************************
>>> *******
>>>> +**********/
>>>> +-
>>>> +-
>>> ++/**********************************************************
>>> ***************/ /*!
>>>> ++@Copyright Copyright (c) Imagination Technologies Ltd. All Rights
>>> Reserved
>>>> ++@License Dual MIT/GPLv2
>>>> ++
>>>> ++The contents of this file are subject to the MIT license as set out below.
>>>> ++
>>>> ++Permission is hereby granted, free of charge, to any person
>>>> ++obtaining a copy of this software and associated documentation files
>>>> ++(the "Software"), to deal in the Software without restriction,
>>>> ++including without limitation the rights to use, copy, modify, merge,
>>>> ++publish, distribute, sublicense, and/or sell copies of the Software,
>>>> ++and to permit persons to whom the Software is furnished to do so, subject
>>> to the following conditions:
>>>> ++
>>>> ++The above copyright notice and this permission notice shall be
>>>> ++included in all copies or substantial portions of the Software.
>>>> ++
>>>> ++Alternatively, the contents of this file may be used under the terms
>>>> ++of the GNU General Public License Version 2 ("GPL") in which case
>>>> ++the provisions of GPL are applicable instead of those above.
>>>> ++
>>>> ++If you wish to allow use of your version of this file only under the
>>>> ++terms of GPL, and not to allow others to use your version of this
>>>> ++file under the terms of the MIT license, indicate your decision by
>>>> ++deleting the provisions above and replace them with the notice and
>>>> ++other provisions required by GPL as set out in the file called
>>>> ++"GPL-COPYING" included in this distribution. If you do not delete
>>>> ++the provisions above, a recipient may use your version of this file under the
>>> terms of either the MIT license or GPL.
>>>> ++
>>>> ++This License is also included in this distribution in the file
>>>> ++called "MIT-COPYING".
>>>> ++
>>>> ++EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE
>>>> ++SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
>>> EXPRESS
>>>> ++OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
>>>> ++MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
>>>> ++NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
>>> COPYRIGHT
>>>> ++HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
>>> WHETHER
>>>> ++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.
>>>> ++
>>>> ++*/
>>> ++/**********************************************************
>>> *********
>>>> ++*******/
>>>> +
>>>> +
>>> +/***********************************************************
>>> *********
>>>> +**********
>>>> + Modifications :-
>>>> + $Log: pvr2d.h $
>>>> +-
>>>> +- --- Revision Logs Removed ---
>>>> +
>>> +************************************************************
>>> *********
>>>> +*********/
>>>> +
>>>> + #ifndef _PVR2D_H_
>>>> +@@ -54,7 +62,7 @@ extern "C" {
>>>> +
>>>> + /* PVR2D header revision */
>>>> + #define PVR2D_REV_MAJOR 3
>>>> +-#define PVR2D_REV_MINOR 5
>>>> ++#define PVR2D_REV_MINOR 6
>>>> +
>>>> + /* Basic types */
>>>> + typedef enum
>>>> +@@ -67,13 +75,20 @@ typedef void* PVR2D_HANDLE;
>>>> +
>>>> + typedef char PVR2D_CHAR, *PVR2D_PCHAR;
>>>> + typedef unsigned char PVR2D_UCHAR, *PVR2D_PUCHAR;
>>>> ++
>>>> + typedef int PVR2D_INT, *PVR2D_PINT;
>>>> + typedef unsigned int PVR2D_UINT, *PVR2D_PUINT;
>>>> ++
>>>> ++typedef unsigned short PVR2D_UINT16, *PVR2D_PUINT16;
>>>> ++typedef signed short PVR2D_INT16, *PVR2D_PINT16;
>>>> ++
>>>> + typedef long PVR2D_LONG, *PVR2D_PLONG;
>>>> + typedef unsigned long PVR2D_ULONG, *PVR2D_PULONG;
>>>> +
>>>> + typedef void PVR2D_VOID, *PVR2D_PVOID;
>>>> +
>>>> ++/* services/stream ID */
>>>> ++typedef unsigned int PVR2D_SID;
>>>> +
>>>> + /* error codes */
>>>> + typedef enum
>>>> +@@ -99,7 +114,7 @@ typedef unsigned long PVR2DFORMAT;
>>>> + #define PVR2D_1BPP
>>> 0x00UL // 1bpp mask surface or palletized 1 bit source with 2x32 bit
>>> CLUT
>>>> + #define PVR2D_RGB565
>>> 0x01UL // Common rgb 565 format
>>>> + #define PVR2D_ARGB4444
>>> 0x02UL // Common argb 4444 format
>>>> +-#define PVR2D_RGB888
>>> 0x03UL // Common rgb 888 format (not supported)
>>>> ++#define PVR2D_RGB888
>>> 0x03UL // Common rgb 888 format
>>>> + #define PVR2D_ARGB8888
>>> 0x04UL // Common argb 8888 format
>>>> + #define PVR2D_ARGB1555
>>> 0x05UL // Common argb 1555 format
>>>> + #define PVR2D_ALPHA8
>>> 0x06UL // Alpha-only 8 bit per pixel (used with a constant fill colour)
>>>> +@@ -114,16 +129,18 @@ typedef unsigned long PVR2DFORMAT;
>>>> + #define PVR2D_YUV422_UYVY 0x14UL //
>>> YUV 422 low-high byte order UY0VY1
>>>> + #define PVR2D_YUV422_YVYU 0x15UL //
>>> YUV 422 low-high byte order Y0VY1U
>>>> + #define PVR2D_YUV422_VYUY 0x16UL //
>>> YUV 422 low-high byte order VY0UY1
>>>> +-#define PVR2D_YUV420_2PLANE 0x17UL //
>>> YUV420 2 Plane
>>>> +-#define PVR2D_YUV420_3PLANE 0x18UL //
>>> YUV420 3 Plane
>>>> +-#define PVR2D_2101010ARGB 0x19UL // 32
>>> bit 2 10 10 10
>>>> +-#define PVR2D_888RSGSBS 0x1AUL
>>>> ++#define PVR2D_YUV420_2PLANE 0x17UL //
>>> YUV420 2 Plane with UV interleaved in plane 2
>>>> ++#define PVR2D_YVU420_3PLANE 0x18UL //
>>> YVU420 3 Plane
>>>> ++#define PVR2D_YUV420_3PLANE 0x21UL //
>>> YUV420 3 Plane
>>>> ++#define PVR2D_2101010ARGB 0x19UL // 32
>>> bit 2 10 10 10
>>>> ++#define PVR2D_888RSGSBS 0x1AUL // 3
>>> channel signed 8 bit
>>>> + #define PVR2D_16BPP_RAW
>>> 0x1BUL // 16 bit raw (no format conversion)
>>>> + #define PVR2D_32BPP_RAW
>>> 0x1CUL // 32 bit raw
>>>> + #define PVR2D_64BPP_RAW
>>> 0x1DUL // 64 bit raw
>>>> + #define PVR2D_128BPP_RAW 0x1EUL //
>>> 128 bit raw
>>>> +-
>>>> +-#define PVR2D_NO_OF_FORMATS
>>> 0x1FUL
>>>> ++#define PVR2D_AYUV8888 0x1FUL
>>>> ++#define PVR2D_F16
>>> 0x20UL
>>>> ++#define PVR2D_NO_OF_FORMATS
>>> 0x22UL
>>>> +
>>>> + /* Format modifier bit field (DstFormat and SrcFormat bits 16..23) */
>>>> + #define PVR2D_FORMAT_MASK
>>> 0x0000FFFFUL // PVR2D Format bits
>>>> +@@ -141,7 +158,8 @@ typedef unsigned long PVR2DFORMAT;
>>>> + This flag requests a surface pdump, to capture the pixel state after host
>>> writes.
>>>> + Not needed if the surface state has resulted from previous SGX 2D/3D
>>> core writes.
>>>> + */
>>>> +-#define PVR2D_SURFACE_PDUMP
>>> 0x00100000UL // calls PVRSRVPDumpMem to capture the surface
>>> (pdump builds only)
>>>> ++#define PVR2D_SURFACE_PDUMP
>>> 0x00100000UL // calls PVRSRVPDumpMem to capture the surface
>>> (pdump builds only)
>>>> ++#define PVR2D_BLTRECT_PDUMP
>>> 0x00200000UL // calls PVRSRVPDumpMem to capture the blt rectangle
>>> (pdump builds only)
>>>> +
>>>> + /*
>>>> + Low level 3D format extension - for blts via the 3D core only.
>>>> +@@ -155,8 +173,7 @@ typedef unsigned long PVR2DFORMAT; typedef
>>> enum
>>>> +{
>>>> + PVR2D_WRAPFLAG_NONCONTIGUOUS = 0,
>>>> +- PVR2D_WRAPFLAG_CONTIGUOUS = 1,
>>>> +-
>>>> ++ PVR2D_WRAPFLAG_CONTIGUOUS = 1
>>>> + }PVR2DWRAPFLAGS;
>>>> +
>>>> + #define PVR2D_CONTEXT_FLAGS_PRIORITY_MASK
>>> 0x00000003
>>>> +@@ -171,7 +188,7 @@ typedef enum
>>>> + PVR2D_BLIT_DISABLE_ALL =
>>> 0x00000000, /* disable all additional controls */
>>>> + PVR2D_BLIT_CK_ENABLE =
>>> 0x00000001, /* enable colour key */
>>>> + PVR2D_BLIT_GLOBAL_ALPHA_ENABLE =
>>> 0x00000002, /* enable standard global alpha */
>>>> +- PVR2D_BLIT_PERPIXEL_ALPHABLEND_ENABLE = 0x00000004, /*
>>> enable per-pixel alpha bleding */
>>>> ++ PVR2D_BLIT_PERPIXEL_ALPHABLEND_ENABLE = 0x00000004, /*
>>> enable per-pixel alpha blending */
>>>> + PVR2D_BLIT_PAT_SURFACE_ENABLE =
>>> 0x00000008, /* enable pattern surf (disable fill) */
>>>> + PVR2D_BLIT_FULLY_SPECIFIED_ALPHA_ENABLE = 0x00000010, /*
>>> enable fully specified alpha */
>>>> + PVR2D_BLIT_ROT_90 =
>>> 0x00000020, /* apply 90 degree rotation to the blt */
>>>> +@@ -186,11 +203,12 @@ typedef enum
>>>> + PVR2D_BLIT_COLKEY_MASKED =
>>> 0x00004000, /* Mask enabled for colour key */
>>>> + PVR2D_BLIT_COLKEY_OP_PASS =
>>> 0x00008000, /* Colour key op = pass */
>>>> + PVR2D_BLIT_COLKEY_OP_REJECT =
>>> 0x00010000, /* Colour key op = reject */
>>>> ++ PVR2D_BLIT_ROP4
>>> = 0x00020000, /* rop4 pattern support */
>>>> + PVR2D_BLIT_PATH_2DCORE =
>>> 0x00100000, /* Blt via dedicated 2D Core or PTLA */
>>>> + PVR2D_BLIT_PATH_3DCORE =
>>> 0x00200000, /* Blt via 3D Core */
>>>> + PVR2D_BLIT_PATH_SWBLT =
>>> 0x00400000, /* Blt via host software */
>>>> + PVR2D_BLIT_NO_SRC_SYNC_INFO =
>>> 0x00800000, /* Dont send a source sync info*/
>>>> +- PVR2D_BLIT_ISSUE_STATUS_UPDATES =
>>> 0x01000000, /* Issue status updates */
>>>> ++ PVR2D_BLIT_ISSUE_STATUS_UPDATES =
>>> 0x01000000, /* Issue SyncInfo status updates */
>>>> +
>>>> + } PVR2DBLITFLAGS;
>>>> +
>>>> +@@ -288,6 +306,17 @@ typedef struct _PVR2MISCDISPLAYINFO
>>>> +
>>>> + }PVR2DMISCDISPLAYINFO;
>>>> +
>>>> ++typedef struct
>>>> ++{
>>>> ++ PVR2DMEMINFO *pSurfMemInfo; /* surface
>>> memory */
>>>> ++ PVR2D_ULONG SurfOffset; /* byte offset
>>> from start of allocation to destination surface pixel 0,0 */
>>>> ++ PVR2D_LONG Stride; /* signed
>>> stride */
>>>> ++ PVR2DFORMAT Format; /* format */
>>>> ++ PVR2D_ULONG SurfWidth; /* surface
>>> width in pixels */
>>>> ++ PVR2D_ULONG SurfHeight; /* surface
>>> height in pixels */
>>>> ++
>>>> ++} PVR2D_SURFACE, *PPVR2D_SURFACE;
>>>> ++
>>>> +
>>>> + typedef struct _PVR2DBLTINFO
>>>> + {
>>>> +@@ -326,34 +355,28 @@ typedef struct _PVR2DBLTINFO
>>>> + PVR2D_LONG MaskX, MaskY; /* mask rect top left
>>> (mask size = blt size) */
>>>> + PVR2D_ULONG MaskSurfWidth; /* size of
>>> mask surface in pixels */
>>>> + PVR2D_ULONG MaskSurfHeight; /* size of
>>> mask surface in pixels */
>>>> +-
>>>> ++
>>>> + PPVR2D_ALPHABLT pAlpha; /* fully
>>> specified alpha blend (2DCore only) */
>>>> +-
>>>> ++
>>>> + PVR2D_ULONG uSrcChromaPlane1; /* mem offset from
>>> start of source alloc to chroma plane 1 */
>>>> + PVR2D_ULONG uSrcChromaPlane2; /* mem offset from
>>> start of source alloc to chroma plane 2 */
>>>> + PVR2D_ULONG uDstChromaPlane1; /* mem offset from
>>> start of dest alloc to chroma plane 1 */
>>>> + PVR2D_ULONG uDstChromaPlane2; /* mem offset from
>>> start of dest alloc to chroma plane 2 */
>>>> +-
>>>> ++
>>>> + PVR2D_ULONG ColourKeyMask; /* 32 bit
>>> colour key mask, only valid when PVR2D_BLIT_COLKEY_MASKED is set */
>>>> +
>>>> ++ PPVR2D_SURFACE pPat; /* full rop4
>>> support for patterns if PVR2D_BLIT_ROP4 set (2D Core hardware only) */
>>>> ++ PVR2D_LONG PatX, PatY; /* pattern
>>> start offset if PVR2D_BLIT_ROP4 set (2D Core hardware only) */
>>>> ++
>>>> + }PVR2DBLTINFO, *PPVR2DBLTINFO;
>>>> +
>>>> ++
>>>> + typedef struct _PVR2DRECT
>>>> + {
>>>> + PVR2D_LONG left, top;
>>>> + PVR2D_LONG right, bottom;
>>>> +-} PVR2DRECT;
>>>> ++} PVR2DRECT, *PPVR2DRECT;
>>>> +
>>>> +-typedef struct
>>>> +-{
>>>> +- PVR2DMEMINFO *pSurfMemInfo; /* surface
>>> memory */
>>>> +- PVR2D_ULONG SurfOffset; /* byte offset
>>> from start of allocation to destination surface pixel 0,0 */
>>>> +- PVR2D_LONG Stride; /* signed
>>> stride */
>>>> +- PVR2DFORMAT Format; /* format */
>>>> +- PVR2D_ULONG SurfWidth; /* surface
>>> width in pixels */
>>>> +- PVR2D_ULONG SurfHeight; /* surface
>>> height in pixels */
>>>> +-
>>>> +-} PVR2D_SURFACE, *PPVR2D_SURFACE;
>>>> +
>>>> + typedef struct
>>>> + {
>>>> +@@ -479,8 +502,8 @@ typedef void* PVR2DFLIPCHAINHANDLE;
>>>> +
>>>> + #define PVR2D_CREATE_FLIPCHAIN_SHARED (1UL << 0)
>>>> + #define PVR2D_CREATE_FLIPCHAIN_QUERY (1UL << 1)
>>>> +-#define PVR2D_CREATE_FLIPCHAIN_OEMOVERLAY (1UL << 2)
>>>> +-#define PVR2D_CREATE_FLIPCHAIN_AS_BLITCHAIN (1UL << 3)
>>>> ++#define PVR2D_CREATE_FLIPCHAIN_OEMOVERLAY (1UL << 2)
>>>> ++#define PVR2D_CREATE_FLIPCHAIN_AS_BLITCHAIN (1UL << 3)
>>>> +
>>>> + /* Colour-key colour must be translated into argb8888 format */
>>>> + #define CKEY_8888(P) (P)
>>>> +@@ -498,7 +521,8 @@ typedef void* PVR2DFLIPCHAINHANDLE;
>>>> + #define CFILL_565(P) (((P&0xF800UL)<<8) |
>>> ((P&0x7E0UL)<<5) | ((P&0x1FUL)<<3))
>>>> +
>>>> + /* PVR2DCreateDeviceContext flags */
>>>> +-#define PVR2D_XSERVER_PROC 0x00000001UL
>>> /*!< Set for the Xserver connection */
>>>> ++#define PVR2D_XSERVER_PROC 0x00000001UL
>>> /* Set for the Xserver connection */
>>>> ++#define PVR2D_FLAGS_PDUMP_ACTIVE 0x00000002UL /* Set
>>> when pdumping from multiple processes */
>>>> +
>>>> + /* PVR2DMemAlloc flags */
>>>> + #define PVR2D_MEM_UNCACHED 0x00000000UL /*
>>> Default */
>>>> +@@ -508,7 +532,7 @@ typedef void* PVR2DFLIPCHAINHANDLE;
>>>> + /* Functions that the library exports */
>>>> +
>>>> + PVR2D_IMPORT
>>>> +-int PVR2DEnumerateDevices(PVR2DDEVICEINFO *pDevInfo);
>>>> ++PVR2D_INT PVR2DEnumerateDevices(PVR2DDEVICEINFO *pDevInfo);
>>>> +
>>>> + PVR2D_IMPORT
>>>> + PVR2DERROR PVR2DCreateDeviceContext(PVR2D_ULONG ulDevID, @@ -
>>> 633,7
>>>> ++657,7 @@ PVR2DERROR
>>> PVR2DSetPresentFlipProperties(PVR2DCONTEXTHANDLE hContext,
>>>> +
>>> PVR2D_ULONG ulPropertyMask,
>>>> +
>>> PVR2D_LONG lDstXPos,
>>>> +
>>> PVR2D_LONG lDstYPos,
>>>> +-
>>> PVR2D_ULONG ulNumClipRects,
>>>> ++
>>> PVR2D_ULONG ulNumClipRects,
>>>> +
>>> PVR2DRECT *pClipRects,
>>>> +
>>> PVR2D_ULONG ulSwapInterval);
>>>> +
>>>> +@@ -658,6 +682,44 @@ PVR2DERROR PVR2DBlt3D (const
>>> PVR2DCONTEXTHANDLE
>>>> +hContext, const PPVR2D_3DBLT pBl PVR2D_IMPORT PVR2DERROR
>>>> +PVR2DBlt3DExt (const PVR2DCONTEXTHANDLE hContext, const
>>>> +PPVR2D_3DBLT_EXT pBlt3D);
>>>> +
>>>> ++
>>>> ++PVR2D_IMPORT
>>>> ++PVR2DERROR PVR2DModifyPendingOps(const PVR2DCONTEXTHANDLE
>>> hContext,
>>>> ++
>>> PVR2D_HANDLE *phSyncModObj,
>>>> ++
>>> PVR2DMEMINFO *psMemInfo,
>>>> ++
>>> PVR2D_BOOL bIsWriteOp,
>>>> ++
>>> PVR2D_ULONG *pulReadOpsPending,
>>>> ++
>>> PVR2D_ULONG *pulWriteOpsPending);
>>>> ++
>>>> ++PVR2D_IMPORT
>>>> ++PVR2DERROR PVR2DModifyCompleteOps(const PVR2DCONTEXTHANDLE
>>> hContext,
>>>> ++
>>> PVR2D_HANDLE hSyncModObj);
>>>> ++
>>>> ++PVR2D_IMPORT
>>>> ++PVR2DERROR PVR2DFlushToSyncModObj(const PVR2DCONTEXTHANDLE
>>> hContext,
>>>> ++
>>> PVR2D_HANDLE hSyncModObj,
>>>> ++
>>> PVR2D_BOOL bWait);
>>>> ++
>>>> ++PVR2D_IMPORT
>>>> ++PVR2DERROR PVR2DTakeSyncToken(const PVR2DCONTEXTHANDLE
>>> hContext,
>>>> ++ PVR2DMEMINFO
>>> *psMemInfo,
>>>> ++ PVR2D_HANDLE
>>> *phSyncToken,
>>>> ++ PVR2D_ULONG
>>> *pulReadOpsPending,
>>>> ++ PVR2D_ULONG
>>> *pulWriteOpsPending);
>>>> ++
>>>> ++PVR2D_IMPORT
>>>> ++PVR2DERROR PVR2DReleaseSyncToken(const PVR2DCONTEXTHANDLE
>>> hContext,
>>>> ++
>>> PVR2D_HANDLE hSyncToken);
>>>> ++
>>>> ++PVR2D_IMPORT
>>>> ++PVR2DERROR PVR2DFlushToSyncToken(const PVR2DCONTEXTHANDLE
>>> hContext,
>>>> ++
>>> PVR2DMEMINFO *psMemInfo,
>>>> ++
>>> PVR2D_HANDLE hSyncToken,
>>>> ++
>>> PVR2D_BOOL bWait);
>>>> ++
>>>> ++PVR2D_IMPORT
>>>> ++PVR2DERROR PVR2DWaitForNextHardwareEvent(const
>>> PVR2DCONTEXTHANDLE
>>>> ++hContext);
>>>> ++
>>>> + #ifdef __cplusplus
>>>> + }
>>>> + #endif
>>>> +diff --git a/src/3rdparty/powervr/wsegl2/wsegl.h
>>>> +b/src/3rdparty/powervr/wsegl2/wsegl.h
>>>> +index a2c3ffc..480179b 100644
>>>> +--- a/src/3rdparty/powervr/wsegl2/wsegl.h
>>>> ++++ b/src/3rdparty/powervr/wsegl2/wsegl.h
>>>> +@@ -1,34 +1,43 @@
>>>> +-
>>> /************************************************************
>>> *******
>>>> +***
>>>> +-*
>>>> +-* Copyright(c) Imagination Technologies Ltd.
>>>> +-*
>>>> +-* The contents of this file are subject to the MIT license as set out below.
>>>> +-*
>>>> +-* Permission is hereby granted, free of charge, to any person
>>>> +obtaining a copy
>>>> +-* of this software and associated documentation files (the
>>>> +"Software"),
>>>> +-* to deal in the Software without restriction, including without
>>>> +limitation
>>>> +-* the rights to use, copy, modify, merge, publish, distribute,
>>>> +sublicense,
>>>> +-* and/or sell copies of the Software, and to permit persons to whom
>>>> +the
>>>> +-* Software is furnished to do so, subject to the following conditions:
>>>> +-*
>>>> +-* The above copyright notice and this permission notice shall be
>>>> +included
>>>> +-* in all copies or substantial portions of the Software.
>>>> +-*
>>>> +-* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
>>> KIND,
>>>> +EXPRESS
>>>> +-* OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
>>>> +MERCHANTABILITY,
>>>> +-* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
>>>> +-* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
>>> FOR
>>>> +ANY CLAIM,
>>>> +-* DAMAGES OR OTHER LIABILITY, WHETHER 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.
>>>> +-*
>>>> +-* This License is also included in this distribution in the file
>>>> +called
>>>> +-* "COPYING".
>>>> +-*
>>>> +-
>>> *************************************************************
>>> *******
>>>> +**********/
>>>> +-
>>>> +-
>>>> +-
>>> ++/**********************************************************
>>> ***************/ /*!
>>>> ++@Copyright Copyright (c) Imagination Technologies Ltd. All Rights
>>> Reserved
>>>> ++@License Dual MIT/GPLv2
>>>> ++
>>>> ++The contents of this file are subject to the MIT license as set out below.
>>>> ++
>>>> ++Permission is hereby granted, free of charge, to any person
>>>> ++obtaining a copy of this software and associated documentation files
>>>> ++(the "Software"), to deal in the Software without restriction,
>>>> ++including without limitation the rights to use, copy, modify, merge,
>>>> ++publish, distribute, sublicense, and/or sell copies of the Software,
>>>> ++and to permit persons to whom the Software is furnished to do so, subject
>>> to the following conditions:
>>>> ++
>>>> ++The above copyright notice and this permission notice shall be
>>>> ++included in all copies or substantial portions of the Software.
>>>> ++
>>>> ++Alternatively, the contents of this file may be used under the terms
>>>> ++of the GNU General Public License Version 2 ("GPL") in which case
>>>> ++the provisions of GPL are applicable instead of those above.
>>>> ++
>>>> ++If you wish to allow use of your version of this file only under the
>>>> ++terms of GPL, and not to allow others to use your version of this
>>>> ++file under the terms of the MIT license, indicate your decision by
>>>> ++deleting the provisions above and replace them with the notice and
>>>> ++other provisions required by GPL as set out in the file called
>>>> ++"GPL-COPYING" included in this distribution. If you do not delete
>>>> ++the provisions above, a recipient may use your version of this file under the
>>> terms of either the MIT license or GPL.
>>>> ++
>>>> ++This License is also included in this distribution in the file
>>>> ++called "MIT-COPYING".
>>>> ++
>>>> ++EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE
>>>> ++SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
>>> EXPRESS
>>>> ++OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
>>>> ++MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
>>>> ++NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
>>> COPYRIGHT
>>>> ++HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
>>> WHETHER
>>>> ++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.
>>>> ++
>>>> ++*/
>>> ++/**********************************************************
>>> *********
>>>> ++*******/
>>>> + #if !defined(__WSEGL_H__)
>>>> + #define __WSEGL_H__
>>>> +
>>>> +@@ -51,7 +60,7 @@ extern "C" {
>>>> + // WSEGL API Version Number
>>>> + */
>>>> +
>>>> +-#define WSEGL_VERSION 2
>>>> ++#define WSEGL_VERSION 4
>>>> + #define WSEGL_DEFAULT_DISPLAY 0
>>>> + #define WSEGL_DEFAULT_NATIVE_ENGINE 0
>>>> +
>>>> +@@ -78,6 +87,11 @@ typedef enum WSEGLCapsType_TAG
>>>> + WSEGL_CAP_WINDOWS_USE_HW_SYNC = 3, /* System default value
>>> = 0 (FALSE) */
>>>> + WSEGL_CAP_PIXMAPS_USE_HW_SYNC = 4, /* System default value =
>>> 0
>>>> +(FALSE) */
>>>> +
>>>> ++ /* When this capability is set, the EGL lock is not taken around calls
>>>> ++ to WSEGL functions. The WSEGL module is responsible for performing
>>>> ++ its own locking in this case. */
>>>> ++ WSEGL_CAP_UNLOCKED = 5, /* System default value = 0 */
>>>> ++
>>>> + } WSEGLCapsType;
>>>> +
>>>> + /*
>>>> +@@ -97,6 +111,19 @@ typedef struct WSEGLCaps_TAG
>>>> + #define WSEGL_DRAWABLE_WINDOW 0x1
>>>> + #define WSEGL_DRAWABLE_PIXMAP 0x2
>>>> +
>>>> ++/*
>>>> ++// YUV format flags and sync
>>>> ++*/
>>>> ++#define WSEGL_FLAGS_YUV_CONFORMANT_RANGE (0 <<
>>> 0)
>>>> ++#define WSEGL_FLAGS_YUV_FULL_RANGE (1 <<
>>> 0)
>>>> ++#define WSEGL_FLAGS_YUV_BT601 (0 <<
>>> 1)
>>>> ++#define WSEGL_FLAGS_YUV_BT709 (1 <<
>>> 1)
>>>> ++#define WSEGL_FLAGS_EGLIMAGE_COMPOSITION_SYNC (1 << 2)
>>>> ++
>>>> ++/*
>>>> ++// Maximum number of optional PowerVR Services 4 SYNCINFO objects */
>>>> ++#define WSEGL_MAX_SRC_SYNCS 32
>>>> +
>>>> + /*
>>>> + // Pixel format of display/drawable
>>>> +@@ -110,6 +137,16 @@ typedef enum WSEGLPixelFormat_TAG
>>>> + WSEGL_PIXELFORMAT_ARGB1555 = 3,
>>>> + WSEGL_PIXELFORMAT_ABGR8888 = 4,
>>>> + WSEGL_PIXELFORMAT_XBGR8888 = 5,
>>>> ++ WSEGL_PIXELFORMAT_NV12 = 6,
>>>> ++ WSEGL_PIXELFORMAT_YUYV = 7,
>>>> ++ WSEGL_PIXELFORMAT_YV12 = 8,
>>>> ++ WSEGL_PIXELFORMAT_XRGB8888 = 9,
>>>> ++ WSEGL_PIXELFORMAT_UYVY = 10,
>>>> ++ WSEGL_PIXELFORMAT_NV12_4KALIGN = 11,
>>>> ++ WSEGL_PIXELFORMAT_NV21_4KALIGN = 12,
>>>> ++ WSEGL_PIXELFORMAT_R8 = 13,
>>>> ++ WSEGL_PIXELFORMAT_R8G8 = 14,
>>>> ++ WSEGL_PIXELFORMAT_NV21 = 15,
>>>> +
>>>> + /* These are compatibility names only; new WSEGL
>>>> + * modules should not use them.
>>>> +@@ -138,31 +175,33 @@ typedef struct WSEGLConfig_TAG {
>>>> + /*
>>>> + // Type of drawables this configuration applies to -
>>>> +- // OR'd values of drawable types.
>>>> ++ // OR'd values of drawable types.
>>>> + */
>>>> +- unsigned long ui32DrawableType;
>>>> ++ unsigned long ui32DrawableType;
>>>> +
>>>> + /* Pixel format */
>>>> +- WSEGLPixelFormat ePixelFormat;
>>>> ++ WSEGLPixelFormat ePixelFormat;
>>>> +
>>>> + /* Native Renderable - set to WSEGL_TRUE if native renderable */
>>>> +- unsigned long ulNativeRenderable;
>>>> ++ unsigned long ulNativeRenderable;
>>>> +
>>>> + /* FrameBuffer Level Parameter */
>>>> +- unsigned long ulFrameBufferLevel;
>>>> ++ unsigned long ulFrameBufferLevel;
>>>> +
>>>> + /* Native Visual ID */
>>>> +- unsigned long ulNativeVisualID;
>>>> ++ unsigned long ulNativeVisualID;
>>>> +
>>>> + /* Native Visual */
>>>> +- void *hNativeVisual;
>>>> ++ unsigned long ulNativeVisualType;
>>>> +
>>>> + /* Transparent Type */
>>>> +- WSEGLTransparentType eTransparentType;
>>>> ++ WSEGLTransparentType eTransparentType;
>>>> +
>>>> + /* Transparent Color - only used if transparent type is COLOR_KEY */
>>>> +- unsigned long ulTransparentColor; /* packed as 0x00RRGGBB */
>>>> ++ unsigned long ulTransparentColor; /* packed as
>>> 0x00RRGGBB */
>>>> +
>>>> ++ /* Framebuffer Target - set to WSEGL_TRUE if config compatible with
>>> framebuffer */
>>>> ++ unsigned long ulFramebufferTarget;
>>>> +
>>>> + } WSEGLConfig;
>>>> +
>>>> +@@ -180,13 +219,14 @@ typedef enum WSEGLError_TAG
>>>> + WSEGL_BAD_DRAWABLE = 6,
>>>> + WSEGL_BAD_MATCH = 7,
>>>> + WSEGL_OUT_OF_MEMORY = 8,
>>>> ++ WSEGL_RETRY = 9,
>>>> +
>>>> + /* These are compatibility names only; new WSEGL
>>>> + * modules should not use them.
>>>> + */
>>>> + WSEGL_BAD_CONFIG = WSEGL_BAD_MATCH,
>>>> +
>>>> +-} WSEGLError;
>>>> ++} WSEGLError;
>>>> +
>>>> + /*
>>>> + // Drawable orientation (in degrees anti-clockwise) @@ -198,7 +238,7
>>>> +@@ typedef enum WSEGLRotationAngle_TAG
>>>> + WSEGL_ROTATE_180 = 2,
>>>> + WSEGL_ROTATE_270 = 3
>>>> +
>>>> +-} WSEGLRotationAngle;
>>>> ++} WSEGLRotationAngle;
>>>> +
>>>> + /*
>>>> + // Drawable information required by OpenGL-ES driver @@ -206,26
>>>> ++246,46 @@ typedef enum WSEGLRotationAngle_TAG typedef struct
>>>> +WSEGLDrawableParams_TAG {
>>>> + /* Width in pixels of the drawable */
>>>> +- unsigned long ui32Width;
>>>> ++ unsigned long ui32Width;
>>>> +
>>>> + /* Height in pixels of the drawable */
>>>> +- unsigned long ui32Height;
>>>> ++ unsigned long ui32Height;
>>>> +
>>>> + /* Stride in pixels of the drawable */
>>>> +- unsigned long ui32Stride;
>>>> ++ unsigned long ui32Stride;
>>>> +
>>>> + /* Pixel format of the drawable */
>>>> +- WSEGLPixelFormat ePixelFormat;
>>>> ++ WSEGLPixelFormat ePixelFormat;
>>>> +
>>>> + /* User space cpu virtual address of the drawable */
>>>> +- void *pvLinearAddress;
>>>> ++ void *pvLinearAddress;
>>>> +
>>>> + /* HW address of the drawable */
>>>> +- unsigned long ui32HWAddress;
>>>> ++ unsigned long ui32HWAddress;
>>>> ++
>>>> ++ /* Override display's HW_SYNC mode */
>>>> ++ unsigned long bWaitForRender;
>>>> +
>>>> +- /* Private data for the drawable */
>>>> +- void *hPrivateData;
>>>> ++ /* Flags */
>>>> ++ unsigned long ulFlags;
>>>> +
>>>> ++ /* Rotation angle of drawable (presently source only) */
>>>> ++ WSEGLRotationAngle eRotationAngle;
>>>> ++
>>>> ++ /*
>>>> ++ // Optional PowerVR Services 4 MEMINFO pointer. This may be used for
>>>> ++ // internal (implicit) synchronization purposes, and by PDUMP. It should
>>>> ++ // refer to the same object as the other fields in this structure.
>>>> ++ */
>>>> ++ void *hMemInfo;
>>>> ++
>>>> ++ /*
>>>> ++ // Optional PowerVR Services 4 SYNCINFO pointers to sent down as
>>> source
>>>> ++ // surface (texture) dependencies of a render. If these are provided
>>>> ++ // when not applicable, they will be ignored. If a sync is not needed,
>>>> ++ // it should be passed as NULL.
>>>> ++ */
>>>> ++ void
>>> *ahSyncInfo[WSEGL_MAX_SRC_SYNCS];
>>>> +
>>>> + } WSEGLDrawableParams;
>>>> +
>>>> +@@ -262,12 +322,18 @@ typedef struct WSEGL_FunctionTable_TAG
>>>> +
>>>> + WSEGLError (*pfnWSEGL_CopyFromPBuffer)(void *, unsigned long,
>>>> + unsigned long, unsigned long, WSEGLPixelFormat, NativePixmapType);
>>>> +
>>>> +- WSEGLError
>>> (*pfnWSEGL_GetDrawableParameters)(WSEGLDrawableHandle,
>>> WSEGLDrawableParams *, WSEGLDrawableParams *);
>>>> ++ WSEGLError
>>> (*pfnWSEGL_GetDrawableParameters)(WSEGLDrawableHandle,
>>>> ++WSEGLDrawableParams *, WSEGLDrawableParams *, unsigned long);
>>>> +
>>>> + WSEGLError (*pfnWSEGL_ConnectDrawable)(WSEGLDrawableHandle);
>>>> +
>>>> + WSEGLError
>>> (*pfnWSEGL_DisconnectDrawable)(WSEGLDrawableHandle);
>>>> +
>>>> ++ WSEGLError (*pfnWSEGL_FlagStartFrame)(void);
>>>> ++
>>>> ++
>>>> ++#if defined (__QNXNTO__)
>>>> ++ WSEGLError
>>>> ++(*pfnWSEGL_WaitForDrawableRenderBuffer)(WSEGLDrawableHandle);
>>>> ++#endif
>>>> +
>>>> + } WSEGL_FunctionTable;
>>>> +
>>>> +@@ -276,7 +342,7 @@ WSEGL_IMPORT const WSEGL_FunctionTable
>>>> +*WSEGL_GetFunctionTablePointer(void);
>>>> +
>>>> + #ifdef __cplusplus
>>>> + }
>>>> +-#endif
>>>> ++#endif
>>>> +
>>>> + #endif /* __WSEGL_H__ */
>>>> +
>>>> +diff --git a/src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwswsegl.c
>>>> +b/src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwswsegl.c
>>>> +index d42e59f..24e5b0d 100644
>>>> +--- a/src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwswsegl.c
>>>> ++++ b/src/plugins/gfxdrivers/powervr/QWSWSEGL/pvrqwswsegl.c
>>>> +@@ -336,12 +336,17 @@ static WSEGLError wseglCopyFromPBuffer
>>>> + /* Return the parameters of a drawable that are needed by the EGL
>>>> +layer */ static WSEGLError wseglGetDrawableParameters
>>>> + (WSEGLDrawableHandle _drawable, WSEGLDrawableParams
>>> *sourceParams,
>>>> +- WSEGLDrawableParams *renderParams)
>>>> ++ WSEGLDrawableParams *renderParams,unsigned long ulPlaneOffset)
>>>> + {
>>>> + PvrQwsDrawable *drawable = (PvrQwsDrawable *)_drawable;
>>>> + PVR2DMEMINFO *source, *render;
>>>> + WSEGLPixelFormat pixelFormat;
>>>> +
>>>> ++ WSEGL_UNREFERENCED_PARAMETER(ulPlaneOffset);
>>>> ++
>>>> ++ memset(renderParams, 0, sizeof(*renderParams));
>>>> ++ memset(sourceParams, 0, sizeof(*sourceParams));
>>>> ++
>>>> + if (!pvrQwsGetBuffers(drawable, &source, &render))
>>>> + return WSEGL_BAD_DRAWABLE;
>>>> +
>>>> +@@ -366,7 +371,7 @@ static WSEGLError wseglGetDrawableParameters
>>>> + sourceParams->ePixelFormat = pixelFormat;
>>>> + sourceParams->pvLinearAddress = source->pBase;
>>>> + sourceParams->ui32HWAddress = source->ui32DevAddr;
>>>> +- sourceParams->hPrivateData = source->hPrivateData;
>>>> ++ sourceParams->hMemInfo = source->hPrivateData;
>>>> +
>>>> + renderParams->ui32Width = drawable->rect.width;
>>>> + renderParams->ui32Height = drawable->rect.height; @@ -374,7
>>>> ++379,7 @@ static WSEGLError wseglGetDrawableParameters
>>>> + renderParams->ePixelFormat = pixelFormat;
>>>> + renderParams->pvLinearAddress = render->pBase;
>>>> + renderParams->ui32HWAddress = render->ui32DevAddr;
>>>> +- renderParams->hPrivateData = render->hPrivateData;
>>>> ++ renderParams->hMemInfo = render->hPrivateData;
>>>> +
>>>> + return WSEGL_SUCCESS;
>>>> + }
>>>> +@@ -393,6 +398,20 @@ static WSEGLError
>>> wseglDisconnectDrawable(WSEGLDrawableHandle hDrawable)
>>>> + return WSEGL_SUCCESS;
>>>> + }
>>>> +
>>> ++/**********************************************************
>>> *************************
>>>> ++ Function Name : WSEGL_FlagStartFrame
>>>> ++ Inputs : hDrawable
>>>> ++ Outputs : None
>>>> ++ Returns : Error code
>>>> ++ Description : Indicates that there have been rendering commands
>>> submitted
>>>> ++ by a client driver
>>> ++***********************************************************
>>> *********
>>>> ++****************/ static WSEGLError wseglFlagStartFrame(void) {
>>>> ++ return WSEGL_SUCCESS;
>>>> ++}
>>>> ++
>>>> ++
>>>> + static WSEGL_FunctionTable const wseglFunctions = {
>>>> + WSEGL_VERSION,
>>>> + wseglIsDisplayValid,
>>>> +@@ -408,7 +427,8 @@ static WSEGL_FunctionTable const wseglFunctions =
>>> {
>>>> + wseglCopyFromPBuffer,
>>>> + wseglGetDrawableParameters,
>>>> + wseglConnectDrawable,
>>>> +- wseglDisconnectDrawable
>>>> ++ wseglDisconnectDrawable,
>>>> ++ wseglFlagStartFrame,
>>>> + };
>>>> +
>>>> + /* Return the table of WSEGL functions to the EGL implementation */
>>>> +--
>>>> +1.7.0.4
>>>> +
>>>> diff --git
>>>> a/meta-arago-extras/recipes-qt/qt4/qt4-embedded-gles_4.8.4.bb
>>>> b/meta-arago-extras/recipes-qt/qt4/qt4-embedded-gles_4.8.4.bb
>>>> index fa2d31c..460de67 100644
>>>> --- a/meta-arago-extras/recipes-qt/qt4/qt4-embedded-gles_4.8.4.bb
>>>> +++ b/meta-arago-extras/recipes-qt/qt4/qt4-embedded-gles_4.8.4.bb
>>>> @@ -1,7 +1,7 @@
>>>> require ${COREBASE}/meta/recipes-qt/qt4/qt4-${PV}.inc
>>>> require ${COREBASE}/meta/recipes-qt/qt4/qt4-embedded.inc
>>>>
>>>> -PR = "${INC_PR}.2"
>>>> +PR = "${INC_PR}.3"
>>>>
>>>> FILESEXTRAPATHS_append :=
>>> "${THISDIR}/${PN}:${COREBASE}/meta/recipes-qt/qt4/qt4-
>>> ${PV}:${COREBASE}/meta/recipes-qt/qt4/files:"
>>>>
>>>> @@ -12,6 +12,8 @@ SRC_URI += " \
>>>> file://002_pvrqwswsegl.c.patch \
>>>> file://cursor-hack.diff \
>>>> "
>>>> +SRC_URI_append_ti33x = " file://0001-Qt-4.x-v2-Changes-for-integrating-
>>> with-TI-graphics-S.patch"
>>>> +SRC_URI_append_ti43x = " file://0001-Qt-4.x-v2-Changes-for-integrating-
>>> with-TI-graphics-S.patch"
>>>>
>>>> QT_CONFIG_FLAGS_append_armv6 = " -no-neon "
>>>>
>>>> --
>>>> 1.7.0.4
>>>>
>>>> _______________________________________________
>>>> meta-arago mailing list
>>>> meta-arago@arago-project.org
>>>> http://arago-project.org/cgi-bin/mailman/listinfo/meta-arago
>> _______________________________________________
>> meta-arago mailing list
>> meta-arago@arago-project.org
>> http://arago-project.org/cgi-bin/mailman/listinfo/meta-arago
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 5/6] mount-sdcard: Update to use new udev entry
2013-11-22 15:45 ` [PATCH 5/6] mount-sdcard: Update to use new udev entry Franklin S. Cooper Jr
@ 2013-11-22 20:00 ` Tom Rini
2013-11-22 22:27 ` Cooper Jr., Franklin
0 siblings, 1 reply; 18+ messages in thread
From: Tom Rini @ 2013-11-22 20:00 UTC (permalink / raw)
To: Franklin S. Cooper Jr; +Cc: meta-arago
On Fri, Nov 22, 2013 at 09:45:20AM -0600, Franklin S. Cooper Jr wrote:
> * Patch 1c1b695310309ec3526f1b6b415c5e1b74a567e1 added a udev entry to
> automatically mount sd card partition.
> * For some reason that udev entry isn't automatically ran.
> * As a workaround manually trigger udev to run twice (not sure why thats needed)
> for the udev rule to run correctly.
>
> Signed-off-by: Franklin S. Cooper Jr <fcooper@ti.com>
This issn't right. Have you added debugging steps to the mount.sh script?
We're saying, with this change "lets trigger all block devices 3 times",
and on the 3rd attempt we finally do mount things. I've seen some
partitions NOT be auto-mounted due to being dirty and needing an fsck
prior to mounting them. If we need to do this type of change at the end
as a "we can't figure out the root cause, but we need to release", OK.
But I don't think we're there yet. Thanks!
--
Tom
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 5/6] mount-sdcard: Update to use new udev entry
2013-11-22 20:00 ` Tom Rini
@ 2013-11-22 22:27 ` Cooper Jr., Franklin
2013-11-23 2:15 ` Tom Rini
0 siblings, 1 reply; 18+ messages in thread
From: Cooper Jr., Franklin @ 2013-11-22 22:27 UTC (permalink / raw)
To: Rini, Tom; +Cc: meta-arago@arago-project.org
> -----Original Message-----
> From: Tom Rini [mailto:tom.rini@gmail.com] On Behalf Of Rini, Tom
> Sent: Friday, November 22, 2013 2:00 PM
> To: Cooper Jr., Franklin
> Cc: meta-arago@arago-project.org
> Subject: Re: [meta-arago] [PATCH 5/6] mount-sdcard: Update to use new udev
> entry
>
> On Fri, Nov 22, 2013 at 09:45:20AM -0600, Franklin S. Cooper Jr wrote:
>
> > * Patch 1c1b695310309ec3526f1b6b415c5e1b74a567e1 added a udev
> entry to
> > automatically mount sd card partition.
> > * For some reason that udev entry isn't automatically ran.
> > * As a workaround manually trigger udev to run twice (not sure why thats
> needed)
> > for the udev rule to run correctly.
> >
> > Signed-off-by: Franklin S. Cooper Jr <fcooper@ti.com>
>
> This issn't right. Have you added debugging steps to the mount.sh script?
> We're saying, with this change "lets trigger all block devices 3 times", and on the
> 3rd attempt we finally do mount things. I've seen some partitions NOT be auto-
> mounted due to being dirty and needing an fsck prior to mounting them. If we
> need to do this type of change at the end as a "we can't figure out the root
> cause, but we need to release", OK.
> But I don't think we're there yet. Thanks!
[Franklin] Just to give an update it looks like fsck is required to be ran to fix this problem however it wouldn't be safe to run fsck and let it auto fix the problem since that could cause potential issues. So if fsck is really the proper solution then I'm not sure that would work for something that needs to automatically work at bootup.
>
> --
> Tom
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 5/6] mount-sdcard: Update to use new udev entry
2013-11-22 22:27 ` Cooper Jr., Franklin
@ 2013-11-23 2:15 ` Tom Rini
2013-12-02 21:31 ` Denys Dmytriyenko
0 siblings, 1 reply; 18+ messages in thread
From: Tom Rini @ 2013-11-23 2:15 UTC (permalink / raw)
To: Cooper Jr., Franklin; +Cc: meta-arago@arago-project.org
On Fri, Nov 22, 2013 at 10:27:06PM +0000, Cooper Jr., Franklin wrote:
>
>
> > -----Original Message-----
> > From: Tom Rini [mailto:tom.rini@gmail.com] On Behalf Of Rini, Tom
> > Sent: Friday, November 22, 2013 2:00 PM
> > To: Cooper Jr., Franklin
> > Cc: meta-arago@arago-project.org
> > Subject: Re: [meta-arago] [PATCH 5/6] mount-sdcard: Update to use new udev
> > entry
> >
> > On Fri, Nov 22, 2013 at 09:45:20AM -0600, Franklin S. Cooper Jr wrote:
> >
> > > * Patch 1c1b695310309ec3526f1b6b415c5e1b74a567e1 added a udev
> > entry to
> > > automatically mount sd card partition.
> > > * For some reason that udev entry isn't automatically ran.
> > > * As a workaround manually trigger udev to run twice (not sure why thats
> > needed)
> > > for the udev rule to run correctly.
> > >
> > > Signed-off-by: Franklin S. Cooper Jr <fcooper@ti.com>
> >
> > This issn't right. Have you added debugging steps to the mount.sh script?
> > We're saying, with this change "lets trigger all block devices 3 times", and on the
> > 3rd attempt we finally do mount things. I've seen some partitions NOT be auto-
> > mounted due to being dirty and needing an fsck prior to mounting them. If we
> > need to do this type of change at the end as a "we can't figure out the root
> > cause, but we need to release", OK.
> > But I don't think we're there yet. Thanks!
> [Franklin] Just to give an update it looks like fsck is required to be ran to fix this problem however it wouldn't be safe to run fsck and let it auto fix the problem since that could cause potential issues. So if fsck is really the proper solution then I'm not sure that would work for something that needs to automatically work at bootup.
Well, dirty cards shouldn't be auto-mounted. Or there's some option to
mount we should be passing to say "no, it's OK".
--
Tom
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 5/6] mount-sdcard: Update to use new udev entry
2013-11-23 2:15 ` Tom Rini
@ 2013-12-02 21:31 ` Denys Dmytriyenko
2013-12-02 23:23 ` Cooper Jr., Franklin
0 siblings, 1 reply; 18+ messages in thread
From: Denys Dmytriyenko @ 2013-12-02 21:31 UTC (permalink / raw)
To: Tom Rini; +Cc: meta-arago@arago-project.org, Cooper Jr., Franklin
On Fri, Nov 22, 2013 at 09:15:45PM -0500, Tom Rini wrote:
> On Fri, Nov 22, 2013 at 10:27:06PM +0000, Cooper Jr., Franklin wrote:
> >
> >
> > > -----Original Message-----
> > > From: Tom Rini [mailto:tom.rini@gmail.com] On Behalf Of Rini, Tom
> > > Sent: Friday, November 22, 2013 2:00 PM
> > > To: Cooper Jr., Franklin
> > > Cc: meta-arago@arago-project.org
> > > Subject: Re: [meta-arago] [PATCH 5/6] mount-sdcard: Update to use new udev
> > > entry
> > >
> > > On Fri, Nov 22, 2013 at 09:45:20AM -0600, Franklin S. Cooper Jr wrote:
> > >
> > > > * Patch 1c1b695310309ec3526f1b6b415c5e1b74a567e1 added a udev
> > > entry to
> > > > automatically mount sd card partition.
> > > > * For some reason that udev entry isn't automatically ran.
> > > > * As a workaround manually trigger udev to run twice (not sure why thats
> > > needed)
> > > > for the udev rule to run correctly.
> > > >
> > > > Signed-off-by: Franklin S. Cooper Jr <fcooper@ti.com>
> > >
> > > This issn't right. Have you added debugging steps to the mount.sh script?
> > > We're saying, with this change "lets trigger all block devices 3 times", and on the
> > > 3rd attempt we finally do mount things. I've seen some partitions NOT be auto-
> > > mounted due to being dirty and needing an fsck prior to mounting them. If we
> > > need to do this type of change at the end as a "we can't figure out the root
> > > cause, but we need to release", OK.
> > > But I don't think we're there yet. Thanks!
> > [Franklin] Just to give an update it looks like fsck is required to be ran
> > to fix this problem however it wouldn't be safe to run fsck and let it
> > auto fix the problem since that could cause potential issues. So if fsck
> > is really the proper solution then I'm not sure that would work for
> > something that needs to automatically work at bootup.
>
> Well, dirty cards shouldn't be auto-mounted. Or there's some option to
> mount we should be passing to say "no, it's OK".
So, what is the agreement here? I don't think forcing fsck for mounting a card
is a good idea. I agree with Tom that if the card is dirty (could be corrupted),
then user intervention is required anyway.
I'm planning on skipping these 2 patches, if nobody objects.
--
Denys
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 5/6] mount-sdcard: Update to use new udev entry
2013-12-02 21:31 ` Denys Dmytriyenko
@ 2013-12-02 23:23 ` Cooper Jr., Franklin
2013-12-03 0:20 ` Tom Rini
0 siblings, 1 reply; 18+ messages in thread
From: Cooper Jr., Franklin @ 2013-12-02 23:23 UTC (permalink / raw)
To: Dmytriyenko, Denys; +Cc: Rini, Tom, meta-arago@arago-project.org
> On Dec 2, 2013, at 3:31 PM, "Dmytriyenko, Denys" <denys@ti.com> wrote:
>
>> On Fri, Nov 22, 2013 at 09:15:45PM -0500, Tom Rini wrote:
>>> On Fri, Nov 22, 2013 at 10:27:06PM +0000, Cooper Jr., Franklin wrote:
>>>
>>>
>>>> -----Original Message-----
>>>> From: Tom Rini [mailto:tom.rini@gmail.com] On Behalf Of Rini, Tom
>>>> Sent: Friday, November 22, 2013 2:00 PM
>>>> To: Cooper Jr., Franklin
>>>> Cc: meta-arago@arago-project.org
>>>> Subject: Re: [meta-arago] [PATCH 5/6] mount-sdcard: Update to use new udev
>>>> entry
>>>>
>>>>> On Fri, Nov 22, 2013 at 09:45:20AM -0600, Franklin S. Cooper Jr wrote:
>>>>>
>>>>> * Patch 1c1b695310309ec3526f1b6b415c5e1b74a567e1 added a udev
>>>> entry to
>>>>> automatically mount sd card partition.
>>>>> * For some reason that udev entry isn't automatically ran.
>>>>> * As a workaround manually trigger udev to run twice (not sure why thats
>>>> needed)
>>>>> for the udev rule to run correctly.
>>>>>
>>>>> Signed-off-by: Franklin S. Cooper Jr <fcooper@ti.com>
>>>>
>>>> This issn't right. Have you added debugging steps to the mount.sh script?
>>>> We're saying, with this change "lets trigger all block devices 3 times", and on the
>>>> 3rd attempt we finally do mount things. I've seen some partitions NOT be auto-
>>>> mounted due to being dirty and needing an fsck prior to mounting them. If we
>>>> need to do this type of change at the end as a "we can't figure out the root
>>>> cause, but we need to release", OK.
>>>> But I don't think we're there yet. Thanks!
>
>>> [Franklin] Just to give an update it looks like fsck is required to be ran
>>> to fix this problem however it wouldn't be safe to run fsck and let it
>>> auto fix the problem since that could cause potential issues. So if fsck
>>> is really the proper solution then I'm not sure that would work for
>>> something that needs to automatically work at bootup.
>>
>> Well, dirty cards shouldn't be auto-mounted. Or there's some option to
>> mount we should be passing to say "no, it's OK".
>
> So, what is the agreement here? I don't think forcing fsck for mounting a card
> is a good idea. I agree with Tom that if the card is dirty (could be corrupted),
> then user intervention is required anyway.
>
> I'm planning on skipping these 2 patches, if nobody objects.
We need to figure this out but feel free to skip the patches.
>
> --
> Denys
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 5/6] mount-sdcard: Update to use new udev entry
2013-12-02 23:23 ` Cooper Jr., Franklin
@ 2013-12-03 0:20 ` Tom Rini
2013-12-03 1:20 ` Cooper Jr., Franklin
0 siblings, 1 reply; 18+ messages in thread
From: Tom Rini @ 2013-12-03 0:20 UTC (permalink / raw)
To: Cooper Jr., Franklin; +Cc: meta-arago@arago-project.org
On 12/02/2013 06:23 PM, Cooper Jr., Franklin wrote:
>
>
>> On Dec 2, 2013, at 3:31 PM, "Dmytriyenko, Denys" <denys@ti.com> wrote:
>>
>>> On Fri, Nov 22, 2013 at 09:15:45PM -0500, Tom Rini wrote:
>>>> On Fri, Nov 22, 2013 at 10:27:06PM +0000, Cooper Jr., Franklin wrote:
>>>>
>>>>
>>>>> -----Original Message-----
>>>>> From: Tom Rini [mailto:tom.rini@gmail.com] On Behalf Of Rini, Tom
>>>>> Sent: Friday, November 22, 2013 2:00 PM
>>>>> To: Cooper Jr., Franklin
>>>>> Cc: meta-arago@arago-project.org
>>>>> Subject: Re: [meta-arago] [PATCH 5/6] mount-sdcard: Update to use new udev
>>>>> entry
>>>>>
>>>>>> On Fri, Nov 22, 2013 at 09:45:20AM -0600, Franklin S. Cooper Jr wrote:
>>>>>>
>>>>>> * Patch 1c1b695310309ec3526f1b6b415c5e1b74a567e1 added a udev
>>>>> entry to
>>>>>> automatically mount sd card partition.
>>>>>> * For some reason that udev entry isn't automatically ran.
>>>>>> * As a workaround manually trigger udev to run twice (not sure why thats
>>>>> needed)
>>>>>> for the udev rule to run correctly.
>>>>>>
>>>>>> Signed-off-by: Franklin S. Cooper Jr <fcooper@ti.com>
>>>>>
>>>>> This issn't right. Have you added debugging steps to the mount.sh script?
>>>>> We're saying, with this change "lets trigger all block devices 3 times", and on the
>>>>> 3rd attempt we finally do mount things. I've seen some partitions NOT be auto-
>>>>> mounted due to being dirty and needing an fsck prior to mounting them. If we
>>>>> need to do this type of change at the end as a "we can't figure out the root
>>>>> cause, but we need to release", OK.
>>>>> But I don't think we're there yet. Thanks!
>>
>>>> [Franklin] Just to give an update it looks like fsck is required to be ran
>>>> to fix this problem however it wouldn't be safe to run fsck and let it
>>>> auto fix the problem since that could cause potential issues. So if fsck
>>>> is really the proper solution then I'm not sure that would work for
>>>> something that needs to automatically work at bootup.
>>>
>>> Well, dirty cards shouldn't be auto-mounted. Or there's some option to
>>> mount we should be passing to say "no, it's OK".
>>
>> So, what is the agreement here? I don't think forcing fsck for mounting a card
>> is a good idea. I agree with Tom that if the card is dirty (could be corrupted),
>> then user intervention is required anyway.
>>
>> I'm planning on skipping these 2 patches, if nobody objects.
> We need to figure this out but feel free to skip the patches.
Well, lets step back. Did we confirm that the problem is that it's
dirty (in which case, trying to mount it N times should give N failures,
not "3rd time is the charm!") or just that fsck'ing one particular card
fixed that part of the card that wasn't mounting (but the rest of it
was?) or what?
--
Tom
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 5/6] mount-sdcard: Update to use new udev entry
2013-12-03 0:20 ` Tom Rini
@ 2013-12-03 1:20 ` Cooper Jr., Franklin
2013-12-03 12:43 ` Tom Rini
0 siblings, 1 reply; 18+ messages in thread
From: Cooper Jr., Franklin @ 2013-12-03 1:20 UTC (permalink / raw)
To: Rini, Tom; +Cc: meta-arago@arago-project.org
> -----Original Message-----
> From: Rini, Tom
> Sent: Monday, December 02, 2013 6:20 PM
> To: Cooper Jr., Franklin
> Cc: Dmytriyenko, Denys; meta-arago@arago-project.org
> Subject: Re: [meta-arago] [PATCH 5/6] mount-sdcard: Update to use new udev
> entry
>
> On 12/02/2013 06:23 PM, Cooper Jr., Franklin wrote:
> >
> >
> >> On Dec 2, 2013, at 3:31 PM, "Dmytriyenko, Denys" <denys@ti.com> wrote:
> >>
> >>> On Fri, Nov 22, 2013 at 09:15:45PM -0500, Tom Rini wrote:
> >>>> On Fri, Nov 22, 2013 at 10:27:06PM +0000, Cooper Jr., Franklin wrote:
> >>>>
> >>>>
> >>>>> -----Original Message-----
> >>>>> From: Tom Rini [mailto:tom.rini@gmail.com] On Behalf Of Rini, Tom
> >>>>> Sent: Friday, November 22, 2013 2:00 PM
> >>>>> To: Cooper Jr., Franklin
> >>>>> Cc: meta-arago@arago-project.org
> >>>>> Subject: Re: [meta-arago] [PATCH 5/6] mount-sdcard: Update to use
> >>>>> new udev entry
> >>>>>
> >>>>>> On Fri, Nov 22, 2013 at 09:45:20AM -0600, Franklin S. Cooper Jr
> wrote:
> >>>>>>
> >>>>>> * Patch 1c1b695310309ec3526f1b6b415c5e1b74a567e1 added a
> udev
> >>>>> entry to
> >>>>>> automatically mount sd card partition.
> >>>>>> * For some reason that udev entry isn't automatically ran.
> >>>>>> * As a workaround manually trigger udev to run twice (not sure
> >>>>>> why thats
> >>>>> needed)
> >>>>>> for the udev rule to run correctly.
> >>>>>>
> >>>>>> Signed-off-by: Franklin S. Cooper Jr <fcooper@ti.com>
> >>>>>
> >>>>> This issn't right. Have you added debugging steps to the mount.sh script?
> >>>>> We're saying, with this change "lets trigger all block devices 3
> >>>>> times", and on the 3rd attempt we finally do mount things. I've
> >>>>> seen some partitions NOT be auto- mounted due to being dirty and
> >>>>> needing an fsck prior to mounting them. If we need to do this
> >>>>> type of change at the end as a "we can't figure out the root cause, but we
> need to release", OK.
> >>>>> But I don't think we're there yet. Thanks!
> >>
> >>>> [Franklin] Just to give an update it looks like fsck is required to
> >>>> be ran to fix this problem however it wouldn't be safe to run fsck
> >>>> and let it auto fix the problem since that could cause potential
> >>>> issues. So if fsck is really the proper solution then I'm not sure
> >>>> that would work for something that needs to automatically work at
> bootup.
> >>>
> >>> Well, dirty cards shouldn't be auto-mounted. Or there's some option
> >>> to mount we should be passing to say "no, it's OK".
> >>
> >> So, what is the agreement here? I don't think forcing fsck for
> >> mounting a card is a good idea. I agree with Tom that if the card is
> >> dirty (could be corrupted), then user intervention is required anyway.
> >>
> >> I'm planning on skipping these 2 patches, if nobody objects.
> > We need to figure this out but feel free to skip the patches.
>
> Well, lets step back. Did we confirm that the problem is that it's dirty (in which
> case, trying to mount it N times should give N failures, not "3rd time is the
> charm!") or just that fsck'ing one particular card fixed that part of the card that
> wasn't mounting (but the rest of it
> was?) or what?
[Franklin] I'm not sure why by forcing it to run a third time it ran without a problem when the card is dirty. However, I did determine it was an issue with the card being dirty and that is what was preventing it from mounting automatically at boot up. Running fsck revealed there were indeed problems and after fixing those issues and trying it again without my extra script the partitions successfully mounted the first time. Although the rootfs partition doesn't mount automatically but that is probably expected.
>
> --
> Tom
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PATCH 5/6] mount-sdcard: Update to use new udev entry
2013-12-03 1:20 ` Cooper Jr., Franklin
@ 2013-12-03 12:43 ` Tom Rini
0 siblings, 0 replies; 18+ messages in thread
From: Tom Rini @ 2013-12-03 12:43 UTC (permalink / raw)
To: Cooper Jr., Franklin; +Cc: meta-arago@arago-project.org
On 12/02/2013 08:20 PM, Cooper Jr., Franklin wrote:
>
>
>> -----Original Message-----
>> From: Rini, Tom
>> Sent: Monday, December 02, 2013 6:20 PM
>> To: Cooper Jr., Franklin
>> Cc: Dmytriyenko, Denys; meta-arago@arago-project.org
>> Subject: Re: [meta-arago] [PATCH 5/6] mount-sdcard: Update to use new udev
>> entry
>>
>> On 12/02/2013 06:23 PM, Cooper Jr., Franklin wrote:
>>>
>>>
>>>> On Dec 2, 2013, at 3:31 PM, "Dmytriyenko, Denys" <denys@ti.com> wrote:
>>>>
>>>>> On Fri, Nov 22, 2013 at 09:15:45PM -0500, Tom Rini wrote:
>>>>>> On Fri, Nov 22, 2013 at 10:27:06PM +0000, Cooper Jr., Franklin wrote:
>>>>>>
>>>>>>
>>>>>>> -----Original Message-----
>>>>>>> From: Tom Rini [mailto:tom.rini@gmail.com] On Behalf Of Rini, Tom
>>>>>>> Sent: Friday, November 22, 2013 2:00 PM
>>>>>>> To: Cooper Jr., Franklin
>>>>>>> Cc: meta-arago@arago-project.org
>>>>>>> Subject: Re: [meta-arago] [PATCH 5/6] mount-sdcard: Update to use
>>>>>>> new udev entry
>>>>>>>
>>>>>>>> On Fri, Nov 22, 2013 at 09:45:20AM -0600, Franklin S. Cooper Jr
>> wrote:
>>>>>>>>
>>>>>>>> * Patch 1c1b695310309ec3526f1b6b415c5e1b74a567e1 added a
>> udev
>>>>>>> entry to
>>>>>>>> automatically mount sd card partition.
>>>>>>>> * For some reason that udev entry isn't automatically ran.
>>>>>>>> * As a workaround manually trigger udev to run twice (not sure
>>>>>>>> why thats
>>>>>>> needed)
>>>>>>>> for the udev rule to run correctly.
>>>>>>>>
>>>>>>>> Signed-off-by: Franklin S. Cooper Jr <fcooper@ti.com>
>>>>>>>
>>>>>>> This issn't right. Have you added debugging steps to the mount.sh script?
>>>>>>> We're saying, with this change "lets trigger all block devices 3
>>>>>>> times", and on the 3rd attempt we finally do mount things. I've
>>>>>>> seen some partitions NOT be auto- mounted due to being dirty and
>>>>>>> needing an fsck prior to mounting them. If we need to do this
>>>>>>> type of change at the end as a "we can't figure out the root cause, but we
>> need to release", OK.
>>>>>>> But I don't think we're there yet. Thanks!
>>>>
>>>>>> [Franklin] Just to give an update it looks like fsck is required to
>>>>>> be ran to fix this problem however it wouldn't be safe to run fsck
>>>>>> and let it auto fix the problem since that could cause potential
>>>>>> issues. So if fsck is really the proper solution then I'm not sure
>>>>>> that would work for something that needs to automatically work at
>> bootup.
>>>>>
>>>>> Well, dirty cards shouldn't be auto-mounted. Or there's some option
>>>>> to mount we should be passing to say "no, it's OK".
>>>>
>>>> So, what is the agreement here? I don't think forcing fsck for
>>>> mounting a card is a good idea. I agree with Tom that if the card is
>>>> dirty (could be corrupted), then user intervention is required anyway.
>>>>
>>>> I'm planning on skipping these 2 patches, if nobody objects.
>>> We need to figure this out but feel free to skip the patches.
>>
>> Well, lets step back. Did we confirm that the problem is that it's dirty (in which
>> case, trying to mount it N times should give N failures, not "3rd time is the
>> charm!") or just that fsck'ing one particular card fixed that part of the card that
>> wasn't mounting (but the rest of it
>> was?) or what?
> [Franklin] I'm not sure why by forcing it to run a third time it ran without a problem when the card is dirty. However, I did determine it was an issue with the card being dirty and that is what was preventing it from mounting automatically at boot up. Running fsck revealed there were indeed problems and after fixing those issues and trying it again without my extra script the partitions successfully mounted the first time. Although the rootfs partition doesn't mount automatically but that is probably expected.
No, all partitions on the card should be mounted.
--
Tom
^ permalink raw reply [flat|nested] 18+ messages in thread
end of thread, other threads:[~2013-12-03 12:43 UTC | newest]
Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-11-22 15:45 [PATCH 1/6] qt4-embedded-gles: Add support for new version of the Graphics SDK Franklin S. Cooper Jr
2013-11-22 15:02 ` Denys Dmytriyenko
2013-11-22 15:13 ` Cooper Jr., Franklin
2013-11-22 18:51 ` Denys Dmytriyenko
2013-11-22 19:00 ` Cooper Jr., Franklin
2013-11-22 15:45 ` [PATCH 2/6] arago-prefs.inc Use version 05.00.00.01 of the Graphics SDK for am335 and am43x Franklin S. Cooper Jr
2013-11-22 15:45 ` [PATCH 3/6] branding-core: Dont remove SGX from MACHINE_FEATURES Franklin S. Cooper Jr
2013-11-22 15:45 ` [PATCH 4/6] Revert "packagegroup-arago-tisdk-amsdk.bb, mount-sdcard: Remove mount-sdcard" Franklin S. Cooper Jr
2013-11-22 15:45 ` [PATCH 5/6] mount-sdcard: Update to use new udev entry Franklin S. Cooper Jr
2013-11-22 20:00 ` Tom Rini
2013-11-22 22:27 ` Cooper Jr., Franklin
2013-11-23 2:15 ` Tom Rini
2013-12-02 21:31 ` Denys Dmytriyenko
2013-12-02 23:23 ` Cooper Jr., Franklin
2013-12-03 0:20 ` Tom Rini
2013-12-03 1:20 ` Cooper Jr., Franklin
2013-12-03 12:43 ` Tom Rini
2013-11-22 15:45 ` [PATCH 6/6] packagegroup-arago-tisdk-amsdk-sdk-host: Don't bother packaging blank uEnv.txt Franklin S. Cooper Jr
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.