Browse Source

glasm: Implement EmitVertex and EndPrimitive

nce_cpp
ReinUsesLisp 5 years ago
committed by ameerj
parent
commit
1426ed05b0
  1. 2
      src/shader_recompiler/backend/glasm/emit_glasm_instructions.h
  2. 10
      src/shader_recompiler/backend/glasm/emit_glasm_not_implemented.cpp

2
src/shader_recompiler/backend/glasm/emit_glasm_instructions.h

@ -32,7 +32,7 @@ void EmitWorkgroupMemoryBarrier(EmitContext& ctx);
void EmitDeviceMemoryBarrier(EmitContext& ctx); void EmitDeviceMemoryBarrier(EmitContext& ctx);
void EmitPrologue(EmitContext& ctx); void EmitPrologue(EmitContext& ctx);
void EmitEpilogue(EmitContext& ctx); void EmitEpilogue(EmitContext& ctx);
void EmitEmitVertex(EmitContext& ctx, const IR::Value& stream);
void EmitEmitVertex(EmitContext& ctx, ScalarS32 stream);
void EmitEndPrimitive(EmitContext& ctx, const IR::Value& stream); void EmitEndPrimitive(EmitContext& ctx, const IR::Value& stream);
void EmitGetRegister(EmitContext& ctx); void EmitGetRegister(EmitContext& ctx);
void EmitSetRegister(EmitContext& ctx); void EmitSetRegister(EmitContext& ctx);

10
src/shader_recompiler/backend/glasm/emit_glasm_not_implemented.cpp

@ -72,12 +72,16 @@ void EmitEpilogue(EmitContext& ctx) {
// TODO // TODO
} }
void EmitEmitVertex(EmitContext& ctx, const IR::Value& stream) {
NotImplemented();
void EmitEmitVertex(EmitContext& ctx, ScalarS32 stream) {
ctx.Add("EMITS {};", stream);
} }
void EmitEndPrimitive(EmitContext& ctx, const IR::Value& stream) { void EmitEndPrimitive(EmitContext& ctx, const IR::Value& stream) {
NotImplemented();
if (!stream.IsImmediate()) {
// LOG_WARNING not immediate
}
ctx.reg_alloc.Consume(stream);
ctx.Add("ENDPRIM;");
} }
void EmitGetRegister(EmitContext& ctx) { void EmitGetRegister(EmitContext& ctx) {

Loading…
Cancel
Save