diff options
author | ReinUsesLisp <reinuseslisp@airmail.cc> | 2021-04-13 00:41:22 +0200 |
---|---|---|
committer | ameerj <52414509+ameerj@users.noreply.github.com> | 2021-07-23 03:51:27 +0200 |
commit | f263760c5a3aff771123b32b15677e1f7a089640 (patch) | |
tree | 3d9c41ce708beb8a76f28ceee1c9ebb25108a471 /src/shader_recompiler/frontend/maxwell/program.cpp | |
parent | shader: Implement OUT (diff) | |
download | yuzu-f263760c5a3aff771123b32b15677e1f7a089640.tar yuzu-f263760c5a3aff771123b32b15677e1f7a089640.tar.gz yuzu-f263760c5a3aff771123b32b15677e1f7a089640.tar.bz2 yuzu-f263760c5a3aff771123b32b15677e1f7a089640.tar.lz yuzu-f263760c5a3aff771123b32b15677e1f7a089640.tar.xz yuzu-f263760c5a3aff771123b32b15677e1f7a089640.tar.zst yuzu-f263760c5a3aff771123b32b15677e1f7a089640.zip |
Diffstat (limited to '')
-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 program.post_order_blocks = PostOrder(program.blocks); program.stage = env.ShaderStage(); program.local_memory_size = env.LocalMemorySize(); - if (program.stage == Stage::Compute) { + switch (program.stage) { + case Stage::Geometry: { + const ProgramHeader& sph{env.SPH()}; + program.output_topology = sph.common3.output_topology; + program.output_vertices = sph.common4.max_output_vertices; + program.invocations = sph.common2.threads_per_input_primitive; + break; + } + case Stage::Compute: program.workgroup_size = env.WorkgroupSize(); program.shared_memory_size = env.SharedMemorySize(); + break; + default: + break; } RemoveUnreachableBlocks(program); |