diff options
author | ameerj <52414509+ameerj@users.noreply.github.com> | 2021-06-09 23:33:48 -0400 |
---|---|---|
committer | ameerj <52414509+ameerj@users.noreply.github.com> | 2021-07-22 21:51:35 -0400 |
commit | 15bdd27cac4a0b1e6cd168272dc337cd685ef144 (patch) | |
tree | ae1d5c1a93bfc500e3603cb4fad8318676a13f1d | |
parent | 7eaa74ad235b669608debaf3583af94bd675b6c6 (diff) |
shader_environment: Add shader_local_memory_crs_size to local memory size
Fixes DOOM 2016 missing local memory
-rw-r--r-- | src/shader_recompiler/program_header.h | 4 | ||||
-rw-r--r-- | src/video_core/shader_environment.cpp | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/src/shader_recompiler/program_header.h b/src/shader_recompiler/program_header.h index 15f43f2d8e..6933750aae 100644 --- a/src/shader_recompiler/program_header.h +++ b/src/shader_recompiler/program_header.h @@ -230,8 +230,8 @@ struct ProgramHeader { }; [[nodiscard]] u64 LocalMemorySize() const noexcept { - return (common1.shader_local_memory_low_size | - (common2.shader_local_memory_high_size << 24)); + return static_cast<u64>(common1.shader_local_memory_low_size) | + (static_cast<u64>(common2.shader_local_memory_high_size) << 24); } }; static_assert(sizeof(ProgramHeader) == 0x50, "Incorrect structure size"); diff --git a/src/video_core/shader_environment.cpp b/src/video_core/shader_environment.cpp index c93174519d..a7a57a36fb 100644 --- a/src/video_core/shader_environment.cpp +++ b/src/video_core/shader_environment.cpp @@ -69,7 +69,7 @@ u32 GenericEnvironment::TextureBoundBuffer() const { } u32 GenericEnvironment::LocalMemorySize() const { - return local_memory_size; + return local_memory_size + sph.common3.shader_local_memory_crs_size; } u32 GenericEnvironment::SharedMemorySize() const { |