File tree Expand file tree Collapse file tree 1 file changed +3
-2
lines changed Expand file tree Collapse file tree 1 file changed +3
-2
lines changed Original file line number Diff line number Diff line change @@ -3985,7 +3985,7 @@ void CShader::PackAndCopyVariable(
3985
3985
encoder.Push ();
3986
3986
}
3987
3987
3988
- // Copies entire variable using simd16, UD type and NoMask
3988
+ // Copies entire variable using simd32 (Xe2) or simd16 (Xe) , UD type and NoMask
3989
3989
void CShader::CopyVariableRaw (
3990
3990
CVariable* dst,
3991
3991
CVariable* src)
@@ -3994,12 +3994,13 @@ void CShader::CopyVariableRaw(
3994
3994
uint dataTypeSizeInBytes = CEncoder::GetCISADataTypeSize (dataType);
3995
3995
uint offset = 0 ;
3996
3996
uint bytesToCopy = src->GetSize () * src->GetNumberInstance ();
3997
+
3997
3998
while (bytesToCopy > 0 )
3998
3999
{
3999
4000
bool dstSeconfHalf = offset >= dst->GetSize ();
4000
4001
bool srcSeconfHalf = offset >= src->GetSize ();
4001
4002
encoder.SetSecondHalf (dstSeconfHalf || srcSeconfHalf);
4002
- SIMDMode simdMode = SIMDMode::SIMD16;
4003
+ SIMDMode simdMode = getGRFSize () == 64 ? SIMDMode::SIMD32 : SIMDMode::SIMD16;
4003
4004
uint movSize = numLanes (simdMode) * dataTypeSizeInBytes;
4004
4005
while (movSize > bytesToCopy ||
4005
4006
(!srcSeconfHalf && ((offset + movSize) > src->GetSize ())) ||
You can’t perform that action at this time.
0 commit comments