|
@@ -1568,6 +1568,14 @@ private:
|
|
|
coord = "vec3 coords = vec3(" + x + ", " + y + ", " + z + ");";
|
|
coord = "vec3 coords = vec3(" + x + ", " + y + ", " + z + ");";
|
|
|
break;
|
|
break;
|
|
|
}
|
|
}
|
|
|
|
|
+ case Tegra::Shader::TextureType::TextureCube: {
|
|
|
|
|
+ std::string x = regs.GetRegisterAsFloat(instr.gpr8);
|
|
|
|
|
+ std::string y = regs.GetRegisterAsFloat(instr.gpr8.Value() + 1);
|
|
|
|
|
+ std::string z = regs.GetRegisterAsFloat(instr.gpr8.Value() + 2);
|
|
|
|
|
+ ASSERT(instr.gpr20.Value() == Register::ZeroIndex);
|
|
|
|
|
+ coord = "vec3 coords = vec3(" + x + ", " + y + ", " + z + ");";
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
default:
|
|
default:
|
|
|
LOG_CRITICAL(HW_GPU, "Unhandled texture type {}",
|
|
LOG_CRITICAL(HW_GPU, "Unhandled texture type {}",
|
|
|
static_cast<u32>(instr.tex.texture_type.Value()));
|
|
static_cast<u32>(instr.tex.texture_type.Value()));
|
|
@@ -1613,6 +1621,13 @@ private:
|
|
|
}
|
|
}
|
|
|
break;
|
|
break;
|
|
|
}
|
|
}
|
|
|
|
|
+ case Tegra::Shader::TextureType::Texture3D: {
|
|
|
|
|
+ std::string x = regs.GetRegisterAsFloat(instr.gpr8);
|
|
|
|
|
+ std::string y = regs.GetRegisterAsFloat(instr.gpr20);
|
|
|
|
|
+ std::string z = regs.GetRegisterAsFloat(instr.gpr20.Value() + 1);
|
|
|
|
|
+ coord = "vec3 coords = vec3(" + x + ", " + y + ", " + z + ");";
|
|
|
|
|
+ break;
|
|
|
|
|
+ }
|
|
|
case Tegra::Shader::TextureType::TextureCube: {
|
|
case Tegra::Shader::TextureType::TextureCube: {
|
|
|
std::string x = regs.GetRegisterAsFloat(instr.gpr8);
|
|
std::string x = regs.GetRegisterAsFloat(instr.gpr8);
|
|
|
std::string y = regs.GetRegisterAsFloat(instr.gpr8.Value() + 1);
|
|
std::string y = regs.GetRegisterAsFloat(instr.gpr8.Value() + 1);
|