mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-12-10 05:38:49 +00:00
shader_recompiler: Few fixes for buffer number conversions. (#2869)
* liverpool: Pass correct color buffer number type for conversion mapping. * shader_recompiler: Apply number conversion to vertex inputs.
This commit is contained in:
@@ -924,15 +924,11 @@ struct Liverpool {
|
||||
}
|
||||
|
||||
[[nodiscard]] NumberFormat GetNumberFmt() const {
|
||||
// There is a small difference between T# and CB number types, account for it.
|
||||
return RemapNumberFormat(info.number_type == NumberFormat::SnormNz
|
||||
? NumberFormat::Srgb
|
||||
: info.number_type.Value(),
|
||||
info.format);
|
||||
return RemapNumberFormat(GetFixedNumberFormat(), info.format);
|
||||
}
|
||||
|
||||
[[nodiscard]] NumberConversion GetNumberConversion() const {
|
||||
return MapNumberConversion(info.number_type);
|
||||
return MapNumberConversion(GetFixedNumberFormat());
|
||||
}
|
||||
|
||||
[[nodiscard]] CompMapping Swizzle() const {
|
||||
@@ -973,6 +969,13 @@ struct Liverpool {
|
||||
const auto mrt_swizzle = mrt_swizzles[swap_idx][components_idx];
|
||||
return RemapSwizzle(info.format, mrt_swizzle);
|
||||
}
|
||||
|
||||
private:
|
||||
[[nodiscard]] NumberFormat GetFixedNumberFormat() const {
|
||||
// There is a small difference between T# and CB number types, account for it.
|
||||
return info.number_type == NumberFormat::SnormNz ? NumberFormat::Srgb
|
||||
: info.number_type.Value();
|
||||
}
|
||||
};
|
||||
|
||||
enum ContextRegs : u32 {
|
||||
|
||||
Reference in New Issue
Block a user