shader_environment: Add shader_local_memory_crs_size to local memory size

Fixes DOOM 2016 missing local memory
This commit is contained in:
ameerj 2021-06-09 23:33:48 -04:00
parent 7eaa74ad23
commit 15bdd27cac
2 changed files with 3 additions and 3 deletions

View file

@ -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");

View file

@ -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 {