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