diff options
| author | 2022-03-06 19:54:40 +0100 | |
|---|---|---|
| committer | 2022-10-06 21:00:52 +0200 | |
| commit | ba34cf0a691bc73ae6b2d8db6019b1f10d22dde5 (patch) | |
| tree | defc91f25d4430b62bdf45af4933edbf46171f93 /src/video_core/renderer_vulkan | |
| parent | Shader Decompiler: Fix dangerous behavior of invalid iterator insertion. (diff) | |
| download | yuzu-ba34cf0a691bc73ae6b2d8db6019b1f10d22dde5.tar.gz yuzu-ba34cf0a691bc73ae6b2d8db6019b1f10d22dde5.tar.xz yuzu-ba34cf0a691bc73ae6b2d8db6019b1f10d22dde5.zip | |
Shader Decompiler: Check for shift when deriving composite samplers.
Diffstat (limited to 'src/video_core/renderer_vulkan')
| -rw-r--r-- | src/video_core/renderer_vulkan/vk_compute_pipeline.cpp | 4 | ||||
| -rw-r--r-- | src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp | 5 |
2 files changed, 5 insertions, 4 deletions
diff --git a/src/video_core/renderer_vulkan/vk_compute_pipeline.cpp b/src/video_core/renderer_vulkan/vk_compute_pipeline.cpp index 6447210e2..7906e11a8 100644 --- a/src/video_core/renderer_vulkan/vk_compute_pipeline.cpp +++ b/src/video_core/renderer_vulkan/vk_compute_pipeline.cpp | |||
| @@ -126,8 +126,8 @@ void ComputePipeline::Configure(Tegra::Engines::KeplerCompute& kepler_compute, | |||
| 126 | const u32 secondary_offset{desc.secondary_cbuf_offset + index_offset}; | 126 | const u32 secondary_offset{desc.secondary_cbuf_offset + index_offset}; |
| 127 | const GPUVAddr separate_addr{cbufs[desc.secondary_cbuf_index].Address() + | 127 | const GPUVAddr separate_addr{cbufs[desc.secondary_cbuf_index].Address() + |
| 128 | secondary_offset}; | 128 | secondary_offset}; |
| 129 | const u32 lhs_raw{gpu_memory.Read<u32>(addr)}; | 129 | const u32 lhs_raw{gpu_memory.Read<u32>(addr) << desc.shift_left}; |
| 130 | const u32 rhs_raw{gpu_memory.Read<u32>(separate_addr)}; | 130 | const u32 rhs_raw{gpu_memory.Read<u32>(separate_addr) << desc.secondary_shift_left}; |
| 131 | return TexturePair(lhs_raw | rhs_raw, via_header_index); | 131 | return TexturePair(lhs_raw | rhs_raw, via_header_index); |
| 132 | } | 132 | } |
| 133 | } | 133 | } |
diff --git a/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp b/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp index 1e993185f..f47786f48 100644 --- a/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp +++ b/src/video_core/renderer_vulkan/vk_graphics_pipeline.cpp | |||
| @@ -314,8 +314,9 @@ void GraphicsPipeline::ConfigureImpl(bool is_indexed) { | |||
| 314 | const u32 second_offset{desc.secondary_cbuf_offset + index_offset}; | 314 | const u32 second_offset{desc.secondary_cbuf_offset + index_offset}; |
| 315 | const GPUVAddr separate_addr{cbufs[desc.secondary_cbuf_index].address + | 315 | const GPUVAddr separate_addr{cbufs[desc.secondary_cbuf_index].address + |
| 316 | second_offset}; | 316 | second_offset}; |
| 317 | const u32 lhs_raw{gpu_memory->Read<u32>(addr)}; | 317 | const u32 lhs_raw{gpu_memory->Read<u32>(addr) << desc.shift_left}; |
| 318 | const u32 rhs_raw{gpu_memory->Read<u32>(separate_addr)}; | 318 | const u32 rhs_raw{gpu_memory->Read<u32>(separate_addr) |
| 319 | << desc.secondary_shift_left}; | ||
| 319 | const u32 raw{lhs_raw | rhs_raw}; | 320 | const u32 raw{lhs_raw | rhs_raw}; |
| 320 | return TexturePair(raw, via_header_index); | 321 | return TexturePair(raw, via_header_index); |
| 321 | } | 322 | } |