summaryrefslogtreecommitdiffstats
path: root/src/shader_recompiler/backend/glasm/emit_glasm.cpp
diff options
context:
space:
mode:
authorameerj <52414509+ameerj@users.noreply.github.com>2021-05-11 04:35:16 +0200
committerameerj <52414509+ameerj@users.noreply.github.com>2021-07-23 03:51:31 +0200
commit7ff5851608031baca2adceb9f72e7c75eda9b3a9 (patch)
tree79951738906a2c2a76bf1a3354d52234f03285db /src/shader_recompiler/backend/glasm/emit_glasm.cpp
parentglasm: Ensure reg alloc order across compilers on GLASM (diff)
downloadyuzu-7ff5851608031baca2adceb9f72e7c75eda9b3a9.tar
yuzu-7ff5851608031baca2adceb9f72e7c75eda9b3a9.tar.gz
yuzu-7ff5851608031baca2adceb9f72e7c75eda9b3a9.tar.bz2
yuzu-7ff5851608031baca2adceb9f72e7c75eda9b3a9.tar.lz
yuzu-7ff5851608031baca2adceb9f72e7c75eda9b3a9.tar.xz
yuzu-7ff5851608031baca2adceb9f72e7c75eda9b3a9.tar.zst
yuzu-7ff5851608031baca2adceb9f72e7c75eda9b3a9.zip
Diffstat (limited to 'src/shader_recompiler/backend/glasm/emit_glasm.cpp')
-rw-r--r--src/shader_recompiler/backend/glasm/emit_glasm.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/shader_recompiler/backend/glasm/emit_glasm.cpp b/src/shader_recompiler/backend/glasm/emit_glasm.cpp
index 047b2f89c..056d8cbf8 100644
--- a/src/shader_recompiler/backend/glasm/emit_glasm.cpp
+++ b/src/shader_recompiler/backend/glasm/emit_glasm.cpp
@@ -193,6 +193,9 @@ void SetupOptions(std::string& header, Info info) {
if (info.uses_subgroup_shuffles) {
header += "OPTION NV_shader_thread_shuffle;";
}
+ // TODO: Track the shared atomic ops
+ header +=
+ "OPTION NV_shader_storage_buffer;OPTION NV_gpu_program_fp64;OPTION NV_bindless_texture;";
}
} // Anonymous namespace
@@ -214,6 +217,10 @@ std::string EmitGLASM(const Profile&, IR::Program& program, Bindings&) {
default:
break;
}
+ if (program.shared_memory_size > 0) {
+ header += fmt::format("SHARED_MEMORY {};", program.shared_memory_size);
+ header += fmt::format("SHARED shared_mem[]={{program.sharedmem}};");
+ }
header += "TEMP ";
for (size_t index = 0; index < ctx.reg_alloc.NumUsedRegisters(); ++index) {
header += fmt::format("R{},", index);