diff options
| author | bunnei <bunneidev@gmail.com> | 2019-09-18 16:26:05 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-09-18 16:26:05 -0400 |
| commit | b31880dc5e0d9aab1171d3476453ad2db00cfd3a (patch) | |
| tree | b1ec38b1d4be6f1f61d987608d99d1f6ee428a83 /src/video_core/shader/shader_ir.cpp | |
| parent | 393cc3ef2fe6e6b83c7eb30dc4c0a530ffbe8e43 (diff) | |
| parent | 0f7b813d654b01a52ed26ad3872a2bca12d0c6d0 (diff) | |
Merge pull request #2784 from ReinUsesLisp/smem
shader_ir: Implement shared memory
Diffstat (limited to 'src/video_core/shader/shader_ir.cpp')
| -rw-r--r-- | src/video_core/shader/shader_ir.cpp | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/video_core/shader/shader_ir.cpp b/src/video_core/shader/shader_ir.cpp index 1e5c7f660..bbbab0bca 100644 --- a/src/video_core/shader/shader_ir.cpp +++ b/src/video_core/shader/shader_ir.cpp @@ -137,6 +137,10 @@ Node ShaderIR::GetLocalMemory(Node address) { return MakeNode<LmemNode>(std::move(address)); } +Node ShaderIR::GetSharedMemory(Node address) { + return MakeNode<SmemNode>(std::move(address)); +} + Node ShaderIR::GetTemporary(u32 id) { return GetRegister(Register::ZeroIndex + 1 + id); } @@ -378,6 +382,11 @@ void ShaderIR::SetLocalMemory(NodeBlock& bb, Node address, Node value) { Operation(OperationCode::Assign, GetLocalMemory(std::move(address)), std::move(value))); } +void ShaderIR::SetSharedMemory(NodeBlock& bb, Node address, Node value) { + bb.push_back( + Operation(OperationCode::Assign, GetSharedMemory(std::move(address)), std::move(value))); +} + void ShaderIR::SetTemporary(NodeBlock& bb, u32 id, Node value) { SetRegister(bb, Register::ZeroIndex + 1 + id, std::move(value)); } |
