فهرست منبع

spirv: Implement EmitIdentity

ReinUsesLisp 5 سال پیش
والد
کامیت
3a59fffaa1
2فایلهای تغییر یافته به همراه3 افزوده شده و 3 حذف شده
  1. 2 2
      src/shader_recompiler/backend/spirv/emit_spirv.cpp
  2. 1 1
      src/shader_recompiler/backend/spirv/emit_spirv.h

+ 2 - 2
src/shader_recompiler/backend/spirv/emit_spirv.cpp

@@ -180,8 +180,8 @@ Id EmitSPIRV::EmitPhi(EmitContext& ctx, IR::Inst* inst) {
 
 
 void EmitSPIRV::EmitVoid(EmitContext&) {}
 void EmitSPIRV::EmitVoid(EmitContext&) {}
 
 
-void EmitSPIRV::EmitIdentity(EmitContext&) {
-    throw NotImplementedException("SPIR-V Instruction");
+Id EmitSPIRV::EmitIdentity(EmitContext& ctx, const IR::Value& value) {
+    return ctx.Def(value);
 }
 }
 
 
 void EmitSPIRV::EmitGetZeroFromOp(EmitContext&) {
 void EmitSPIRV::EmitGetZeroFromOp(EmitContext&) {

+ 1 - 1
src/shader_recompiler/backend/spirv/emit_spirv.h

@@ -23,7 +23,7 @@ private:
     // Microinstruction emitters
     // Microinstruction emitters
     Id EmitPhi(EmitContext& ctx, IR::Inst* inst);
     Id EmitPhi(EmitContext& ctx, IR::Inst* inst);
     void EmitVoid(EmitContext& ctx);
     void EmitVoid(EmitContext& ctx);
-    void EmitIdentity(EmitContext& ctx);
+    Id EmitIdentity(EmitContext& ctx, const IR::Value& value);
     void EmitBranch(EmitContext& ctx, IR::Block* label);
     void EmitBranch(EmitContext& ctx, IR::Block* label);
     void EmitBranchConditional(EmitContext& ctx, Id condition, IR::Block* true_label,
     void EmitBranchConditional(EmitContext& ctx, Id condition, IR::Block* true_label,
                                IR::Block* false_label);
                                IR::Block* false_label);