Просмотр исходного кода

glasm: Implement gl_Layer stores

ReinUsesLisp 5 лет назад
Родитель
Сommit
e565eb361a
1 измененных файлов с 7 добавлено и 0 удалено
  1. 7 0
      src/shader_recompiler/backend/glasm/emit_glasm_context_get_set.cpp

+ 7 - 0
src/shader_recompiler/backend/glasm/emit_glasm_context_get_set.cpp

@@ -134,6 +134,13 @@ void EmitSetAttribute(EmitContext& ctx, IR::Attribute attr, ScalarF32 value,
         ctx.Add("MOV.F result.clip[{}].x,{};", index, value);
         ctx.Add("MOV.F result.clip[{}].x,{};", index, value);
         break;
         break;
     }
     }
+    case IR::Attribute::Layer:
+        if (ctx.stage == Stage::Geometry || ctx.profile.support_viewport_index_layer_non_geometry) {
+            ctx.Add("MOV.F result.layer.x,{};", value);
+        } else {
+            // LOG_WARNING
+        }
+        break;
     case IR::Attribute::ViewportIndex:
     case IR::Attribute::ViewportIndex:
         if (ctx.stage == Stage::Geometry || ctx.profile.support_viewport_index_layer_non_geometry) {
         if (ctx.stage == Stage::Geometry || ctx.profile.support_viewport_index_layer_non_geometry) {
             ctx.Add("MOV.F result.viewport.x,{};", value);
             ctx.Add("MOV.F result.viewport.x,{};", value);