forked from suyu/suyu
shader_decode: SULD.D -> SINT actually same as UNORM.
This commit is contained in:
parent
6f2b7087c2
commit
9f6ebccf06
1 changed files with 4 additions and 5 deletions
|
@ -352,11 +352,13 @@ u32 ShaderIR::DecodeImage(NodeBlock& bb, u32 pc) {
|
||||||
case ComponentType::SNORM: {
|
case ComponentType::SNORM: {
|
||||||
is_signed = true;
|
is_signed = true;
|
||||||
// range [-1.0, 1.0]
|
// range [-1.0, 1.0]
|
||||||
auto cnv_value = Operation(OperationCode::FMul, original_value, Immediate(127.f));
|
auto cnv_value =
|
||||||
|
Operation(OperationCode::FMul, original_value, Immediate(127.f));
|
||||||
cnv_value = SignedOperation(OperationCode::ICastFloat, is_signed,
|
cnv_value = SignedOperation(OperationCode::ICastFloat, is_signed,
|
||||||
std::move(cnv_value));
|
std::move(cnv_value));
|
||||||
return BitfieldExtract(std::move(cnv_value), 0, 8);
|
return BitfieldExtract(std::move(cnv_value), 0, 8);
|
||||||
}
|
}
|
||||||
|
case ComponentType::SINT:
|
||||||
case ComponentType::UNORM: {
|
case ComponentType::UNORM: {
|
||||||
is_signed = false;
|
is_signed = false;
|
||||||
// range [0.0, 1.0]
|
// range [0.0, 1.0]
|
||||||
|
@ -365,9 +367,6 @@ u32 ShaderIR::DecodeImage(NodeBlock& bb, u32 pc) {
|
||||||
return SignedOperation(OperationCode::ICastFloat, is_signed,
|
return SignedOperation(OperationCode::ICastFloat, is_signed,
|
||||||
std::move(cnv_value));
|
std::move(cnv_value));
|
||||||
}
|
}
|
||||||
case ComponentType::SINT: // range [-128,127]
|
|
||||||
is_signed = true;
|
|
||||||
return original_value;
|
|
||||||
case ComponentType::UINT: // range [0, 255]
|
case ComponentType::UINT: // range [0, 255]
|
||||||
is_signed = false;
|
is_signed = false;
|
||||||
return original_value;
|
return original_value;
|
||||||
|
|
Loading…
Reference in a new issue