[spirv] Fix F16 conversion on Android (skip NaN check) (#3458)
Fixes the yellow texture issue in Outer Wilds on Android. Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3458 Reviewed-by: Maufeat <sahyno1996@gmail.com> Reviewed-by: DraVee <dravee@eden-emu.dev> Co-authored-by: PavelBARABANOV <pavelbarabanov94@gmail.com> Co-committed-by: PavelBARABANOV <pavelbarabanov94@gmail.com>
This commit is contained in:
parent
a467dd1ba6
commit
b8456394f1
|
|
@ -1,3 +1,6 @@
|
||||||
|
// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
||||||
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
|
// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
|
||||||
// SPDX-License-Identifier: GPL-2.0-or-later
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
|
||||||
|
|
@ -148,10 +151,13 @@ Id EmitConvertU32U64(EmitContext& ctx, Id value) {
|
||||||
}
|
}
|
||||||
|
|
||||||
Id EmitConvertF16F32(EmitContext& ctx, Id value) {
|
Id EmitConvertF16F32(EmitContext& ctx, Id value) {
|
||||||
|
#ifdef ANDROID
|
||||||
|
return ctx.OpFConvert(ctx.F16[1], value);
|
||||||
|
#else
|
||||||
const auto result = ctx.OpFConvert(ctx.F16[1], value);
|
const auto result = ctx.OpFConvert(ctx.F16[1], value);
|
||||||
const auto isOverflowing = ctx.OpIsNan(ctx.U1, result);
|
const auto isOverflowing = ctx.OpIsNan(ctx.U1, result);
|
||||||
return ctx.OpSelect(ctx.F16[1], isOverflowing, ctx.Constant(ctx.F16[1], 0), result);
|
return ctx.OpSelect(ctx.F16[1], isOverflowing, ctx.Constant(ctx.F16[1], 0), result);
|
||||||
//return ctx.OpFConvert(ctx.F16[1], value);
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
Id EmitConvertF32F16(EmitContext& ctx, Id value) {
|
Id EmitConvertF32F16(EmitContext& ctx, Id value) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue