[PR #1244] [MERGED] Initial support of Geometry shaders #2013

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

📋 Pull Request Information

Original PR: https://github.com/shadps4-emu/shadPS4/pull/1244
Author: @psucien
Created: 10/5/2024
Status: Merged
Merged: 10/5/2024
Merged by: @raphaelthegreat

Base: mainHead: feature/geometry_shader


📝 Commits (2)

  • 3403e5a video_core: initial GS support
  • 097a68a fix for components mapping; missing prim type

📊 Changes

40 files changed (+942 additions, -266 deletions)

View changed files

📝 CMakeLists.txt (+5 -0)
📝 src/shader_recompiler/backend/spirv/emit_spirv.cpp (+50 -1)
📝 src/shader_recompiler/backend/spirv/emit_spirv_context_get_set.cpp (+28 -1)
📝 src/shader_recompiler/backend/spirv/emit_spirv_instructions.h (+4 -2)
📝 src/shader_recompiler/backend/spirv/emit_spirv_special.cpp (+8 -0)
📝 src/shader_recompiler/backend/spirv/spirv_emit_context.cpp (+61 -0)
📝 src/shader_recompiler/backend/spirv/spirv_emit_context.h (+3 -0)
src/shader_recompiler/frontend/copy_shader.cpp (+65 -0)
src/shader_recompiler/frontend/copy_shader.h (+21 -0)
📝 src/shader_recompiler/frontend/opcodes.h (+19 -0)
📝 src/shader_recompiler/frontend/translate/data_share.cpp (+0 -6)
📝 src/shader_recompiler/frontend/translate/scalar_alu.cpp (+0 -8)
src/shader_recompiler/frontend/translate/scalar_flow.cpp (+75 -0)
📝 src/shader_recompiler/frontend/translate/translate.cpp (+18 -27)
📝 src/shader_recompiler/frontend/translate/translate.h (+1 -0)
📝 src/shader_recompiler/frontend/translate/vector_memory.cpp (+34 -15)
📝 src/shader_recompiler/info.h (+3 -2)
📝 src/shader_recompiler/ir/attribute.cpp (+0 -8)
📝 src/shader_recompiler/ir/attribute.h (+10 -2)
📝 src/shader_recompiler/ir/ir_emitter.cpp (+10 -2)

...and 20 more files

📄 Description

Missing features (haven't been observed so far):

  • on-chip vertex data storage;
  • transform feedback and multiple output streams;
  • multiple viewports;

Also, this implementation doesn't include a fallback pass for platforms w\o support of GS (sorry, squidbus)


🔄 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/1244 **Author:** [@psucien](https://github.com/psucien) **Created:** 10/5/2024 **Status:** ✅ Merged **Merged:** 10/5/2024 **Merged by:** [@raphaelthegreat](https://github.com/raphaelthegreat) **Base:** `main` ← **Head:** `feature/geometry_shader` --- ### 📝 Commits (2) - [`3403e5a`](https://github.com/shadps4-emu/shadPS4/commit/3403e5a92af688507f8b0b35cde61fbcb57ac45b) video_core: initial GS support - [`097a68a`](https://github.com/shadps4-emu/shadPS4/commit/097a68a6955762c44c911830299d12b3dcda2a18) fix for components mapping; missing prim type ### 📊 Changes **40 files changed** (+942 additions, -266 deletions) <details> <summary>View changed files</summary> 📝 `CMakeLists.txt` (+5 -0) 📝 `src/shader_recompiler/backend/spirv/emit_spirv.cpp` (+50 -1) 📝 `src/shader_recompiler/backend/spirv/emit_spirv_context_get_set.cpp` (+28 -1) 📝 `src/shader_recompiler/backend/spirv/emit_spirv_instructions.h` (+4 -2) 📝 `src/shader_recompiler/backend/spirv/emit_spirv_special.cpp` (+8 -0) 📝 `src/shader_recompiler/backend/spirv/spirv_emit_context.cpp` (+61 -0) 📝 `src/shader_recompiler/backend/spirv/spirv_emit_context.h` (+3 -0) ➕ `src/shader_recompiler/frontend/copy_shader.cpp` (+65 -0) ➕ `src/shader_recompiler/frontend/copy_shader.h` (+21 -0) 📝 `src/shader_recompiler/frontend/opcodes.h` (+19 -0) 📝 `src/shader_recompiler/frontend/translate/data_share.cpp` (+0 -6) 📝 `src/shader_recompiler/frontend/translate/scalar_alu.cpp` (+0 -8) ➕ `src/shader_recompiler/frontend/translate/scalar_flow.cpp` (+75 -0) 📝 `src/shader_recompiler/frontend/translate/translate.cpp` (+18 -27) 📝 `src/shader_recompiler/frontend/translate/translate.h` (+1 -0) 📝 `src/shader_recompiler/frontend/translate/vector_memory.cpp` (+34 -15) 📝 `src/shader_recompiler/info.h` (+3 -2) 📝 `src/shader_recompiler/ir/attribute.cpp` (+0 -8) 📝 `src/shader_recompiler/ir/attribute.h` (+10 -2) 📝 `src/shader_recompiler/ir/ir_emitter.cpp` (+10 -2) _...and 20 more files_ </details> ### 📄 Description Missing features (haven't been observed so far): - on-chip vertex data storage; - transform feedback and multiple output streams; - multiple viewports; Also, this implementation doesn't include a fallback pass for platforms w\o support of GS (sorry, squidbus) --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-02-27 21:14:50 +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#2013
No description provided.