diff options
| author | 2019-06-02 18:52:07 -0300 | |
|---|---|---|
| committer | 2019-06-07 02:18:27 -0300 | |
| commit | fe8e6618f2907a9262d69232ef0e2d5d58cbc6e0 (patch) | |
| tree | 308d278996e18558ab049daa01b4873b08b799e8 /src/video_core/shader/node.h | |
| parent | Merge pull request #2558 from ReinUsesLisp/shader-nodes (diff) | |
| download | yuzu-fe8e6618f2907a9262d69232ef0e2d5d58cbc6e0.tar.gz yuzu-fe8e6618f2907a9262d69232ef0e2d5d58cbc6e0.tar.xz yuzu-fe8e6618f2907a9262d69232ef0e2d5d58cbc6e0.zip | |
shader: Split SSY and PBK stack
Hardware testing revealed that SSY and PBK push to a different stack,
allowing code like this:
SSY label1;
PBK label2;
SYNC;
label1: PBK;
label2: EXIT;
Diffstat (limited to 'src/video_core/shader/node.h')
| -rw-r--r-- | src/video_core/shader/node.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/video_core/shader/node.h b/src/video_core/shader/node.h index c002f90f9..3cfb911bb 100644 --- a/src/video_core/shader/node.h +++ b/src/video_core/shader/node.h | |||
| @@ -174,6 +174,11 @@ enum class InternalFlag { | |||
| 174 | Amount = 4, | 174 | Amount = 4, |
| 175 | }; | 175 | }; |
| 176 | 176 | ||
| 177 | enum class MetaStackClass { | ||
| 178 | Ssy, | ||
| 179 | Pbk, | ||
| 180 | }; | ||
| 181 | |||
| 177 | class OperationNode; | 182 | class OperationNode; |
| 178 | class ConditionalNode; | 183 | class ConditionalNode; |
| 179 | class GprNode; | 184 | class GprNode; |
| @@ -285,7 +290,7 @@ struct MetaTexture { | |||
| 285 | }; | 290 | }; |
| 286 | 291 | ||
| 287 | /// Parameters that modify an operation but are not part of any particular operand | 292 | /// Parameters that modify an operation but are not part of any particular operand |
| 288 | using Meta = std::variant<MetaArithmetic, MetaTexture, Tegra::Shader::HalfType>; | 293 | using Meta = std::variant<MetaArithmetic, MetaTexture, MetaStackClass, Tegra::Shader::HalfType>; |
| 289 | 294 | ||
| 290 | /// Holds any kind of operation that can be done in the IR | 295 | /// Holds any kind of operation that can be done in the IR |
| 291 | class OperationNode final { | 296 | class OperationNode final { |