I am working on Mali-400 under linux. I want to create pixmap surface, but it always return EGL_BAD_MATCH error.
Here attribut list wich i use for eglChooseConfig
EGLint EGLRuntime::configAttributes =
/* DO NOT MODIFY. */
/* These attributes are in a known order and may be re-written at initialization according to application requests. */
EGL_SURFACE_TYPE, EGL_PIXMAP_BIT ,
Here pixmap structure
typedef struct fbdev_pixmap
unsigned int height;
unsigned int width;
unsigned int bytes_per_pixel;
unsigned char buffer_size;
unsigned char red_size;
unsigned char green_size;
unsigned char blue_size;
unsigned char alpha_size;
unsigned char luminance_size;
unsigned short *data;
tempPixMap.height = windowH;
tempPixMap.width = windowW;
tempPixMap.buffer_size = 32;
tempPixMap.red_size = 8;
tempPixMap.green_size = 8;
tempPixMap.blue_size = 8;
tempPixMap.alpha_size = 0;
tempPixMap.data = (unsigned short *)BitMapPtr;
tempPixMap.flags = FBDEV_PIXMAP_SUPPORTS_UMP;
Here eglCreatePixmapSurface function call
surface = eglCreatePixmapSurface(display, config, (EGLNativePixmapType)(&tempPixMap), NULL);
What i am doing wrong?
Nothing seems overly obvious from what you showed, so we would need more information in order to figure this out.
Do you have a small reproducer so we can begin investigation?
Thanks, for reply.
The problem solved.
I was allocated memory without using UMP's API.
pixmapHandle = ump_ref_drv_allocate( sizeOfBuffer , UMP_REF_DRV_CONSTRAINT_NONE);
Hi Ako6, could you read back the gpu result from pixmapHandle in this way?
View all questions in Graphics and Gaming forum