diff options
| author | 2021-04-12 19:41:22 -0300 | |
|---|---|---|
| committer | 2021-07-22 21:51:27 -0400 | |
| commit | f263760c5a3aff771123b32b15677e1f7a089640 (patch) | |
| tree | 3d9c41ce708beb8a76f28ceee1c9ebb25108a471 /src/shader_recompiler/frontend/maxwell/program.cpp | |
| parent | shader: Implement OUT (diff) | |
| download | yuzu-f263760c5a3aff771123b32b15677e1f7a089640.tar.gz yuzu-f263760c5a3aff771123b32b15677e1f7a089640.tar.xz yuzu-f263760c5a3aff771123b32b15677e1f7a089640.zip | |
shader: Implement geometry shaders
Diffstat (limited to 'src/shader_recompiler/frontend/maxwell/program.cpp')
| -rw-r--r-- | src/shader_recompiler/frontend/maxwell/program.cpp | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/src/shader_recompiler/frontend/maxwell/program.cpp b/src/shader_recompiler/frontend/maxwell/program.cpp index aaf2a74a7..ab67446c8 100644 --- a/src/shader_recompiler/frontend/maxwell/program.cpp +++ b/src/shader_recompiler/frontend/maxwell/program.cpp | |||
| @@ -69,9 +69,20 @@ IR::Program TranslateProgram(ObjectPool<IR::Inst>& inst_pool, ObjectPool<IR::Blo | |||
| 69 | program.post_order_blocks = PostOrder(program.blocks); | 69 | program.post_order_blocks = PostOrder(program.blocks); |
| 70 | program.stage = env.ShaderStage(); | 70 | program.stage = env.ShaderStage(); |
| 71 | program.local_memory_size = env.LocalMemorySize(); | 71 | program.local_memory_size = env.LocalMemorySize(); |
| 72 | if (program.stage == Stage::Compute) { | 72 | switch (program.stage) { |
| 73 | case Stage::Geometry: { | ||
| 74 | const ProgramHeader& sph{env.SPH()}; | ||
| 75 | program.output_topology = sph.common3.output_topology; | ||
| 76 | program.output_vertices = sph.common4.max_output_vertices; | ||
| 77 | program.invocations = sph.common2.threads_per_input_primitive; | ||
| 78 | break; | ||
| 79 | } | ||
| 80 | case Stage::Compute: | ||
| 73 | program.workgroup_size = env.WorkgroupSize(); | 81 | program.workgroup_size = env.WorkgroupSize(); |
| 74 | program.shared_memory_size = env.SharedMemorySize(); | 82 | program.shared_memory_size = env.SharedMemorySize(); |
| 83 | break; | ||
| 84 | default: | ||
| 85 | break; | ||
| 75 | } | 86 | } |
| 76 | RemoveUnreachableBlocks(program); | 87 | RemoveUnreachableBlocks(program); |
| 77 | 88 | ||