[0035] Fix accumulation to groupshared - #927
Conversation
This corrects some errors I recently introduced to the spec and removes some undesirable complexitly. When accumulating to groupshared memory we should effectively always treat the groupshared memory as if it is a blob of bytes of the matrix element type, and no data conversions are applied. Fixes microsoft#925
There was a problem hiding this comment.
Validation rules need to be updated
Co-authored-by: Damyan Pepper <damyanp@microsoft.com>
There was a problem hiding this comment.
| Offset * element byte width must be 128-byte aligned from the base offset, and stride * element byte width |
There was a problem hiding this comment.
This sentence got rewritten in PR #924.
|
Sorry for drip feeding comments, I wanted to do a deeper read and kept finding small things. That should be everything! |
| MatrixLayoutEnum Layout); | ||
|
|
||
| #ifdef __hlsl_dx_compiler | ||
| template <ComponentEnum TargetCompTy = ComponentTy, typename T, |
There was a problem hiding this comment.
Comment from copilot on another PR that belongs over here!
TargetCompTyis now accepted but never used, so calls such as InterlockedAccumulateComponentType::I32(...) compile while producing exactly the same F32 operation as the default call. Since the DXIL target-type operand was removed, keeping this argument silently misrepresents the operation's element interpretation; remove the template parameter and update the affected call sites/tests so obsolete explicit target types are rejected rather than ignored.
There was a problem hiding this comment.
I'll remove that. Thanks for the catch!
Co-authored-by: Ashley Coleman <ascoleman@microsoft.com>
Implements the spec changes as defined by microsoft/hlsl-specs#927 - TargetType has been removed from `dx.op.linAlgMatrixAccumulateToMemory` - TG Matrix is now allowed in `InterlockedAccumulate` to gs memory Fixes: #8897 Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This corrects some errors I recently introduced to the spec and removes some undesirable complexitly.
When accumulating to groupshared memory we should effectively always treat the groupshared memory as if it is a blob of bytes of the matrix element type, and no data conversions are applied.
Fixes #925