Part Number: AM5728
Tool/software: Linux
Hi.
I developed to blit(compose) 2D surface(gcoSURF_SetBuffer of DRM memory(decoded NV12 with ducati(IVA-HD))) and 2D surface(ARGB) on 2DGPU(GC320) as TI help. DRM memory(decoded NV12 with ducati(IVA-HD)) should make omap_bo_new with OMAP_BO_WC.
It is OK.
I need to blit(compose) rendered surface of 3DGPU(gbm lib) and 2D surface(ARGB) on 2DGPU(GC320).
Can you support 2D GPU use gcoSURF_SetBuffer with vaddr of rendered surface of 3DGPU(gbm lib) ?
<CODE>
req.handle = gbm_bo_get_handle( lpBo ).u32; /* rendered */
drmCommandWriteRead(m_DrmDeviceFD, DRM_OMAP_GEM_INFO, &req, sizeof(req));
...
mmap(0, size, PROT_READ | PROT_WRITE, MAP_SHARED, m_DrmDeviceFD, offset); /* ok */
...
gcoSURF_SetBuffer on 2DGPU is died as below it.
extra-drivers\ti-gc320-driver-5.0.11.p7\hal\os\linux\kernel\gc_hal_kernel_os.c
gckOS_MapUserMemory(
IN gckOS Os,
IN gceCORE Core,
IN gctPOINTER Memory,
IN gctUINT32 Physical,
IN gctSIZE_T Size,
OUT gctPOINTER * Info,
OUT gctUINT32_PTR Address
)
{
...
pgd_t * pgd = pgd_offset(current->mm, logical);
pud_t * pud = pud_offset(pgd, logical);
....
}
<Log>
[ 210.379759] Unable to handle kernel paging request at virtual address 400005b0
[ 210.387011] pgd = d1311f80
[ 210.389770] [400005b0] *pgd=00000000
[ 210.393382] Internal error: Oops: 205 [#1] PREEMPT SMP ARM