sna/gen2+: Force upload rather than perform source transformations on the CPU
If both the source and destination is on the CPU, then the thinking was it would be quicker to operate on those on the CPU rather than copy both to the GPU and then perform the operation. This turns out to be a false assumption if transformation is involved -- something to be reconsidered if pixman should ever be improved. Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
parent
8634d461bd
commit
4d8369f8e6
|
|
@ -1506,10 +1506,16 @@ has_alphamap(PicturePtr p)
|
|||
return p->alphaMap != NULL;
|
||||
}
|
||||
|
||||
static bool
|
||||
untransformed(PicturePtr p)
|
||||
{
|
||||
return !p->transform || pixman_transform_is_int_translate(p->transform);
|
||||
}
|
||||
|
||||
static bool
|
||||
need_upload(PicturePtr p)
|
||||
{
|
||||
return p->pDrawable && unattached(p->pDrawable);
|
||||
return p->pDrawable && unattached(p->pDrawable) && untransformed(p);
|
||||
}
|
||||
|
||||
static bool
|
||||
|
|
|
|||
|
|
@ -2418,10 +2418,16 @@ has_alphamap(PicturePtr p)
|
|||
return p->alphaMap != NULL;
|
||||
}
|
||||
|
||||
static bool
|
||||
untransformed(PicturePtr p)
|
||||
{
|
||||
return !p->transform || pixman_transform_is_int_translate(p->transform);
|
||||
}
|
||||
|
||||
static bool
|
||||
need_upload(PicturePtr p)
|
||||
{
|
||||
return p->pDrawable && unattached(p->pDrawable);
|
||||
return p->pDrawable && unattached(p->pDrawable) && untransformed(p);
|
||||
}
|
||||
|
||||
static bool
|
||||
|
|
|
|||
|
|
@ -2015,10 +2015,16 @@ has_alphamap(PicturePtr p)
|
|||
return p->alphaMap != NULL;
|
||||
}
|
||||
|
||||
static bool
|
||||
untransformed(PicturePtr p)
|
||||
{
|
||||
return !p->transform || pixman_transform_is_int_translate(p->transform);
|
||||
}
|
||||
|
||||
static bool
|
||||
need_upload(PicturePtr p)
|
||||
{
|
||||
return p->pDrawable && unattached(p->pDrawable);
|
||||
return p->pDrawable && unattached(p->pDrawable) && untransformed(p);
|
||||
}
|
||||
|
||||
static bool
|
||||
|
|
|
|||
|
|
@ -2043,10 +2043,16 @@ has_alphamap(PicturePtr p)
|
|||
return p->alphaMap != NULL;
|
||||
}
|
||||
|
||||
static bool
|
||||
untransformed(PicturePtr p)
|
||||
{
|
||||
return !p->transform || pixman_transform_is_int_translate(p->transform);
|
||||
}
|
||||
|
||||
static bool
|
||||
need_upload(PicturePtr p)
|
||||
{
|
||||
return p->pDrawable && unattached(p->pDrawable);
|
||||
return p->pDrawable && unattached(p->pDrawable) && untransformed(p);
|
||||
}
|
||||
|
||||
static bool
|
||||
|
|
|
|||
|
|
@ -2324,10 +2324,16 @@ has_alphamap(PicturePtr p)
|
|||
return p->alphaMap != NULL;
|
||||
}
|
||||
|
||||
static bool
|
||||
untransformed(PicturePtr p)
|
||||
{
|
||||
return !p->transform || pixman_transform_is_int_translate(p->transform);
|
||||
}
|
||||
|
||||
static bool
|
||||
need_upload(PicturePtr p)
|
||||
{
|
||||
return p->pDrawable && unattached(p->pDrawable);
|
||||
return p->pDrawable && unattached(p->pDrawable) && untransformed(p);
|
||||
}
|
||||
|
||||
static bool
|
||||
|
|
|
|||
|
|
@ -2328,10 +2328,16 @@ has_alphamap(PicturePtr p)
|
|||
return p->alphaMap != NULL;
|
||||
}
|
||||
|
||||
static bool
|
||||
untransformed(PicturePtr p)
|
||||
{
|
||||
return !p->transform || pixman_transform_is_int_translate(p->transform);
|
||||
}
|
||||
|
||||
static bool
|
||||
need_upload(PicturePtr p)
|
||||
{
|
||||
return p->pDrawable && unattached(p->pDrawable);
|
||||
return p->pDrawable && unattached(p->pDrawable) && untransformed(p);
|
||||
}
|
||||
|
||||
static bool
|
||||
|
|
|
|||
Loading…
Reference in New Issue