diff options
Diffstat (limited to 'drivers/mxc/gpu-viv/hal/kernel/inc')
8 files changed, 113 insertions, 25 deletions
diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal.h index 87b811d8dfaf..f986e4e4e009 100644 --- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal.h +++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal.h @@ -137,7 +137,7 @@ typedef enum _gceCORE } gceCORE; -#define gcdCORE_COUNT 3 +#define gcdGPU_COUNT 3 /******************************************************************************* ** @@ -1226,8 +1226,8 @@ gckOS_BroadcastCalibrateSpeed( ** gckOS Os ** Pointer to a gckOS object.ß ** -** gceCORE Core -** Core type. +** gckCORE Core +** GPU whose power is set. ** ** gctBOOL Clock ** gcvTRUE to turn on the clock, or gcvFALSE to turn off the clock. diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_base.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_base.h index 5fafefbe058e..b1e6b488f0af 100644 --- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_base.h +++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_base.h @@ -129,6 +129,7 @@ typedef struct _gcsTLS gco3D engine3D; #endif gco2D engine2D; + gctBOOL copied; } gcsTLS; @@ -642,6 +643,9 @@ gcoOS_GetTLS( OUT gcsTLS_PTR * TLS ); + /* Copy the TLS from a source thread. */ + gceSTATUS gcoOS_CopyTLS(IN gcsTLS_PTR Source); + /* Destroy the objects associated with the current thread. */ void gcoOS_FreeThreadData( @@ -2061,6 +2065,11 @@ gcoDUMP_Delete( IN gctUINT32 Address ); +/* Enable dump or not. */ +gceSTATUS +gcoDUMP_SetDumpFlag( + IN gctBOOL DumpState + ); /******************************************************************************\ ******************************* gcsRECT Structure ****************************** diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver_vg.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver_vg.h index fe57968ba423..447663f964bd 100644 --- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver_vg.h +++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_driver_vg.h @@ -109,8 +109,7 @@ typedef enum _gceTASK gcvTASK_UNLOCK_VIDEO_MEMORY, gcvTASK_FREE_VIDEO_MEMORY, gcvTASK_FREE_CONTIGUOUS_MEMORY, - gcvTASK_UNMAP_USER_MEMORY, - gcvTASK_UNMAP_MEMORY + gcvTASK_UNMAP_USER_MEMORY } gceTASK; @@ -268,23 +267,6 @@ typedef struct _gcsTASK_UNMAP_USER_MEMORY } gcsTASK_UNMAP_USER_MEMORY; -typedef struct _gcsTASK_UNMAP_MEMORY * gcsTASK_UNMAP_MEMORY_PTR; -typedef struct _gcsTASK_UNMAP_MEMORY -{ - /* Task ID (gcvTASK_UNMAP_MEMORY). */ - IN gceTASK id; - - /* Physical memory address to unmap. */ - IN gctPHYS_ADDR physical; - - /* Number of bytes in physical memory to unmap. */ - IN gctSIZE_T bytes; - - /* Address of mapped memory to unmap. */ - IN gctPOINTER logical; -} -gcsTASK_UNMAP_MEMORY; - #ifdef __cplusplus } #endif diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_eglplatform.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_eglplatform.h index f4b7d2886e8e..b9bf7c8f916e 100644 --- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_eglplatform.h +++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_eglplatform.h @@ -251,11 +251,63 @@ typedef struct __BITFIELDINFO{ } BITFIELDINFO; #elif defined(LINUX) && defined(EGL_API_FB) && !defined(__APPLE__) + +#if defined(EGL_API_WL) +/* Wayland platform. */ + +#include <wayland-egl.h> + +#define WL_EGL_NUM_BACKBUFFERS 2 + +struct wl_egl_buffer_info +{ + gctINT32 width; + gctINT32 height; + gctINT32 stride; + gctUINT32 physical; + gctPOINTER logical; + gceSURF_FORMAT format; + gcoSURF surface; +}; + +struct wl_egl_buffer +{ + struct wl_buffer* wl_buffer; + struct wl_egl_buffer_info info; +}; + +struct wl_egl_window_info +{ + gctUINT width; + gctUINT height; + gceSURF_FORMAT format; + gctUINT bpp; +}; + +struct wl_egl_window +{ +/* struct wl_egl_display *display;*/ + struct wl_surface* surface; + struct wl_egl_window_info info; + struct wl_egl_buffer backbuffers[WL_EGL_NUM_BACKBUFFERS]; + gctUINT current; + /* + int backbuffer; + int dx; + int dy; +*/ +}; + + +typedef void* HALNativeDisplayType; +typedef void* HALNativeWindowType; +typedef void* HALNativePixmapType; +#else /* Linux platform for FBDEV. */ typedef struct _FBDisplay * HALNativeDisplayType; typedef struct _FBWindow * HALNativeWindowType; typedef struct _FBPixmap * HALNativePixmapType; - +#endif #elif defined(__ANDROID__) || defined(ANDROID) struct egl_native_pixmap_t; @@ -370,6 +422,8 @@ typedef struct _halDISPLAY_INFO ** if the address is not known for the specified display. */ gctSIZE_T physical; + gctBOOL isCompositor; /* true if compositor, false otherwise. */ + #ifndef __QNXNTO__ /* 355_FB_MULTI_BUFFER */ gctINT multiBuffer; diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_engine.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_engine.h index f77cf5826a6a..7ad46da0b40e 100644 --- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_engine.h +++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_engine.h @@ -1173,6 +1173,27 @@ gco3D_InvokeThreadWalker( IN gcsTHREAD_WALKER_INFO_PTR Info ); +#if gcdUSE_WCLIP_PATCH +/* Set w clip and w plane limit value. */ +gceSTATUS +gco3D_SetWClipEnable( + IN gco3D Engine, + IN gctBOOL Enable + ); + +gceSTATUS +gco3D_SetWPlaneLimitF( + IN gco3D Engine, + IN gctFLOAT Value + ); + +gceSTATUS +gco3D_SetWPlaneLimitX( + IN gco3D Engine, + IN gctFIXED_POINT Value + ); +#endif + /*----------------------------------------------------------------------------*/ /*-------------------------- gco3D Fragment Processor ------------------------*/ @@ -1437,6 +1458,7 @@ gceSTATUS gcoTEXTURE_AddMipMap( IN gcoTEXTURE Texture, IN gctINT Level, + IN gctINT imageFormat, IN gceSURF_FORMAT Format, IN gctUINT Width, IN gctUINT Height, diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_enum.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_enum.h index d10686a259c3..18ddf5bff754 100644 --- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_enum.h +++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_enum.h @@ -144,6 +144,7 @@ typedef enum _gceFEATURE gcvFEATURE_RS_YUV_TARGET, gcvFEATURE_2D_FC_SOURCE, gcvFEATURE_PE_DITHER_FIX, + gcvFEATURE_2D_YUV_SEPARATE_STRIDE, } gceFEATURE; @@ -263,6 +264,13 @@ typedef enum _gceSURF_ROTATION } gceSURF_ROTATION; +typedef enum _gceMIPMAP_IMAGE_FORMAT +{ + gcvUNKNOWN_MIPMAP_IMAGE_FORMAT = -2 +} +gceMIPMAP_IMAGE_FORMAT; + + /* Surface formats. */ typedef enum _gceSURF_FORMAT { diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_options.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_options.h index 4727493d507d..35743c62f2a2 100644 --- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_options.h +++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_options.h @@ -769,4 +769,17 @@ # define gcdALPHA_KILL_IN_SHADER 1 #endif +/* gcdHIGH_PRECISION_DELAY_ENABLE + * + * Enable high precision schedule delay with 1ms unit. otherwise schedule delay up to 10ms. + * Browser app performance will have obvious drop without this enablement + */ +#ifndef gcdHIGH_PRECISION_DELAY_ENABLE +# define gcdHIGH_PRECISION_DELAY_ENABLE 1 +#endif + +#ifndef gcdUSE_WCLIP_PATCH +# define gcdUSE_WCLIP_PATCH 0 +#endif + #endif /* __gc_hal_options_h_ */ diff --git a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_version.h b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_version.h index 132832c9224d..0bc1ffc46943 100644 --- a/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_version.h +++ b/drivers/mxc/gpu-viv/hal/kernel/inc/gc_hal_version.h @@ -28,9 +28,9 @@ #define gcvVERSION_MINOR 6 -#define gcvVERSION_PATCH 7 +#define gcvVERSION_PATCH 8 -#define gcvVERSION_BUILD 1422 +#define gcvVERSION_BUILD 1443 #define gcvVERSION_DATE __DATE__ |