Browse Source
Merge pull request #2315 from ReinUsesLisp/severity-decompiler
shader_ir/decode: Reduce the severity of common assertions
pull/15/merge
bunnei
7 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with
20 additions and
5 deletions
-
src/video_core/engines/shader_bytecode.h
-
src/video_core/shader/decode/memory.cpp
|
|
|
@ -387,6 +387,20 @@ enum class IpaSampleMode : u64 { |
|
|
|
Offset = 2, |
|
|
|
}; |
|
|
|
|
|
|
|
enum class LmemLoadCacheManagement : u64 { |
|
|
|
Default = 0, |
|
|
|
LU = 1, |
|
|
|
CI = 2, |
|
|
|
CV = 3, |
|
|
|
}; |
|
|
|
|
|
|
|
enum class LmemStoreCacheManagement : u64 { |
|
|
|
Default = 0, |
|
|
|
CG = 1, |
|
|
|
CS = 2, |
|
|
|
WT = 3, |
|
|
|
}; |
|
|
|
|
|
|
|
struct IpaMode { |
|
|
|
IpaInterpMode interpolation_mode; |
|
|
|
IpaSampleMode sampling_mode; |
|
|
|
@ -782,7 +796,7 @@ union Instruction { |
|
|
|
} ld_l; |
|
|
|
|
|
|
|
union { |
|
|
|
BitField<44, 2, u64> unknown; |
|
|
|
BitField<44, 2, LmemStoreCacheManagement> cache_management; |
|
|
|
} st_l; |
|
|
|
|
|
|
|
union { |
|
|
|
|
|
|
|
@ -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"
|
|
|
|
|
|
|
|
@ -102,8 +103,8 @@ u32 ShaderIR::DecodeMemory(NodeBlock& bb, u32 pc) { |
|
|
|
break; |
|
|
|
} |
|
|
|
case OpCode::Id::LD_L: { |
|
|
|
UNIMPLEMENTED_IF_MSG(instr.ld_l.unknown == 1, "LD_L Unhandled mode: {}", |
|
|
|
static_cast<u32>(instr.ld_l.unknown.Value())); |
|
|
|
LOG_DEBUG(HW_GPU, "LD_L cache management mode: {}", |
|
|
|
static_cast<u64>(instr.ld_l.unknown.Value())); |
|
|
|
|
|
|
|
const auto GetLmem = [&](s32 offset) { |
|
|
|
ASSERT(offset % 4 == 0); |
|
|
|
@ -214,8 +215,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); |
|
|
|
|