fixed UMat sync problems

This commit is contained in:
Ilya Lavrenov
2013-12-13 17:59:53 +04:00
parent b43d6b6858
commit e30875bcef
2 changed files with 18 additions and 2 deletions

View File

@@ -580,7 +580,6 @@ Mat UMat::getMat(int accessFlags) const
Mat hdr(dims, size.p, type(), u->data + offset, step.p);
hdr.flags = flags;
hdr.u = u;
hdr.flags = flags;
hdr.datastart = u->data;
hdr.data = hdr.datastart + offset;
hdr.datalimit = hdr.dataend = u->data + u->size;
@@ -588,11 +587,14 @@ Mat UMat::getMat(int accessFlags) const
return hdr;
}
void* UMat::handle(int /*accessFlags*/) const
void* UMat::handle(int accessFlags) const
{
if( !u )
return 0;
if ((accessFlags & ACCESS_WRITE) != 0)
u->markHostCopyObsolete(true);
// check flags: if CPU copy is newer, copy it back to GPU.
if( u->deviceCopyObsolete() )
{