Commit Graph

88 Commits

Author SHA1 Message Date
lizzie 0e6ea2d9d6 [shader_recompiler] Add IAbs64 to prevent errors when using I2F with a 64-bit packed CBUF variant (#2918)
- Using I2F cbuf variant (packed 32x2 aka. U64)
- Code will call IAbs() if some conditions are met (signed + abs bit)
- Uh oh we don't have a variant for 64 bits!
- Fuck now we just made BAD ir code :(

Signed-off-by: lizzie <lizzie@eden-emu.dev>

Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/2918
Reviewed-by: MaranBr <maranbr@eden-emu.dev>
Reviewed-by: Caio Oliveira <caiooliveirafarias0@gmail.com>
Co-authored-by: lizzie <lizzie@eden-emu.dev>
Co-committed-by: lizzie <lizzie@eden-emu.dev>
2025-11-03 20:20:19 +01:00
lizzie 7962c81738 [spirv] new castings for int8/int16/etc (#86)
This commit introduces extended support for low-precision integer casting (int8, int16) in the SPIR-V shader generation pipeline, improving compatibility and performance across both Android and PC platforms.

Co-authored-by: CamilleLaVey <camillelavey99@gmail.com>
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/86
Co-authored-by: lizzie <lizzie@eden-emu.dev>
Co-committed-by: lizzie <lizzie@eden-emu.dev>
2025-07-23 01:02:10 +02:00
darktux 9f4ef30b55 Add SR_WScaleFactorXY/SR_WScaleFactorZ stubs for Prince of Persia (#5)
Pulled in and cleaned up from Sudachi

Reviewed-on: http://y2nlvhmmk5jnsvechppxnbyzmmv3vbl7dvzn6ltwcdbpgxixp3clkgqd.onion/darktux/torzu/pulls/5
Co-authored-by: darktux <darktux@y2nlvhmmk5jnsvechppxnbyzmmv3vbl7dvzn6ltwcdbpgxixp3clkgqd.onion>
Co-committed-by: darktux <darktux@y2nlvhmmk5jnsvechppxnbyzmmv3vbl7dvzn6ltwcdbpgxixp3clkgqd.onion>
2025-04-04 03:40:48 +02:00
liamwhite a5bc2444d2 Merge pull request #9694 from ameerj/txq-mips
shader_recompiler: TXQ: Skip QueryLevels when possible
2023-01-29 12:27:26 -05:00
ameerj 2d2558797c shader_recompiler: TXQ: Skip QueryLevels when possible 2023-01-28 16:25:18 -05:00
ameerj 382717743a shader_recompiler: Remove S32 IR type
The frontend IR opcodes do not distinguish between signed and unsigned integer types.

Fixes broken shaders when IR validation/graphics debugging is enabled for shaders that used BitCastS32F32
2023-01-25 22:03:15 -05:00
FengChen 348c6e5b28 video_core: Fix few issues in Tess stage 2022-11-07 15:42:42 +08:00
Feng Chen bcf6a7c0dd video_core: Fix SNORM texture buffer emulating error (#9001) 2022-11-04 02:39:42 -04:00
FengChen 38e9c78843 video_core: Generate mipmap texture by drawing 2022-09-20 11:55:43 +08:00
Morph 2b87305d31 general: Convert source file copyright comments over to SPDX
This formats all copyright comments according to SPDX formatting guidelines.
Additionally, this resolves the remaining GPLv2 only licensed files by relicensing them to GPLv2.0-or-later.
2022-04-23 05:55:32 -04:00
ameerj 94b86a8ada lower_int64_to_int32: Add 64-bit atomic fallbacks 2022-01-29 19:56:02 -05:00
ameerj 0c5e641757 shaders: Add U64->U32x2 Atomic fallback functions 2022-01-29 19:55:53 -05:00
ameerj 22a4d26479 shader: Add integer attribute get optimization pass
Works around an nvidia driver bug, where casting the integer attributes to float and back to an integer always returned 0.
2021-12-29 19:03:49 -05:00
ReinUsesLisp d04e2dac6c shader: Properly scale image reads and add GL SPIR-V support
Thanks for everything!
2021-11-16 22:11:29 +01:00
ReinUsesLisp 7f88938d72 shader: Add IsTextureScaled opcode 2021-11-16 22:11:28 +01:00
ReinUsesLisp 8cfa8cda16 shader: Add integer division opcodes 2021-11-16 22:11:28 +01:00
ReinUsesLisp 47d1d881cf shader: Add resolution down factor opcode 2021-11-16 22:11:27 +01:00
ameerj 508e41777b shader: Ignore global memory ops on devices lacking int64 support 2021-07-22 21:51:40 -04:00
ReinUsesLisp f158fe9359 shader: Remove IAbs64 2021-07-22 21:51:39 -04:00
ReinUsesLisp 04c1dca457 shader: Move loop safety tests to code emission 2021-07-22 21:51:39 -04:00
lat9nq 3a70b6c79b shader: Add shader loop safety check settings
Also add a setting for enable Nsight Aftermath.
2021-07-22 21:51:35 -04:00
ReinUsesLisp 5c6dc51c69 shader: Read branch conditions from an instruction
Fixes the identity removal pass.
2021-07-22 21:51:32 -04:00
ReinUsesLisp f2ae32fa76 glasm: Initial implementation of phi nodes on GLASM 2021-07-22 21:51:31 -04:00
ReinUsesLisp 03f6d424ce glasm: Rework control flow introducing a syntax list
This commit regresses VertexA shaders, their transformation pass has to
be adapted to the new control flow.
2021-07-22 21:51:31 -04:00
ameerj 455872a4af shader: Implement Int32 SUATOM/SURED 2021-07-22 21:51:30 -04:00
FernandoS27 a2fac91c47 shader: Implement VertexA stage 2021-07-22 21:51:29 -04:00
ReinUsesLisp 052317e748 shader: Implement indexed textures 2021-07-22 21:51:28 -04:00
FernandoS27 2f01c7fb62 shader: Add coarse derivatives 2021-07-22 21:51:28 -04:00
FernandoS27 b1e325f317 shader: Implement fine derivates constant propagation 2021-07-22 21:51:28 -04:00
FernandoS27 6c60109967 shader: Implement SR_Y_DIRECTION 2021-07-22 21:51:28 -04:00
ReinUsesLisp 6d540c6f2e shader: Fix memory barriers 2021-07-22 21:51:28 -04:00
ReinUsesLisp ad1507b4a5 shader: Implement SampleMask 2021-07-22 21:51:28 -04:00
ReinUsesLisp cc96469019 shader: Implement PIXLD.MY_INDEX 2021-07-22 21:51:28 -04:00
ReinUsesLisp 38908d0f7e shader: Implement tessellation shaders, polygon mode and invocation id 2021-07-22 21:51:27 -04:00
ReinUsesLisp 4b32692423 shader: Implement geometry shaders 2021-07-22 21:51:27 -04:00
ReinUsesLisp 40948b18ac shader: Implement OUT 2021-07-22 21:51:27 -04:00
ReinUsesLisp 879fb08101 shader: Implement SR_THREAD_KILL 2021-07-22 21:51:27 -04:00
ameerj 62c3bef607 shader: Implement ATOM/S and RED 2021-07-22 21:51:27 -04:00
ReinUsesLisp 8ec58e16b2 shader: Move LaneId to the warp emission file and fix AMD 2021-07-22 21:51:27 -04:00
ReinUsesLisp 5ab1ac4f29 shader: Implement SULD and SUST 2021-07-22 21:51:26 -04:00
ReinUsesLisp ba2130d5a5 shader: Add subgroup masks 2021-07-22 21:51:26 -04:00
ReinUsesLisp b580c1e208 shader: Implement BAR and fix memory barriers 2021-07-22 21:51:26 -04:00
ReinUsesLisp 9db035faec shader: Reimplement GetCbufU64 as GetCbufU32x2
It may generate better code on some compilers and it's easier to handle.
2021-07-22 21:51:26 -04:00
FernandoS27 741b21715a shader: Address Feedback 2021-07-22 21:51:26 -04:00
FernandoS27 5a6eb31578 shader: Implement SR_LaneId 2021-07-22 21:51:26 -04:00
FernandoS27 a9f79b6553 shader: Implement MEMBAR 2021-07-22 21:51:26 -04:00
FernandoS27 5c94fba511 shader: Improve VOTE.VTG stub 2021-07-22 21:51:25 -04:00
FernandoS27 8f2238dc3d shader: Fix TXD 2021-07-22 21:51:25 -04:00
ReinUsesLisp 696f326cd1 shader: Always pass a lod for TexelFetch 2021-07-22 21:51:25 -04:00
FernandoS27 be5936dea2 shader: Implement ImageGradient 2021-07-22 21:51:25 -04:00