diff options
Diffstat (limited to 'src/shader_recompiler/backend/glasm/emit_glasm.cpp')
| -rw-r--r-- | src/shader_recompiler/backend/glasm/emit_glasm.cpp | 7 |
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); |