Browse Source
[vk, ogl] Remove dedicated precomputed swizzle table; use shorter inline table in block_linear swizzle shaders (#4146)
[vk, ogl] Remove dedicated precomputed swizzle table; use shorter inline table in block_linear swizzle shaders (#4146)
old table = 64 * 8 * sizeof(u32) = 512 * 4 = 4096 bytes
new table = 8 * sizeof(u32) = 8 * 4 = 32 bytes
the expression
```glsl
return ((pos & 0x0180) >> 1)
| ((pos & 0x0040) >> 2)
| ((pos & 0x0020) << 3)
| ((pos & 0x0010) << 1)
| ((pos & 0x000f) << 0);
```
is equivalent for generating the table but idk if we'd want that
Signed-off-by: lizzie <lizzie@eden-emu.dev>
Co-authored-by: CamilleLaVey <camillelavey99@gmail.com>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4146
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
crueter-patch-2
committed by
crueter
No known key found for this signature in database
GPG Key ID: 425ACD2D4830EBC6
9 changed files with 101 additions and 176 deletions
-
24src/video_core/host_shaders/block_linear_unswizzle_2d.comp
-
24src/video_core/host_shaders/block_linear_unswizzle_3d.comp
-
26src/video_core/host_shaders/block_linear_unswizzle_3d_bcn.comp
-
18src/video_core/renderer_opengl/util_shaders.cpp
-
6src/video_core/renderer_opengl/util_shaders.h
-
110src/video_core/renderer_vulkan/vk_compute_pass.cpp
-
43src/video_core/renderer_vulkan/vk_texture_cache.cpp
-
5src/video_core/renderer_vulkan/vk_texture_cache.h
-
21src/video_core/textures/decoders.h
Write
Preview
Loading…
Cancel
Save
Reference in new issue