Add UNRECOVERABLE_IF for unexpected builtIn setArgBuffer scenario

Change-Id: I87a5c373eae9c833239e0eb4dca6f1660c763a86
This commit is contained in:
Dunajski, Bartosz
2018-08-08 10:34:47 +02:00
committed by sys_ocldev
parent 3edb738051
commit f0e53d5cf1
2 changed files with 11 additions and 0 deletions

View File

@@ -1117,6 +1117,8 @@ cl_int Kernel::setArgBuffer(uint32_t argIndex,
bool forceNonAuxMode = buffer->getGraphicsAllocation()->getAllocationType() == GraphicsAllocation::AllocationType::BUFFER_COMPRESSED &&
!kernelArgInfo.pureStatefulBufferAccess;
UNRECOVERABLE_IF(forceNonAuxMode && isBuiltIn);
if (requiresSshForBuffers()) {
auto surfaceState = ptrOffset(getSurfaceStateHeap(), kernelArgInfo.offsetHeap);
buffer->setArgStateful(surfaceState, forceNonAuxMode);

View File

@@ -190,6 +190,15 @@ HWTEST_F(BufferSetArgTest, givenNonPureStatefulArgWhenRenderCompressedBufferIsSe
EXPECT_TRUE(RENDER_SURFACE_STATE::AUXILIARY_SURFACE_MODE::AUXILIARY_SURFACE_MODE_AUX_CCS_E == surfaceState->getAuxiliarySurfaceMode());
}
HWTEST_F(BufferSetArgTest, givenNonPureStatefulArgWhenSetArgOnBuiltinIsCalledThenAbort) {
buffer->getGraphicsAllocation()->setAllocationType(GraphicsAllocation::AllocationType::BUFFER_COMPRESSED);
cl_mem clMem = buffer;
pKernelInfo->kernelArgInfo.at(0).pureStatefulBufferAccess = false;
pKernel->isBuiltIn = true;
EXPECT_THROW(pKernel->setArgBuffer(0, sizeof(cl_mem), &clMem), std::exception);
}
TEST_F(BufferSetArgTest, setKernelArgBufferFor32BitAddressing) {
auto pKernelArg = (void **)(pKernel->getCrossThreadData() +
pKernelInfo->kernelArgInfo[0].kernelArgPatchInfoVector[0].crossthreadOffset);