Unify programming of atomic command

Change-Id: I13afdb44fb83beaa8673eb6456d2a8edcb6ac047
Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
This commit is contained in:
Zbigniew Zdanowicz
2020-10-01 21:08:46 +02:00
committed by sys_ocldev
parent 5386f8be86
commit 2717fcae54
10 changed files with 75 additions and 81 deletions

View File

@@ -424,18 +424,34 @@ size_t EncodeSempahore<Family>::getSizeMiSemaphoreWait() {
}
template <typename Family>
void EncodeAtomic<Family>::programMiAtomic(MI_ATOMIC *atomic, uint64_t writeAddress,
void EncodeAtomic<Family>::programMiAtomic(MI_ATOMIC *atomic,
uint64_t writeAddress,
ATOMIC_OPCODES opcode,
DATA_SIZE dataSize) {
DATA_SIZE dataSize,
uint32_t returnDataControl,
uint32_t csStall) {
MI_ATOMIC cmd = Family::cmdInitAtomic;
cmd.setAtomicOpcode(opcode);
cmd.setDataSize(dataSize);
cmd.setMemoryAddress(static_cast<uint32_t>(writeAddress & 0x0000FFFFFFFFULL));
cmd.setMemoryAddressHigh(static_cast<uint32_t>(writeAddress >> 32));
cmd.setReturnDataControl(returnDataControl);
cmd.setCsStall(csStall);
*atomic = cmd;
}
template <typename GfxFamily>
void EncodeAtomic<GfxFamily>::programMiAtomic(LinearStream &commandStream,
uint64_t writeAddress,
ATOMIC_OPCODES opcode,
DATA_SIZE dataSize,
uint32_t returnDataControl,
uint32_t csStall) {
auto miAtomic = commandStream.getSpaceForCmd<MI_ATOMIC>();
EncodeAtomic<GfxFamily>::programMiAtomic(miAtomic, writeAddress, opcode, dataSize, returnDataControl, csStall);
}
template <typename Family>
void EncodeBatchBufferStartOrEnd<Family>::programBatchBufferStart(LinearStream *commandStream,
uint64_t address,