summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorReinUsesLisp <reinuseslisp@airmail.cc>2019-04-02 04:03:32 +0200
committerReinUsesLisp <reinuseslisp@airmail.cc>2019-04-03 22:12:44 +0200
commit24abeb9a67a45ba9c1d67163b7b75cac8aa3d03e (patch)
tree2d9837feabbdae61a71f69d63fb9b7d8cacff183
parentMerge pull request #2294 from lioncash/fatal (diff)
downloadyuzu-24abeb9a67a45ba9c1d67163b7b75cac8aa3d03e.tar
yuzu-24abeb9a67a45ba9c1d67163b7b75cac8aa3d03e.tar.gz
yuzu-24abeb9a67a45ba9c1d67163b7b75cac8aa3d03e.tar.bz2
yuzu-24abeb9a67a45ba9c1d67163b7b75cac8aa3d03e.tar.lz
yuzu-24abeb9a67a45ba9c1d67163b7b75cac8aa3d03e.tar.xz
yuzu-24abeb9a67a45ba9c1d67163b7b75cac8aa3d03e.tar.zst
yuzu-24abeb9a67a45ba9c1d67163b7b75cac8aa3d03e.zip
-rw-r--r--src/video_core/engines/shader_bytecode.h9
-rw-r--r--src/video_core/shader/decode/memory.cpp5
2 files changed, 11 insertions, 3 deletions
diff --git a/src/video_core/engines/shader_bytecode.h b/src/video_core/engines/shader_bytecode.h
index 7f613370b..55d32ace6 100644
--- a/src/video_core/engines/shader_bytecode.h
+++ b/src/video_core/engines/shader_bytecode.h
@@ -387,6 +387,13 @@ enum class IpaSampleMode : u64 {
Offset = 2,
};
+enum class LmemStoreCacheManagement : u64 {
+ Default = 0,
+ CG = 1,
+ CS = 2,
+ WT = 3,
+};
+
struct IpaMode {
IpaInterpMode interpolation_mode;
IpaSampleMode sampling_mode;
@@ -782,7 +789,7 @@ union Instruction {
} ld_l;
union {
- BitField<44, 2, u64> unknown;
+ BitField<44, 2, LmemStoreCacheManagement> cache_management;
} st_l;
union {
diff --git a/src/video_core/shader/decode/memory.cpp b/src/video_core/shader/decode/memory.cpp
index ea3c71eed..a272c6233 100644
--- a/src/video_core/shader/decode/memory.cpp
+++ b/src/video_core/shader/decode/memory.cpp
@@ -8,6 +8,7 @@
#include "common/assert.h"
#include "common/common_types.h"
+#include "common/logging/log.h"
#include "video_core/engines/shader_bytecode.h"
#include "video_core/shader/shader_ir.h"
@@ -205,8 +206,8 @@ u32 ShaderIR::DecodeMemory(NodeBlock& bb, u32 pc) {
break;
}
case OpCode::Id::ST_L: {
- UNIMPLEMENTED_IF_MSG(instr.st_l.unknown == 0, "ST_L Unhandled mode: {}",
- static_cast<u32>(instr.st_l.unknown.Value()));
+ LOG_DEBUG(HW_GPU, "ST_L cache management mode: {}",
+ static_cast<u64>(instr.st_l.cache_management.Value()));
const auto GetLmemAddr = [&](s32 offset) {
ASSERT(offset % 4 == 0);