mirror of
https://github.com/intel/compute-runtime.git
synced 2025-09-15 13:01:45 +08:00
Use internal ref counts to reference objects encapsulated by surface.
Change-Id: I4fa78637806b67c6dcc7bf1d2ef812c770a49583 Signed-off-by: Mrozek, Michal <michal.mrozek@intel.com>
This commit is contained in:

committed by
sys_ocldev

parent
9cd56612a5
commit
af91147c5d
@ -83,10 +83,10 @@ class HostPtrSurface : public Surface {
|
||||
class MemObjSurface : public Surface {
|
||||
public:
|
||||
MemObjSurface(MemObj *memObj) : Surface(memObj->getGraphicsAllocation()->isCoherent()), memObj(memObj) {
|
||||
memObj->retain();
|
||||
memObj->incRefInternal();
|
||||
}
|
||||
~MemObjSurface() override {
|
||||
memObj->release();
|
||||
memObj->decRefInternal();
|
||||
memObj = nullptr;
|
||||
};
|
||||
|
||||
|
@ -477,7 +477,14 @@ TEST_F(InternalsEventTest, processBlockedCommandsKernelOperation) {
|
||||
std::vector<Surface *> v;
|
||||
MockBuffer buffer;
|
||||
buffer.retain();
|
||||
auto initialRefCount = buffer.getRefApiCount();
|
||||
auto initialInternalCount = buffer.getRefInternalCount();
|
||||
|
||||
auto bufferSurf = new MemObjSurface(&buffer);
|
||||
|
||||
EXPECT_EQ(initialInternalCount + 1, buffer.getRefInternalCount());
|
||||
EXPECT_EQ(initialRefCount, buffer.getRefApiCount());
|
||||
|
||||
PreemptionMode preemptionMode = pDevice->getPreemptionMode();
|
||||
v.push_back(bufferSurf);
|
||||
auto cmd = new CommandComputeKernel(cmdQ, std::unique_ptr<KernelOperation>(blockedCommandsData), v, false, false, false, nullptr, preemptionMode, pKernel, 1);
|
||||
@ -490,7 +497,7 @@ TEST_F(InternalsEventTest, processBlockedCommandsKernelOperation) {
|
||||
|
||||
event.submitCommand(false);
|
||||
|
||||
EXPECT_EQ(refCount - 1, buffer.getRefApiCount());
|
||||
EXPECT_EQ(refCount, buffer.getRefApiCount());
|
||||
EXPECT_EQ(refInternal - 1, buffer.getRefInternalCount());
|
||||
|
||||
auto taskLevelAfter = csr.peekTaskLevel();
|
||||
|
Reference in New Issue
Block a user