Skip to content

Commit

Permalink
Stencil Payload fix for DualSourceBlendRTWrite in e64
Browse files Browse the repository at this point in the history
In e64b mode, the data type for the stencil payload was not correctly
setup to bytes (U8) to match design but instead was set to word (U16)
causing us to write garbage to the final payload in some cases.
  • Loading branch information
ichenkai authored and igcbot committed Feb 3, 2025
1 parent 8d26059 commit b55067a
Showing 1 changed file with 3 additions and 1 deletion.
4 changes: 3 additions & 1 deletion visa/VisaToG4/TranslateSend3D.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1266,9 +1266,11 @@ IR_Builder::constructSrcPayloadDualRenderTarget(vISA_RT_CONTROLS cntrls,
auto payloadUD = createSendPayloadDcl(numElts, Type_UD);
auto payloadUW = createSendPayloadDcl(numElts, Type_UW);
auto payloadF = createSendPayloadDcl(numElts, Type_F);
auto payloadUB = createSendPayloadDcl(numElts, Type_UB);

payloadUW->setAliasDeclare(payloadUD, 0);
payloadF->setAliasDeclare(payloadUD, 0);
payloadUB->setAliasDeclare(payloadUD, 0);

// Check whether coalescing is possible
// coalesc payload by checking whether the source is already prepared in a
Expand Down Expand Up @@ -1398,7 +1400,7 @@ IR_Builder::constructSrcPayloadDualRenderTarget(vISA_RT_CONTROLS cntrls,
}

if (cntrls.isStencil) {
Copy_SrcRegRegion_To_Payload(payloadUW, regOff, S, execSize, instOpt);
Copy_SrcRegRegion_To_Payload(payloadUB, regOff, S, execSize, instOpt);
}

srcToUse = createSrcRegRegion(payloadUD, getRegionStride1());
Expand Down

0 comments on commit b55067a

Please sign in to comment.