diff options
| author | Admiral H. Curtiss <pikachu025@gmail.com> | 2023-01-03 18:07:06 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-01-03 18:07:06 +0100 |
| commit | ed9915308b8c14853103eac8bec455b7c072f5ec (patch) | |
| tree | 7a5325923ae9d770bcb8d6de72b5c54e4d43c277 /Source/Core/VideoCommon/PixelShaderGen.cpp | |
| parent | e4c007e2e1a442dbab620f91ca5f6b9b2b27dd5b (diff) | |
| parent | f3df3a772728e7cc1d1a8ad4cda9b6154e8d1c3c (diff) | |
Merge pull request #11386 from Pokechu22/manual-texture-sampling-stereoscopic-layer-bounds-check
PixelShaderGen: Clamp texture layer when using manual texture sampling with stereoscopic 3D
Diffstat (limited to 'Source/Core/VideoCommon/PixelShaderGen.cpp')
| -rw-r--r-- | Source/Core/VideoCommon/PixelShaderGen.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/Source/Core/VideoCommon/PixelShaderGen.cpp b/Source/Core/VideoCommon/PixelShaderGen.cpp index 3a612382e6..7db650e431 100644 --- a/Source/Core/VideoCommon/PixelShaderGen.cpp +++ b/Source/Core/VideoCommon/PixelShaderGen.cpp @@ -615,6 +615,7 @@ uint WrapCoord(int coord, uint wrap, int size) {{ int3 size = textureSize(tex, 0); int size_s = size.x; int size_t = size.y; + int num_layers = size.z; )"); if (g_ActiveConfig.backend_info.bSupportsTextureQueryLevels) { @@ -633,6 +634,8 @@ uint WrapCoord(int coord, uint wrap, int size) {{ // Rescale uv to account for the new texture size uv.x = (uv.x * size_s) / native_size_s; uv.y = (uv.y * size_t) / native_size_t; + // Clamp layer as well (texture() automatically clamps, but texelFetch() doesn't) + layer = clamp(layer, 0, num_layers - 1); )"); } else |
