Repository navigation
feat(shader): implement the 32-bit DS src2 operations - #938
Conversation
|
Heads-up: this PR is on hold, not rejected. It may depend on how |
97039d9 to
bc77941
Compare
The decoder threw on the GFX10.1 DS src2 opcodes 0x80-0x8b, 0x8d, 0x92, 0x93 and 0x95. Each reads DS[B], where B is the address plus four times the 15-bit signed offset in offset1[6:0]:offset0, and applies the matching operation to DS[A]: add, sub, rsub, inc, dec, signed and unsigned min and max, and, or, xor, f32 min, max and add through the 32-bit LDS atomics, and a plain write for ds_write_src2_b32. The form that takes the offset from the address bits (offset1[7]), the 64-bit forms and GDS still throw. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…als are modelled Co-Authored-By: Claude <noreply@anthropic.com>
bc77941 to
be3bd9f
Compare
|
Unblocking this from #981. I rebased it on
Tested on the merge with |
What
The decoder threw on the GFX10.1 DS src2 opcodes 0x80-0x8b, 0x8d, 0x92, 0x93 and 0x95. Each one reads
DS[B], whereBis the address plus four times the 15-bit signed offset inoffset1[6:0]:offset0, and applies the matching operation toDS[A]:ds_write_src2_b32.These forms still throw, and are recorded in TechnicalDebt:
offset1[7]);Tested
Windows 11, MinGW GCC Release build, ctest
agc_driver_lds_src2passes (new, on the GPU). Each lane runs every src2 operation on its own LDS words, and each result is compared with the value computed from the ISA pseudocode. A shader that uses the address-offset form must be rejected at compile time.Checklist
main; no other open PR implements the same functionsNotImplemented_nid_no_patch); silent stubs are listed in TechnicalDebt.mdfiles or images added to the repository (attach them to this PR)🤖 Generated with Claude Code