Commit Graph

332 Commits

Author SHA1 Message Date
Lander Gallastegi
62b7dc2300 Fix build 2025-04-08 02:35:02 +02:00
Lander Gallastegi
5c736b3edd Add break conditions to subprogram 2025-04-08 02:35:02 +02:00
Lander Gallastegi
01239233b2 Finish emits 2025-04-08 02:35:02 +02:00
Lander Gallastegi
4ea2ce34bd Floating point and fixes 2025-04-08 02:35:02 +02:00
Lander Gallastegi
584292f620 Utils, context, convert and ctx get set 2025-04-08 02:35:02 +02:00
Lander Gallastegi
61630c8a4d Copy context get set 2025-04-08 02:35:02 +02:00
Lander Gallastegi
4f734c60ec Composite 2025-04-08 02:35:02 +02:00
Lander Gallastegi
1d572c2fb7 Implement some opecodes 2025-04-08 02:35:02 +02:00
Lander Gallastegi
5b70b15396 Better conditions 2025-04-08 02:35:02 +02:00
Lander Gallastegi
a80f7b6a49 x64 backend core and context 2025-04-08 02:35:02 +02:00
Lander Gallastegi
3cbda54ac4 x64 backend base 2025-04-08 02:35:02 +02:00
Lander Gallastegi
86197df491 Flattening pass adjustments 2025-04-08 02:35:02 +02:00
Lander Gallastegi
45972fc28d clang-format 2025-04-08 02:35:02 +02:00
Lander Gallastegi
3e03873d43 Fixed ImmValue compute 2025-04-08 02:35:02 +02:00
Lander Gallastegi
5d8a170632 Adjust SPIR-V EmitReadConst 2025-04-08 02:35:02 +02:00
Lander Gallastegi
f67ce15321 Fix GCC build 2025-04-08 02:35:02 +02:00
Lander Gallastegi
09335b32cb Fix TrackSharp 2025-04-08 02:35:02 +02:00
Lander Gallastegi
f8feae9368 Finish IR 2025-04-08 02:34:45 +02:00
Lander Gallastegi
86a95676fc Num executions 2025-04-08 02:34:26 +02:00
Lander Gallastegi
bfc4881240 clang-format 2025-04-08 02:34:26 +02:00
Lander Gallastegi
5418d80de8 ComputeValue rewrite 2025-04-08 02:34:26 +02:00
Lander Gallastegi
ec8a60672e Compute value 2025-04-08 02:34:26 +02:00
Lander Gallastegi
81250a64de Typo 2025-04-08 02:34:26 +02:00
Lander Gallastegi
948c1cd1f1 Operation codes 2025-04-08 02:34:26 +02:00
Lander Gallastegi
22c548b9c7 Use correct types 2025-04-08 02:34:26 +02:00
Lander Gallastegi
a84625a518 Squashed commit of the following:
commit 39328be45ed83d252e491b61da5cb4d767ff100d
Author: Lander Gallastegi <landergallastegi@gmail.com>
Date:   Tue Mar 11 15:40:44 2025 +0100

    Fix trivialy copiable

commit f0633525b343dab7ea75cd7c809c936cb67e572f
Author: Lander Gallastegi <landergallastegi@gmail.com>
Date:   Tue Mar 11 00:29:42 2025 +0100

    Compute value

commit 8c42a014ee925b61c5ea5721423da3211a635eb8
Author: Lander Gallastegi <landergallastegi@gmail.com>
Date:   Tue Mar 11 00:29:31 2025 +0100

    Add missing operations
