summaryrefslogtreecommitdiffstats
path: root/src/video_core/shader/shader_ir.h
diff options
context:
space:
mode:
authorReinUsesLisp <reinuseslisp@airmail.cc>2018-12-21 05:27:47 +0100
committerReinUsesLisp <reinuseslisp@airmail.cc>2019-01-15 21:54:50 +0100
commit878672f371e71d7d7a5b44aec0dc4918a682732d (patch)
treee054b8bd76d07972fc11a41a09842f2201269312 /src/video_core/shader/shader_ir.h
parentshader_decode: Implement FSETP (diff)
downloadyuzu-878672f371e71d7d7a5b44aec0dc4918a682732d.tar
yuzu-878672f371e71d7d7a5b44aec0dc4918a682732d.tar.gz
yuzu-878672f371e71d7d7a5b44aec0dc4918a682732d.tar.bz2
yuzu-878672f371e71d7d7a5b44aec0dc4918a682732d.tar.lz
yuzu-878672f371e71d7d7a5b44aec0dc4918a682732d.tar.xz
yuzu-878672f371e71d7d7a5b44aec0dc4918a682732d.tar.zst
yuzu-878672f371e71d7d7a5b44aec0dc4918a682732d.zip
Diffstat (limited to 'src/video_core/shader/shader_ir.h')
-rw-r--r--src/video_core/shader/shader_ir.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/video_core/shader/shader_ir.h b/src/video_core/shader/shader_ir.h
index 8223ff044..4716d4c90 100644
--- a/src/video_core/shader/shader_ir.h
+++ b/src/video_core/shader/shader_ir.h
@@ -675,6 +675,24 @@ private:
/// Returns a condition code evaluated from internal flags
Node GetConditionCode(Tegra::Shader::ConditionCode cc);
+ /// Accesses a texture sampler
+ const Sampler& GetSampler(const Tegra::Shader::Sampler& sampler,
+ Tegra::Shader::TextureType type, bool is_array, bool is_shadow);
+
+ void WriteTexsInstructionFloat(BasicBlock& bb, Tegra::Shader::Instruction instr, Node texture);
+
+ Node GetTexsCode(Tegra::Shader::Instruction instr, Tegra::Shader::TextureType texture_type,
+ Tegra::Shader::TextureProcessMode process_mode, bool depth_compare,
+ bool is_array);
+
+ std::tuple<std::size_t, std::size_t> ValidateAndGetCoordinateElement(
+ Tegra::Shader::TextureType texture_type, bool depth_compare, bool is_array,
+ bool lod_bias_enabled, std::size_t max_coords, std::size_t max_inputs);
+
+ Node GetTextureCode(Tegra::Shader::Instruction instr, Tegra::Shader::TextureType texture_type,
+ Tegra::Shader::TextureProcessMode process_mode, bool depth_compare,
+ bool is_array, std::size_t bias_offset, std::vector<Node>&& coords);
+
template <typename... T>
inline Node Operation(OperationCode code, const T*... operands) {
return StoreNode(OperationNode(code, operands...));