|
|
@ -608,6 +608,14 @@ void EmitImageWrite(EmitContext& ctx, IR::Inst& inst, const IR::Value& index, Re |
|
|
ctx.Add("STOREIM.{} {},{},{},{};", format, image, color, coord, type); |
|
|
ctx.Add("STOREIM.{} {},{},{},{};", format, image, color, coord, type); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void EmitIsTextureScaled(EmitContext& ctx, IR::Inst& inst, const IR::Value& index) { |
|
|
|
|
|
if (!index.IsImmediate()) { |
|
|
|
|
|
throw NotImplementedException("Non-constant texture rescaling"); |
|
|
|
|
|
} |
|
|
|
|
|
UNIMPLEMENTED(); |
|
|
|
|
|
ctx.Add("MOV.S {}.x,-1;", inst); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
void EmitImageAtomicIAdd32(EmitContext& ctx, IR::Inst& inst, const IR::Value& index, Register coord, |
|
|
void EmitImageAtomicIAdd32(EmitContext& ctx, IR::Inst& inst, const IR::Value& index, Register coord, |
|
|
ScalarU32 value) { |
|
|
ScalarU32 value) { |
|
|
ImageAtomic(ctx, inst, index, coord, value, "ADD.U32"); |
|
|
ImageAtomic(ctx, inst, index, coord, value, "ADD.U32"); |
|
|
|