[shader_recompiler/Maxwell] ISBERD add size reads
Some checks failed
eden-license / license-header (pull_request) Failing after 26s
Some checks failed
eden-license / license-header (pull_request) Failing after 26s
This commit is contained in:
parent
51b170b470
commit
92c6e92558
6 changed files with 492 additions and 436 deletions
|
@ -240,6 +240,7 @@ add_library(shader_recompiler STATIC
|
||||||
runtime_info.h
|
runtime_info.h
|
||||||
shader_info.h
|
shader_info.h
|
||||||
varying_state.h
|
varying_state.h
|
||||||
|
frontend/maxwell/translate/impl/internal_stage_buffer_entry_read.h
|
||||||
)
|
)
|
||||||
|
|
||||||
if (YUZU_USE_EXTERNAL_VULKAN_SPIRV_TOOLS)
|
if (YUZU_USE_EXTERNAL_VULKAN_SPIRV_TOOLS)
|
||||||
|
|
|
@ -268,4 +268,40 @@ void TranslatorVisitor::ResetOFlag() {
|
||||||
SetOFlag(ir.Imm1(false));
|
SetOFlag(ir.Imm1(false));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
IR::U32 TranslatorVisitor::apply_ISBERD_shift(IR::U32 result, isberd::Shift shift_value) {
|
||||||
|
if (shift_value != isberd::Shift::Default) {
|
||||||
|
return ir.ShiftLeftLogical(result, ir.Imm32(1));
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
IR::U32 TranslatorVisitor::apply_ISBERD_size_read(IR::U32 address, isberd::SZ sz) {
|
||||||
|
switch (sz) {
|
||||||
|
case isberd::SZ::U8:
|
||||||
|
return ir.LoadGlobalU8(ir.UConvert(64, address));
|
||||||
|
case isberd::SZ::U16:
|
||||||
|
return ir.LoadGlobalU16(ir.UConvert(64, address));
|
||||||
|
case isberd::SZ::U32:
|
||||||
|
case isberd::SZ::F32:
|
||||||
|
return ir.LoadGlobal32(ir.UConvert(64, address));
|
||||||
|
default:
|
||||||
|
UNREACHABLE();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
IR::U32 TranslatorVisitor::compute_ISBERD_address(IR::Reg src_reg, u32 src_reg_num, u32 imm, u64 skew_value) {
|
||||||
|
IR::U32 address{};
|
||||||
|
if (src_reg_num == 0xFF) {
|
||||||
|
address = ir.Imm32(imm);
|
||||||
|
} else {
|
||||||
|
auto offset = ir.Imm32(imm);
|
||||||
|
address = ir.IAdd(X(src_reg), offset);
|
||||||
|
if (skew_value != 0) {
|
||||||
|
address = ir.IAdd(address, ir.LaneId());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return address;
|
||||||
|
};
|
||||||
|
|
||||||
} // namespace Shader::Maxwell
|
} // namespace Shader::Maxwell
|
||||||
|
|
|
@ -7,6 +7,7 @@
|
||||||
#include "shader_recompiler/frontend/ir/basic_block.h"
|
#include "shader_recompiler/frontend/ir/basic_block.h"
|
||||||
#include "shader_recompiler/frontend/ir/ir_emitter.h"
|
#include "shader_recompiler/frontend/ir/ir_emitter.h"
|
||||||
#include "shader_recompiler/frontend/maxwell/instruction.h"
|
#include "shader_recompiler/frontend/maxwell/instruction.h"
|
||||||
|
#include "shader_recompiler/frontend/maxwell/translate/impl/internal_stage_buffer_entry_read.h"
|
||||||
|
|
||||||
namespace Shader::Maxwell {
|
namespace Shader::Maxwell {
|
||||||
|
|
||||||
|
@ -381,6 +382,11 @@ public:
|
||||||
void ResetSFlag();
|
void ResetSFlag();
|
||||||
void ResetCFlag();
|
void ResetCFlag();
|
||||||
void ResetOFlag();
|
void ResetOFlag();
|
||||||
|
|
||||||
|
// Helper functions for various translator visitors
|
||||||
|
IR::U32 apply_ISBERD_shift(IR::U32 result, isberd::Shift shift_value);
|
||||||
|
IR::U32 apply_ISBERD_size_read(IR::U32 address, isberd::SZ sz_value);
|
||||||
|
IR::U32 compute_ISBERD_address(IR::Reg src_reg, u32 src_reg_num, u32 imm, u64 skew_value);
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Shader::Maxwell
|
} // namespace Shader::Maxwell
|
||||||
|
|
|
@ -7,23 +7,9 @@
|
||||||
#include "common/bit_field.h"
|
#include "common/bit_field.h"
|
||||||
#include "common/common_types.h"
|
#include "common/common_types.h"
|
||||||
#include "shader_recompiler/frontend/maxwell/translate/impl/impl.h"
|
#include "shader_recompiler/frontend/maxwell/translate/impl/impl.h"
|
||||||
|
#include "shader_recompiler/frontend/maxwell/translate/impl/internal_stage_buffer_entry_read.h"
|
||||||
|
|
||||||
namespace Shader::Maxwell {
|
namespace Shader::Maxwell {
|
||||||
namespace {
|
|
||||||
enum class Mode : u64 {
|
|
||||||
Default,
|
|
||||||
Patch,
|
|
||||||
Prim,
|
|
||||||
Attr,
|
|
||||||
};
|
|
||||||
|
|
||||||
enum class Shift : u64 {
|
|
||||||
Default,
|
|
||||||
U16,
|
|
||||||
B32,
|
|
||||||
};
|
|
||||||
|
|
||||||
} // Anonymous namespace
|
|
||||||
|
|
||||||
// Valid only for GS, TI, VS and trap
|
// Valid only for GS, TI, VS and trap
|
||||||
void TranslatorVisitor::ISBERD(u64 insn) {
|
void TranslatorVisitor::ISBERD(u64 insn) {
|
||||||
|
@ -35,70 +21,49 @@ void TranslatorVisitor::ISBERD(u64 insn) {
|
||||||
BitField<24, 8, u32> imm;
|
BitField<24, 8, u32> imm;
|
||||||
BitField<31, 1, u64> skew;
|
BitField<31, 1, u64> skew;
|
||||||
BitField<32, 1, u64> o;
|
BitField<32, 1, u64> o;
|
||||||
BitField<33, 2, Mode> mode;
|
BitField<33, 2, isberd::Mode> mode;
|
||||||
BitField<47, 2, Shift> shift;
|
BitField<36, 4, isberd::SZ> sz;
|
||||||
|
BitField<47, 2, isberd::Shift> shift;
|
||||||
} const isberd{insn};
|
} const isberd{insn};
|
||||||
|
|
||||||
if (isberd.skew != 0) {
|
auto address = compute_ISBERD_address(isberd.src_reg, isberd.src_reg_num, isberd.imm, isberd.skew);
|
||||||
IR::U32 current_lane_id{ir.LaneId()};
|
|
||||||
IR::U32 result{ir.IAdd(X(isberd.src_reg), current_lane_id)};
|
|
||||||
X(isberd.dest_reg, result);
|
|
||||||
}
|
|
||||||
if (isberd.o != 0) {
|
if (isberd.o != 0) {
|
||||||
IR::U32 address{};
|
auto result = apply_ISBERD_size_read(address, isberd.sz.Value());
|
||||||
IR::F32 result{};
|
X(isberd.dest_reg, apply_ISBERD_shift(result, isberd.shift.Value()));
|
||||||
if (isberd.src_reg_num == 0xFF) {
|
|
||||||
address = ir.Imm32(isberd.imm);
|
return;
|
||||||
result = ir.GetAttributeIndexed(address);
|
|
||||||
} else {
|
|
||||||
IR::U32 offset = ir.Imm32(isberd.imm);
|
|
||||||
address = ir.IAdd(X(isberd.src_reg), offset);
|
|
||||||
result = ir.GetAttributeIndexed(address);
|
|
||||||
}
|
|
||||||
X(isberd.dest_reg, ir.BitCast<IR::U32>(result));
|
|
||||||
}
|
}
|
||||||
if (isberd.mode != Mode::Default) {
|
|
||||||
IR::F32 result{};
|
if (isberd.mode != isberd::Mode::Default) {
|
||||||
IR::U32 index{};
|
IR::F32 result_f32{};
|
||||||
if (isberd.src_reg_num == 0xFF) {
|
switch (isberd.mode.Value()) {
|
||||||
index = ir.Imm32(isberd.imm);
|
case isberd::Mode::Patch:
|
||||||
} else {
|
result_f32 = ir.GetPatch(address.Patch());
|
||||||
index = ir.IAdd(X(isberd.src_reg), ir.Imm32(isberd.imm));
|
break;
|
||||||
|
case isberd::Mode::Prim:
|
||||||
|
result_f32 = ir.GetAttribute(address.Attribute());
|
||||||
|
break;
|
||||||
|
case isberd::Mode::Attr:
|
||||||
|
result_f32 = ir.GetAttributeIndexed(address);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
UNREACHABLE();
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (static_cast<u64>(isberd.mode.Value())) {
|
auto result_u32 = ir.BitCast<IR::U32>(result_f32);
|
||||||
case static_cast<u64>(Mode::Patch):
|
X(isberd.dest_reg, apply_ISBERD_shift(result_u32, isberd.shift.Value()));
|
||||||
result = ir.GetPatch(index.Patch());
|
return;
|
||||||
break;
|
|
||||||
case static_cast<u64>(Mode::Prim):
|
|
||||||
result = ir.GetAttribute(index.Attribute());
|
|
||||||
break;
|
|
||||||
case static_cast<u64>(Mode::Attr):
|
|
||||||
result = ir.GetAttributeIndexed(index);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
X(isberd.dest_reg, ir.BitCast<IR::U32>(result));
|
|
||||||
}
|
}
|
||||||
if (isberd.shift != Shift::Default) {
|
|
||||||
IR::U32 result{};
|
if (isberd.skew != 0) {
|
||||||
switch (static_cast<u64>(isberd.shift.Value())) {
|
auto result = ir.IAdd(X(isberd.src_reg), ir.LaneId());
|
||||||
case static_cast<u64>(Shift::U16):
|
|
||||||
result = ir.ShiftLeftLogical(result, static_cast<IR::U32>(ir.Imm16(1)));
|
|
||||||
break;
|
|
||||||
case static_cast<u64>(Shift::B32):
|
|
||||||
result = ir.ShiftLeftLogical(result, ir.Imm32(1));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
X(isberd.dest_reg, result);
|
X(isberd.dest_reg, result);
|
||||||
|
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
//LOG_DEBUG(Shader, "(STUBBED) called {}", insn);
|
|
||||||
if (isberd.src_reg_num == 0xFF) {
|
// Fallback if nothing else applies
|
||||||
IR::U32 src_imm{ir.Imm32(static_cast<u32>(isberd.imm))};
|
X(isberd.dest_reg, X(isberd.src_reg));
|
||||||
IR::U32 result{ir.IAdd(X(isberd.src_reg), src_imm)};
|
|
||||||
X(isberd.dest_reg, result);
|
|
||||||
} else {
|
|
||||||
X(isberd.dest_reg, X(isberd.src_reg));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace Shader::Maxwell
|
} // namespace Shader::Maxwell
|
||||||
|
|
|
@ -0,0 +1,34 @@
|
||||||
|
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
|
||||||
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
#include "shader_recompiler/environment.h"
|
||||||
|
#include "shader_recompiler/frontend/ir/basic_block.h"
|
||||||
|
#include "shader_recompiler/frontend/ir/ir_emitter.h"
|
||||||
|
#include "shader_recompiler/frontend/maxwell/instruction.h"
|
||||||
|
|
||||||
|
namespace Shader::Maxwell {
|
||||||
|
namespace isberd {
|
||||||
|
enum class Mode : u64 {
|
||||||
|
Default,
|
||||||
|
Patch,
|
||||||
|
Prim,
|
||||||
|
Attr,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum class Shift : u64 {
|
||||||
|
Default,
|
||||||
|
U16,
|
||||||
|
B32,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum class SZ : u64 {
|
||||||
|
U8,
|
||||||
|
U16,
|
||||||
|
U32,
|
||||||
|
F32,
|
||||||
|
};
|
||||||
|
|
||||||
|
} // Anonymous namespace
|
||||||
|
|
||||||
|
} // namespace Shader::Maxwell
|
|
@ -1,325 +1,325 @@
|
||||||
# SPDX-FileCopyrightText: 2018 yuzu Emulator Project
|
# SPDX-FileCopyrightText: 2018 yuzu Emulator Project SPDX-License-Identifier:
|
||||||
# SPDX-License-Identifier: GPL-2.0-or-later
|
# GPL-2.0-or-later
|
||||||
|
|
||||||
add_subdirectory(host_shaders)
|
add_subdirectory(host_shaders)
|
||||||
|
|
||||||
if(LIBVA_FOUND)
|
if(LIBVA_FOUND)
|
||||||
set_source_files_properties(host1x/ffmpeg/ffmpeg.cpp
|
set_source_files_properties(host1x/ffmpeg/ffmpeg.cpp
|
||||||
PROPERTIES COMPILE_DEFINITIONS LIBVA_FOUND=1)
|
PROPERTIES COMPILE_DEFINITIONS LIBVA_FOUND=1)
|
||||||
list(APPEND FFmpeg_LIBRARIES ${LIBVA_LIBRARIES})
|
list(APPEND FFmpeg_LIBRARIES ${LIBVA_LIBRARIES})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_library(video_core STATIC
|
add_library(
|
||||||
buffer_cache/buffer_base.h
|
video_core STATIC
|
||||||
buffer_cache/buffer_cache_base.h
|
buffer_cache/buffer_base.h
|
||||||
buffer_cache/buffer_cache.cpp
|
buffer_cache/buffer_cache_base.h
|
||||||
buffer_cache/buffer_cache.h
|
buffer_cache/buffer_cache.cpp
|
||||||
buffer_cache/memory_tracker_base.h
|
buffer_cache/buffer_cache.h
|
||||||
buffer_cache/usage_tracker.h
|
buffer_cache/memory_tracker_base.h
|
||||||
buffer_cache/word_manager.h
|
buffer_cache/usage_tracker.h
|
||||||
cache_types.h
|
buffer_cache/word_manager.h
|
||||||
capture.h
|
cache_types.h
|
||||||
cdma_pusher.cpp
|
capture.h
|
||||||
cdma_pusher.h
|
cdma_pusher.cpp
|
||||||
compatible_formats.cpp
|
cdma_pusher.h
|
||||||
compatible_formats.h
|
compatible_formats.cpp
|
||||||
control/channel_state.cpp
|
compatible_formats.h
|
||||||
control/channel_state.h
|
control/channel_state.cpp
|
||||||
control/channel_state_cache.cpp
|
control/channel_state.h
|
||||||
control/channel_state_cache.h
|
control/channel_state_cache.cpp
|
||||||
control/scheduler.cpp
|
control/channel_state_cache.h
|
||||||
control/scheduler.h
|
control/scheduler.cpp
|
||||||
delayed_destruction_ring.h
|
control/scheduler.h
|
||||||
dirty_flags.cpp
|
delayed_destruction_ring.h
|
||||||
dirty_flags.h
|
dirty_flags.cpp
|
||||||
dma_pusher.cpp
|
dirty_flags.h
|
||||||
dma_pusher.h
|
dma_pusher.cpp
|
||||||
engines/sw_blitter/blitter.cpp
|
dma_pusher.h
|
||||||
engines/sw_blitter/blitter.h
|
engines/sw_blitter/blitter.cpp
|
||||||
engines/sw_blitter/converter.cpp
|
engines/sw_blitter/blitter.h
|
||||||
engines/sw_blitter/converter.h
|
engines/sw_blitter/converter.cpp
|
||||||
engines/const_buffer_info.h
|
engines/sw_blitter/converter.h
|
||||||
engines/draw_manager.cpp
|
engines/const_buffer_info.h
|
||||||
engines/draw_manager.h
|
engines/draw_manager.cpp
|
||||||
engines/engine_interface.h
|
engines/draw_manager.h
|
||||||
engines/engine_upload.cpp
|
engines/engine_interface.h
|
||||||
engines/engine_upload.h
|
engines/engine_upload.cpp
|
||||||
engines/fermi_2d.cpp
|
engines/engine_upload.h
|
||||||
engines/fermi_2d.h
|
engines/fermi_2d.cpp
|
||||||
engines/kepler_compute.cpp
|
engines/fermi_2d.h
|
||||||
engines/kepler_compute.h
|
engines/kepler_compute.cpp
|
||||||
engines/kepler_memory.cpp
|
engines/kepler_compute.h
|
||||||
engines/kepler_memory.h
|
engines/kepler_memory.cpp
|
||||||
engines/maxwell_3d.cpp
|
engines/kepler_memory.h
|
||||||
engines/maxwell_3d.h
|
engines/maxwell_3d.cpp
|
||||||
engines/maxwell_dma.cpp
|
engines/maxwell_3d.h
|
||||||
engines/maxwell_dma.h
|
engines/maxwell_dma.cpp
|
||||||
engines/puller.cpp
|
engines/maxwell_dma.h
|
||||||
engines/puller.h
|
engines/puller.cpp
|
||||||
framebuffer_config.cpp
|
engines/puller.h
|
||||||
framebuffer_config.h
|
framebuffer_config.cpp
|
||||||
fsr.cpp
|
framebuffer_config.h
|
||||||
fsr.h
|
fsr.cpp
|
||||||
host1x/codecs/decoder.cpp
|
fsr.h
|
||||||
host1x/codecs/decoder.h
|
host1x/codecs/decoder.cpp
|
||||||
host1x/codecs/h264.cpp
|
host1x/codecs/decoder.h
|
||||||
host1x/codecs/h264.h
|
host1x/codecs/h264.cpp
|
||||||
host1x/codecs/vp8.cpp
|
host1x/codecs/h264.h
|
||||||
host1x/codecs/vp8.h
|
host1x/codecs/vp8.cpp
|
||||||
host1x/codecs/vp9.cpp
|
host1x/codecs/vp8.h
|
||||||
host1x/codecs/vp9.h
|
host1x/codecs/vp9.cpp
|
||||||
host1x/codecs/vp9_types.h
|
host1x/codecs/vp9.h
|
||||||
host1x/ffmpeg/ffmpeg.cpp
|
host1x/codecs/vp9_types.h
|
||||||
host1x/ffmpeg/ffmpeg.h
|
host1x/ffmpeg/ffmpeg.cpp
|
||||||
host1x/control.cpp
|
host1x/ffmpeg/ffmpeg.h
|
||||||
host1x/control.h
|
host1x/control.cpp
|
||||||
host1x/gpu_device_memory_manager.cpp
|
host1x/control.h
|
||||||
host1x/gpu_device_memory_manager.h
|
host1x/gpu_device_memory_manager.cpp
|
||||||
host1x/host1x.cpp
|
host1x/gpu_device_memory_manager.h
|
||||||
host1x/host1x.h
|
host1x/host1x.cpp
|
||||||
host1x/nvdec.cpp
|
host1x/host1x.h
|
||||||
host1x/nvdec.h
|
host1x/nvdec.cpp
|
||||||
host1x/nvdec_common.h
|
host1x/nvdec.h
|
||||||
host1x/syncpoint_manager.cpp
|
host1x/nvdec_common.h
|
||||||
host1x/syncpoint_manager.h
|
host1x/syncpoint_manager.cpp
|
||||||
host1x/vic.cpp
|
host1x/syncpoint_manager.h
|
||||||
host1x/vic.h
|
host1x/vic.cpp
|
||||||
macro/macro.cpp
|
host1x/vic.h
|
||||||
macro/macro.h
|
macro/macro.cpp
|
||||||
macro/macro_hle.cpp
|
macro/macro.h
|
||||||
macro/macro_hle.h
|
macro/macro_hle.cpp
|
||||||
macro/macro_interpreter.cpp
|
macro/macro_hle.h
|
||||||
macro/macro_interpreter.h
|
macro/macro_interpreter.cpp
|
||||||
fence_manager.h
|
macro/macro_interpreter.h
|
||||||
gpu.cpp
|
fence_manager.h
|
||||||
gpu.h
|
gpu.cpp
|
||||||
gpu_thread.cpp
|
gpu.h
|
||||||
gpu_thread.h
|
gpu_thread.cpp
|
||||||
guest_memory.h
|
gpu_thread.h
|
||||||
invalidation_accumulator.h
|
guest_memory.h
|
||||||
memory_manager.cpp
|
invalidation_accumulator.h
|
||||||
memory_manager.h
|
memory_manager.cpp
|
||||||
precompiled_headers.h
|
memory_manager.h
|
||||||
present.h
|
precompiled_headers.h
|
||||||
pte_kind.h
|
present.h
|
||||||
query_cache/bank_base.h
|
pte_kind.h
|
||||||
query_cache/query_base.h
|
query_cache/bank_base.h
|
||||||
query_cache/query_cache_base.h
|
query_cache/query_base.h
|
||||||
query_cache/query_cache.h
|
query_cache/query_cache_base.h
|
||||||
query_cache/query_stream.h
|
query_cache/query_cache.h
|
||||||
query_cache/types.h
|
query_cache/query_stream.h
|
||||||
query_cache.h
|
query_cache/types.h
|
||||||
rasterizer_interface.h
|
query_cache.h
|
||||||
renderer_base.cpp
|
rasterizer_interface.h
|
||||||
renderer_base.h
|
renderer_base.cpp
|
||||||
renderer_null/null_rasterizer.cpp
|
renderer_base.h
|
||||||
renderer_null/null_rasterizer.h
|
renderer_null/null_rasterizer.cpp
|
||||||
renderer_null/renderer_null.cpp
|
renderer_null/null_rasterizer.h
|
||||||
renderer_null/renderer_null.h
|
renderer_null/renderer_null.cpp
|
||||||
renderer_opengl/present/filters.cpp
|
renderer_null/renderer_null.h
|
||||||
renderer_opengl/present/filters.h
|
renderer_opengl/present/filters.cpp
|
||||||
renderer_opengl/present/fsr.cpp
|
renderer_opengl/present/filters.h
|
||||||
renderer_opengl/present/fsr.h
|
renderer_opengl/present/fsr.cpp
|
||||||
renderer_opengl/present/fxaa.cpp
|
renderer_opengl/present/fsr.h
|
||||||
renderer_opengl/present/fxaa.h
|
renderer_opengl/present/fxaa.cpp
|
||||||
renderer_opengl/present/layer.cpp
|
renderer_opengl/present/fxaa.h
|
||||||
renderer_opengl/present/layer.h
|
renderer_opengl/present/layer.cpp
|
||||||
renderer_opengl/present/present_uniforms.h
|
renderer_opengl/present/layer.h
|
||||||
renderer_opengl/present/smaa.cpp
|
renderer_opengl/present/present_uniforms.h
|
||||||
renderer_opengl/present/smaa.h
|
renderer_opengl/present/smaa.cpp
|
||||||
renderer_opengl/present/util.h
|
renderer_opengl/present/smaa.h
|
||||||
renderer_opengl/present/window_adapt_pass.cpp
|
renderer_opengl/present/util.h
|
||||||
renderer_opengl/present/window_adapt_pass.h
|
renderer_opengl/present/window_adapt_pass.cpp
|
||||||
renderer_opengl/blit_image.cpp
|
renderer_opengl/present/window_adapt_pass.h
|
||||||
renderer_opengl/blit_image.h
|
renderer_opengl/blit_image.cpp
|
||||||
renderer_opengl/gl_blit_screen.cpp
|
renderer_opengl/blit_image.h
|
||||||
renderer_opengl/gl_blit_screen.h
|
renderer_opengl/gl_blit_screen.cpp
|
||||||
renderer_opengl/gl_buffer_cache_base.cpp
|
renderer_opengl/gl_blit_screen.h
|
||||||
renderer_opengl/gl_buffer_cache.cpp
|
renderer_opengl/gl_buffer_cache_base.cpp
|
||||||
renderer_opengl/gl_buffer_cache.h
|
renderer_opengl/gl_buffer_cache.cpp
|
||||||
renderer_opengl/gl_compute_pipeline.cpp
|
renderer_opengl/gl_buffer_cache.h
|
||||||
renderer_opengl/gl_compute_pipeline.h
|
renderer_opengl/gl_compute_pipeline.cpp
|
||||||
renderer_opengl/gl_device.cpp
|
renderer_opengl/gl_compute_pipeline.h
|
||||||
renderer_opengl/gl_device.h
|
renderer_opengl/gl_device.cpp
|
||||||
renderer_opengl/gl_fence_manager.cpp
|
renderer_opengl/gl_device.h
|
||||||
renderer_opengl/gl_fence_manager.h
|
renderer_opengl/gl_fence_manager.cpp
|
||||||
renderer_opengl/gl_graphics_pipeline.cpp
|
renderer_opengl/gl_fence_manager.h
|
||||||
renderer_opengl/gl_graphics_pipeline.h
|
renderer_opengl/gl_graphics_pipeline.cpp
|
||||||
renderer_opengl/gl_rasterizer.cpp
|
renderer_opengl/gl_graphics_pipeline.h
|
||||||
renderer_opengl/gl_rasterizer.h
|
renderer_opengl/gl_rasterizer.cpp
|
||||||
renderer_opengl/gl_resource_manager.cpp
|
renderer_opengl/gl_rasterizer.h
|
||||||
renderer_opengl/gl_resource_manager.h
|
renderer_opengl/gl_resource_manager.cpp
|
||||||
renderer_opengl/gl_shader_cache.cpp
|
renderer_opengl/gl_resource_manager.h
|
||||||
renderer_opengl/gl_shader_cache.h
|
renderer_opengl/gl_shader_cache.cpp
|
||||||
renderer_opengl/gl_shader_manager.cpp
|
renderer_opengl/gl_shader_cache.h
|
||||||
renderer_opengl/gl_shader_manager.h
|
renderer_opengl/gl_shader_manager.cpp
|
||||||
renderer_opengl/gl_shader_context.h
|
renderer_opengl/gl_shader_manager.h
|
||||||
renderer_opengl/gl_shader_util.cpp
|
renderer_opengl/gl_shader_context.h
|
||||||
renderer_opengl/gl_shader_util.h
|
renderer_opengl/gl_shader_util.cpp
|
||||||
renderer_opengl/gl_state_tracker.cpp
|
renderer_opengl/gl_shader_util.h
|
||||||
renderer_opengl/gl_state_tracker.h
|
renderer_opengl/gl_state_tracker.cpp
|
||||||
renderer_opengl/gl_staging_buffer_pool.cpp
|
renderer_opengl/gl_state_tracker.h
|
||||||
renderer_opengl/gl_staging_buffer_pool.h
|
renderer_opengl/gl_staging_buffer_pool.cpp
|
||||||
renderer_opengl/gl_texture_cache.cpp
|
renderer_opengl/gl_staging_buffer_pool.h
|
||||||
renderer_opengl/gl_texture_cache.h
|
renderer_opengl/gl_texture_cache.cpp
|
||||||
renderer_opengl/gl_texture_cache_base.cpp
|
renderer_opengl/gl_texture_cache.h
|
||||||
renderer_opengl/gl_query_cache.cpp
|
renderer_opengl/gl_texture_cache_base.cpp
|
||||||
renderer_opengl/gl_query_cache.h
|
renderer_opengl/gl_query_cache.cpp
|
||||||
renderer_opengl/maxwell_to_gl.h
|
renderer_opengl/gl_query_cache.h
|
||||||
renderer_opengl/renderer_opengl.cpp
|
renderer_opengl/maxwell_to_gl.h
|
||||||
renderer_opengl/renderer_opengl.h
|
renderer_opengl/renderer_opengl.cpp
|
||||||
renderer_opengl/util_shaders.cpp
|
renderer_opengl/renderer_opengl.h
|
||||||
renderer_opengl/util_shaders.h
|
renderer_opengl/util_shaders.cpp
|
||||||
renderer_vulkan/present/anti_alias_pass.h
|
renderer_opengl/util_shaders.h
|
||||||
renderer_vulkan/present/filters.cpp
|
renderer_vulkan/present/anti_alias_pass.h
|
||||||
renderer_vulkan/present/filters.h
|
renderer_vulkan/present/filters.cpp
|
||||||
renderer_vulkan/present/fsr.cpp
|
renderer_vulkan/present/filters.h
|
||||||
renderer_vulkan/present/fsr.h
|
renderer_vulkan/present/fsr.cpp
|
||||||
renderer_vulkan/present/fxaa.cpp
|
renderer_vulkan/present/fsr.h
|
||||||
renderer_vulkan/present/fxaa.h
|
renderer_vulkan/present/fxaa.cpp
|
||||||
renderer_vulkan/present/layer.cpp
|
renderer_vulkan/present/fxaa.h
|
||||||
renderer_vulkan/present/layer.h
|
renderer_vulkan/present/layer.cpp
|
||||||
renderer_vulkan/present/present_push_constants.h
|
renderer_vulkan/present/layer.h
|
||||||
renderer_vulkan/present/smaa.cpp
|
renderer_vulkan/present/present_push_constants.h
|
||||||
renderer_vulkan/present/smaa.h
|
renderer_vulkan/present/smaa.cpp
|
||||||
renderer_vulkan/present/util.cpp
|
renderer_vulkan/present/smaa.h
|
||||||
renderer_vulkan/present/util.h
|
renderer_vulkan/present/util.cpp
|
||||||
renderer_vulkan/present/window_adapt_pass.cpp
|
renderer_vulkan/present/util.h
|
||||||
renderer_vulkan/present/window_adapt_pass.h
|
renderer_vulkan/present/window_adapt_pass.cpp
|
||||||
renderer_vulkan/blit_image.cpp
|
renderer_vulkan/present/window_adapt_pass.h
|
||||||
renderer_vulkan/blit_image.h
|
renderer_vulkan/blit_image.cpp
|
||||||
renderer_vulkan/fixed_pipeline_state.cpp
|
renderer_vulkan/blit_image.h
|
||||||
renderer_vulkan/fixed_pipeline_state.h
|
renderer_vulkan/fixed_pipeline_state.cpp
|
||||||
renderer_vulkan/maxwell_to_vk.cpp
|
renderer_vulkan/fixed_pipeline_state.h
|
||||||
renderer_vulkan/maxwell_to_vk.h
|
renderer_vulkan/maxwell_to_vk.cpp
|
||||||
renderer_vulkan/pipeline_helper.h
|
renderer_vulkan/maxwell_to_vk.h
|
||||||
renderer_vulkan/pipeline_statistics.cpp
|
renderer_vulkan/pipeline_helper.h
|
||||||
renderer_vulkan/pipeline_statistics.h
|
renderer_vulkan/pipeline_statistics.cpp
|
||||||
renderer_vulkan/renderer_vulkan.h
|
renderer_vulkan/pipeline_statistics.h
|
||||||
renderer_vulkan/renderer_vulkan.cpp
|
renderer_vulkan/renderer_vulkan.h
|
||||||
renderer_vulkan/vk_blit_screen.cpp
|
renderer_vulkan/renderer_vulkan.cpp
|
||||||
renderer_vulkan/vk_blit_screen.h
|
renderer_vulkan/vk_blit_screen.cpp
|
||||||
renderer_vulkan/vk_buffer_cache_base.cpp
|
renderer_vulkan/vk_blit_screen.h
|
||||||
renderer_vulkan/vk_buffer_cache.cpp
|
renderer_vulkan/vk_buffer_cache_base.cpp
|
||||||
renderer_vulkan/vk_buffer_cache.h
|
renderer_vulkan/vk_buffer_cache.cpp
|
||||||
renderer_vulkan/vk_command_pool.cpp
|
renderer_vulkan/vk_buffer_cache.h
|
||||||
renderer_vulkan/vk_command_pool.h
|
renderer_vulkan/vk_command_pool.cpp
|
||||||
renderer_vulkan/vk_compute_pass.cpp
|
renderer_vulkan/vk_command_pool.h
|
||||||
renderer_vulkan/vk_compute_pass.h
|
renderer_vulkan/vk_compute_pass.cpp
|
||||||
renderer_vulkan/vk_compute_pipeline.cpp
|
renderer_vulkan/vk_compute_pass.h
|
||||||
renderer_vulkan/vk_compute_pipeline.h
|
renderer_vulkan/vk_compute_pipeline.cpp
|
||||||
renderer_vulkan/vk_descriptor_pool.cpp
|
renderer_vulkan/vk_compute_pipeline.h
|
||||||
renderer_vulkan/vk_descriptor_pool.h
|
renderer_vulkan/vk_descriptor_pool.cpp
|
||||||
renderer_vulkan/vk_fence_manager.cpp
|
renderer_vulkan/vk_descriptor_pool.h
|
||||||
renderer_vulkan/vk_fence_manager.h
|
renderer_vulkan/vk_fence_manager.cpp
|
||||||
renderer_vulkan/vk_graphics_pipeline.cpp
|
renderer_vulkan/vk_fence_manager.h
|
||||||
renderer_vulkan/vk_graphics_pipeline.h
|
renderer_vulkan/vk_graphics_pipeline.cpp
|
||||||
renderer_vulkan/vk_master_semaphore.cpp
|
renderer_vulkan/vk_graphics_pipeline.h
|
||||||
renderer_vulkan/vk_master_semaphore.h
|
renderer_vulkan/vk_master_semaphore.cpp
|
||||||
renderer_vulkan/vk_pipeline_cache.cpp
|
renderer_vulkan/vk_master_semaphore.h
|
||||||
renderer_vulkan/vk_pipeline_cache.h
|
renderer_vulkan/vk_pipeline_cache.cpp
|
||||||
renderer_vulkan/vk_present_manager.cpp
|
renderer_vulkan/vk_pipeline_cache.h
|
||||||
renderer_vulkan/vk_present_manager.h
|
renderer_vulkan/vk_present_manager.cpp
|
||||||
renderer_vulkan/vk_query_cache.cpp
|
renderer_vulkan/vk_present_manager.h
|
||||||
renderer_vulkan/vk_query_cache.h
|
renderer_vulkan/vk_query_cache.cpp
|
||||||
renderer_vulkan/vk_rasterizer.cpp
|
renderer_vulkan/vk_query_cache.h
|
||||||
renderer_vulkan/vk_rasterizer.h
|
renderer_vulkan/vk_rasterizer.cpp
|
||||||
renderer_vulkan/vk_render_pass_cache.cpp
|
renderer_vulkan/vk_rasterizer.h
|
||||||
renderer_vulkan/vk_render_pass_cache.h
|
renderer_vulkan/vk_render_pass_cache.cpp
|
||||||
renderer_vulkan/vk_resource_pool.cpp
|
renderer_vulkan/vk_render_pass_cache.h
|
||||||
renderer_vulkan/vk_resource_pool.h
|
renderer_vulkan/vk_resource_pool.cpp
|
||||||
renderer_vulkan/vk_scheduler.cpp
|
renderer_vulkan/vk_resource_pool.h
|
||||||
renderer_vulkan/vk_scheduler.h
|
renderer_vulkan/vk_scheduler.cpp
|
||||||
renderer_vulkan/vk_shader_util.cpp
|
renderer_vulkan/vk_scheduler.h
|
||||||
renderer_vulkan/vk_shader_util.h
|
renderer_vulkan/vk_shader_util.cpp
|
||||||
renderer_vulkan/vk_staging_buffer_pool.cpp
|
renderer_vulkan/vk_shader_util.h
|
||||||
renderer_vulkan/vk_staging_buffer_pool.h
|
renderer_vulkan/vk_staging_buffer_pool.cpp
|
||||||
renderer_vulkan/vk_state_tracker.cpp
|
renderer_vulkan/vk_staging_buffer_pool.h
|
||||||
renderer_vulkan/vk_state_tracker.h
|
renderer_vulkan/vk_state_tracker.cpp
|
||||||
renderer_vulkan/vk_swapchain.cpp
|
renderer_vulkan/vk_state_tracker.h
|
||||||
renderer_vulkan/vk_swapchain.h
|
renderer_vulkan/vk_swapchain.cpp
|
||||||
renderer_vulkan/vk_texture_cache.cpp
|
renderer_vulkan/vk_swapchain.h
|
||||||
renderer_vulkan/vk_texture_cache.h
|
renderer_vulkan/vk_texture_cache.cpp
|
||||||
renderer_vulkan/vk_texture_cache_base.cpp
|
renderer_vulkan/vk_texture_cache.h
|
||||||
renderer_vulkan/vk_turbo_mode.cpp
|
renderer_vulkan/vk_texture_cache_base.cpp
|
||||||
renderer_vulkan/vk_turbo_mode.h
|
renderer_vulkan/vk_turbo_mode.cpp
|
||||||
renderer_vulkan/vk_update_descriptor.cpp
|
renderer_vulkan/vk_turbo_mode.h
|
||||||
renderer_vulkan/vk_update_descriptor.h
|
renderer_vulkan/vk_update_descriptor.cpp
|
||||||
shader_cache.cpp
|
renderer_vulkan/vk_update_descriptor.h
|
||||||
shader_cache.h
|
shader_cache.cpp
|
||||||
shader_environment.cpp
|
shader_cache.h
|
||||||
shader_environment.h
|
shader_environment.cpp
|
||||||
shader_notify.cpp
|
shader_environment.h
|
||||||
shader_notify.h
|
shader_notify.cpp
|
||||||
smaa_area_tex.h
|
shader_notify.h
|
||||||
smaa_search_tex.h
|
smaa_area_tex.h
|
||||||
surface.cpp
|
smaa_search_tex.h
|
||||||
surface.h
|
surface.cpp
|
||||||
texture_cache/accelerated_swizzle.cpp
|
surface.h
|
||||||
texture_cache/accelerated_swizzle.h
|
texture_cache/accelerated_swizzle.cpp
|
||||||
texture_cache/decode_bc.cpp
|
texture_cache/accelerated_swizzle.h
|
||||||
texture_cache/decode_bc.h
|
texture_cache/decode_bc.cpp
|
||||||
texture_cache/descriptor_table.h
|
texture_cache/decode_bc.h
|
||||||
texture_cache/formatter.cpp
|
texture_cache/descriptor_table.h
|
||||||
texture_cache/formatter.h
|
texture_cache/formatter.cpp
|
||||||
texture_cache/format_lookup_table.cpp
|
texture_cache/formatter.h
|
||||||
texture_cache/format_lookup_table.h
|
texture_cache/format_lookup_table.cpp
|
||||||
texture_cache/image_base.cpp
|
texture_cache/format_lookup_table.h
|
||||||
texture_cache/image_base.h
|
texture_cache/image_base.cpp
|
||||||
texture_cache/image_info.cpp
|
texture_cache/image_base.h
|
||||||
texture_cache/image_info.h
|
texture_cache/image_info.cpp
|
||||||
texture_cache/image_view_base.cpp
|
texture_cache/image_info.h
|
||||||
texture_cache/image_view_base.h
|
texture_cache/image_view_base.cpp
|
||||||
texture_cache/image_view_info.cpp
|
texture_cache/image_view_base.h
|
||||||
texture_cache/image_view_info.h
|
texture_cache/image_view_info.cpp
|
||||||
texture_cache/render_targets.h
|
texture_cache/image_view_info.h
|
||||||
texture_cache/samples_helper.h
|
texture_cache/render_targets.h
|
||||||
texture_cache/texture_cache.cpp
|
texture_cache/samples_helper.h
|
||||||
texture_cache/texture_cache.h
|
texture_cache/texture_cache.cpp
|
||||||
texture_cache/texture_cache_base.h
|
texture_cache/texture_cache.h
|
||||||
texture_cache/types.h
|
texture_cache/texture_cache_base.h
|
||||||
texture_cache/util.cpp
|
texture_cache/types.h
|
||||||
texture_cache/util.h
|
texture_cache/util.cpp
|
||||||
textures/astc.h
|
texture_cache/util.h
|
||||||
textures/astc.cpp
|
textures/astc.h
|
||||||
textures/bcn.cpp
|
textures/astc.cpp
|
||||||
textures/bcn.h
|
textures/bcn.cpp
|
||||||
textures/decoders.cpp
|
textures/bcn.h
|
||||||
textures/decoders.h
|
textures/decoders.cpp
|
||||||
textures/texture.cpp
|
textures/decoders.h
|
||||||
textures/texture.h
|
textures/texture.cpp
|
||||||
textures/workers.cpp
|
textures/texture.h
|
||||||
textures/workers.h
|
textures/workers.cpp
|
||||||
transform_feedback.cpp
|
textures/workers.h
|
||||||
transform_feedback.h
|
transform_feedback.cpp
|
||||||
video_core.cpp
|
transform_feedback.h
|
||||||
video_core.h
|
video_core.cpp
|
||||||
vulkan_common/vulkan_debug_callback.cpp
|
video_core.h
|
||||||
vulkan_common/vulkan_debug_callback.h
|
vulkan_common/vulkan_debug_callback.cpp
|
||||||
vulkan_common/vulkan_device.cpp
|
vulkan_common/vulkan_debug_callback.h
|
||||||
vulkan_common/vulkan_device.h
|
vulkan_common/vulkan_device.cpp
|
||||||
vulkan_common/vulkan_instance.cpp
|
vulkan_common/vulkan_device.h
|
||||||
vulkan_common/vulkan_instance.h
|
vulkan_common/vulkan_instance.cpp
|
||||||
vulkan_common/vulkan_library.cpp
|
vulkan_common/vulkan_instance.h
|
||||||
vulkan_common/vulkan_library.h
|
vulkan_common/vulkan_library.cpp
|
||||||
vulkan_common/vulkan_memory_allocator.cpp
|
vulkan_common/vulkan_library.h
|
||||||
vulkan_common/vulkan_memory_allocator.h
|
vulkan_common/vulkan_memory_allocator.cpp
|
||||||
vulkan_common/vulkan_surface.cpp
|
vulkan_common/vulkan_memory_allocator.h
|
||||||
vulkan_common/vulkan_surface.h
|
vulkan_common/vulkan_surface.cpp
|
||||||
vulkan_common/vulkan_wrapper.cpp
|
vulkan_common/vulkan_surface.h
|
||||||
vulkan_common/vulkan_wrapper.h
|
vulkan_common/vulkan_wrapper.cpp
|
||||||
vulkan_common/nsight_aftermath_tracker.cpp
|
vulkan_common/vulkan_wrapper.h
|
||||||
vulkan_common/nsight_aftermath_tracker.h
|
vulkan_common/nsight_aftermath_tracker.cpp
|
||||||
vulkan_common/vma.cpp
|
vulkan_common/nsight_aftermath_tracker.h
|
||||||
vulkan_common/vma.h
|
vulkan_common/vma.cpp
|
||||||
vulkan_common/vulkan.h
|
vulkan_common/vma.h
|
||||||
)
|
vulkan_common/vulkan.h)
|
||||||
|
|
||||||
target_link_libraries(video_core PUBLIC common core)
|
target_link_libraries(video_core PUBLIC common core)
|
||||||
target_link_libraries(video_core PUBLIC glad shader_recompiler stb bc_decoder)
|
target_link_libraries(video_core PUBLIC glad shader_recompiler stb bc_decoder)
|
||||||
|
|
||||||
if (YUZU_USE_BUNDLED_FFMPEG AND NOT (WIN32 OR ANDROID))
|
if(YUZU_USE_BUNDLED_FFMPEG AND NOT (WIN32 OR ANDROID))
|
||||||
add_dependencies(video_core ffmpeg-build)
|
add_dependencies(video_core ffmpeg-build)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
target_include_directories(video_core PRIVATE ${FFmpeg_INCLUDE_DIR})
|
target_include_directories(video_core PRIVATE ${FFmpeg_INCLUDE_DIR})
|
||||||
|
@ -329,83 +329,97 @@ target_link_options(video_core PRIVATE ${FFmpeg_LDFLAGS})
|
||||||
add_dependencies(video_core host_shaders)
|
add_dependencies(video_core host_shaders)
|
||||||
target_include_directories(video_core PRIVATE ${HOST_SHADERS_INCLUDE})
|
target_include_directories(video_core PRIVATE ${HOST_SHADERS_INCLUDE})
|
||||||
|
|
||||||
if (VulkanMemoryAllocator_ADDED)
|
if(VulkanMemoryAllocator_ADDED)
|
||||||
target_include_directories(video_core PUBLIC ${VulkanMemoryAllocator_SOURCE_DIR}/include)
|
target_include_directories(video_core
|
||||||
|
PUBLIC ${VulkanMemoryAllocator_SOURCE_DIR}/include)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
target_link_libraries(video_core PRIVATE sirit Vulkan::Headers VulkanUtilityHeaders)
|
# target_link_libraries(video_core PRIVATE sirit Vulkan::Headers
|
||||||
|
# VulkanUtilityHeaders)
|
||||||
|
|
||||||
if (ENABLE_NSIGHT_AFTERMATH)
|
if(ENABLE_NSIGHT_AFTERMATH)
|
||||||
if (NOT DEFINED ENV{NSIGHT_AFTERMATH_SDK})
|
if(NOT DEFINED ENV{NSIGHT_AFTERMATH_SDK})
|
||||||
message(FATAL_ERROR "Environment variable NSIGHT_AFTERMATH_SDK has to be provided")
|
message(
|
||||||
endif()
|
FATAL_ERROR "Environment variable NSIGHT_AFTERMATH_SDK has to be provided"
|
||||||
if (NOT WIN32)
|
|
||||||
message(FATAL_ERROR "Nsight Aftermath doesn't support non-Windows platforms")
|
|
||||||
endif()
|
|
||||||
target_compile_definitions(video_core PRIVATE HAS_NSIGHT_AFTERMATH)
|
|
||||||
target_include_directories(video_core PRIVATE "$ENV{NSIGHT_AFTERMATH_SDK}/include")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if (MSVC)
|
|
||||||
target_compile_options(video_core PRIVATE
|
|
||||||
/we4242 # 'identifier': conversion from 'type1' to 'type2', possible loss of data
|
|
||||||
/we4244 # 'conversion': conversion from 'type1' to 'type2', possible loss of data
|
|
||||||
)
|
)
|
||||||
|
endif()
|
||||||
|
if(NOT WIN32)
|
||||||
|
message(
|
||||||
|
FATAL_ERROR "Nsight Aftermath doesn't support non-Windows platforms")
|
||||||
|
endif()
|
||||||
|
target_compile_definitions(video_core PRIVATE HAS_NSIGHT_AFTERMATH)
|
||||||
|
target_include_directories(video_core
|
||||||
|
PRIVATE "$ENV{NSIGHT_AFTERMATH_SDK}/include")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(MSVC)
|
||||||
|
target_compile_options(
|
||||||
|
video_core
|
||||||
|
PRIVATE /we4242 # 'identifier': conversion from 'type1' to 'type2', possible
|
||||||
|
# loss of data
|
||||||
|
/we4244 # 'conversion': conversion from 'type1' to 'type2', possible
|
||||||
|
# loss of data
|
||||||
|
)
|
||||||
else()
|
else()
|
||||||
if (APPLE)
|
if(APPLE)
|
||||||
# error: declaration shadows a typedef in 'interval_base_set<SubType, DomainT, Compare, Interval, Alloc>'
|
# error: declaration shadows a typedef in 'interval_base_set<SubType,
|
||||||
# error: implicit conversion loses integer precision: 'int' to 'boost::icl::bound_type' (aka 'unsigned char')
|
# DomainT, Compare, Interval, Alloc>' error: implicit conversion loses
|
||||||
target_compile_options(video_core PRIVATE -Wno-shadow -Wno-unused-local-typedef)
|
# integer precision: 'int' to 'boost::icl::bound_type' (aka 'unsigned char')
|
||||||
else()
|
target_compile_options(video_core PRIVATE -Wno-shadow
|
||||||
target_compile_options(video_core PRIVATE -Werror=conversion)
|
-Wno-unused-local-typedef)
|
||||||
endif()
|
else()
|
||||||
|
target_compile_options(video_core PRIVATE -Werror=conversion)
|
||||||
|
endif()
|
||||||
|
|
||||||
target_compile_options(video_core PRIVATE
|
target_compile_options(video_core PRIVATE -Wno-sign-conversion)
|
||||||
-Wno-sign-conversion
|
|
||||||
)
|
|
||||||
|
|
||||||
# xbyak
|
# xbyak
|
||||||
set_source_files_properties(macro/macro_jit_x64.cpp PROPERTIES COMPILE_OPTIONS "-Wno-conversion;-Wno-shadow")
|
set_source_files_properties(
|
||||||
|
macro/macro_jit_x64.cpp PROPERTIES COMPILE_OPTIONS
|
||||||
|
"-Wno-conversion;-Wno-shadow")
|
||||||
|
|
||||||
# VMA
|
# VMA
|
||||||
set_source_files_properties(vulkan_common/vma.cpp PROPERTIES COMPILE_OPTIONS "-Wno-conversion;-Wno-unused-variable;-Wno-unused-parameter;-Wno-missing-field-initializers")
|
set_source_files_properties(
|
||||||
|
vulkan_common/vma.cpp
|
||||||
|
PROPERTIES
|
||||||
|
COMPILE_OPTIONS
|
||||||
|
"-Wno-conversion;-Wno-unused-variable;-Wno-unused-parameter;-Wno-missing-field-initializers"
|
||||||
|
)
|
||||||
|
|
||||||
# Get around GCC failing with intrinsics in Debug
|
# Get around GCC failing with intrinsics in Debug
|
||||||
if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_BUILD_TYPE MATCHES "Debug")
|
if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND CMAKE_BUILD_TYPE MATCHES "Debug")
|
||||||
set_source_files_properties(host1x/vic.cpp PROPERTIES COMPILE_OPTIONS "-O2")
|
set_source_files_properties(host1x/vic.cpp PROPERTIES COMPILE_OPTIONS "-O2")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (ARCHITECTURE_x86_64)
|
if(ARCHITECTURE_x86_64)
|
||||||
target_sources(video_core PRIVATE
|
target_sources(video_core PRIVATE macro/macro_jit_x64.cpp
|
||||||
macro/macro_jit_x64.cpp
|
macro/macro_jit_x64.h)
|
||||||
macro/macro_jit_x64.h
|
target_link_libraries(video_core PUBLIC xbyak::xbyak)
|
||||||
)
|
|
||||||
target_link_libraries(video_core PUBLIC xbyak::xbyak)
|
|
||||||
|
|
||||||
if (NOT MSVC)
|
if(NOT MSVC)
|
||||||
target_compile_options(video_core PRIVATE -msse4.1)
|
target_compile_options(video_core PRIVATE -msse4.1)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (ARCHITECTURE_x86_64 OR ARCHITECTURE_arm64)
|
if(ARCHITECTURE_x86_64 OR ARCHITECTURE_arm64)
|
||||||
target_link_libraries(video_core PRIVATE dynarmic::dynarmic)
|
target_link_libraries(video_core PRIVATE dynarmic::dynarmic)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (YUZU_USE_PRECOMPILED_HEADERS)
|
if(YUZU_USE_PRECOMPILED_HEADERS)
|
||||||
target_precompile_headers(video_core PRIVATE precompiled_headers.h)
|
target_precompile_headers(video_core PRIVATE precompiled_headers.h)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (YUZU_ENABLE_LTO)
|
if(YUZU_ENABLE_LTO)
|
||||||
set_property(TARGET video_core PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE)
|
set_property(TARGET video_core PROPERTY INTERPROCEDURAL_OPTIMIZATION TRUE)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (ANDROID AND ARCHITECTURE_arm64)
|
if(ANDROID AND ARCHITECTURE_arm64)
|
||||||
target_link_libraries(video_core PRIVATE adrenotools)
|
target_link_libraries(video_core PRIVATE adrenotools)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (ARCHITECTURE_arm64)
|
if(ARCHITECTURE_arm64)
|
||||||
target_link_libraries(video_core PRIVATE sse2neon)
|
target_link_libraries(video_core PRIVATE sse2neon)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
create_target_directory_groups(video_core)
|
create_target_directory_groups(video_core)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue