summaryrefslogtreecommitdiff
path: root/src/video_core/engines
diff options
context:
space:
mode:
authorGravatar bunnei2018-08-30 09:52:27 -0400
committerGravatar GitHub2018-08-30 09:52:27 -0400
commit6e73039eb5a595e4e648968288306f7046f5ddf9 (patch)
tree9e4b2b6ffd70b285e8c3985862efd1636ddcd3d9 /src/video_core/engines
parentMerge pull request #1193 from lioncash/priv (diff)
parentShaders: Implemented IADD3 (diff)
downloadyuzu-6e73039eb5a595e4e648968288306f7046f5ddf9.tar.gz
yuzu-6e73039eb5a595e4e648968288306f7046f5ddf9.tar.xz
yuzu-6e73039eb5a595e4e648968288306f7046f5ddf9.zip
Merge pull request #1172 from tech4me/impl_iadd3
Shaders: Implemented IADD3
Diffstat (limited to 'src/video_core/engines')
-rw-r--r--src/video_core/engines/shader_bytecode.h24
1 files changed, 23 insertions, 1 deletions
diff --git a/src/video_core/engines/shader_bytecode.h b/src/video_core/engines/shader_bytecode.h
index 625ecdfcd..96b745db8 100644
--- a/src/video_core/engines/shader_bytecode.h
+++ b/src/video_core/engines/shader_bytecode.h
@@ -213,6 +213,18 @@ enum class XmadMode : u64 {
213 CBcc = 4, 213 CBcc = 4,
214}; 214};
215 215
216enum class IAdd3Mode : u64 {
217 None = 0,
218 RightShift = 1,
219 LeftShift = 2,
220};
221
222enum class IAdd3Height : u64 {
223 None = 0,
224 LowerHalfWord = 1,
225 UpperHalfWord = 2,
226};
227
216enum class FlowCondition : u64 { 228enum class FlowCondition : u64 {
217 Always = 0xF, 229 Always = 0xF,
218 Fcsm_Tr = 0x1C, // TODO(bunnei): What is this used for? 230 Fcsm_Tr = 0x1C, // TODO(bunnei): What is this used for?
@@ -339,6 +351,16 @@ union Instruction {
339 } imnmx; 351 } imnmx;
340 352
341 union { 353 union {
354 BitField<31, 2, IAdd3Height> height_c;
355 BitField<33, 2, IAdd3Height> height_b;
356 BitField<35, 2, IAdd3Height> height_a;
357 BitField<37, 2, IAdd3Mode> mode;
358 BitField<49, 1, u64> neg_c;
359 BitField<50, 1, u64> neg_b;
360 BitField<51, 1, u64> neg_a;
361 } iadd3;
362
363 union {
342 BitField<54, 1, u64> saturate; 364 BitField<54, 1, u64> saturate;
343 BitField<56, 1, u64> negate_a; 365 BitField<56, 1, u64> negate_a;
344 } iadd32i; 366 } iadd32i;
@@ -636,7 +658,7 @@ public:
636 IADD_C, 658 IADD_C,
637 IADD_R, 659 IADD_R,
638 IADD_IMM, 660 IADD_IMM,
639 IADD3_C, 661 IADD3_C, // Add 3 Integers
640 IADD3_R, 662 IADD3_R,
641 IADD3_IMM, 663 IADD3_IMM,
642 IADD32I, 664 IADD32I,