diff options
author | ReinUsesLisp <reinuseslisp@airmail.cc> | 2019-12-10 03:40:32 +0100 |
---|---|---|
committer | ReinUsesLisp <reinuseslisp@airmail.cc> | 2019-12-10 03:40:41 +0100 |
commit | 9ad6327fbda8761da8d11b24999e66418228727c (patch) | |
tree | c992b78a5e606eb4ac3c5b4d5af7367c841f1386 /src/video_core | |
parent | shader_ir/memory: Implement patch stores (diff) | |
download | yuzu-9ad6327fbda8761da8d11b24999e66418228727c.tar yuzu-9ad6327fbda8761da8d11b24999e66418228727c.tar.gz yuzu-9ad6327fbda8761da8d11b24999e66418228727c.tar.bz2 yuzu-9ad6327fbda8761da8d11b24999e66418228727c.tar.lz yuzu-9ad6327fbda8761da8d11b24999e66418228727c.tar.xz yuzu-9ad6327fbda8761da8d11b24999e66418228727c.tar.zst yuzu-9ad6327fbda8761da8d11b24999e66418228727c.zip |
Diffstat (limited to 'src/video_core')
-rw-r--r-- | src/video_core/shader/decode/warp.cpp | 3 | ||||
-rw-r--r-- | src/video_core/shader/shader_ir.h | 5 |
2 files changed, 8 insertions, 0 deletions
diff --git a/src/video_core/shader/decode/warp.cpp b/src/video_core/shader/decode/warp.cpp index d98d0e1dd..11b77f795 100644 --- a/src/video_core/shader/decode/warp.cpp +++ b/src/video_core/shader/decode/warp.cpp @@ -38,6 +38,9 @@ u32 ShaderIR::DecodeWarp(NodeBlock& bb, u32 pc) { const Instruction instr = {program_code[pc]}; const auto opcode = OpCode::Decode(instr); + // Signal the backend that this shader uses warp instructions. + uses_warps = true; + switch (opcode->get().GetId()) { case OpCode::Id::VOTE: { const Node value = GetPredicate(instr.vote.value, instr.vote.negate_value != 0); diff --git a/src/video_core/shader/shader_ir.h b/src/video_core/shader/shader_ir.h index 2f71a50d2..580f84fcb 100644 --- a/src/video_core/shader/shader_ir.h +++ b/src/video_core/shader/shader_ir.h @@ -137,6 +137,10 @@ public: return uses_vertex_id; } + bool UsesWarps() const { + return uses_warps; + } + bool HasPhysicalAttributes() const { return uses_physical_attributes; } @@ -415,6 +419,7 @@ private: bool uses_physical_attributes{}; // Shader uses AL2P or physical attribute read/writes bool uses_instance_id{}; bool uses_vertex_id{}; + bool uses_warps{}; Tegra::Shader::Header header; }; |