Răsfoiți Sursa

glasm: Implement gl_Layer stores

ReinUsesLisp 5 ani în urmă
părinte
comite
e565eb361a

+ 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);
         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:
         if (ctx.stage == Stage::Geometry || ctx.profile.support_viewport_index_layer_non_geometry) {
             ctx.Add("MOV.F result.viewport.x,{};", value);