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:
foreman
2015-06-22 18:35:54 -04:00
parent dd27d4067e
commit 3964e773c8
@@ -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;