Browse Source
shader: Keep track of shaders using warp instructions
pull/15/merge
ReinUsesLisp
6 years ago
No known key found for this signature in database
GPG Key ID: 2DFC508897B39CFE
2 changed files with
8 additions and
0 deletions
-
src/video_core/shader/decode/warp.cpp
-
src/video_core/shader/shader_ir.h
|
|
|
@ -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); |
|
|
|
|
|
|
|
@ -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; |
|
|
|
}; |
|
|
|
|