diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nv50.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nv50.cpp index 406b0f709f6..1fe3dc7c3a9 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nv50.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_lowering_nv50.cpp @@ -1230,6 +1230,11 @@ NV50LoweringPreSSA::handleRDSV(Instruction *i) off); break; } + case SV_THREAD_KILL: + // Not actually supported. But it's implementation-dependent, so we can + // always just say it's not a helper. + bld.mkMov(def, bld.loadImm(NULL, 0)); + break; default: bld.mkFetch(i->getDef(0), i->dType, FILE_SHADER_INPUT, addr, i->getIndirect(0, 0), NULL); diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_target_nv50.cpp b/src/gallium/drivers/nouveau/codegen/nv50_ir_target_nv50.cpp index 1b2f988247a..90081965e54 100644 --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_target_nv50.cpp +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_target_nv50.cpp @@ -261,6 +261,8 @@ TargetNV50::getSVAddress(DataFile shaderFile, const Symbol *sym) const return 0; case SV_SAMPLE_POS: return 0; /* sample position is handled differently */ + case SV_THREAD_KILL: + return 0; default: return sysvalLocation[sym->reg.data.sv.sv]; }