summaryrefslogtreecommitdiff
path: root/src/shader_recompiler/backend/glasm/emit_glasm.cpp
diff options
context:
space:
mode:
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) {
193 if (info.uses_subgroup_shuffles) { 193 if (info.uses_subgroup_shuffles) {
194 header += "OPTION NV_shader_thread_shuffle;"; 194 header += "OPTION NV_shader_thread_shuffle;";
195 } 195 }
196 // TODO: Track the shared atomic ops
197 header +=
198 "OPTION NV_shader_storage_buffer;OPTION NV_gpu_program_fp64;OPTION NV_bindless_texture;";
196} 199}
197} // Anonymous namespace 200} // Anonymous namespace
198 201
@@ -214,6 +217,10 @@ std::string EmitGLASM(const Profile&, IR::Program& program, Bindings&) {
214 default: 217 default:
215 break; 218 break;
216 } 219 }
220 if (program.shared_memory_size > 0) {
221 header += fmt::format("SHARED_MEMORY {};", program.shared_memory_size);
222 header += fmt::format("SHARED shared_mem[]={{program.sharedmem}};");
223 }
217 header += "TEMP "; 224 header += "TEMP ";
218 for (size_t index = 0; index < ctx.reg_alloc.NumUsedRegisters(); ++index) { 225 for (size_t index = 0; index < ctx.reg_alloc.NumUsedRegisters(); ++index) {
219 header += fmt::format("R{},", index); 226 header += fmt::format("R{},", index);