summaryrefslogtreecommitdiffstats
path: root/src/video_core/shader/shader_ir.h
diff options
context:
space:
mode:
authorReinUsesLisp <reinuseslisp@airmail.cc>2018-12-26 05:33:56 +0100
committerReinUsesLisp <reinuseslisp@airmail.cc>2019-01-15 21:54:53 +0100
commit5af82a8ed4e2e0b7abc9c7da9f7bb5fa1c83de29 (patch)
tree2982046f3f11a2177905e731bd264d21635e3010 /src/video_core/shader/shader_ir.h
parentshader_decode: Fixup R2P (diff)
downloadyuzu-5af82a8ed4e2e0b7abc9c7da9f7bb5fa1c83de29.tar
yuzu-5af82a8ed4e2e0b7abc9c7da9f7bb5fa1c83de29.tar.gz
yuzu-5af82a8ed4e2e0b7abc9c7da9f7bb5fa1c83de29.tar.bz2
yuzu-5af82a8ed4e2e0b7abc9c7da9f7bb5fa1c83de29.tar.lz
yuzu-5af82a8ed4e2e0b7abc9c7da9f7bb5fa1c83de29.tar.xz
yuzu-5af82a8ed4e2e0b7abc9c7da9f7bb5fa1c83de29.tar.zst
yuzu-5af82a8ed4e2e0b7abc9c7da9f7bb5fa1c83de29.zip
Diffstat (limited to 'src/video_core/shader/shader_ir.h')
-rw-r--r--src/video_core/shader/shader_ir.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/video_core/shader/shader_ir.h b/src/video_core/shader/shader_ir.h
index 5676d32a9..7f11599bf 100644
--- a/src/video_core/shader/shader_ir.h
+++ b/src/video_core/shader/shader_ir.h
@@ -44,8 +44,9 @@ constexpr u32 MAX_PROGRAM_LENGTH = 0x1000;
constexpr u32 RZ = 0xff;
enum class OperationCode {
- Assign, /// (float& dest, float src) -> void
- AssignComposite, /// (MetaComponents, float4 src, float&[4] dst) -> void
+ Assign, /// (float& dest, float src) -> void
+ AssignComposite, /// (MetaComponents, float4 src, float&[4] dst) -> void
+ AssignCompositeHalf, /// (MetaComponents, float4 src, float&[2] dst) -> void
Composite, /// (float[4] values) -> float4
Select, /// (MetaArithmetic, bool pred, float a, float b) -> float
@@ -279,6 +280,7 @@ struct MetaTexture {
struct MetaComponents {
std::array<u32, 4> components_map{};
+ u32 count{};
u32 GetSourceComponent(u32 dest_index) const {
return components_map[dest_index];
@@ -692,6 +694,8 @@ private:
Tegra::Shader::TextureType type, bool is_array, bool is_shadow);
void WriteTexsInstructionFloat(BasicBlock& bb, Tegra::Shader::Instruction instr, Node texture);
+ void WriteTexsInstructionHalfFloat(BasicBlock& bb, Tegra::Shader::Instruction instr,
+ Node texture);
Node GetTexCode(Tegra::Shader::Instruction instr, Tegra::Shader::TextureType texture_type,
Tegra::Shader::TextureProcessMode process_mode, bool depth_compare,