mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-22 10:17:01 +08:00
Add UNRECOVERABLE_IF for unexpected builtIn setArgBuffer scenario
Change-Id: I87a5c373eae9c833239e0eb4dca6f1660c763a86
This commit is contained in:
committed by
sys_ocldev
parent
3edb738051
commit
f0e53d5cf1
@@ -1117,6 +1117,8 @@ cl_int Kernel::setArgBuffer(uint32_t argIndex,
|
|||||||
bool forceNonAuxMode = buffer->getGraphicsAllocation()->getAllocationType() == GraphicsAllocation::AllocationType::BUFFER_COMPRESSED &&
|
bool forceNonAuxMode = buffer->getGraphicsAllocation()->getAllocationType() == GraphicsAllocation::AllocationType::BUFFER_COMPRESSED &&
|
||||||
!kernelArgInfo.pureStatefulBufferAccess;
|
!kernelArgInfo.pureStatefulBufferAccess;
|
||||||
|
|
||||||
|
UNRECOVERABLE_IF(forceNonAuxMode && isBuiltIn);
|
||||||
|
|
||||||
if (requiresSshForBuffers()) {
|
if (requiresSshForBuffers()) {
|
||||||
auto surfaceState = ptrOffset(getSurfaceStateHeap(), kernelArgInfo.offsetHeap);
|
auto surfaceState = ptrOffset(getSurfaceStateHeap(), kernelArgInfo.offsetHeap);
|
||||||
buffer->setArgStateful(surfaceState, forceNonAuxMode);
|
buffer->setArgStateful(surfaceState, forceNonAuxMode);
|
||||||
|
|||||||
@@ -190,6 +190,15 @@ HWTEST_F(BufferSetArgTest, givenNonPureStatefulArgWhenRenderCompressedBufferIsSe
|
|||||||
EXPECT_TRUE(RENDER_SURFACE_STATE::AUXILIARY_SURFACE_MODE::AUXILIARY_SURFACE_MODE_AUX_CCS_E == surfaceState->getAuxiliarySurfaceMode());
|
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) {
|
TEST_F(BufferSetArgTest, setKernelArgBufferFor32BitAddressing) {
|
||||||
auto pKernelArg = (void **)(pKernel->getCrossThreadData() +
|
auto pKernelArg = (void **)(pKernel->getCrossThreadData() +
|
||||||
pKernelInfo->kernelArgInfo[0].kernelArgPatchInfoVector[0].crossthreadOffset);
|
pKernelInfo->kernelArgInfo[0].kernelArgPatchInfoVector[0].crossthreadOffset);
|
||||||
|
|||||||
Reference in New Issue
Block a user