summaryrefslogtreecommitdiffstats
path: root/src/video_core/engines/shader_bytecode.h
diff options
context:
space:
mode:
authorReinUsesLisp <reinuseslisp@airmail.cc>2020-02-01 06:57:01 +0100
committerReinUsesLisp <reinuseslisp@airmail.cc>2020-02-02 01:19:44 +0100
commit017474c3f89e5afcb3ffdb9fac3e412c40986092 (patch)
tree4164fe82d9d5ee8abb9ac3ae7d7875d163195c9b /src/video_core/engines/shader_bytecode.h
parentMerge pull request #3350 from ReinUsesLisp/atom (diff)
downloadyuzu-017474c3f89e5afcb3ffdb9fac3e412c40986092.tar
yuzu-017474c3f89e5afcb3ffdb9fac3e412c40986092.tar.gz
yuzu-017474c3f89e5afcb3ffdb9fac3e412c40986092.tar.bz2
yuzu-017474c3f89e5afcb3ffdb9fac3e412c40986092.tar.lz
yuzu-017474c3f89e5afcb3ffdb9fac3e412c40986092.tar.xz
yuzu-017474c3f89e5afcb3ffdb9fac3e412c40986092.tar.zst
yuzu-017474c3f89e5afcb3ffdb9fac3e412c40986092.zip
Diffstat (limited to 'src/video_core/engines/shader_bytecode.h')
-rw-r--r--src/video_core/engines/shader_bytecode.h20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/video_core/engines/shader_bytecode.h b/src/video_core/engines/shader_bytecode.h
index f443ec0fe..901adb97b 100644
--- a/src/video_core/engines/shader_bytecode.h
+++ b/src/video_core/engines/shader_bytecode.h
@@ -624,6 +624,19 @@ enum class ShuffleOperation : u64 {
Bfly = 3, // shuffleXorNV
};
+enum class ShfType : u64 {
+ Bits32 = 0,
+ U64 = 2,
+ S64 = 3,
+};
+
+enum class ShfXmode : u64 {
+ None = 0,
+ HI = 1,
+ X = 2,
+ XHI = 3,
+};
+
union Instruction {
constexpr Instruction& operator=(const Instruction& instr) {
value = instr.value;
@@ -776,6 +789,13 @@ union Instruction {
} shr;
union {
+ BitField<37, 2, ShfType> type;
+ BitField<48, 2, ShfXmode> xmode;
+ BitField<50, 1, u64> wrap;
+ BitField<20, 6, u64> immediate;
+ } shf;
+
+ union {
BitField<39, 5, u64> shift_amount;
BitField<48, 1, u64> negate_b;
BitField<49, 1, u64> negate_a;