2025-04-08 02:34:26 +02:00
Lander Gallastegi
084f3e1e95 clang-format 2025-04-08 02:34:26 +02:00
Lander Gallastegi
1c16a9bc9a Better documentation 2025-04-08 02:34:26 +02:00
Lander Gallastegi
7a93230f2e ImmValue 2025-04-08 02:34:26 +02:00
Lander Gallastegi
5843352c28 Fix subprogram generation 2025-04-08 02:34:26 +02:00
Lander Gallastegi
03d4471c3b clang-format 2025-04-08 02:34:26 +02:00
Lander Gallastegi
e15bf43e26 Subprogram creation 2025-04-08 02:34:26 +02:00
Lander Gallastegi
6fff3a03db Usefulness of conditional tree 2025-04-08 02:34:26 +02:00
Lander Gallastegi
4bf9bbf86f Add conditional tree 2025-04-08 02:34:26 +02:00
Lander Gallastegi
60be1e4376 Fix unreacheable ASL dump 2025-04-08 02:34:26 +02:00
Lander Gallastegi
6465310942 ASL dumping 2025-04-08 02:34:26 +02:00
Lander Gallastegi
38957ba470 Handle non inmediate offset on S_LOAD_DWORD 2025-04-08 02:34:26 +02:00
Lander Gallastegi
d88294a34c Dump IR program 2025-04-08 02:34:26 +02:00
squidbus
afd0251dd2
shader_recompiler: Use VK_AMD_shader_trinary_minmax when available. (#2739)
Some checks are pending
Build and Release / reuse (push) Waiting to run
Build and Release / clang-format (push) Waiting to run
Build and Release / get-info (push) Waiting to run
Build and Release / windows-sdl (push) Blocked by required conditions
Build and Release / windows-qt (push) Blocked by required conditions
Build and Release / macos-sdl (push) Blocked by required conditions
Build and Release / macos-qt (push) Blocked by required conditions
Build and Release / linux-sdl (push) Blocked by required conditions
Build and Release / linux-qt (push) Blocked by required conditions
Build and Release / linux-sdl-gcc (push) Blocked by required conditions
Build and Release / linux-qt-gcc (push) Blocked by required conditions
Build and Release / pre-release (push) Blocked by required conditions
* shader_recompiler: Use VK_AMD_shader_trinary_minmax when available.

* shader_recompiler: Simplify signed/unsigned trinary instruction variants.
2025-04-02 23:36:54 +03:00
Stephen Miller
b0a12c02e1
Add S_SETPRIO to EmitFlowControl (#2727)
Some checks are pending
Build and Release / reuse (push) Waiting to run
Build and Release / clang-format (push) Waiting to run
Build and Release / get-info (push) Waiting to run
Build and Release / windows-sdl (push) Blocked by required conditions
Build and Release / windows-qt (push) Blocked by required conditions
Build and Release / macos-sdl (push) Blocked by required conditions
Build and Release / macos-qt (push) Blocked by required conditions
Build and Release / linux-sdl (push) Blocked by required conditions
Build and Release / linux-qt (push) Blocked by required conditions
Build and Release / linux-sdl-gcc (push) Blocked by required conditions
Build and Release / linux-qt-gcc (push) Blocked by required conditions
Build and Release / pre-release (push) Blocked by required conditions
By squidbus' suggestion, I've added a warning log for this case.
2025-03-31 12:55:14 +03:00
TheTurtle
1f9ac53c28
shader_recompiler: Improve divergence handling and readlane elimintation (#2667)
Some checks are pending
Build and Release / reuse (push) Waiting to run
Build and Release / clang-format (push) Waiting to run
Build and Release / get-info (push) Waiting to run
Build and Release / windows-sdl (push) Blocked by required conditions
Build and Release / windows-qt (push) Blocked by required conditions
Build and Release / macos-sdl (push) Blocked by required conditions
Build and Release / macos-qt (push) Blocked by required conditions
Build and Release / linux-sdl (push) Blocked by required conditions
Build and Release / linux-qt (push) Blocked by required conditions
Build and Release / linux-sdl-gcc (push) Blocked by required conditions
Build and Release / linux-qt-gcc (push) Blocked by required conditions
Build and Release / pre-release (push) Blocked by required conditions
* control_flow_graph: Improve divergence handling

* recompiler: Simplify optimization passes

Removes a redudant constant propagation and cleans up the passes a little

* ir_passes: Add new readlane elimination pass

The algorithm has grown complex enough where it deserves its own pass. The old implementation could only handle a single phi level properly,
however this one should be able to eliminate vast majority of lane cases remaining. It first performs a traversal of the phi tree to ensure
that all phi sources can be rewritten into an expected value and then performs elimintation by recursively duplicating the phi nodes at each step,
in order to preserve control flow.

* clang format

* control_flow_graph: Remove debug code
2025-03-23 00:35:42 +02:00
TheTurtle
2a05af22e1
emit_spirv: Fix comparison type (#2658)
Some checks are pending
Build and Release / reuse (push) Waiting to run
Build and Release / clang-format (push) Waiting to run
Build and Release / get-info (push) Waiting to run
Build and Release / windows-sdl (push) Blocked by required conditions
Build and Release / windows-qt (push) Blocked by required conditions
Build and Release / macos-sdl (push) Blocked by required conditions
Build and Release / macos-qt (push) Blocked by required conditions
Build and Release / linux-sdl (push) Blocked by required conditions
Build and Release / linux-qt (push) Blocked by required conditions
Build and Release / linux-sdl-gcc (push) Blocked by required conditions
Build and Release / linux-qt-gcc (push) Blocked by required conditions
Build and Release / pre-release (push) Blocked by required conditions
2025-03-19 23:20:00 +02:00
baggins183
c59d5eef45
Specialize vertex attributes on dst_sel (#2580)
* Specialize vertex attributes on dst_sel

* compare vs attrib specs by default, ignore NumberFmt when vertex input dynamic state is supported

* specialize data_format when attribute uses step rates

* use num_components in data fmt instead of fmt itself
2025-03-02 19:17:11 -08:00
Missake212
a583a9abe0
fixes to get in game (#2583) 2025-03-02 22:13:23 +02:00
baggins183
7a4244ac8b
Misc Cleanups (#2579)
-dont do trivial phi removal during SRT pass, that's now done in
ssa_rewrite
-remove unused variable when walking tess attributes
-fix some tess comments
2025-03-02 21:52:32 +02:00
Missake212
76483f9c7b
opcode implementation test (#2567) 2025-03-02 21:31:49 +02:00
Paris Oplopoios
fd3bfdae80
Implement some RDNA flags (#2510) 2025-02-24 19:52:57 +02:00
TheTurtle
76b4da6212
video_core: Various small improvements and bug fixes (#2525)
* ir_passes: Add barrier at end of block too

* vk_platform: Always assign names to resources

* texture_cache: Better overlap handling

* liverpool: Avoid resuming ce_task when its finished

* spirv_quad_rect: Skip default attributes

Fixes some crashes

* memory: Improve buffer size clamping

* liverpool: Relax binary header validity check

* liverpool: Stub SetPredication with a warning

* Better than outright crash

* emit_spirv: Implement round to zero mode

* liverpool: queue::pop takes the front element

* image_info: Remove obsolete assert

The old code assumed the mip only had 1 layer thus a right overlap could not return mip 0. But with the new path we handle images that are both mip-mapped and multi-layer, thus this can happen

* tile_manager: Fix size calculation

* spirv_quad_rect: Skip default attributes

---------

Co-authored-by: poly <47796739+polybiusproxy@users.noreply.github.com>
Co-authored-by: squidbus <175574877+squidbus@users.noreply.github.com>
2025-02-24 14:31:12 +02:00
squidbus
9424047214
shader_recompiler: Proper support for inst-typed buffer format operations. (#2469) 2025-02-21 03:01:18 -08:00
¥IGA
8447412c77
Bump to Clang 19 (#2434) 2025-02-18 15:55:13 +02:00