diff --git a/libhsakmt/tests/kfdtest/src/SDMAPacket.cpp b/libhsakmt/tests/kfdtest/src/SDMAPacket.cpp index 9aa087c112..80c20a810e 100644 --- a/libhsakmt/tests/kfdtest/src/SDMAPacket.cpp +++ b/libhsakmt/tests/kfdtest/src/SDMAPacket.cpp @@ -32,10 +32,11 @@ */ #define SDMA_COUNT(c) (m_FamilyId < FAMILY_AI ? (c) : (c)-1) -SDMAWriteDataPacket::SDMAWriteDataPacket(unsigned int familyId, void* destAddr, unsigned int data): +SDMAWriteDataPacket::SDMAWriteDataPacket(unsigned int familyId, void* destAddr, unsigned int data, + unsigned int packetSizeOffset): packetData(NULL) { m_FamilyId = familyId; - InitPacket(destAddr, 1, &data); + InitPacket(destAddr, 1, &data, packetSizeOffset); } SDMAWriteDataPacket::SDMAWriteDataPacket(unsigned int familyId, void* destAddr, unsigned int ndw, @@ -46,9 +47,10 @@ SDMAWriteDataPacket::SDMAWriteDataPacket(unsigned int familyId, void* destAddr, } void SDMAWriteDataPacket::InitPacket(void* destAddr, unsigned int ndw, - void *data) { + void *data, unsigned int packetSizeOffset) { packetSize = sizeof(SDMA_PKT_WRITE_UNTILED) + (ndw - 1) * sizeof(unsigned int); + packetSize -= packetSizeOffset; packetData = reinterpret_cast(AllocPacket()); packetData->HEADER_UNION.op = SDMA_OP_WRITE; diff --git a/libhsakmt/tests/kfdtest/src/SDMAPacket.hpp b/libhsakmt/tests/kfdtest/src/SDMAPacket.hpp index e38b1e7837..0cb21fbb93 100644 --- a/libhsakmt/tests/kfdtest/src/SDMAPacket.hpp +++ b/libhsakmt/tests/kfdtest/src/SDMAPacket.hpp @@ -39,7 +39,8 @@ class SDMAPacket : public BasePacket { class SDMAWriteDataPacket : public SDMAPacket { public: // This contructor will also init the packet, no need for additional calls - SDMAWriteDataPacket(unsigned int familyId, void* destAddr, unsigned int data); + SDMAWriteDataPacket(unsigned int familyId, void* destAddr, unsigned int data, + unsigned int packSizeOffset = 0); SDMAWriteDataPacket(unsigned int familyId, void* destAddr, unsigned int ndw, void *data); virtual ~SDMAWriteDataPacket(void) {} @@ -47,7 +48,7 @@ class SDMAWriteDataPacket : public SDMAPacket { // @returns Pointer to the packet virtual const void *GetPacket() const { return packetData; } // @breif Initialise the packet - void InitPacket(void* destAddr, unsigned int ndw, void *data); + void InitPacket(void* destAddr, unsigned int ndw, void *data, unsigned int packetSizeOffset = 0); // @returns Packet size in bytes virtual unsigned int SizeInBytes() const { return packetSize; }