[PATCH v2 x11perf 3/3] Omit benchmarks reading contents of window that is larger than screen.

Rami Ylimäki rami.ylimaki at vincit.fi
Tue Feb 1 00:59:26 PST 2011


On 01/31/2011 06:08 PM, Michel Dänzer wrote:
> On Mon, 2011-01-31 at 15:48 +0200, Rami Ylimäki wrote:
>> Signed-off-by: Rami Ylimäki<rami.ylimaki at vincit.fi>
>> ---
>>   do_blt.c |   10 ++++++++++
>>   1 files changed, 10 insertions(+), 0 deletions(-)
>>
>> diff --git a/do_blt.c b/do_blt.c
>> index 4be2836..fae9e1d 100644
>> --- a/do_blt.c
>> +++ b/do_blt.c
>> @@ -208,6 +208,16 @@ InitCopyPix(XParms xp, Parms p, int reps)
>>   int
>>   InitGetImage(XParms xp, Parms p, int reps)
>>   {
>> +    int screenWidth = DisplayWidth(xp->d, xp->vinfo.screen);
>> +    int screenHeight = DisplayHeight(xp->d, xp->vinfo.screen);
>> +
>> +    if ((windowWidth>  screenWidth) || (windowHeight>  screenHeight))
>> +    {
>> +        printf("Can't read contents of %dx%d window on %dx%d screen, benchmark omitted\n",
>> +               windowWidth, windowHeight, screenWidth, screenHeight);
>> +        return False;
>> +    }
>> +
> This will only catch tests which end up calling InitGetImage.
>

Do you mean that XGetImage is also called elsewhere in x11perf and the 
patch doesn't touch those locations?

The XGetImage call in InitGetImage is the only one that is done with 
invalid parameters causing a BadMatch error. With this patch, I'm able 
to run x11perf with all tests without terminating prematurely because of 
an X error. I have tested this with a device that has a small screen and 
also with Xephyr using a small window.

-- Rami



More information about the xorg-devel mailing list