Commit Graph

31 Commits

Author SHA1 Message Date
kd-11
f2913e4692 rsx/fp: Reimplement GLSL code generation from CFG 2025-12-10 13:07:07 +03:00
kd-11
26fd0510ab rsx/fp: Enable CFG passes and emit block epilogues 2025-12-10 13:07:07 +03:00
kd-11
e8e2d4b93d rsx/fp: Fix issues with FP decompiler using new CFG system 2025-12-10 13:07:07 +03:00
kd-11
5c187f5cda rsx/fp: Use CFG to decompile fragment programs 2025-11-24 16:48:03 +03:00
kd-11
cb7650240c rsx/fp: Use CFG for fragment program 2025-11-24 16:48:03 +03:00
kd-11
2275e689ce rsx: Restore optimizations in fragment shader recompiler 2025-10-13 12:12:22 +03:00
kd-11
cd3e4fc8f1 rsx: Fix bugs in fragment program constants stream maagement
- Fix misplaced semicolon in GL fragment program compiler
- Add a simple lookup to avoid silly reverse-indexing issues in FP::AddConst
2025-10-13 12:12:22 +03:00
kd-11
aa119e1413 vk: Fix fragment constants indexing 2025-10-13 12:12:22 +03:00
kd-11
e0e0d1ee0b rsx/vk: Convert fragment constants from static struct to array of vec4
- Also allows vulkan to use full-range binding model
2025-10-13 12:12:22 +03:00
RipleyTom
cd87a64621 Headers cleanup 2025-02-11 20:38:35 +01:00
kd-11
27c56cde22 rsx/shaders: Track active MRT count per shader
- Also use more robust hashing to avoid collisions
2025-01-10 04:34:28 +03:00
kd-11
dce0abc8b9 rsx/fp: Re-design register write tracking
- Always collapse register writes when exporting FS outputs
2025-01-10 04:34:28 +03:00
kd-11
14e1214645 rsx: Properly implement 8-bit signed renormalization for textures 2024-06-10 20:41:45 +03:00
oltolm
9e9a3262eb simplify template code like std::is_same<T>::value 2024-04-21 18:15:17 +03:00
kd-11
186fe53279 rsx: Fix the default shadow codegen path 2023-07-09 19:33:48 +03:00
kd-11
d77a78cdf1 rsx: Rework texture coordinate handling to support clamping and a more sane scale-bias setup 2023-07-04 09:31:51 +03:00
kd-11
66cb855db0 rsx: Fix fragment program codegen 2023-07-04 09:31:51 +03:00
kd-11
9a35684507 rsx: Don't accept garbage shader input 2023-02-07 13:51:26 +03:00
kd-11
bc7ed8eaab rsx/vk: Rework MSAA implementation 2022-03-17 22:02:20 +03:00
kd-11
28d7af313b rsx: Remove noisy debug print 2021-12-24 15:13:33 +03:00
DH
cccfb89aa0 [Config] Use std::less<> for std::map<...>
Reduces amount of string copies
[Utilities] fmt::replace_all: avoid creation of temporary strings
2021-12-02 21:36:57 +03:00
kd-11
b3725baf5a rsx: Rewrite shader decompiler texture dispatch 2021-10-09 15:10:36 +03:00
kd-11
b0e352c44e Add missing const 2021-08-26 13:55:00 +03:00
kd-11
2ff407ac6a rsx/fp: Fix perspective correction handling
- Perspective correction flag multiplies VP output by HPOS.w.
  NOTE: Not the same as division by w when it comes to NaN/Inf problems!!
- Restructure indexed loads a bit to avoid re-initializing registers unnecessarily
2021-08-26 13:55:00 +03:00
kd-11
57b9acec62 rsx: Implement indexed dynamic attribute load 2021-08-24 16:52:18 +03:00
kd-11
3eb37344cd rsx/fp: Fix indexed TEX[n] loads 2021-08-20 11:59:05 +03:00
Nekotekina
658b4f70ef Fix some warnings 2021-07-30 09:31:36 +03:00
Megamouse
50354253c8 replace some random Emu.Pause with fatal errors 2021-07-20 19:47:00 +02:00
kd-11
20bd723e7c rsx: Add floor workaround for GPUs with rounding issues
- Mainly affects nvidia where x/w * w can sometimes return a value smaller than x.
  In such conditions, floor(x) will return x-1 if x is an integer which is horribly wrong and exaggerates minor precision drift to great proportions.
2021-06-09 10:55:55 +03:00
kd-11
39815801aa rsx: Implement proper decoding for some obscure fragment instructions
PK4UBG and UP4UBG were dropped from the NV_fragment_program spec in 2002.
Not much information about them remains but seems pretty straightforward.
2021-06-05 21:02:14 +03:00
kd-11
c5a06dab0a rsx: Refactor program texture state handling to be persistent across shader swaps 2021-05-15 23:51:12 +03:00