summaryrefslogtreecommitdiffstats
path: root/src/common/CMakeLists.txt (unfollow)
Commit message (Collapse)AuthorFilesLines
2023-11-25common: Add free region manager--author=Liam1-0/+1
* Abstraction for placeholder region tracking in host_memory
2023-11-25common: Add libc sigaction hookGPUCode1-0/+7
2023-10-25cmake: prefer system stb headersAlexandre Bouvier1-1/+5
2023-10-08common: add arm64 native clockLiam1-0/+8
2023-09-16Reimplement HardwareOpusKelebek11-2/+3
2023-09-07add a compile time option to allow disabling portable modexcfrg1-0/+4
2023-09-03msvc: set warning level to /W4 globallyDanila Malyutin1-2/+0
And fix a bunch of warnings
2023-07-21settings: Cleanuplat9nq1-0/+1
Addresses review feedback Co-authored-by: Morph <39850852+Morph1984@users.noreply.github.com>
2023-07-21settings,uisettings: Remove leading underscorelat9nq1-1/+1
2023-07-21common,yuzu-qt: Avoid explicit instantiation on old clanglat9nq1-3/+8
Clang versions < 15 have compile issues with explicit instantiation. Disable it for these versions.
2023-07-21settings: Move some simple data to BasicSettinglat9nq1-0/+2
Reduces the need for the compiler to duplicate this code, by about 100KB executable size.
2023-07-21(ui,)settings: Use explicit instantiationlat9nq1-0/+2
Reduces compile times a tad on clang.
2023-07-21settings: Split enums to new filelat9nq1-0/+1
2023-06-08x64: Deduplicate RDTSC usageMorph1-0/+2
2023-06-03common: link libandroid on androidLiam1-0/+5
2023-06-03android: Implement SAF support & migrate to SDK 31. (#4)bunnei1-0/+8
2023-03-27x64: Add MicroSleepMorph1-0/+2
MicroSleep allows the processor to pause for a "short" amount of time (in the microsecond range). This is useful for spin-waiting that does not require nanosecond precision. This uses the new TPAUSE instruction introduced on Intel's newest processors as part of the waitpkg instructions. For CPUs that do not support waitpkg instructions, this is equivalent to yield(). Co-Authored-By: liamwhite <liamwhite@users.noreply.github.com>
2023-03-26common: Port boost's hash_value implementationMorph1-0/+1
Ports a small subset of boost's hash_value implementation (<= 1.80.0).
2023-03-22kernel: use KTypedAddress for addressesLiam1-0/+1
2023-03-08kernel: avoid signed overflow UB on MSVCLiam1-0/+1
2023-03-05common: Implement a method to change the Windows timer resolutionMorph1-0/+8
This utilizes undocumented NtDll functions to change the current timer resolution from the default of 1ms.
2023-03-05common: Implement a high resolution steady clockMorph1-0/+2
This implementation provides a consistent, high performance, and high resolution clock where/when std::chrono::steady_clock does not provide sufficient precision.
2023-02-28cmake: use correct boost imported targetsAlexandre Bouvier1-1/+1
2023-01-23cmake: prefer system llvm libraryAlexandre Bouvier1-1/+1
2023-01-14Move demangle impl to cppKelebek11-0/+1
2023-01-14Add stacktrace symbol demanglingKelebek11-1/+2
2023-01-01MacroHLE: Reduce massive calculations on sizing estimation.Fernando Sahmkow1-0/+1
2022-12-20common: Add ScratchBuffer classameerj1-0/+1
This class creates a default initialized heap allocated buffer for cases where value initializing members during allocation or resize is redundant.
2022-12-20common: add make_unique_for_overwriteameerj1-0/+1
2022-12-11memory: correct semantics of data cache management operationsLiam1-2/+0
2022-12-04cmake: prefer system librariesAlexandre Bouvier1-12/+2
2022-12-01CMake: Consolidate common PCH headersameerj1-1/+1
2022-11-30CMake: Use precompiled headersameerj1-0/+6
2022-11-12common: add cache management functionsLiam1-0/+2
2022-10-22CMakeLists: Remove redundant warningsMorph1-2/+0
These warnings are already included in /W3.
2022-10-22CMakeLists: Treat MSVC warnings as errorsMorph1-1/+0
2022-10-22general: Enforce C4800 everywhere except in video_coreMorph1-0/+6
2022-10-22CMakeLists: Remove all redundant warningsMorph1-2/+0
These are already explicitly or implicitly set in src/CMakeLists.txt
2022-10-14CMake: Try add library "LZ4::lz4_shared" if "lz4::lz4" is unavailableKyle Kienapfel1-1/+5
Right now this looks like a distro specific problem, but we'll have to see. Over on Gentoo: with lz4 1.9.3 there is a lz4::lz4 library target, with 1.9.4 it's no longer mentioned in the cmake files provided by the package. (/usr/lib64/cmake/lz4) arch and openSUSE have lz4 1.9.4 available so I checked there, they only have .pc files for pkg-config, so asking for "lz4::lz4" works as usual MSVC does require "lz4::lz4" to be asked for
2022-10-06NVDRV: Remake ASGPUFernando Sahmkow1-0/+2
2022-10-06Common: implement MultiLevelPageTable.Fernando Sahmkow1-0/+2
2022-09-18cmake: fix git detectionAlexandre Bouvier1-27/+2
2022-09-14common: do not link to xbyak on non-amd64 architecturesliushuyu1-1/+2
2022-08-15core, network: Add ability to proxy socket packetsFearlessTobi1-0/+1
2022-08-02common: Use PROJECT_SOURCE_DIR to find CMakeModuleslat9nq1-3/+3
Fixes CMake configuration when yuzu is a submodule of another project.
2022-07-27chore: make yuzu REUSE compliantAndrea Pappacoda1-0/+3
[REUSE] is a specification that aims at making file copyright information consistent, so that it can be both human and machine readable. It basically requires that all files have a header containing copyright and licensing information. When this isn't possible, like when dealing with binary assets, generated files or embedded third-party dependencies, it is permitted to insert copyright information in the `.reuse/dep5` file. Oh, and it also requires that all the licenses used in the project are present in the `LICENSES` folder, that's why the diff is so huge. This can be done automatically with `reuse download --all`. The `reuse` tool also contains a handy subcommand that analyzes the project and tells whether or not the project is (still) compliant, `reuse lint`. Following REUSE has a few advantages over the current approach: - Copyright information is easy to access for users / downstream - Files like `dist/license.md` do not need to exist anymore, as `.reuse/dep5` is used instead - `reuse lint` makes it easy to ensure that copyright information of files like binary assets / images is always accurate and up to date To add copyright information of files that didn't have it I looked up who committed what and when, for each file. As yuzu contributors do not have to sign a CLA or similar I couldn't assume that copyright ownership was of the "yuzu Emulator Project", so I used the name and/or email of the commit author instead. [REUSE]: https://reuse.software Follow-up to 01cf05bc75b1e47beb08937439f3ed9339e7b254
2022-07-25yuzu: Add ui files for multiplayer roomsFearlessTobi1-0/+1
2022-07-23ci,CMake: Drop Conan support for vcpkglat9nq1-2/+3
Between packages breaking, Conan always being a moving target for minimum required CMake support, and now their moves to Conan 2.0 causing existing packages to break, I suppose this was a long time coming. vcpkg isn't without its drawbacks, but at the moment it seems easier on the project to use for external packages. Mostly removes the logic for Conan from the root CMakeLists file, leaving basic find_package()'s in its place. Sets only the find_package()'s that require CONFIG mode as necessary. clang and linux CI now use the vcpkg toolchain file configured in the Docker container when possible. mingw CI turns off YUZU_TESTS because there's no way on the container to run Windows executables on a Linux host anyway, and it's not easy to get Catch2 there.
2022-07-22Project AndioKelebek11-0/+3
2022-06-05common: consolidate ELF structure definitionsLiam1-0/+1
2022-02-05general: Rename NewUUID to UUID, and remove the previous UUID implMorph1-2/+0
This completes the removal of the old UUID implementation.
2022-02-05common: Implement NewUUIDMorph1-0/+2
This is a fixed and revised implementation of UUID that uses an array of bytes as its internal representation of a UUID instead of a u128 (which was an array of 2 u64s). In addition to this, the generation of RFC 4122 Version 4 compliant UUIDs is also implemented.
2022-01-10logging/log.h: move enum class formatter to a separate file ...liushuyu1-0/+1
... to common/logging/formatter.h
2021-12-21Allow overriding SCM version infoAndrew Udvare1-0/+5
If the build is from a non-repository, these functions will return empty. This patch allows using defines to CMake to set version info such as -DGIT_BRANCH=master.
2021-11-25common: Rewrite and move core/frontend/input.h to commongerman771-0/+1
2021-11-02common: Implement a subset of P0323 (std::expected)Morph1-0/+1
This implementation is based on and is a subset of the proposed implementation of std::expected https://github.com/TartanLlama/expected/blob/master/include/tl/expected.hpp
2021-10-02common/logging: Move Log::Entry declaration to a separate headerameerj1-0/+1
This reduces the load of requiring to include std::chrono in all files which include log.h
2021-09-11common: Move error handling to error.cpp/hMorph1-1/+2
This allows us to avoid implicitly including <string> every time common_funcs.h is included.
2021-08-27Revert "logging: Display backtrace on crash"Morph1-3/+0
2021-08-13logging: Display backtrace on crashyzct123451-0/+3
This implements backtraces so we don't have to tell users how to use gdb anymore. This prints a backtrace after abort or segfault is detected. It also fixes the log getting cut off with the last line containing only a bracket. This change lets us know what caused a crash not just what happened the few seconds before it. I only know how to add support for Linux with GCC. Also this doesn't work outside of C/C++ such as in dynarmic or certain parts of graphics drivers. The good thing is that it'll try and just crash again but the stack frames are still there so the core dump will work just like before.
2021-07-23common: Publically link to pthreadslat9nq1-1/+1
Common requires pthreads but does not refer to it when linking to other modules. Fix this by linking to Threads where necessary.
2021-07-23cmake: Remove shader cache versionReinUsesLisp1-9/+1
2021-07-23shader: Remove old shader managementReinUsesLisp1-55/+1
2021-07-09common/thread_worker: Add support for stateful threadsReinUsesLisp1-1/+0
2021-07-09common: Add unique functionReinUsesLisp1-0/+1
2021-06-24common: Replace common_sizes into user-literalsWunkolo1-1/+1
Removes common_sizes.h in favor of having `_KiB`, `_MiB`, `_GiB`, etc user-literals within literals.h. To keep the global namespace clean, users will have to use: ``` using namespace Common::Literals; ``` to access these literals.
2021-06-13common: logging: Restructure backend codeMorph1-0/+1
2021-06-11common/host_memory: Add interface and Windows implementationReinUsesLisp1-0/+2
2021-06-09src/common/CMakeLists.txt: fix variable escapingliushuyu1-8/+9
2021-05-28common: Extract point into a common structLioncash1-0/+1
This is generic enough that it can be moved into the Common class for reuse.
2021-05-26common: fs: Rework the Common Filesystem interface to make use of std::filesystem (#6270)Morph1-3/+10
* common: fs: fs_types: Create filesystem types Contains various filesystem types used by the Common::FS library * common: fs: fs_util: Add std::string to std::u8string conversion utility * common: fs: path_util: Add utlity functions for paths Contains various utility functions for getting or manipulating filesystem paths used by the Common::FS library * common: fs: file: Rewrite the IOFile implementation * common: fs: Reimplement Common::FS library using std::filesystem * common: fs: fs_paths: Add fs_paths to replace common_paths * common: fs: path_util: Add the rest of the path functions * common: Remove the previous Common::FS implementation * general: Remove unused fs includes * string_util: Remove unused function and include * nvidia_flags: Migrate to the new Common::FS library * settings: Migrate to the new Common::FS library * logging: backend: Migrate to the new Common::FS library * core: Migrate to the new Common::FS library * perf_stats: Migrate to the new Common::FS library * reporter: Migrate to the new Common::FS library * telemetry_session: Migrate to the new Common::FS library * key_manager: Migrate to the new Common::FS library * bis_factory: Migrate to the new Common::FS library * registered_cache: Migrate to the new Common::FS library * xts_archive: Migrate to the new Common::FS library * service: acc: Migrate to the new Common::FS library * applets/profile: Migrate to the new Common::FS library * applets/web: Migrate to the new Common::FS library * service: filesystem: Migrate to the new Common::FS library * loader: Migrate to the new Common::FS library * gl_shader_disk_cache: Migrate to the new Common::FS library * nsight_aftermath_tracker: Migrate to the new Common::FS library * vulkan_library: Migrate to the new Common::FS library * configure_debug: Migrate to the new Common::FS library * game_list_worker: Migrate to the new Common::FS library * config: Migrate to the new Common::FS library * configure_filesystem: Migrate to the new Common::FS library * configure_per_game_addons: Migrate to the new Common::FS library * configure_profile_manager: Migrate to the new Common::FS library * configure_ui: Migrate to the new Common::FS library * input_profiles: Migrate to the new Common::FS library * yuzu_cmd: config: Migrate to the new Common::FS library * yuzu_cmd: Migrate to the new Common::FS library * vfs_real: Migrate to the new Common::FS library * vfs: Migrate to the new Common::FS library * vfs_libzip: Migrate to the new Common::FS library * service: bcat: Migrate to the new Common::FS library * yuzu: main: Migrate to the new Common::FS library * vfs_real: Delete the contents of an existing file in CreateFile Current usages of CreateFile expect to delete the contents of an existing file, retain this behavior for now. * input_profiles: Don't iterate the input profile dir if it does not exist Silences an error produced in the log if the directory does not exist. * game_list_worker: Skip parsing file if the returned VfsFile is nullptr Prevents crashes in GetLoader when the virtual file is nullptr * common: fs: Validate paths for path length * service: filesystem: Open the mod load directory as read only
2021-04-15common: Move settings to common from core.bunnei1-0/+4
- Removes a dependency on core and input_common from common.
2021-04-04common: Move assert failure handling into a cpp file.Markus Wick1-0/+1
Advantage: Altering the handler does not need a full recompilation. Disadvantage: noreturn is droped, so the caller is a bit slower. We quite often run yuzu with a YOLO assertion handler. In fact, only very few games run at all with asserts. This patch allows developers to patch the handler without recompiling everything. The overhead of the missing "noreturn" attribute shoul be negletable.
2021-03-21common: Move common sizes to their own header for code reuse.bunnei1-0/+1
2021-02-19common: Add implementation of TinyMT (Mersenne Twister RNG).bunnei1-0/+1
2021-02-15common: Merge uint128 to a single header file with inlines.bunnei1-1/+0
2021-02-10common: Add -fsized-deallocation as a Clang flaglat9nq1-0/+2
Prevents an operator delete error when compiling with Clang 11.
2021-01-21renderer_opengl: Avoid precompiled cache and force NV GL cache directoryReinUsesLisp1-0/+2
Setting __GL_SHADER_DISK_CACHE_PATH we can force the cache directory to be in yuzu's user directory to stop commonly distributed malware from deleting our driver shader cache. And by setting __GL_SHADER_DISK_CACHE_SKIP_CLEANUP we can have an unbounded shader cache size. This has only been implemented on Windows, mostly because previous tests didn't seem to work on Linux. Disable the precompiled cache on Nvidia's driver. There's no need to hide information the driver already has in its own cache.
2021-01-15common/timer: RemoveLioncash1-2/+0
This is a leftover from citra and dolphin that isn't used at all, particularly given the <chrono> header exists.
2021-01-15common/color: RemoveReinUsesLisp1-1/+0
This is a leftover from Citra we no longer use.
2021-01-11common: Introduce useful tree structures.bunnei1-0/+3
2021-01-02X86/NativeClock: Reimplement RTDSC access to be lock free.Fernando Sahmkow1-1/+0
2021-01-01memory: Remove MemoryHookMerryMage1-2/+0
2020-12-30common: ThreadWorker: Add class to help do asynchronous work.bunnei1-0/+2
2020-12-13cmake: Fix generating CMake configs and linking with Boostlat9nq1-1/+1
Fixes regression by 761206cf81b271f7f4dd6a167a120325b760dbf3, causing yuzu to not build on Linux with any version of Boost except a cached 1.73 Conan version from before about a day ago. Moves the Boost requirement out of the `REQUIRED_LIBS` psuedo-2D-array for Conan to instead be manually configured, using Conan as a fallback solution if the system does not meet our requirements. Requires any update from the linux-fresh container in order to build. **DO NOT MERGE** until someone with the MSVC toolchain can verify this works there, too.
2020-12-12common: Update CMakeList to fix build issue with Boost.bunnei1-2/+1
2020-12-06hle: kernel: Separate KScheduler from GlobalSchedulerContext class.bunnei1-1/+0
2020-12-06common: Port BitSet from Mesosphere.bunnei1-0/+1
2020-11-26common: Add Common::DivCeil and Common::DivCeilLog2ReinUsesLisp1-0/+1
Add an equivalent to 'Common::AlignUp(n, d) / d' and a log2 alternative.
2020-11-20common/bit_cast: Add function matching std::bit_cast without constexprReinUsesLisp1-0/+1
Add a std::bit_cast-like function archiving the same runtime results as the standard function, without compile time support. This allows us to use bit_cast while we wait for compiler support, it can be trivially replaced in the future.
2020-11-02common: Enable warnings as errorsLioncash1-0/+16
Cleans up common so that we can enable warnings as errors.
2020-10-27video_core: NVDEC Implementationameerj1-0/+2
This commit aims to implement the NVDEC (Nvidia Decoder) functionality, with video frame decoding being handled by the FFmpeg library. The process begins with Ioctl commands being sent to the NVDEC and VIC (Video Image Composer) emulated devices. These allocate the necessary GPU buffers for the frame data, along with providing information on the incoming video data. A Submit command then signals the GPU to process and decode the frame data. To decode the frame, the respective codec's header must be manually composed from the information provided by NVDEC, then sent with the raw frame data to the ffmpeg library. Currently, H264 and VP9 are supported, with VP9 having some minor artifacting issues related mainly to the reference frame composition in its uncompressed header. Async GPU is not properly implemented at the moment. Co-Authored-By: David <25727384+ogniK5377@users.noreply.github.com>
2020-09-29CMakeLists: use system zstd on Linuxlat9nq1-1/+6
From what I understand, this tells CMake to use the system, not conan, version of zstd. Required to build on the coming MinGW Docker container.
2020-09-29CMakeLists: fix for finding zstd on linux-mingwlat9nq1-1/+1
2020-08-23web_service: Move web_result.h into web_serviceLioncash1-1/+0
This is the only place it's actively used. It's also more appropriate for web-related structures to be within the web service target. Especially given this one doesn't rely on anything in the common library.
2020-08-03ipc: Allow all trivially copyable objects to be passed directly into WriteBuffer (#4465)David1-0/+1
* ipc: Allow all trivially copyable objects to be passed directly into WriteBuffer With the support of C++20, we can use concepts to deduce if a type is an STL container or not. * More agressive concept for stl containers * Add -fconcepts * Move to common namespace * Add Common::IsBaseOf
2020-07-10cmake: Fix libfmt linking errorsDavid Marcec1-5/+1
2020-07-09cmake: fix fmt linking when foundJohn Galt1-1/+5
This is a new attempt at #4206 that shouldn't break windows builds. If someone else could test on windows, it would be much appreciated. Previously, the build bot passed but the actual builds failed.
2020-07-03Revert "cmake: fix fmt linking"bunnei1-1/+1
2020-06-29cmake: fix fmt linkingJohn Galt1-1/+1
On gcc/ld, and clang/lld, fmt::v6 symbols are excluded, so linking fails. This fixes the issue. Note: This was included in the FindBoost changes I shared with BlinkHawk, however only they were merged. I'm not sure if it was missed, or if there was an issue with this part of the change.
2020-06-27ARM/Memory: Correct Exclusive Monitor and Implement Exclusive Memory Writes.Fernando Sahmkow1-0/+2
2020-06-26Common: Fix non-conan buildFernando Sahmkow1-1/+2
2020-06-18Common: Implement WallClock Interface and implement a native clock for x64Fernando Sahmkow1-0/+4
2020-06-18Common: Implement a basic Fiber class.Fernando Sahmkow1-0/+2
2020-06-18Common: Implement a basic SpinLock classFernando Sahmkow1-0/+2
2020-06-12gl_arb_decompiler: Implement an assembly shader decompilerReinUsesLisp1-0/+2
Emit code compatible with NV_gpu_program5. This should emit code compatible with Fermi, but it wasn't tested on that architecture. Pascal has some issues not present on Turing GPUs.
2020-05-30Add xbyak externalDavid Marcec1-1/+3
2020-05-17main: Log host system memory parametersMorph1-0/+2
Logs both physical memory and swapfile sizes, this is useful for support.
2020-05-11common: Add module to get the current time zone.bunnei1-0/+2
2020-05-08Replace externals with Conan (#3735)James Rowe1-2/+2
* Remove git submodules that will be loaded through conan * Move custom Find modules to their own folder * Use conan for downloading missing external dependencies * CI: Change the yuzu source folder user to the user that the containers run on * Attempt to remove dirty mingw build hack * Install conan on the msvc build * Only set release build type when using not using multi config generator * Re-add qt bundled to workaround an issue with conan qt not downloading prebuilt binaries * Add workaround for submodules that use legacy CMAKE variables * Re-add USE_BUNDLED_QT on the msvc build bot
2020-04-17common: Add VirtualBuffer class, to abstract memory virtualization.bunnei1-0/+2
2020-04-07common/dynamic_library: Import and adapt helper from DolphinReinUsesLisp1-0/+2
2020-03-13shader/transform_feedback: Add host API friendly TFB builderReinUsesLisp1-0/+2
2020-03-09video_core: Rename "const buffer locker" to "registry"ReinUsesLisp1-2/+2
2020-03-09gl_shader_cache: Rework shader cache and remove post-specializationsReinUsesLisp1-2/+0
Instead of pre-specializing shaders and then post-specializing them, drop the later and only "specialize" the shader while decoding it.
2020-01-16Fix git version in scm_rev.cppJames Rowe1-0/+5
2019-11-06ci: Populate build repository from Azure environmentZach Hilman1-11/+2
2019-10-25VideoCore: Unify const buffer accessing along engines and provide ConstBufferLocker class to shaders.Fernando Sahmkow1-2/+4
2019-10-15common: Rename binary_find.h to algorithm.hLioncash1-1/+1
Makes the header more general for other potential algorithms in the future. While we're at it, include a missing <functional> include to satisfy the use of std::less.
2019-10-05common: Add additional SCM revision fieldsZach Hilman1-0/+12
2019-10-05Shader_Ir: Refactor Decompilation process and allow multiple decompilation modes.Fernando Sahmkow1-0/+2
2019-10-05shader_ir: Corrections to outward movements and misc stuffsFernando Sahmkow1-0/+4
2019-09-22cmake: Add SCM detection for AzureZach Hilman1-0/+3
2019-08-21shader_ir: Implement VOTEReinUsesLisp1-0/+1
Implement VOTE using Nvidia's intrinsics. Documentation about these can be found here https://developer.nvidia.com/reading-between-threads-shader-intrinsics Instead of using portable ARB instructions I opted to use Nvidia intrinsics because these are the closest we have to how Tegra X1 hardware renders. To stub VOTE on non-Nvidia drivers (including nouveau) this commit simulates a GPU with a warp size of one, returning what is meaningful for the instruction being emulated: * anyThreadNV(value) -> value * allThreadsNV(value) -> value * allThreadsEqualNV(value) -> true ballotARB, also known as "uint64_t(activeThreadsNV())", emits VOTE.ANY Rd, PT, PT; on nouveau's compiler. This doesn't match exactly to Nvidia's code VOTE.ALL Rd, PT, PT; Which is emulated with activeThreadsNV() by this commit. In theory this shouldn't really matter since .ANY, .ALL and .EQ affect the predicates (set to PT on those cases) and not the registers.
2019-07-09shader_ir: Implement a new shader scannerFernando Sahmkow1-0/+2
2019-07-05texture_cache: Address FeedbackFernando Sahmkow1-0/+1
2019-06-21shader: Decode SUST and implement backing image functionalityReinUsesLisp1-0/+1
2019-06-07cmake: Add missing shader hash file entriesReinUsesLisp1-0/+3
2019-04-25common: Extract UUID to its own classZach Hilman1-0/+2
Since the Mii database uses UUIDs very similar to the Accounts database, it makes no sense to not share code between them.
2019-03-29common/zstd_compression: Add Zstandard wrapperunknown1-0/+2
2019-03-29common: Link libzstd_staticunknown1-1/+1
2019-03-29Addressed feedbackunknown1-2/+2
2019-03-29data_compression: Move LZ4 compression from video_core/gl_shader_disk_cache to common/data_compressionunknown1-0/+3
2019-03-27Implement a MultiLevelQueueFernando Sahmkow1-0/+1
2019-03-21common/CMakeLists: Amend boost dependencyLioncash1-1/+1
When #2247 was created, thread_queue_list.h was the only user of boost-related code, however #2252 moved the page table struct into common, which makes use of Boost.ICL, so we need to add the dependency to the common library's link interface again.
2019-03-17core: Move PageTable struct into Common.bunnei1-0/+4
2019-03-16common/thread_queue_list: Remove unnecessary dependency on boostLioncash1-1/+1
We really don't need to pull in several headers of boost related machinery just to perform the erase-remove idiom (particularly with C++20 around the corner, which adds universal container std::erase and std::erase_if, which we can just use instead). With this, we don't need to link in anything boost-related into common.
2019-02-26shader/decode: Split memory and texture instructions decodingReinUsesLisp1-0/+1
2019-02-16Implement 128 bits Unsigned Integer Multiplication and Division.Fernando Sahmkow1-0/+2
2019-02-07cmake: Fix title bar issueReinUsesLisp1-1/+14
2019-02-07cmake: Use CMAKE_COMMAND instead of "cmake"Frederic L1-1/+1
Co-Authored-By: ReinUsesLisp <reinuseslisp@airmail.cc>
2019-02-07gl_shader_disk_cache: Invalidate shader cache changes with CMake hashReinUsesLisp1-39/+53
2018-12-21common: Add basic bit manipulation utility function to CommonLioncash1-0/+1
2018-11-22common: Remove bit_set.hLioncash1-1/+0
This is an analog of BitSet from Dolphin that was introduced to allow iterating over a set of bits. Given it's currently unused, and given that std::bitset exists, we can remove this. If it's ever needed in the future it can be brought back.
2018-11-21common: Remove dependency on xbyakLioncash1-5/+0
Xbyak is currently entirely unused. Rather than carting it along, remove it and get rid of a dependency. If it's ever needed in the future, then it can be re-added (and likely be more up to date at that point in time).
2018-10-23common: Remove memory_util.cpp/.hLioncash1-2/+0
Everything from here is completely unused and also written with the notion of supporting 32-bit architecture variants in mind. Given the Switch itself is on a 64-bit architecture, we won't be supporting 32-bit architectures. If we need specific allocation functions in the future, it's likely more worthwhile to new functions for that purpose.
2018-10-06Remove "#" in the version numberfearlessTobi1-1/+1
So that people can stop using it in issue/pr comments and randomly link some other issue/pr unintentionally.
2018-10-02Port web_service from CitrafearlessTobi1-0/+3
2018-09-08common: Implement a ring bufferMerryMage1-0/+1
2018-09-07Better Title Bar DisplayCaptV0rt3x1-5/+19
2018-08-15common: Remove unused old breakpoint source filesLioncash1-2/+0
These currently aren't used and contain commented out source code that corresponds to Dolphin's JIT. Given our CPU code is organized quite differently, we shouldn't be keeping this around (at the moment it just adds to compile times marginally).
2018-08-12common: Move hex string processing to separate fileZach Hilman1-0/+2
2018-07-21common: Remove synchronized_wrapper.hLioncash1-1/+0
This is entirely unused in the codebase.
2018-04-26common: Remove chunk_file.h and linear_disk_cache.hLioncash1-2/+0
These are unused (and given chunk_file references Dolphin's >SVN< I doubt they were going to be used).
2018-04-20common: Remove code_block.hLioncash1-1/+0
We use dynarmic, so this is unued. Anything else we need will likely use Xbyak, so this header isn't necessary any more.
2018-04-14common: Port cityhash code from Citra.bunnei1-1/+2
2018-03-22Logging: Create logging macros based on fmtlibDaniel Lim Wee Soong1-1/+1
Add a new set of logging macros based on fmtlib Similar but not exactly the same as https://github.com/citra-emu/citra/pull/3533 Citra currently uses a different version of fmt, which does not support FMT_VARIADIC so make_args is used instead. On the other hand, yuzu uses fmt 4.1.0 which doesn't have make_args yet so FMT_VARIADIC is used.
2018-03-21CMake: Set EMU_ARCH_BITS in CMakeLists.txtN00byKing1-1/+0
2018-01-21Fix spelling error in CMakeListsMatthew Brener1-1/+1
Minor spelling error of its --> it's
2018-01-18CMakeLists: Derive the source directory grouping from targets themselvesLioncash1-63/+57
Removes the need to store to separate SRC and HEADER variables, and then construct the target in most cases.
2018-01-14Minor cleanupMerryMage1-1/+1
2018-01-09CoreTiming: Reworked CoreTiming (cherry-picked from Citra #3119)B3n301-0/+1
* CoreTiming: New CoreTiming; Add Test for CoreTiming
2017-05-28CMake: Create INTERFACE targets for microprofile and nihstroYuri Kunde Schlesner1-1/+1
2017-05-28CMake: Use IMPORTED target for BoostYuri Kunde Schlesner1-0/+1
2017-05-28CMake: Correct inter-module dependencies and library visibilityYuri Kunde Schlesner1-1/+1
Modules didn't correctly define their dependencies before, which relied on the frontends implicitly including every module for linking to succeed. Also changed every target_link_libraries call to specify visibility of dependencies to avoid leaking definitions to dependents when not necessary.
2017-05-28Move framebuffer_layout from Common to CoreYuri Kunde Schlesner1-2/+0
This removes a dependency inversion between core and common. It's also the proper place for the file since it makes screen layout decisions specific to the 3DS.
2017-05-25common: Add a generic interface for logging telemetry fields.bunnei1-0/+2
2017-05-08Remove unused symbols codeYuri Kunde Schlesner1-2/+0
2017-03-01Common: add ParamPackagewwylele1-0/+2
2017-02-27Remove built-in (non-Microprofile) profilerYuri Kunde Schlesner1-2/+0
2017-02-23Gui: Change title bar to include build nameJames Rowe1-0/+23
Nightly builds now have "Citra Nightly" in the titlebar Bleeding edge builds now have "Citra Bleeding Edge" in the titlebar
2017-01-31Common/x64: remove legacy emitter and abi (#2504)Weiyi Wang1-4/+1
These are not used any more since we moved shader JIT to xbyak.
2016-12-26Common: add Quaternionwwylele1-0/+1
2016-12-23core: Move emu_window and key_map into coreMerryMage1-4/+0
* Removes circular dependences (common should not depend on core)
2016-12-15VideoCore: Convert x64 shader JIT to use Xbyak for assemblyYuri Kunde Schlesner1-1/+7
2016-11-05Support additional screen layouts.James Rowe1-0/+2
Allows users to choose a single screen layout or a large screen layout. Adds a configuration option to change the prominent screen.
2016-04-29Common: Remove section measurement from profiler (#1731)Yuri Kunde Schlesner1-1/+0
This has been entirely superseded by MicroProfile. The rest of the code can go when a simpler frametime/FPS meter is added to the GUI.
2016-04-05Common: Remove Common::make_unique, use std::make_uniqueMerryMage1-1/+0
2016-03-13PICA: Align vertex attributesJannik Vogel1-0/+1
2015-09-11common: Get rid of debug_interface.hLioncash1-1/+0
This is technically unused. Also removes TMemChecks because it relies on this. Whenever memory breakpoints are implemented for real, it should be designed to match the codebase debugging mechanisms.
2015-09-01Common: Import BitSet from Dolphinaroulin1-0/+1
2015-08-25Integrate the MicroProfile profiling libraryYuri Kunde Schlesner1-0/+3
This brings goodies such as a configurable user interface and multi-threaded timeline view.
2015-08-16Rename ARCHITECTURE_X64 definition to ARCHITECTURE_x86_64.bunnei1-1/+1
2015-08-16Common: Move cpu_detect to x64 directory.bunnei1-2/+2
2015-08-16x64: Refactor to remove fake interfaces and general cleanups.bunnei1-12/+6
2015-08-15Common: Added MurmurHash3 hash function for general-purpose use.bunnei1-1/+3
2015-08-15Common: Ported over boilerplate x86 JIT code from Dolphin/PPSSPP.bunnei1-2/+12
2015-08-15Common: Ported over Dolphin's code for x86 CPU capability detection.bunnei1-0/+8
2015-07-11Common: Remove thunk.hLioncash1-1/+0
This isn't used, and there's no implementations of the member functions.
2015-06-27Common: Remove unused fifo_queue.h.Emmanuel Gil Peyrot1-1/+0
2015-05-30Move video_core/color.h to common/color.harchshift1-0/+1
2015-05-30Move video_core/math.h to common/vector_math.harchshift1-0/+1
The file only contained vector manipulation code, and such widely-useable code doesn't belong in video_core.
2015-05-16Remove unused concurrent_ring_buffer.hYuri Kunde Schlesner1-1/+0
2015-05-14Common: Remove unused cruft from math_util, and remove a duplicated Rect class in common_types.Emmanuel Gil Peyrot1-1/+0
2015-05-08Common: Remove mem_arena.cpp/hYuri Kunde Schlesner1-2/+0
It is superfluous for Citra. (It's only really necessary if you're doing JIT. We were using it but not taking any advantage from it.) This should make 32-bit builds work again.
2015-05-07Common: Remove hash.cpp/hYuri Kunde Schlesner1-2/+0
Currently unused and the code quality is pretty questionable.
2015-05-07Common: Remove common.hYuri Kunde Schlesner1-1/+0
2015-03-02Add profiling infrastructure and widgetYuri Kunde Schlesner1-0/+4
2015-02-19Remove "super lame/broken" file_search compilation unit that was leftover from Dolphinarchshift1-2/+0
2015-02-19Remove redundant utf8 compilation unit that was leftover from Dolphinarchshift1-2/+0
2015-02-19Remove useless extended_trace compilation unit that was leftover from Dolphinarchshift1-2/+0
2015-02-19Remove the useless msg_handler compilation unit that was left over from Dolphinarchshift1-2/+0
2015-02-11Asserts: break/crash program, fit to style guide; log.h->assert.harchshift1-1/+1
Involves making asserts use printf instead of the log functions (log functions are asynchronous and, as such, the log won't be printed in time) As such, the log type argument was removed (printf obviously can't use it, and it's made obsolete by the file and line printing) Also removed some GEKKO cruft.
2014-12-20Common: Add a clone of std::make_uniqueYuri Kunde Schlesner1-0/+1
2014-12-13Remove old logging systemYuri Kunde Schlesner1-4/+0
2014-12-13Add configurable per-class log filteringYuri Kunde Schlesner1-0/+2
2014-12-13New logging systemYuri Kunde Schlesner1-0/+6
2014-12-13Add SCOPE_EXIT macro to conveniently execute cleanup actionsYuri Kunde Schlesner1-0/+1
2014-09-12Added support for multiple input device types for KeyMap and connected Qt.Kevin Hartman1-0/+1
2014-09-12Initial HID PAD work, with GLFW only.Kevin Hartman1-0/+2
2014-09-09Removed fixed_size_queue.harchshift1-1/+0
It's unused and doesn't look like it compiles anyway :/
2014-09-07Removed common/std_xyz, instead using the std headerarchshift1-3/+0
2014-09-03Removed common/atomic, instead using std::atomicarchshift1-3/+0
2014-09-01CMake cleanupYuri Kunde Schlesner1-7/+16
Several cleanups to the buildsystem: - Do better factoring of common libs between platforms. - Add support to building on Windows. - Remove Qt4 support. - Re-sort file lists and add missing headers.
2014-05-20CMakeLists: rename HEADS, improved commentsarchshift1-2/+2
Changes for clarity of comments, removed redundant compiler flags.
2014-05-17Updated cmakelistsarchshift1-0/+1
2014-05-01Fixed indentsarchshift1-1/+1
2014-04-29IT'S ALIVE!archshift1-1/+39
2014-04-24fixes to scm_rev generation to make it conistent with windows buildbunnei1-3/+3
2014-04-24added scm rev generation on Linux/cmakebunnei1-1/+3
2014-04-23updated CMakeLists for missing filesShizZy1-0/+1
2014-04-10updated CMakeListsbunnei1-16/+17
2014-04-02convert tabs to spacesbunnei1-16/+16
2013-09-05updated CMakeLists.txt file for new common filesShizZy1-9/+16
2013-08-30adding initial project layoutShizZy1-0/+11