浏览代码

glasm: Implement SampleId

ReinUsesLisp 5 年之前
父节点
当前提交
89e341d56a

+ 1 - 1
src/shader_recompiler/backend/glasm/emit_glasm_instructions.h

@@ -69,7 +69,7 @@ void EmitSetOFlag(EmitContext& ctx);
 void EmitWorkgroupId(EmitContext& ctx, IR::Inst& inst);
 void EmitWorkgroupId(EmitContext& ctx, IR::Inst& inst);
 void EmitLocalInvocationId(EmitContext& ctx, IR::Inst& inst);
 void EmitLocalInvocationId(EmitContext& ctx, IR::Inst& inst);
 void EmitInvocationId(EmitContext& ctx, IR::Inst& inst);
 void EmitInvocationId(EmitContext& ctx, IR::Inst& inst);
-void EmitSampleId(EmitContext& ctx);
+void EmitSampleId(EmitContext& ctx, IR::Inst& inst);
 void EmitIsHelperInvocation(EmitContext& ctx, IR::Inst& inst);
 void EmitIsHelperInvocation(EmitContext& ctx, IR::Inst& inst);
 void EmitYDirection(EmitContext& ctx);
 void EmitYDirection(EmitContext& ctx);
 void EmitLoadLocal(EmitContext& ctx, IR::Inst& inst, ScalarU32 word_offset);
 void EmitLoadLocal(EmitContext& ctx, IR::Inst& inst, ScalarU32 word_offset);

+ 2 - 2
src/shader_recompiler/backend/glasm/emit_glasm_not_implemented.cpp

@@ -164,8 +164,8 @@ void EmitInvocationId(EmitContext& ctx, IR::Inst& inst) {
     ctx.Add("MOV.S {}.x,primitive_invocation.x;", inst);
     ctx.Add("MOV.S {}.x,primitive_invocation.x;", inst);
 }
 }
 
 
-void EmitSampleId(EmitContext& ctx) {
-    NotImplemented();
+void EmitSampleId(EmitContext& ctx, IR::Inst& inst) {
+    ctx.Add("MOV.S {}.x,fragment.sampleid.x;", inst);
 }
 }
 
 
 void EmitIsHelperInvocation(EmitContext& ctx, IR::Inst& inst) {
 void EmitIsHelperInvocation(EmitContext& ctx, IR::Inst& inst) {