Browse Source

shader_ir: Correct max sizing

Fernando Sahmkow 7 years ago
parent
commit
cfb3db1a32
2 changed files with 2 additions and 2 deletions
  1. 1 1
      src/video_core/shader/control_flow.cpp
  2. 1 1
      src/video_core/shader/decode.cpp

+ 1 - 1
src/video_core/shader/control_flow.cpp

@@ -163,7 +163,7 @@ enum class ParseResult : u32 {
 
 ParseResult ParseCode(CFGRebuildState& state, u32 address, ParseInfo& parse_info) {
     u32 offset = static_cast<u32>(address);
-    const u32 end_address = static_cast<u32>(state.program_size - 10U) * 8U;
+    const u32 end_address = static_cast<u32>(state.program_size / 8U);
 
     const auto insert_label = ([](CFGRebuildState& state, u32 address) {
         auto pair = state.labels.emplace(address);

+ 1 - 1
src/video_core/shader/decode.cpp

@@ -39,7 +39,7 @@ void ShaderIR::Decode() {
     std::memcpy(&header, program_code.data(), sizeof(Tegra::Shader::Header));
 
     disable_flow_stack = false;
-    const auto info = ScanFlow(program_code, program_code.size(), main_offset);
+    const auto info = ScanFlow(program_code, program_size, main_offset);
     if (info) {
         const auto& shader_info = *info;
         coverage_begin = shader_info.start;