Browse Source
Merge pull request #2109 from FernandoS27/fix-f2i
Corrected F2I None mode to RoundEven.
pull/15/merge
bunnei
7 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with
4 additions and
4 deletions
-
src/video_core/engines/shader_bytecode.h
-
src/video_core/shader/decode/conversion.cpp
|
|
@ -186,7 +186,7 @@ enum class SubOp : u64 { |
|
|
}; |
|
|
}; |
|
|
|
|
|
|
|
|
enum class F2iRoundingOp : u64 { |
|
|
enum class F2iRoundingOp : u64 { |
|
|
None = 0, |
|
|
|
|
|
|
|
|
RoundEven = 0, |
|
|
Floor = 1, |
|
|
Floor = 1, |
|
|
Ceil = 2, |
|
|
Ceil = 2, |
|
|
Trunc = 3, |
|
|
Trunc = 3, |
|
|
|
|
|
@ -118,8 +118,8 @@ u32 ShaderIR::DecodeConversion(NodeBlock& bb, u32 pc) { |
|
|
|
|
|
|
|
|
value = [&]() { |
|
|
value = [&]() { |
|
|
switch (instr.conversion.f2i.rounding) { |
|
|
switch (instr.conversion.f2i.rounding) { |
|
|
case Tegra::Shader::F2iRoundingOp::None: |
|
|
|
|
|
return value; |
|
|
|
|
|
|
|
|
case Tegra::Shader::F2iRoundingOp::RoundEven: |
|
|
|
|
|
return Operation(OperationCode::FRoundEven, PRECISE, value); |
|
|
case Tegra::Shader::F2iRoundingOp::Floor: |
|
|
case Tegra::Shader::F2iRoundingOp::Floor: |
|
|
return Operation(OperationCode::FFloor, PRECISE, value); |
|
|
return Operation(OperationCode::FFloor, PRECISE, value); |
|
|
case Tegra::Shader::F2iRoundingOp::Ceil: |
|
|
case Tegra::Shader::F2iRoundingOp::Ceil: |
|
|
@ -146,4 +146,4 @@ u32 ShaderIR::DecodeConversion(NodeBlock& bb, u32 pc) { |
|
|
return pc; |
|
|
return pc; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
} // namespace VideoCommon::Shader
|
|
|
|
|
|
|
|
|
} // namespace VideoCommon::Shader
|