mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-04-28 13:28:03 +03:00
lower_buffer_format_to_raw: Fix handling of format remapping. (#2857)
Some checks are pending
Build and Release / reuse (push) Waiting to run
Build and Release / clang-format (push) Waiting to run
Build and Release / get-info (push) Waiting to run
Build and Release / windows-sdl (push) Blocked by required conditions
Build and Release / linux-qt-gcc (push) Blocked by required conditions
Build and Release / windows-qt (push) Blocked by required conditions
Build and Release / macos-sdl (push) Blocked by required conditions
Build and Release / macos-qt (push) Blocked by required conditions
Build and Release / linux-sdl (push) Blocked by required conditions
Build and Release / linux-qt (push) Blocked by required conditions
Build and Release / linux-sdl-gcc (push) Blocked by required conditions
Build and Release / pre-release (push) Blocked by required conditions
Some checks are pending
Build and Release / reuse (push) Waiting to run
Build and Release / clang-format (push) Waiting to run
Build and Release / get-info (push) Waiting to run
Build and Release / windows-sdl (push) Blocked by required conditions
Build and Release / linux-qt-gcc (push) Blocked by required conditions
Build and Release / windows-qt (push) Blocked by required conditions
Build and Release / macos-sdl (push) Blocked by required conditions
Build and Release / macos-qt (push) Blocked by required conditions
Build and Release / linux-sdl (push) Blocked by required conditions
Build and Release / linux-qt (push) Blocked by required conditions
Build and Release / linux-sdl-gcc (push) Blocked by required conditions
Build and Release / pre-release (push) Blocked by required conditions
This commit is contained in:
parent
254375ef0c
commit
b505829e16
1 changed files with 10 additions and 5 deletions
|
@ -196,13 +196,18 @@ static void LowerBufferFormatInst(IR::Block& block, IR::Inst& inst, Info& info)
|
||||||
const auto buffer{desc.GetSharp(info)};
|
const auto buffer{desc.GetSharp(info)};
|
||||||
|
|
||||||
const auto is_inst_typed = flags.inst_data_fmt != AmdGpu::DataFormat::FormatInvalid;
|
const auto is_inst_typed = flags.inst_data_fmt != AmdGpu::DataFormat::FormatInvalid;
|
||||||
const auto data_format = is_inst_typed ? flags.inst_data_fmt.Value() : buffer.GetDataFmt();
|
const auto data_format =
|
||||||
const auto num_format = is_inst_typed ? flags.inst_num_fmt.Value() : buffer.GetNumberFmt();
|
is_inst_typed ? AmdGpu::RemapDataFormat(flags.inst_data_fmt.Value()) : buffer.GetDataFmt();
|
||||||
const auto format_info = FormatInfo{
|
const auto format_info = FormatInfo{
|
||||||
.data_format = data_format,
|
.data_format = data_format,
|
||||||
.num_format = num_format,
|
.num_format = is_inst_typed
|
||||||
.swizzle = is_inst_typed ? AmdGpu::IdentityMapping : buffer.DstSelect(),
|
? AmdGpu::RemapNumberFormat(flags.inst_num_fmt.Value(), data_format)
|
||||||
.num_conversion = AmdGpu::MapNumberConversion(num_format),
|
: buffer.GetNumberFmt(),
|
||||||
|
.swizzle = is_inst_typed
|
||||||
|
? AmdGpu::RemapSwizzle(flags.inst_data_fmt.Value(), AmdGpu::IdentityMapping)
|
||||||
|
: buffer.DstSelect(),
|
||||||
|
.num_conversion = is_inst_typed ? AmdGpu::MapNumberConversion(flags.inst_num_fmt.Value())
|
||||||
|
: buffer.GetNumberConversion(),
|
||||||
.num_components = AmdGpu::NumComponents(data_format),
|
.num_components = AmdGpu::NumComponents(data_format),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue