{"push_id":2906468890,"size":2,"distinct_size":2,"ref":"refs/heads/feature/ir-lookup-optimize","head":"94d749335edbb23a2423d332a18752a5baac7290","before":"8d949ea5e1db5e080b41257e3c0c663865534cef","commits":[{"sha":"4f979d74acf2800d7bd2b38155d2bdc47b57d54b","author":{"name":"Tim Foley","email":"0f43a94916e812ec0de8effd5dca59a0081c6335@users.noreply.github.com"},"message":"Fixes around atomic operations (#652)\n\n* Fixes around atomic operations\r\n\r\nWork on #651\r\n\r\nThe existing handling of atomic operations had a few issues:\r\n\r\n* The HLSL atomic functions (`Interlocked*`) didn't have mappings to GLSL\r\n\r\n* Atomic operations on images weren't supported at all because the subscript operation on `RWTexture*` types didn't provide a `ref` acessor\r\n\r\n* The HLSL atomic functions were only providing the overloads that return the previous value through an `out` parameter, and not the ones that ignore the previous value.\r\n\r\nThis change fixes these issues with the following changes:\r\n\r\n* `RWTexture*` types now have a `ref` accessor on their subscript operation which maps to a new `imageSubscript` operation in the IR. By default this translates back to `tex[idx]` in output HLSL, but it makes a custom mapping possible for GLSL\r\n\r\n* The `Interlocked*` function definitions were expanded to include the overloads without the `out` parameter\r\n\r\n* GLSL translations were added for the `Interlocked*` functions. These mappings use some new customization points in the intrinsic operation emit logic to support outputting calls to either `atomic*` or `imageAtomic*` as required, and to expand an argument that is a subscript into an image as multiple arguments.\r\n\r\nThis whole approach is quite hacky, and it doesn't seem like the approach we should take in the long run.\r\n\r\n* Fix: typo in InterlockedAnd lowering\r\n\r\nOne of the cases of `InterlockedAnd` was lowering to `atomicAnd` with a `$0` where we wanted the `$A` substitution to handle the possibility of an image.","distinct":true,"url":"https://api.github.com/repos/jsmall-nvidia/slang/commits/4f979d74acf2800d7bd2b38155d2bdc47b57d54b"},{"sha":"94d749335edbb23a2423d332a18752a5baac7290","author":{"name":"jsmall-nvidia","email":"ba36e50ee2a280bd63d65c073bf01958e3433531@nvidia.com"},"message":"Merge branch 'master' into feature/ir-lookup-optimize","distinct":true,"url":"https://api.github.com/repos/jsmall-nvidia/slang/commits/94d749335edbb23a2423d332a18752a5baac7290"}]}
{"actor":{"display_login":"jsmall-nvidia"}}