This repository has been archived on 2026-05-10. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
yuzu/src/shader_recompiler/frontend/maxwell/translate/impl/video_helper.cpp
T
Morph 99ceb03a1c general: Convert source file copyright comments over to SPDX
This formats all copyright comments according to SPDX formatting guidelines.
Additionally, this resolves the remaining GPLv2 only licensed files by relicensing them to GPLv2.0-or-later.
2022-04-23 05:55:32 -04:00

30 lines
1.0 KiB
C++

// SPDX-FileCopyrightText: Copyright 2021 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
#include "shader_recompiler/exception.h"
#include "shader_recompiler/frontend/maxwell/translate/impl/video_helper.h"
namespace Shader::Maxwell {
IR::U32 ExtractVideoOperandValue(IR::IREmitter& ir, const IR::U32& value, VideoWidth width,
u32 selector, bool is_signed) {
switch (width) {
case VideoWidth::Byte:
case VideoWidth::Unknown:
return ir.BitFieldExtract(value, ir.Imm32(selector * 8), ir.Imm32(8), is_signed);
case VideoWidth::Short:
return ir.BitFieldExtract(value, ir.Imm32(selector * 16), ir.Imm32(16), is_signed);
case VideoWidth::Word:
return value;
default:
throw NotImplementedException("Unknown VideoWidth {}", width);
}
}
VideoWidth GetVideoSourceWidth(VideoWidth width, bool is_immediate) {
// immediates must be 16-bit format.
return is_immediate ? VideoWidth::Short : width;
}
} // namespace Shader::Maxwell