diff options
| author | bunnei <bunneidev@gmail.com> | 2018-04-26 18:43:51 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-04-26 18:43:51 -0400 |
| commit | bc4394614006bad950711270369a102b975d8d33 (patch) | |
| tree | 29c300571df7f4442080f57777bac343ea210a58 /src/video_core/engines | |
| parent | 4ac9b47dca0ecb450c51a521fec22f4e62021156 (diff) | |
| parent | c9d7abe9c9be3e3654b47623602770c9be9ee88f (diff) | |
Merge pull request #399 from bunnei/shader-ints
Shader decompiler prep for integer instructions
Diffstat (limited to 'src/video_core/engines')
| -rw-r--r-- | src/video_core/engines/shader_bytecode.h | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/video_core/engines/shader_bytecode.h b/src/video_core/engines/shader_bytecode.h index f4d11fa5d..f3ca30cfa 100644 --- a/src/video_core/engines/shader_bytecode.h +++ b/src/video_core/engines/shader_bytecode.h @@ -19,7 +19,10 @@ namespace Tegra { namespace Shader { struct Register { - // Register 255 is special cased to always be 0 + /// Number of registers + static constexpr size_t NumRegisters = 256; + + /// Register 255 is special cased to always be 0 static constexpr size_t ZeroIndex = 255; constexpr Register() = default; @@ -48,6 +51,11 @@ struct Register { return ~value; } + u64 GetSwizzledIndex(u64 elem) const { + elem = (value + elem) & 3; + return (value & ~3) + elem; + } + private: u64 value{}; }; |
