summaryrefslogtreecommitdiffstats
path: root/CMakeModules (unfollow)
Commit message (Collapse)AuthorFilesLines
2020-10-27video_core: NVDEC Implementationameerj1-0/+10
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-07-02cmake: stop linking against QGL after c6a0ab979239Jan Beich1-1/+0
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-02Make compatible with the current MinGW cross-compilerlat9nq1-2/+2
The Docker image was just updated to use Arch Linux instead of Ubuntu. This PR sets the compiler names to reflect how they are installed on the Arch Linux Docker image. Fixes "x86_64-w64-mingw32-g++-posix is not a full path and was not found in the PATH." errors in CMake.
2020-04-07Removed leftover test codeSilverBeamx1-2/+0
2020-04-07Addressed feedback: removed CMake hack in favor of building the necessary strings via the supplied title formatSilverBeamx1-19/+2
2020-04-07Hack BUILD_FULLNAME into GenerateSCMRev.cmakeSilverBeamx1-0/+19
2020-03-24Use the correct directory for Qt PluginsJames Rowe1-4/+8
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/+4
2019-10-25VideoCore: Unify const buffer accessing along engines and provide ConstBufferLocker class to shaders.Fernando Sahmkow1-2/+4
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-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-06-21shader: Decode SUST and implement backing image functionalityReinUsesLisp1-0/+1
2019-06-07cmake: Add missing shader hash file entriesReinUsesLisp1-0/+3
2019-04-16GenerateSCMRev: fix Travis compilation on repo forksfearlessTobi1-1/+1
2019-02-26shader/decode: Split memory and texture instructions decodingReinUsesLisp1-0/+1
2019-02-07cmake: Fix title bar issueReinUsesLisp1-8/+1
2019-02-07cmake: Fixup application stringMichael1-2/+2
Co-Authored-By: ReinUsesLisp <reinuseslisp@airmail.cc>
2019-02-07gl_shader_disk_cache: Invalidate shader cache changes with CMake hashReinUsesLisp1-0/+101
2019-01-20QT Frontend: Add a Loading screen with progressbarJames Rowe1-1/+4
With shader caches on the horizon, one requirement is to provide visible feedback for the progress. The shader cache reportedly takes several minutes to load for large caches that were invalidated, and as such we should provide a loading screen with progress. Adds a loading screen widget that will be shown until the first frame of the game is swapped. This was chosen in case shader caches are not being used, several games still take more than a few seconds to launch and could benefit from a loading screen.
2019-01-05build: Copy web engine resources to correct locationZach Hilman1-2/+1
2018-12-31Update Qt MSVC external to 5.12.0Zach Hilman1-1/+1
2018-12-28cmake: Add USE_QT_WEB_ENGINE flag and update build systemZach Hilman1-0/+27
2018-09-19Update MinGWCross.cmake to lowercasetech4me1-40/+40
2018-09-19travis: running mingw build on travis citech4me1-0/+54
This commit also fixed a broken cmake dependency with unicorn
2018-08-07Fix missing qjpeg DLLZach Hilman1-0/+3
2018-07-03Add qt windowsvistastyle dll to the buildJames Rowe1-0/+3
2018-06-23Revert "Use Ninja for MSVC AppVeyor builds" (#584)bunnei3-3/+3
2018-06-05Use Ninja for MSVC AppVeyor buildsMichał Janiszewski3-3/+3
2018-01-13Fix build on macOS and linuxMerryMage2-4/+4
2018-01-13Massive removal of unused modulesJames Rowe1-1/+1
2018-01-04cmake: Add CopyYuzuUnicornDeps script.bunnei1-0/+9
2018-01-04DownloadExternals: Use yuzu repo.bunnei1-1/+1
2017-09-11Build: Enable SSL in mingw by linking against WinSSLJames Rowe1-0/+18
The mingw builds aren't submitting telemetry because the curl library they are linked against is configured to use openSSL and openSSL looks for the certificates in the users home folder. This keeps it from contacting web services because it can't communicate over SSL. This commit adds a download in mingw builds that will download a precompiled curl for mingw linked against winssl and sspi.
2016-12-13Modularized Qt and SDL file copyingfreiro2-5/+8
Now cmake relies on two submodules to copy the libraries in the proper folders
2016-12-11Modularization of copy_msvc_libraries cmake functfreiro1-0/+19
Created a new folder in Citra's root called CMakeModules that should contain cmake functions used by the various CMakeLists.txt.