[Mesa-dev] mesa: handle PBO access error in display list mode

Brian Paul brianp at vmware.com
Mon Oct 17 07:24:38 PDT 2011


On 10/15/2011 08:05 PM, Liu Aleaxander wrote:
>  From 98d4600d74829d16045dd577855b7c9f25e762c2 Mon Sep 17 00:00:00 2001
> From: Yuanhan Liu<yuanhan.liu at linux.intel.com>
> Date: Sun, 16 Oct 2011 09:13:10 +0800
> Subject: [PATCH] mesa: handle PBO access error in display list mode
>
> While dealing with pbo data in display list mode, it does check the pbo
> access error at unpack_image. But it could not generate it, as it is
> in display list compile time. If invalid PBO access found, NULL then
> would be returned. While at the execution time, we can't detect if we
> met a such error as the data is not stored as PBO access anymore. The
> code would treat it as a _normal_ NULL pixel data.
>
> That's how the error is missed. Here I introduced a in-file macro
> BAD_ACCESS to mark that we meet a PBO access error at compile time, and
> we would like to handle it at the execution time. This would make the
> error defer recognizable.

I think we should just generate the INVALID_OPERATION error at display 
list compilation time.  If a glDrawPixels() command is being compiled 
and its data is coming from a PBO, we'll access the PBO data at 
compile time, not execution time.  If we encounter an error when we're 
doing that, we should generate the error right away.

The ARB_pbo spec says:
    "If a pixel unpack buffer object
     is bound and unpacking the pixel data according to the process
     described below would access memory beyond the size of the pixel
     unpack buffer's memory size, INVALID_OPERATION results."

I think if the intention was to generate the error later during 
execution, the spec would have said so.  Have you found spec language 
to indicate otherwise?

-Brian


More information about the mesa-dev mailing list