Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
* this resolves the todo items in the CMakeLists.txt
* a version requirement check for ffmpeg is added to catch issues early
* for future-proof reasons, nasm/yasm is now only required when build on
x86/AMD64 systems
|
|
|
|
build: update cubeb and remove the result_of comment
|
|
|
|
Cubeb doesn't use result_of anymore, it has been dropped in commit
mozilla/cubeb@75d9d125ee655ef80f3bfcd97ae5a805931042b8
|
|
Ensures that we're using the latest version of fmt.
|
|
Move the cmake submodule checkout command to a new line
|
|
Keeps the testing libraries up to date.
|
|
|
|
Presently, if you forget to initialize the git submodules before
running cmake, there'll be a helpful message that reminds you to do so.
However, on narrow terminals (e.g. 80 wide) there's a word wrap that
includes a new line in the middle of the git command, precluding easy
copy-paste. This moves the entire git command to its own line to avoid
such tragedies.
Before:
```
CMake Error at CMakeLists.txt:59 (message):
Git submodule externals/inih/inih not found. Please run: git submodule
update --init --recursive
```
After:
```
CMake Error at CMakeLists.txt:59 (message):
Git submodule externals/inih/inih not found. Please run:
git submodule update --init --recursive
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
nvdec: Add GPU video decoding for all capable drivers and platforms
|
|
Adds {h264_,vp9_}{nvdec,vdpau} hwaccels.
|
|
|
|
This commit renames the "Services" tab to "Network" and adds a combobox that allows the user to select the network interface that yuzu should use. This new setting is now used to get the local IP address in Network::GetHostIPv4Address. This prevents yuzu from selecting the wrong network interface and thus using the wrong IP address. The return type of Network::GetHostIPv4Adress has also been changed.
|
|
Allows the use of VAAPI gpu decoders on system installed ffmpeg as well.
|
|
|
|
* nvdec: VA-API
* Verify formatting
* Forgot a semicolon for Windows
* Clarify comment about AV_PIX_FMT_NV12
* Fix assert log spam from missing negation
* vic: Remove forgotten debug code
* Address lioncash's review
* Mention VA-API is Intel/AMD
* Address v1993's review
* Hopefully fix CMakeLists style this time
* vic: Improve cache locality
* vic: Fix off-by-one error
* codec: Async
* codec: Forgot the GetValue()
* nvdec: Address ameerj's review
* codec: Fallback to CPU without VA-API support
* cmake: Address lat9nq's review
* cmake: Make VA-API optional
* vaapi: Multiple GPU
* Apply suggestions from code review
Co-authored-by: Ameer J <52414509+ameerj@users.noreply.github.com>
* nvdec: Address ameerj's review
* codec: Use anonymous instead of static
* nvdec: Remove enum and fix memory leak
* nvdec: Address ameerj's review
* codec: Remove preparation for threading
Co-authored-by: Ameer J <52414509+ameerj@users.noreply.github.com>
|
|
cmake, ci: Build bundled FFmpeg with yuzu
|
|
cmake: unbreak libusb detection on FreeBSD
|
|
CMake Error at externals/libusb/CMakeLists.txt:120 (add_library):
Cannot find source file:
libusb/libusb/core.c
Tried extensions .c .C .c++ .cc .cpp .cxx .cu .mpp .m .M .mm .h .hh .h++
.hm .hpp .hxx .in .txx .f .F .for .f77 .f90 .f95 .f03 .ispc
CMake Error at externals/libusb/CMakeLists.txt:120 (add_library):
No SOURCES given to target: usb
ld: error: undefined symbol: libusb_interrupt_transfer
>>> referenced by gc_adapter.cpp
>>> gc_adapter.cpp.o:(GCAdapter::Adapter::SendVibrations()) in archive src/input_common/libinput_common.a
>>> referenced by gc_adapter.cpp
>>> gc_adapter.cpp.o:(GCAdapter::Adapter::GetGCEndpoint(libusb_device*)) in archive src/input_common/libinput_common.a
>>> referenced by gc_adapter.cpp
>>> gc_adapter.cpp.o:(GCAdapter::Adapter::AdapterInputThread()) in archive src/input_common/libinput_common.a
ld: error: undefined symbol: libusb_error_name
>>> referenced by gc_adapter.cpp
>>> gc_adapter.cpp.o:(GCAdapter::Adapter::SendVibrations()) in archive src/input_common/libinput_common.a
ld: error: undefined symbol: libusb_control_transfer
>>> referenced by gc_adapter.cpp
>>> gc_adapter.cpp.o:(GCAdapter::Adapter::CheckDeviceAccess()) in archive src/input_common/libinput_common.a
ld: error: undefined symbol: libusb_kernel_driver_active
>>> referenced by gc_adapter.cpp
>>> gc_adapter.cpp.o:(GCAdapter::Adapter::CheckDeviceAccess()) in archive src/input_common/libinput_common.a
ld: error: undefined symbol: libusb_close
>>> referenced by gc_adapter.cpp
>>> gc_adapter.cpp.o:(GCAdapter::Adapter::CheckDeviceAccess()) in archive src/input_common/libinput_common.a
>>> referenced by gc_adapter.cpp
>>> gc_adapter.cpp.o:(GCAdapter::Adapter::ClearLibusbHandle()) in archive src/input_common/libinput_common.a
>>> referenced by gc_adapter.cpp
>>> gc_adapter.cpp.o:(GCAdapter::Adapter::Reset()) in archive src/input_common/libinput_common.a
>>> referenced by gc_adapter.cpp
>>> gc_adapter.cpp.o:(GCAdapter::Adapter::Setup()) in archive src/input_common/libinput_common.a
>>> referenced by gc_adapter.cpp
>>> gc_adapter.cpp.o:(GCAdapter::Adapter::AdapterScanThread()) in archive src/input_common/libinput_common.a
ld: error: undefined symbol: libusb_detach_kernel_driver
>>> referenced by gc_adapter.cpp
>>> gc_adapter.cpp.o:(GCAdapter::Adapter::CheckDeviceAccess()) in archive src/input_common/libinput_common.a
ld: error: undefined symbol: libusb_claim_interface
>>> referenced by gc_adapter.cpp
>>> gc_adapter.cpp.o:(GCAdapter::Adapter::CheckDeviceAccess()) in archive src/input_common/libinput_common.a
ld: error: undefined symbol: libusb_get_config_descriptor
>>> referenced by gc_adapter.cpp
>>> gc_adapter.cpp.o:(GCAdapter::Adapter::GetGCEndpoint(libusb_device*)) in archive src/input_common/libinput_common.a
ld: error: undefined symbol: libusb_release_interface
>>> referenced by gc_adapter.cpp
>>> gc_adapter.cpp.o:(GCAdapter::Adapter::ClearLibusbHandle()) in archive src/input_common/libinput_common.a
>>> referenced by gc_adapter.cpp
>>> gc_adapter.cpp.o:(GCAdapter::Adapter::Reset()) in archive src/input_common/libinput_common.a
>>> referenced by gc_adapter.cpp
>>> gc_adapter.cpp.o:(GCAdapter::Adapter::Setup()) in archive src/input_common/libinput_common.a
>>> referenced by gc_adapter.cpp
>>> gc_adapter.cpp.o:(GCAdapter::Adapter::AdapterScanThread()) in archive src/input_common/libinput_common.a
ld: error: undefined symbol: libusb_init
>>> referenced by gc_adapter.cpp
>>> gc_adapter.cpp.o:(GCAdapter::Adapter::Adapter()) in archive src/input_common/libinput_common.a
ld: error: undefined symbol: libusb_open_device_with_vid_pid
>>> referenced by gc_adapter.cpp
>>> gc_adapter.cpp.o:(GCAdapter::Adapter::Setup()) in archive src/input_common/libinput_common.a
ld: error: undefined symbol: libusb_get_device
>>> referenced by gc_adapter.cpp
>>> gc_adapter.cpp.o:(GCAdapter::Adapter::Setup()) in archive src/input_common/libinput_common.a
ld: error: undefined symbol: libusb_exit
>>> referenced by gc_adapter.cpp
>>> gc_adapter.cpp.o:(GCAdapter::Adapter::Reset()) in archive src/input_common/libinput_common.a
|
|
yuzu-cmd: Linux Vulkan fixes
|
|
On Linux, due to the way we include SDL2 as a submodule, it makes it
difficult for us to specify which SDL_config.h we intended to include.
Before, CMake would default to the dummy one included with SDL and
ignore the generated one.
This tells CMake to use the generated one. In addition, we define
USING_GENERATED_CONFIG_H to throw an error in case the dummy config is
used by accident. Fixes Vulkan not working on Linux yuzu-cmd.
|
|
When YUZU_USE_BUNDLED_QT was specified on a system with a compliant Qt
version installed, CMake configuration would cause an error due to
mixing YUZU_USE_BUNDLED_QT with the system Qt.
Solution is to only search for Qt when YUZU_USE_BUNDLED_QT is disabled.
|
|
As-is causes issues with building yuzu using MinGW GCC on Linux-based
machines. Only set the variable when needed. (I'm not quite sure how
this was working before.)
|
|
Allow the usage of git worktrees on yuzu.
|
|
Enables CCache on externals if available.
|
|
Drops usage of CMAKE_DEPENDENT_OPTION to allow using
YUZU_USE_BUNDLED_FFMPEG as an option on any platform. CI then now builds
FFmpeg always, netting about 10 MB less used on the AppImage.
Also somewhat fixes YUZU_USE_BUNDLED_QT so that it can be used even if
CMake doesn't clean up its state after running the first find_package.
|
|
cmake: Improve Linux dependency checking for externals
|
|
Keeps us up to date with the latest major release.
Also allows compilers that support it to perform compile-time format
string checking.
|
|
Currently Qt will download whether or not the target system supports the
package. Normally this isn't an issue since the package manager would
work out the dependencies for us, but in this case we must make sure
everything is in place before downloading the package.
This checks for the package's requirements, as well as tries to provides
hints as to what is required on some of the more cryptic dependencies.
|
|
yuzu requires CMake 3.15 yet find_program was using REQUIRED, which is
only available on 3.18 and later. Instead, we check for
"<VAR>-NOTFOUND".
In addition, check for additional requirements before building libusb or
FFmpeg with autotools. Otherwise, CMake configuration will pass yet
compilation will fail.
|
|
Turns out that this is possible. Also addresses my own review comment.
|
|
Delegates libusb external communication to externals/CMakeLists.txt
Ensures an interface library `usb` for every pathway
input_common just links to the `usb` library now
externals/libusb/CMakeLists.txt sets variables to override SDL2's libusb
finding
Other minor cleanup
|
|
Building libusb was also broken on GCC (and maybe Clang) on our
CMakeLists after upgrading to 1.0.24, but it was not being checked
because our 18.04 container had libusb installed on it.
This builds on the MinGW work from earlier and extends it to the rest of
the GNU toolchains. In addition we make use of pkg-config when present
to find libusb. pkg-config is preferrable because we can specify a
minimum required version.
|
|
After updating to 1.0.24, MinGW fails to build libusb as a result of
numerous errors. So we build libusb their way and let them update the
nontrivial stuff.
This only applies to MinGW: the old path is still in use for Linux
toolchains as well as MSVC.
This will dynamically link libusb, since I hit build errors with the old
way we used to resolve the conflict with SDL2.
|
|
CMAKE_DEPENDENT_OPTION takes a value argument, but as a macro function
it will read a variable name as the name and not the value. For
YUZU_USE_BUNDLED_QT, ensure that we are reading the value of MSVC. For
YUZU_ALLOW_SYSTEM_SDL2, CMAKE_DEPENDENT_OPTION is redundant here anyway
as we don't use that path on any toolchain by default.
|
|
If the local version of Qt is older than the minimum version required by
yuzu, download a pre-built binary package from yuzu-emu/ext-linux-bin
and build yuzu with it, instead.
This also requires linking yuzu to the correct libraries after building
it, and copying over the required binaries when building yuzu.
This sets the Qt requirement to 5.12, which is intentionally behind the
versions used by our toolchains since they are not all updated yet to
5.15.
|
|
zstd 1.5.0 brings numerous performance improvements to the library, as
can be seen here: https://github.com/facebook/zstd/releases/tag/v1.5.0
|
|
|
|
In light of 72a49c2bbcce46c24b6d8ee0592989a507dcd68a, the SDL submodule also needs updated. Updates
to the same commit used by the SDL package in ext-windows-bin.
|
|
- Improves native Switch JoyCon/Pro Controller support.
|