summaryrefslogtreecommitdiff
path: root/src/gallium/drivers/nvc0/codegen/nv50_ir_emit_nvc0.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gallium/drivers/nvc0/codegen/nv50_ir_emit_nvc0.cpp')
-rw-r--r--src/gallium/drivers/nvc0/codegen/nv50_ir_emit_nvc0.cpp23
1 files changed, 18 insertions, 5 deletions
diff --git a/src/gallium/drivers/nvc0/codegen/nv50_ir_emit_nvc0.cpp b/src/gallium/drivers/nvc0/codegen/nv50_ir_emit_nvc0.cpp
index 57d5d723c6a..cd04f4cfb97 100644
--- a/src/gallium/drivers/nvc0/codegen/nv50_ir_emit_nvc0.cpp
+++ b/src/gallium/drivers/nvc0/codegen/nv50_ir_emit_nvc0.cpp
@@ -2300,2 +2300,9 @@ SchedDataCalculator::recordRd(const Value *v, const int ready)
+bool
+calculateSchedDataNVC0(const Target *targ, Function *func)
+{
+ SchedDataCalculator sched(targ);
+ return sched.run(func, true, true);
+}
+
void
@@ -2307,6 +2314,4 @@ CodeEmitterNVC0::prepareEmission(Function *func)
- if (targ->hasSWSched) {
- SchedDataCalculator sched(targ);
- sched.run(func, true, true);
- }
+ if (targ->hasSWSched)
+ calculateSchedDataNVC0(targ, func);
}
@@ -2323,3 +2328,3 @@ CodeEmitterNVC0::CodeEmitterNVC0(const TargetNVC0 *target)
CodeEmitter *
-TargetNVC0::getCodeEmitter(Program::Type type)
+TargetNVC0::createCodeEmitterNVC0(Program::Type type)
{
@@ -2330,2 +2335,10 @@ TargetNVC0::getCodeEmitter(Program::Type type)
+CodeEmitter *
+TargetNVC0::getCodeEmitter(Program::Type type)
+{
+ if (chipset >= NVISA_GK110_CHIPSET)
+ return createCodeEmitterGK110(type);
+ return createCodeEmitterNVC0(type);
+}
+
} // namespace nv50_ir