On Mon, 2009-06-22 at 13:48 +0200, Michel Dänzer wrote:
> 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?
Or better this (the test in the last hunk was inverted).
BTW, the third image in the readpix demo turns white after pressing 's',
regardless of these changes.
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..03311e5 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