http://bugs.freedesktop.org/show_bug.cgi?id=18347

           Summary: intelReadPixels needs to wait for hardware
           Product: Mesa
           Version: unspecified
          Platform: Other
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: medium
         Component: Drivers/DRI/i915
        AssignedTo: dri-devel@lists.sourceforge.net
        ReportedBy: [EMAIL PROTECTED]


Created an attachment (id=20001)
 --> (http://bugs.freedesktop.org/attachment.cgi?id=20001)
Patch as described

With the current intel driver, small 1x1 pixel reads often (perhaps even
usually) give the wrong result. I think the problem is that when the
code falls back to _swrast_ReadPixels(), it doesn't wait for the GPU
to finish.

The patch I'll attach here adds an intelFinish() call before calling
_swrast_ReadPixels(). It fixes the problems I'm observing.

Comments:

 - I think the intelFlush() call at the beginning of of intelReadPixels()
   can be removed. do_blit_readpixels() calls intelFlush() itself, 
   as does intelFinish(). Performance difference for doing so is 
   probably minimal.

 - intelFinish() does a bit more than is necessary, since it waits for
   rendering to all color buffers to finish, not just the one we
   are going to read from. Seems unlikely to matter, since presumably
   the last thing done before glReadPixels() is to render to the 
   buffer you are going to read from.

 - I don't see where do_blit_readpixels() waits for the blit it emitted
   to finish, but I don't have a test case for that code path, and maybe
   that happens implicitly or in the upper layers.

 - I don't know the code at all, so please double check for sanity :-)


-- 
Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
--
_______________________________________________
Dri-devel mailing list
Dri-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to