On Sun, 2009-06-21 at 10:30 -0700, Eric Anholt wrote:
> I was checking on some driver regressions this weekend, and thought that
> readpixels failure on i915 might have been my fault, but bisect claims
> it's:
> 
> dd26899ca39111e0866afed9df94bfb1618dd363 is first bad commit
> commit dd26899ca39111e0866afed9df94bfb1618dd363
> Author: Michel Dänzer <[email protected]>
> Date:   Fri Jun 19 23:55:55 2009 +0200
> 
>     intel: Fixups for 'mesa: create/destroy buffer objects via driver 
> functions'.
>     
>     Initialize all driver function hooks before calling 
> _mesa_initialize_context(),
>     and handle all buffer objects in intel_buffer_object().
>     
>     Fixes assertion failure when running glxinfo.
> 
> :040000 040000 d2d5b6bc870422b08b9fb5a6d196fb390815cbdf 
> 144a2d92751f48321a44430bfe8c4768eec59a97 M    src
> 
> The effect is that the Read/DrawPixels area of the readpix demo is
> white, and conformance tests all fail.

Does the patch below help?


diff --git a/src/mesa/drivers/dri/intel/intel_pixel_read.c 
b/src/mesa/drivers/dri/intel/intel_pixel_read.c
index 538da28..a7b7959 100644
--- a/src/mesa/drivers/dri/intel/intel_pixel_read.c
+++ b/src/mesa/drivers/dri/intel/intel_pixel_read.c
@@ -179,7 +179,7 @@ do_blit_readpixels(GLcontext * ctx,
    if (!src)
       return GL_FALSE;
 
-   if (dst) {
+   if (pack->BufferObj->Name) {
       /* XXX This validation should be done by core mesa:
        */
       if (!_mesa_validate_pbo_access(2, pack, width, height, 1,
diff --git a/src/mesa/drivers/dri/intel/intel_tex_image.c 
b/src/mesa/drivers/dri/intel/intel_tex_image.c
index e9a3823..47945de 100644
--- a/src/mesa/drivers/dri/intel/intel_tex_image.c
+++ b/src/mesa/drivers/dri/intel/intel_tex_image.c
@@ -205,7 +205,7 @@ try_pbo_upload(struct intel_context *intel,
    GLuint src_offset, src_stride;
    GLuint dst_offset, dst_stride;
 
-   if (!pbo ||
+   if (unpack->BufferObj->Name == 0 ||
        intel->ctx._ImageTransferState ||
        unpack->SkipPixels || unpack->SkipRows) {
       DBG("%s: failure 1\n", __FUNCTION__);
@@ -260,7 +260,7 @@ try_pbo_zcopy(struct intel_context *intel,
    GLuint src_offset, src_stride;
    GLuint dst_offset, dst_stride;
 
-   if (!pbo ||
+   if (unpack->BufferObj->Name == 0 ||
        intel->ctx._ImageTransferState ||
        unpack->SkipPixels || unpack->SkipRows) {
       DBG("%s: failure 1\n", __FUNCTION__);
@@ -421,7 +421,7 @@ intelTexImage(GLcontext * ctx,
     */
    if (dims <= 2 &&
        intelImage->mt &&
-       intel_buffer_object(unpack->BufferObj) &&
+       unpack->BufferObj->Name == 0 &&
        check_pbo_format(internalFormat, format,
                         type, intelImage->base.TexFormat)) {
 


-- 
Earthling Michel Dänzer           |                http://www.vmware.com
Libre software enthusiast         |          Debian, X and DRI developer

------------------------------------------------------------------------------
Are you an open source citizen? Join us for the Open Source Bridge conference!
Portland, OR, June 17-19. Two days of sessions, one day of unconference: $250.
Need another reason to go? 24-hour hacker lounge. Register today!
http://ad.doubleclick.net/clk;215844324;13503038;v?http://opensourcebridge.org
--
_______________________________________________
Dri-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/dri-devel

Reply via email to