[PR #340] [MERGED] shader_recompiler: Small instruction parsing refactor/bugfixes #1495

Closed
opened 2026-02-27 21:12:48 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/shadps4-emu/shadPS4/pull/340
Author: @raphaelthegreat
Created: 7/29/2024
Status: Merged
Merged: 7/30/2024
Merged by: @psucien

Base: mainHead: recompiler-work


📝 Commits (10+)

  • 32fd199 translator: Implemtn f32 to f16 convert
  • 7d494b8 shader_recompiler: Add bit instructions
  • df02bbe shader_recompiler: More data share instructions
  • d9125b4 shader_recompiler: Remove exec contexts, fix S_MOV_B64
  • 1638169 shader_recompiler: Split instruction parsing into categories
  • 7044cbc shader_recompiler: Better BFS search
  • 45db60d shader_recompiler: Constant propagation pass for cmp_class_f32
  • f81e30e shader_recompiler: Partial readfirstlane implementation
  • 9ca91a1 shader_recompiler: Stub readlane/writelane only for non-compute
  • 797b40f hack: Fix swizzle on RDR

📊 Changes

66 files changed (+1349 additions, -904 deletions)

View changed files

📝 src/common/config.cpp (+1 -1)
📝 src/common/logging/backend.cpp (+1 -1)
📝 src/core/address_space.h (+1 -4)
📝 src/core/file_sys/fs.cpp (+1 -1)
📝 src/core/libraries/gnmdriver/gnmdriver.cpp (+1 -1)
📝 src/core/libraries/kernel/file_system.cpp (+23 -0)
📝 src/core/libraries/kernel/libkernel.cpp (+4 -0)
📝 src/core/libraries/kernel/memory_management.cpp (+10 -0)
📝 src/core/libraries/kernel/thread_management.cpp (+0 -12)
📝 src/core/libraries/kernel/thread_management.h (+0 -2)
📝 src/core/libraries/network/net.cpp (+1 -1)
📝 src/core/libraries/network/netctl.cpp (+1 -1)
📝 src/core/libraries/np_manager/np_manager.cpp (+2 -2)
📝 src/shader_recompiler/backend/spirv/emit_spirv.cpp (+5 -4)
📝 src/shader_recompiler/backend/spirv/emit_spirv_bitwise_conversion.cpp (+2 -2)
📝 src/shader_recompiler/backend/spirv/emit_spirv_context_get_set.cpp (+5 -1)
📝 src/shader_recompiler/backend/spirv/emit_spirv_convert.cpp (+4 -0)
📝 src/shader_recompiler/backend/spirv/emit_spirv_floating_point.cpp (+4 -0)
📝 src/shader_recompiler/backend/spirv/emit_spirv_image.cpp (+1 -3)
📝 src/shader_recompiler/backend/spirv/emit_spirv_instructions.h (+5 -1)

...and 46 more files

📄 Description

Commit names are self explanatory here mostly bugfixes. The only big thing is that the giant switch statement has been split up to make it easier to manager. Allows RDR to boot

image


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/shadps4-emu/shadPS4/pull/340 **Author:** [@raphaelthegreat](https://github.com/raphaelthegreat) **Created:** 7/29/2024 **Status:** ✅ Merged **Merged:** 7/30/2024 **Merged by:** [@psucien](https://github.com/psucien) **Base:** `main` ← **Head:** `recompiler-work` --- ### 📝 Commits (10+) - [`32fd199`](https://github.com/shadps4-emu/shadPS4/commit/32fd1991f7bc4b35326947674b7bcd80ae14a7a0) translator: Implemtn f32 to f16 convert - [`7d494b8`](https://github.com/shadps4-emu/shadPS4/commit/7d494b88a68da7b9c90c6444f988d49b73881301) shader_recompiler: Add bit instructions - [`df02bbe`](https://github.com/shadps4-emu/shadPS4/commit/df02bbeef0e91f794c994ccecd78a1213968ee41) shader_recompiler: More data share instructions - [`d9125b4`](https://github.com/shadps4-emu/shadPS4/commit/d9125b439722eda1d33a3722868ef34c9aaa150c) shader_recompiler: Remove exec contexts, fix S_MOV_B64 - [`1638169`](https://github.com/shadps4-emu/shadPS4/commit/1638169bed32d7a54419e82ac2550d370bf4afea) shader_recompiler: Split instruction parsing into categories - [`7044cbc`](https://github.com/shadps4-emu/shadPS4/commit/7044cbcc99e050b0089038a9d83f38c4d088d762) shader_recompiler: Better BFS search - [`45db60d`](https://github.com/shadps4-emu/shadPS4/commit/45db60dfd4471279cd586936da92c4de7645c8a6) shader_recompiler: Constant propagation pass for cmp_class_f32 - [`f81e30e`](https://github.com/shadps4-emu/shadPS4/commit/f81e30e0e11bcd970e388626978da0580a0d5648) shader_recompiler: Partial readfirstlane implementation - [`9ca91a1`](https://github.com/shadps4-emu/shadPS4/commit/9ca91a1f15da7f801b88061db95696011b6d356c) shader_recompiler: Stub readlane/writelane only for non-compute - [`797b40f`](https://github.com/shadps4-emu/shadPS4/commit/797b40f2e78fd3e4f6844fed16e641592a24ecf7) hack: Fix swizzle on RDR ### 📊 Changes **66 files changed** (+1349 additions, -904 deletions) <details> <summary>View changed files</summary> 📝 `src/common/config.cpp` (+1 -1) 📝 `src/common/logging/backend.cpp` (+1 -1) 📝 `src/core/address_space.h` (+1 -4) 📝 `src/core/file_sys/fs.cpp` (+1 -1) 📝 `src/core/libraries/gnmdriver/gnmdriver.cpp` (+1 -1) 📝 `src/core/libraries/kernel/file_system.cpp` (+23 -0) 📝 `src/core/libraries/kernel/libkernel.cpp` (+4 -0) 📝 `src/core/libraries/kernel/memory_management.cpp` (+10 -0) 📝 `src/core/libraries/kernel/thread_management.cpp` (+0 -12) 📝 `src/core/libraries/kernel/thread_management.h` (+0 -2) 📝 `src/core/libraries/network/net.cpp` (+1 -1) 📝 `src/core/libraries/network/netctl.cpp` (+1 -1) 📝 `src/core/libraries/np_manager/np_manager.cpp` (+2 -2) 📝 `src/shader_recompiler/backend/spirv/emit_spirv.cpp` (+5 -4) 📝 `src/shader_recompiler/backend/spirv/emit_spirv_bitwise_conversion.cpp` (+2 -2) 📝 `src/shader_recompiler/backend/spirv/emit_spirv_context_get_set.cpp` (+5 -1) 📝 `src/shader_recompiler/backend/spirv/emit_spirv_convert.cpp` (+4 -0) 📝 `src/shader_recompiler/backend/spirv/emit_spirv_floating_point.cpp` (+4 -0) 📝 `src/shader_recompiler/backend/spirv/emit_spirv_image.cpp` (+1 -3) 📝 `src/shader_recompiler/backend/spirv/emit_spirv_instructions.h` (+5 -1) _...and 46 more files_ </details> ### 📄 Description Commit names are self explanatory here mostly bugfixes. The only big thing is that the giant switch statement has been split up to make it easier to manager. Allows RDR to boot ![image](https://github.com/user-attachments/assets/f138fc21-2f32-43d0-af9b-230a7d46239d) --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-02-27 21:12:48 +03:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/shadPS4#1495
No description provided.