P4 to Git Change 1163938 by gandryey@gera-w8 on 2015/06/22 18:23:52
ECR #304775 - Mipmaps support. Fix falures after CL#1163104
- don't allocate extra view if level/layer was created already
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp#124 edit
[ROCm/clr commit: 6f88046a9a]
This commit is contained in:
@@ -926,15 +926,14 @@ CALGSLDevice::resAllocView(gslMemObject res, gslResource3D size, CALdomain offse
|
|||||||
|
|
||||||
gslMemObject mo = NULL, levelobject = res;
|
gslMemObject mo = NULL, levelobject = res;
|
||||||
|
|
||||||
|
bool levelLayer = false;
|
||||||
if (flags & CAL_RESALLOCSLICEVIEW_LEVEL)
|
if (flags & CAL_RESALLOCSLICEVIEW_LEVEL)
|
||||||
{
|
{
|
||||||
const gsSubImageParam levelParam(level);
|
const gsSubImageParam levelParam(level);
|
||||||
levelobject = m_cs->createSubMemObject(res, GSL_LEVEL, levelParam);
|
levelobject = m_cs->createSubMemObject(res, GSL_LEVEL, levelParam);
|
||||||
attribs.bytePitch = static_cast<size_t>(levelobject->getPitch()) *
|
attribs.bytePitch = static_cast<size_t>(levelobject->getPitch()) *
|
||||||
(levelobject->getBitsPerElement() / 8);
|
(levelobject->getBitsPerElement() / 8);
|
||||||
// GSL doesn't detect that the base surface is mipmaped
|
levelLayer = true;
|
||||||
// and doesn't apply the height alignment
|
|
||||||
size.height = levelobject->getHeight();
|
|
||||||
}
|
}
|
||||||
if (flags & CAL_RESALLOCSLICEVIEW_LAYER)
|
if (flags & CAL_RESALLOCSLICEVIEW_LAYER)
|
||||||
{
|
{
|
||||||
@@ -945,6 +944,12 @@ CALGSLDevice::resAllocView(gslMemObject res, gslResource3D size, CALdomain offse
|
|||||||
m_cs->destroyMemObject(levelobject);
|
m_cs->destroyMemObject(levelobject);
|
||||||
}
|
}
|
||||||
levelobject = mo;
|
levelobject = mo;
|
||||||
|
levelLayer = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (levelLayer) {
|
||||||
|
// If level/layer object was created, then don't need an extra view
|
||||||
|
return levelobject;
|
||||||
}
|
}
|
||||||
|
|
||||||
attribs.type = resType;
|
attribs.type = resType;
|
||||||
|
|||||||
Reference in New Issue
Block a user