Verified that this fixed the issue for all of the video cards. On Mon, Nov 10, 2014 at 5:38 PM, Rian Quinn <rianquinn at gmail.com> wrote:
> Your a life savor man. That did the trick. I cannot test on the Radeon and > Nouveau until I get back into the office tomorrow, but it worked great on > the VMWGFX driver. > > I'll also email David to let him know as his examples (which a lot of > people reference) also need to that #define. > > Thanks again, > - Rian > > On Mon, Nov 10, 2014 at 5:33 PM, Dave Airlie <airlied at gmail.com> wrote: > >> On 11 November 2014 07:33, Rian Quinn <rianquinn at gmail.com> wrote: >> > I would be surprised if the size argument was the issue. That comes >> right >> > out out of the create IOCTL unmodified. Here is the full source that I >> am >> > using. >> > >> > // Clear the arg buffers. >> > memset(&create_arg, 0, sizeof(create_arg)); >> > memset(&map_arg, 0, sizeof(map_arg)); >> > >> > // >> > ------------------------------------------------------------------------ >> > // Allocate >> > >> > // Fill in the arguments for the IOCTL. Note that we only support >> 32bpp >> > // dumb buffers so that is hard coded here. >> > create_arg.width = width; >> > create_arg.height = height; >> > create_arg.bpp = 32; >> > >> > // Allocate the dumb buffer >> > if (drmIoctl(gpu->fd(), DRM_IOCTL_MODE_CREATE_DUMB, &create_arg)) >> > { >> > svWarning(0) << "Failed: DRM_IOCTL_MODE_CREATE_DUMB - " << >> > strerror(errno); >> > return; >> > } >> > >> > // Store the dumb buffer properties. >> > mSize = create_arg.size; >> > mStride = create_arg.pitch; >> > mHandle = create_arg.handle; >> > >> > // >> > ------------------------------------------------------------------------ >> > // Map >> > >> > // Fill in the arguments for the IOCTL. >> > map_arg.handle = mHandle; >> > >> > // Allocate the dumb buffer >> > if (drmIoctl(gpu->fd(), DRM_IOCTL_MODE_MAP_DUMB, &map_arg)) >> > { >> > svWarning(0) << "Failed: DRM_IOCTL_MODE_MAP_DUMB - " << >> > strerror(errno); >> > return; >> > } >> > >> > // Store the mapped memory >> > if ((mVaddr = (svuint32 *)mmap(0, mSize, PROT_READ | PROT_WRITE, >> > MAP_SHARED, gpu->fd(), map_arg.offset)) == MAP_FAILED) >> > { >> > // Need to clear out the address so that we don't try to use it. >> > mVaddr = NULL; >> > >> > // Error out. >> > svWarning(0) << "Failed: Dumb Buffer mmap - " << >> strerror(errno); >> > return; >> > } >> > >> >> mmap is probably truncating the offset, >> >> look into, >> #define _FILE_OFFSET_BITS 64 >> >> AC_SYS_LARGEFILE >> >> Dave. >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.freedesktop.org/archives/dri-devel/attachments/20141111/14cfd0d7/attachment.html>