summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/video_core/engines/shader_bytecode.h3
-rw-r--r--src/video_core/shader/decode/texture.cpp8
2 files changed, 9 insertions, 2 deletions
diff --git a/src/video_core/engines/shader_bytecode.h b/src/video_core/engines/shader_bytecode.h
index c3055602b..4aaad2979 100644
--- a/src/video_core/engines/shader_bytecode.h
+++ b/src/video_core/engines/shader_bytecode.h
@@ -1278,6 +1278,7 @@ union Instruction {
1278 union { 1278 union {
1279 BitField<49, 1, u64> nodep_flag; 1279 BitField<49, 1, u64> nodep_flag;
1280 BitField<53, 4, u64> texture_info; 1280 BitField<53, 4, u64> texture_info;
1281 BitField<59, 1, u64> fp32_flag;
1281 1282
1282 TextureType GetTextureType() const { 1283 TextureType GetTextureType() const {
1283 // The TLDS instruction has a weird encoding for the texture type. 1284 // The TLDS instruction has a weird encoding for the texture type.
@@ -1776,7 +1777,7 @@ private:
1776 INST("1101111101010---", Id::TXQ_B, Type::Texture, "TXQ_B"), 1777 INST("1101111101010---", Id::TXQ_B, Type::Texture, "TXQ_B"),
1777 INST("1101-00---------", Id::TEXS, Type::Texture, "TEXS"), 1778 INST("1101-00---------", Id::TEXS, Type::Texture, "TEXS"),
1778 INST("11011100--11----", Id::TLD, Type::Texture, "TLD"), 1779 INST("11011100--11----", Id::TLD, Type::Texture, "TLD"),
1779 INST("1101101---------", Id::TLDS, Type::Texture, "TLDS"), 1780 INST("1101-01---------", Id::TLDS, Type::Texture, "TLDS"),
1780 INST("110010----111---", Id::TLD4, Type::Texture, "TLD4"), 1781 INST("110010----111---", Id::TLD4, Type::Texture, "TLD4"),
1781 INST("1101111100------", Id::TLD4S, Type::Texture, "TLD4S"), 1782 INST("1101111100------", Id::TLD4S, Type::Texture, "TLD4S"),
1782 INST("110111110110----", Id::TMML_B, Type::Texture, "TMML_B"), 1783 INST("110111110110----", Id::TMML_B, Type::Texture, "TMML_B"),
diff --git a/src/video_core/shader/decode/texture.cpp b/src/video_core/shader/decode/texture.cpp
index cb480be9b..323be3f14 100644
--- a/src/video_core/shader/decode/texture.cpp
+++ b/src/video_core/shader/decode/texture.cpp
@@ -269,7 +269,13 @@ u32 ShaderIR::DecodeTexture(NodeBlock& bb, u32 pc) {
269 LOG_WARNING(HW_GPU, "TLDS.NODEP implementation is incomplete"); 269 LOG_WARNING(HW_GPU, "TLDS.NODEP implementation is incomplete");
270 } 270 }
271 271
272 WriteTexsInstructionFloat(bb, instr, GetTldsCode(instr, texture_type, is_array)); 272 const Node4 components = GetTldsCode(instr, texture_type, is_array);
273
274 if (instr.tlds.fp32_flag) {
275 WriteTexsInstructionFloat(bb, instr, components);
276 } else {
277 WriteTexsInstructionHalfFloat(bb, instr, components);
278 }
273 break; 279 break;
274 } 280 }
275 default: 281 default: