mirror of
https://github.com/citra-emu/citra-canary.git
synced 2024-12-23 04:55:34 +00:00
CI: fix recent build issues (#6148)
Co-authored-by: Vitor K <vitor-kiguchi@hotmail.com>
This commit is contained in:
parent
7d18e36566
commit
c6153bb32e
|
@ -7,7 +7,7 @@ if grep -nrI '\s$' src *.yml *.txt *.md Doxyfile .gitignore .gitmodules .ci* dis
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Default clang-format points to default 3.5 version one
|
# Default clang-format points to default 3.5 version one
|
||||||
CLANG_FORMAT=clang-format-10
|
CLANG_FORMAT=clang-format-12
|
||||||
$CLANG_FORMAT --version
|
$CLANG_FORMAT --version
|
||||||
|
|
||||||
if [ "$GITHUB_EVENT_NAME" = "pull_request" ]; then
|
if [ "$GITHUB_EVENT_NAME" = "pull_request" ]; then
|
||||||
|
|
|
@ -17,7 +17,7 @@ echo 'Prepare binaries...'
|
||||||
cd ..
|
cd ..
|
||||||
mkdir package
|
mkdir package
|
||||||
|
|
||||||
QT_PLATFORM_DLL_PATH='/usr/x86_64-w64-mingw32/lib/qt5/plugins/platforms/'
|
QT_PLATFORM_DLL_PATH='/usr/x86_64-w64-mingw32/lib/qt/plugins/platforms/'
|
||||||
find build/ -name "citra*.exe" -exec cp {} 'package' \;
|
find build/ -name "citra*.exe" -exec cp {} 'package' \;
|
||||||
|
|
||||||
# copy Qt plugins
|
# copy Qt plugins
|
||||||
|
@ -25,6 +25,7 @@ mkdir package/platforms
|
||||||
cp "${QT_PLATFORM_DLL_PATH}/qwindows.dll" package/platforms/
|
cp "${QT_PLATFORM_DLL_PATH}/qwindows.dll" package/platforms/
|
||||||
cp -rv "${QT_PLATFORM_DLL_PATH}/../mediaservice/" package/
|
cp -rv "${QT_PLATFORM_DLL_PATH}/../mediaservice/" package/
|
||||||
cp -rv "${QT_PLATFORM_DLL_PATH}/../imageformats/" package/
|
cp -rv "${QT_PLATFORM_DLL_PATH}/../imageformats/" package/
|
||||||
|
cp -rv "${QT_PLATFORM_DLL_PATH}/../styles/" package/
|
||||||
rm -f package/mediaservice/*d.dll
|
rm -f package/mediaservice/*d.dll
|
||||||
|
|
||||||
python3 .ci/linux-mingw/scan_dll.py package/*.exe package/imageformats/*.dll "package/"
|
python3 .ci/linux-mingw/scan_dll.py package/*.exe package/imageformats/*.dll "package/"
|
||||||
|
|
4
.github/workflows/ci.yml
vendored
4
.github/workflows/ci.yml
vendored
|
@ -24,7 +24,9 @@ jobs:
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
image: ["linux-fresh", "linux-frozen", "linux-mingw"]
|
image: ["linux-fresh", "linux-frozen", "linux-mingw"]
|
||||||
container: citraemu/build-environments:${{ matrix.image }}
|
container:
|
||||||
|
image: citraemu/build-environments:${{ matrix.image }}
|
||||||
|
options: -u 1001
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v3
|
- uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
|
|
|
@ -267,7 +267,7 @@ endif()
|
||||||
# against all the src files. This should be used before making a pull request.
|
# against all the src files. This should be used before making a pull request.
|
||||||
# =======================================================================
|
# =======================================================================
|
||||||
|
|
||||||
set(CLANG_FORMAT_POSTFIX "-10")
|
set(CLANG_FORMAT_POSTFIX "-12")
|
||||||
find_program(CLANG_FORMAT
|
find_program(CLANG_FORMAT
|
||||||
NAMES clang-format${CLANG_FORMAT_POSTFIX}
|
NAMES clang-format${CLANG_FORMAT_POSTFIX}
|
||||||
clang-format
|
clang-format
|
||||||
|
|
|
@ -10,8 +10,8 @@ SET(SDL2_PATH ${MINGW_PREFIX})
|
||||||
SET(MINGW_TOOL_PREFIX ${CMAKE_SYSTEM_PROCESSOR}-w64-mingw32-)
|
SET(MINGW_TOOL_PREFIX ${CMAKE_SYSTEM_PROCESSOR}-w64-mingw32-)
|
||||||
|
|
||||||
# Specify the cross compiler
|
# Specify the cross compiler
|
||||||
SET(CMAKE_C_COMPILER ${MINGW_TOOL_PREFIX}gcc-posix)
|
SET(CMAKE_C_COMPILER ${MINGW_TOOL_PREFIX}gcc)
|
||||||
SET(CMAKE_CXX_COMPILER ${MINGW_TOOL_PREFIX}g++-posix)
|
SET(CMAKE_CXX_COMPILER ${MINGW_TOOL_PREFIX}g++)
|
||||||
SET(CMAKE_RC_COMPILER ${MINGW_TOOL_PREFIX}windres)
|
SET(CMAKE_RC_COMPILER ${MINGW_TOOL_PREFIX}windres)
|
||||||
|
|
||||||
# Mingw tools
|
# Mingw tools
|
||||||
|
|
|
@ -16,8 +16,8 @@
|
||||||
|
|
||||||
namespace Camera {
|
namespace Camera {
|
||||||
|
|
||||||
QList<QVideoFrame::PixelFormat> QtCameraSurface::supportedPixelFormats([
|
QList<QVideoFrame::PixelFormat> QtCameraSurface::supportedPixelFormats(
|
||||||
[maybe_unused]] QAbstractVideoBuffer::HandleType handleType) const {
|
[[maybe_unused]] QAbstractVideoBuffer::HandleType handleType) const {
|
||||||
return QList<QVideoFrame::PixelFormat>()
|
return QList<QVideoFrame::PixelFormat>()
|
||||||
<< QVideoFrame::Format_ARGB32 << QVideoFrame::Format_ARGB32_Premultiplied
|
<< QVideoFrame::Format_ARGB32 << QVideoFrame::Format_ARGB32_Premultiplied
|
||||||
<< QVideoFrame::Format_RGB32 << QVideoFrame::Format_RGB24 << QVideoFrame::Format_RGB565
|
<< QVideoFrame::Format_RGB32 << QVideoFrame::Format_RGB24 << QVideoFrame::Format_RGB565
|
||||||
|
|
|
@ -690,8 +690,8 @@ template <typename T>
|
||||||
|
|
||||||
// linear interpolation via float: 0.0=begin, 1.0=end
|
// linear interpolation via float: 0.0=begin, 1.0=end
|
||||||
template <typename X>
|
template <typename X>
|
||||||
[[nodiscard]] constexpr decltype(X{} * float{} + X{} * float{}) Lerp(const X& begin, const X& end,
|
[[nodiscard]] constexpr decltype(X{} * float{} + X{} * float{})
|
||||||
const float t) {
|
Lerp(const X& begin, const X& end, const float t) {
|
||||||
return begin * (1.f - t) + end * t;
|
return begin * (1.f - t) + end * t;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -436,8 +436,9 @@ void GSP_GPU::SignalInterruptForThread(InterruptId interrupt_id, u32 thread_id)
|
||||||
// executing any GSP commands, only waiting on the event.
|
// executing any GSP commands, only waiting on the event.
|
||||||
// TODO(Subv): The real GSP module triggers PDC0 after updating both the top and bottom
|
// TODO(Subv): The real GSP module triggers PDC0 after updating both the top and bottom
|
||||||
// screen, it is currently unknown what PDC1 does.
|
// screen, it is currently unknown what PDC1 does.
|
||||||
int screen_id =
|
int screen_id = (interrupt_id == InterruptId::PDC0) ? 0
|
||||||
(interrupt_id == InterruptId::PDC0) ? 0 : (interrupt_id == InterruptId::PDC1) ? 1 : -1;
|
: (interrupt_id == InterruptId::PDC1) ? 1
|
||||||
|
: -1;
|
||||||
if (screen_id != -1) {
|
if (screen_id != -1) {
|
||||||
FrameBufferUpdate* info = GetFrameBufferInfo(thread_id, screen_id);
|
FrameBufferUpdate* info = GetFrameBufferInfo(thread_id, screen_id);
|
||||||
if (info->is_dirty) {
|
if (info->is_dirty) {
|
||||||
|
|
|
@ -190,11 +190,10 @@ void Recorder::MemoryAccessed(const u8* data, u32 size, u32 physical_address) {
|
||||||
template <typename T>
|
template <typename T>
|
||||||
void Recorder::RegisterWritten(u32 physical_address, T value) {
|
void Recorder::RegisterWritten(u32 physical_address, T value) {
|
||||||
StreamElement element = {{RegisterWrite}};
|
StreamElement element = {{RegisterWrite}};
|
||||||
element.data.register_write.size =
|
element.data.register_write.size = (sizeof(T) == 1) ? CTRegisterWrite::SIZE_8
|
||||||
(sizeof(T) == 1) ? CTRegisterWrite::SIZE_8
|
: (sizeof(T) == 2) ? CTRegisterWrite::SIZE_16
|
||||||
: (sizeof(T) == 2) ? CTRegisterWrite::SIZE_16
|
: (sizeof(T) == 4) ? CTRegisterWrite::SIZE_32
|
||||||
: (sizeof(T) == 4) ? CTRegisterWrite::SIZE_32
|
: CTRegisterWrite::SIZE_64;
|
||||||
: CTRegisterWrite::SIZE_64;
|
|
||||||
element.data.register_write.physical_address = physical_address;
|
element.data.register_write.physical_address = physical_address;
|
||||||
element.data.register_write.value = value;
|
element.data.register_write.value = value;
|
||||||
|
|
||||||
|
|
|
@ -77,9 +77,9 @@ struct PipelineRegs {
|
||||||
}
|
}
|
||||||
|
|
||||||
u32 GetElementSizeInBytes(std::size_t n) const {
|
u32 GetElementSizeInBytes(std::size_t n) const {
|
||||||
return (GetFormat(n) == VertexAttributeFormat::FLOAT)
|
return (GetFormat(n) == VertexAttributeFormat::FLOAT) ? 4
|
||||||
? 4
|
: (GetFormat(n) == VertexAttributeFormat::SHORT) ? 2
|
||||||
: (GetFormat(n) == VertexAttributeFormat::SHORT) ? 2 : 1;
|
: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
u32 GetStride(std::size_t n) const {
|
u32 GetStride(std::size_t n) const {
|
||||||
|
|
|
@ -630,9 +630,9 @@ private:
|
||||||
std::string dest_reg =
|
std::string dest_reg =
|
||||||
(instr.mad.dest.Value() < 0x10)
|
(instr.mad.dest.Value() < 0x10)
|
||||||
? outputreg_getter(static_cast<u32>(instr.mad.dest.Value().GetIndex()))
|
? outputreg_getter(static_cast<u32>(instr.mad.dest.Value().GetIndex()))
|
||||||
: (instr.mad.dest.Value() < 0x20)
|
: (instr.mad.dest.Value() < 0x20)
|
||||||
? "reg_tmp" + std::to_string(instr.mad.dest.Value().GetIndex())
|
? "reg_tmp" + std::to_string(instr.mad.dest.Value().GetIndex())
|
||||||
: "";
|
: "";
|
||||||
|
|
||||||
if (sanitize_mul) {
|
if (sanitize_mul) {
|
||||||
SetDest(swizzle, dest_reg,
|
SetDest(swizzle, dest_reg,
|
||||||
|
|
|
@ -174,9 +174,9 @@ static void RunInterpreter(const ShaderSetup& setup, UnitState& state, DebugData
|
||||||
float24* dest =
|
float24* dest =
|
||||||
(instr.common.dest.Value() < 0x10)
|
(instr.common.dest.Value() < 0x10)
|
||||||
? &state.registers.output[instr.common.dest.Value().GetIndex()][0]
|
? &state.registers.output[instr.common.dest.Value().GetIndex()][0]
|
||||||
: (instr.common.dest.Value() < 0x20)
|
: (instr.common.dest.Value() < 0x20)
|
||||||
? &state.registers.temporary[instr.common.dest.Value().GetIndex()][0]
|
? &state.registers.temporary[instr.common.dest.Value().GetIndex()][0]
|
||||||
: dummy_vec4_float24;
|
: dummy_vec4_float24;
|
||||||
|
|
||||||
debug_data.max_opdesc_id =
|
debug_data.max_opdesc_id =
|
||||||
std::max<u32>(debug_data.max_opdesc_id, 1 + instr.common.operand_desc_id);
|
std::max<u32>(debug_data.max_opdesc_id, 1 + instr.common.operand_desc_id);
|
||||||
|
@ -517,9 +517,9 @@ static void RunInterpreter(const ShaderSetup& setup, UnitState& state, DebugData
|
||||||
float24* dest =
|
float24* dest =
|
||||||
(instr.mad.dest.Value() < 0x10)
|
(instr.mad.dest.Value() < 0x10)
|
||||||
? &state.registers.output[instr.mad.dest.Value().GetIndex()][0]
|
? &state.registers.output[instr.mad.dest.Value().GetIndex()][0]
|
||||||
: (instr.mad.dest.Value() < 0x20)
|
: (instr.mad.dest.Value() < 0x20)
|
||||||
? &state.registers.temporary[instr.mad.dest.Value().GetIndex()][0]
|
? &state.registers.temporary[instr.mad.dest.Value().GetIndex()][0]
|
||||||
: dummy_vec4_float24;
|
: dummy_vec4_float24;
|
||||||
|
|
||||||
Record<DebugDataRecord::SRC1>(debug_data, iteration, src1);
|
Record<DebugDataRecord::SRC1>(debug_data, iteration, src1);
|
||||||
Record<DebugDataRecord::SRC2>(debug_data, iteration, src2);
|
Record<DebugDataRecord::SRC2>(debug_data, iteration, src2);
|
||||||
|
|
|
@ -88,10 +88,10 @@ void VertexLoader::LoadVertex(u32 base_address, int index, int vertex,
|
||||||
vertex_attribute_elements[i] *
|
vertex_attribute_elements[i] *
|
||||||
((vertex_attribute_formats[i] == PipelineRegs::VertexAttributeFormat::FLOAT)
|
((vertex_attribute_formats[i] == PipelineRegs::VertexAttributeFormat::FLOAT)
|
||||||
? 4
|
? 4
|
||||||
: (vertex_attribute_formats[i] ==
|
: (vertex_attribute_formats[i] ==
|
||||||
PipelineRegs::VertexAttributeFormat::SHORT)
|
PipelineRegs::VertexAttributeFormat::SHORT)
|
||||||
? 2
|
? 2
|
||||||
: 1));
|
: 1));
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (vertex_attribute_formats[i]) {
|
switch (vertex_attribute_formats[i]) {
|
||||||
|
|
Loading…
Reference in a new issue