shader: Keep track of shaders using warp instructions
This commit is contained in:
		@@ -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;
 | 
			
		||||
};
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user