From 3964e773c8feba01e802c0043a3ee6090d8beb4b Mon Sep 17 00:00:00 2001 From: foreman Date: Mon, 22 Jun 2015 18:35:54 -0400 Subject: [PATCH] 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: 6f88046a9affc84b9e564adac2cf4c969c5c32ec] --- .../runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/projects/clr/rocclr/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp b/projects/clr/rocclr/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp index 581b0cb3e8..463fa3a10e 100644 --- a/projects/clr/rocclr/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp +++ b/projects/clr/rocclr/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp @@ -926,15 +926,14 @@ CALGSLDevice::resAllocView(gslMemObject res, gslResource3D size, CALdomain offse gslMemObject mo = NULL, levelobject = res; + bool levelLayer = false; if (flags & CAL_RESALLOCSLICEVIEW_LEVEL) { const gsSubImageParam levelParam(level); levelobject = m_cs->createSubMemObject(res, GSL_LEVEL, levelParam); attribs.bytePitch = static_cast(levelobject->getPitch()) * (levelobject->getBitsPerElement() / 8); - // GSL doesn't detect that the base surface is mipmaped - // and doesn't apply the height alignment - size.height = levelobject->getHeight(); + levelLayer = true; } if (flags & CAL_RESALLOCSLICEVIEW_LAYER) { @@ -945,6 +944,12 @@ CALGSLDevice::resAllocView(gslMemObject res, gslResource3D size, CALdomain offse m_cs->destroyMemObject(levelobject); } levelobject = mo; + levelLayer = true; + } + + if (levelLayer) { + // If level/layer object was created, then don't need an extra view + return levelobject; } attribs.type = resType;