diff options
| author | 2020-04-06 13:26:58 +0700 | |
|---|---|---|
| committer | 2020-04-06 13:26:58 +0700 | |
| commit | 7f5696513f2de891015cf852af34e2ddafb9f171 (patch) | |
| tree | 28ed655822ef7641a57243768db27ec719c3ea6f /src | |
| parent | shader_decode: SULD.D implement bits64 and reverse shader ir init method to r... (diff) | |
| download | yuzu-7f5696513f2de891015cf852af34e2ddafb9f171.tar.gz yuzu-7f5696513f2de891015cf852af34e2ddafb9f171.tar.xz yuzu-7f5696513f2de891015cf852af34e2ddafb9f171.zip | |
shader_decode: SULD.D fix conversion error.
Diffstat (limited to 'src')
| -rw-r--r-- | src/video_core/shader/decode/image.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/video_core/shader/decode/image.cpp b/src/video_core/shader/decode/image.cpp index 68913085f..96e8db618 100644 --- a/src/video_core/shader/decode/image.cpp +++ b/src/video_core/shader/decode/image.cpp | |||
| @@ -278,7 +278,7 @@ Node ShaderIR::GetComponentValue(ComponentType component_type, u32 component_siz | |||
| 278 | *is_signed = true; | 278 | *is_signed = true; |
| 279 | // range [-1.0, 1.0] | 279 | // range [-1.0, 1.0] |
| 280 | auto cnv_value = Operation(OperationCode::FMul, original_value, | 280 | auto cnv_value = Operation(OperationCode::FMul, original_value, |
| 281 | Immediate((1 << component_size) / 2.f - 1.f)); | 281 | Immediate(static_cast<float>(1 << component_size) / 2.f - 1.f)); |
| 282 | cnv_value = SignedOperation(OperationCode::ICastFloat, is_signed, std::move(cnv_value)); | 282 | cnv_value = SignedOperation(OperationCode::ICastFloat, is_signed, std::move(cnv_value)); |
| 283 | return BitfieldExtract(std::move(cnv_value), 0, component_size); | 283 | return BitfieldExtract(std::move(cnv_value), 0, component_size); |
| 284 | } | 284 | } |
| @@ -286,8 +286,8 @@ Node ShaderIR::GetComponentValue(ComponentType component_type, u32 component_siz | |||
| 286 | case ComponentType::UNORM: { | 286 | case ComponentType::UNORM: { |
| 287 | *is_signed = component_type == ComponentType::SINT; | 287 | *is_signed = component_type == ComponentType::SINT; |
| 288 | // range [0.0, 1.0] | 288 | // range [0.0, 1.0] |
| 289 | auto cnv_value = | 289 | auto cnv_value = Operation(OperationCode::FMul, original_value, |
| 290 | Operation(OperationCode::FMul, original_value, Immediate((1 << component_size) - 1.f)); | 290 | Immediate(static_cast<float>(1 << component_size) - 1.f)); |
| 291 | return SignedOperation(OperationCode::ICastFloat, is_signed, std::move(cnv_value)); | 291 | return SignedOperation(OperationCode::ICastFloat, is_signed, std::move(cnv_value)); |
| 292 | } | 292 | } |
| 293 | case ComponentType::UINT: // range [0, (1 << component_size) - 1] | 293 | case ComponentType::UINT: // range [0, (1 << component_size) - 1] |