Commit Graph

7359 Commits (74f966404db155d61808739bfd8a497c58a2f868)

Author SHA1 Message Date
Markus Wick c1b8cd9058 video_core: Refactor command_processor.
Inline the WriteReg helper as it is called ~20k times per frame.
7 years ago
Markus Wick 0cfb0bacb2 video_core: Move command buffer loop.
This moves the hot loop into video_core. This refactoring shall reduce the CPU overhead of calling ProcessCommandList.
7 years ago
MysticExile d2f788762a
Remove multicore configure_general.ui 7 years ago
MysticExile 17f8059fea
remove multicore in configure_general.cpp 7 years ago
Markus Wick c560043581 rasterizer: Drop unused handler.
This virtual function is called in a very hot spot, and it does nothing.

If this kind of feature is required, please be more specific and add callbacks
in the switch statement within Maxwell3D::WriteReg. There is no point in having
another switch statement within the rasterizer.
7 years ago
bunnei 4c0b1cc1ae gl_rasterizer_cache: Only use depth for applicable texture formats.
- Fixes an issue with Octopath Traveler leaving stale data here.
7 years ago
bunnei 035e6bd407 gl_rasterizer: Implement clear for non-zero render targets.
- Several misc. changes to ConfigureFramebuffers in support of this.
7 years ago
bunnei 1c34498368 gl_rasterizer_cache: Implement RenderTargetFormat::BGRA8_SRGB.
- Used by Octopath Traveler (with multiple render targets).
7 years ago
bunnei 49b15af054 gl_rasterizer: Implement multiple color attachments. 7 years ago
bunnei f9e468d891
Merge pull request #1258 from tgsm/fix-sdl-logging
yuzu-cmd: fix SDL logging
7 years ago
bunnei 7ddd5b765d
Merge pull request #1282 from lioncash/compat
yuzu: Move compatibility list specifics to their own source files
7 years ago
bunnei 50c191439d
Merge pull request #1276 from FearlessTobi/fix-stupid-stub
hid: Implement ReloadInputDevices
7 years ago
bunnei 3b8a0bc146
Merge pull request #1283 from lioncash/unused
service: Remove unused g_kernel_named_ports variable
7 years ago
Lioncash 136040ee15 service: Remove unused g_kernel_named_ports variable
With the named port functionality all migrated over to the kernel,
there's no need to keep this around anymore.
7 years ago
bunnei e58855c7a4
Merge pull request #1268 from FernandoS27/tmml
shader_decompiler: Implemented TMML
7 years ago
FernandoS27 00131e752d Implemented TMML 7 years ago
bunnei 223ddb2008
Merge pull request #1272 from Subv/dma_2d
GPU/DMA: Partially implemented the 'enable_2d' bit in the DMA engine.
7 years ago
bunnei fcf81147e7
Merge pull request #1280 from zero334/improvements
video_core: fixed arithmetic overflow warnings & improved code style
7 years ago
Lioncash 73a2d71f44 game_list: Make CompatibilityList parameter of NavigateToGamedbEntryRequested() a const reference
The compatibility list isn't modified within any of the slots connected
to this signal, so we can make it const to enforce immutability.
7 years ago
Lioncash bd8065295c yuzu: Move compatibility list specifics to their own source files
Lets us keep the generic portions of the compatibility list code
together, and allows us to introduce a type alias that makes it so we
don't need to type out a very long type declaration anymore, making the
immediate readability of some code better.
7 years ago
FernandoS27 073a21ac0b Implemented TXQ dimension query type, used by SMO. 7 years ago
Patrick Elsässer 64e45b04e0 video_core: fixed arithmetic overflow warnings & improved code style
- Fixed all warnings, for renderer_opengl items, which were indicating a
possible incorrect behavior from integral promotion rules and types
larger than those in which arithmetic is typically performed.
- Added const for variables where possible and meaningful.
- Added constexpr where possible.
7 years ago
MerryMage 55af5bda55 cubeb_sink: Downsample arbitrary number of channels 7 years ago
tech4me 3dcedb36b4 Port Citra #4047 & #4052: add change background color support 7 years ago
fearlessTobi 500e81429a hid: Implement ReloadInputDevices 7 years ago
FernandoS27 82a313a14c Change name of TEXQ to TXQ, in order to match NVIDIA's naming 7 years ago
Subv fdb199290b GPU/DMA: Partially implemented the 'enable_2d' bit in the DMA engine.
When not set, this tells the GPU to only use the X size when performing a DMA copy.
This is only implemented for linear->linear and tiled->tiled copies. Conversion copies still retain the assert.

This bit is unset by some games for various purposes, and by nouveau when copying the vertex buffers.
7 years ago
bunnei af074ee422
Merge pull request #1256 from bunnei/tex-target-support
Initial support for non-2D textures
7 years ago
bunnei deff28d3c0
Merge pull request #1265 from zhaowenlan1779/patch-1
yuzu: fix title bar display
7 years ago
MerryMage 1aa195a9c0 cubeb_sink: Perform audio stretching 7 years ago
MerryMage e51bd49f87 audio_core: Add audio stretcher 7 years ago
MerryMage 7e697ab7ff cubeb_sink: Hold last available value instead of writing zeros
This reduces clicking in output audio should we underrun.
7 years ago
MerryMage 6d9dd1dc6d cubeb_sink: Use RingBuffer 7 years ago
MerryMage 112351d557 common: Implement a ring buffer 7 years ago
fearlessTobi a6efff8b02 Add audio stretching support 7 years ago
MerryMage a76f0d5d06 audio_renderer: Rename AudioOut instance to audio_out 7 years ago
Pengfei Zhu 4048b54ef7
yuzu: fix title bar display
Previously the version number got hidden after starting a game.
7 years ago
bunnei 9cd79c25ed
Merge pull request #1246 from degasus/instanced_rendering
gl_rasterizer: Use baseInstance instead of moving the buffer points.
7 years ago
bunnei 2515d2433b
Merge pull request #1259 from lioncash/relocate
yuzu: Move GameListWorker to its own source files
7 years ago
bunnei 8b08cb925b gl_rasterizer: Use baseInstance instead of moving the buffer points.
This hopefully helps our cache not to redundant upload the vertex buffer.

# Conflicts:
#	src/video_core/renderer_opengl/gl_rasterizer.cpp
7 years ago
tgsm 975226e7ff yuzu-cmd: fix SDL logging 7 years ago
Patrick Elsässer a8974f0556 video_core: Arithmetic overflow warning fix for gl_rasterizer (#1262)
* video_core: Arithmetic overflow fix for gl_rasterizer

- Fixed warnings, which were indicating incorrect behavior from integral
promotion rules and types larger than those in which arithmetic is
typically performed.

- Added const for variables where possible and meaningful.

* Changed the casts from C to C++ style

Changed the C-style casts to C++ casts as proposed.
Took also care about signed / unsigned behaviour.
7 years ago
bunnei 23ae7cf9db gl_rasterizer_cache: Improve accuracy of RecreateSurface for non-2D textures. 7 years ago
bunnei fdd5c97a14 maxwell_3d: Remove assert that no longer applies. 7 years ago
bunnei f165a85398 gl_rasterizer_cache: Partially implement several non-2D texture types. 7 years ago
bunnei 0731383124 gl_shader_decompiler: Partially implement several non-2D texture types (Subv). 7 years ago
bunnei 05f6f59ffb gl_rasterizer: Implement texture wrap mode p. 7 years ago
bunnei ce8291f6c5 gl_rasterizer_cache: Track texture depth. 7 years ago
bunnei 9dccf7e1fa gl_rasterizer_cache: Remove impl. of FlushGLBuffer.
- Will not work for non-2d textures, and was not used anyways.
7 years ago
bunnei 030676b95d gl_rasterizer_cache: Keep track of texture type per surface. 7 years ago
bunnei a439f7b6e1 gl_rasterizer_cache: Remove unused DownloadGLTexture. 7 years ago
bunnei b56e5edafc gl_state: Keep track of texture target. 7 years ago
bunnei 460ebc8187
Merge pull request #1257 from lioncash/process
core: Migrate current_process pointer to the kernel
7 years ago
Lioncash 564b7fdc9c yuzu: Move GameListWorker to its own source files
This has gotten sufficiently large enough to warrant moving it to its
own source files. Especially given it dumps the file_sys headers around
code that doesn't use it for the most part.

This'll also make it easier to introduce a type alias for the
compatibility list, so a large unordered_map type declaration doesn't
need to be specified all the time (we don't want to propagate the
game_list_p.h include via the main game_list.h header).
7 years ago
CaptV0rt3x 9382414b20 For SDL Frontend 7 years ago
CaptV0rt3x e3af341d5b Better Title Bar Display 7 years ago
Lioncash 3f17fe7133 core: Migrate current_process pointer to the kernel
Given we now have the kernel as a class, it doesn't make sense to keep
the current process pointer within the System class, as processes are
related to the kernel.

This also gets rid of a subtle case where memory wouldn't be freed on
core shutdown, as the current_process pointer would never be reset,
causing the pointed to contents to continue to live.
7 years ago
bunnei a164b413fa
Merge pull request #1250 from lioncash/file-sys
file_sys/{nca_patch, patch_manager}: Amend unnecessary/missing includes.
7 years ago
bunnei 9273c02427
Merge pull request #1249 from FearlessTobi/disable-vsync
frontend: Set swap interval to 0
7 years ago
bunnei b89dda2b98
Merge pull request #1251 from lioncash/core-inc
core/core: Remove unnecessary sm/controller include
7 years ago
bunnei 9947c6ad59
Merge pull request #1252 from lioncash/header
video_core/CMakeLists: Add missing gl_buffer_cache.h
7 years ago
bunnei 9b50dca2bb
Merge pull request #1253 from lioncash/explicit
video_core/gl_buffer_cache: Minor tidying changes
7 years ago
bunnei 009a2cc9cc
Merge pull request #1255 from bunnei/minor-opt
gl_rasterizer: Call state.Apply only once on SetupShaders.
7 years ago
bunnei 820f646458 gl_rasterizer: Call state.Apply only once on SetupShaders. 7 years ago
bunnei 948f6c0738 gl_shader_decompiler: Implement saturate mode for IPA. 7 years ago
Lioncash ddcdbce067 gl_buffer_cache: Default initialize member variables
Ensures that the cache always has a deterministic initial state.
7 years ago
Lioncash 8d685a29bc gl_buffer_cache: Make GetHandle() a const member function
GetHandle() internally calls GetHandle() on the stream_buffer instance,
which is a const member function, so this can be made const as well.
7 years ago
Lioncash 14230fe2af gl_buffer_cache: Remove unnecessary includes 7 years ago
Lioncash 68296d9474 gl_buffer_cache: Make constructor explicit
Implicit conversions during construction isn't desirable here.
7 years ago
Lioncash 8f4e09ba07 video_core/CMakeLists: Add missing gl_buffer_cache.h
Without this, the header file won't show up by default within IDEs such
as Visual Studio.
7 years ago
Lioncash 56ab608044 core/core: Remove unnecessary sm/controller include
The only reason this include was necessary, was because the constructor
wasn't defaulted in the cpp file and the compiler would inline it
wherever it was used. However, given Controller is forward declared, all
those inlined constructors would see an incomplete type, causing a
compilation failure. So, we just place the constructor in the cpp file,
where it can see the complete type definition, allowing us to remove
this include.
7 years ago
Lioncash 54724fe918 file_sys/nca_patch: Amend constructor initializer list order
Orders the elements in the initializer list in the order they're
specified in the class. This prevents compiler warnings about
initialization order.
7 years ago
Lioncash b155b3ef81 file_sys/nca_patch: Remove unnecessary includes
romfs.h doesn't need to be included in the header, the only real
dependency here is common's swap.h that needs to be included.
7 years ago
Lioncash a859a35ec8 file_sys/patch_manager: Add missing includes
These includes were previously being satisfied indirectly.
7 years ago
fearlessTobi 742f895f8b frontend: Set swap interval to 0 7 years ago
Markus Wick a781042700 gl_shader_gen: Initialize position.
IMO the old code is fine, but nvidia raises shader compiler warnings.
Trivial fix through...
7 years ago
bunnei 77554ac773
Merge pull request #1243 from degasus/VAO_cache
gl_rasterizer: Implement a VAO cache.
7 years ago
bunnei 6f09c5b128
Merge pull request #1244 from FernandoS27/ipa
shader_decompiler: Implemented IPA Properly (Stage 1)
7 years ago
FernandoS27 e63b229f4a Implemented IPA Properly 7 years ago
bunnei 94f193af65
Merge pull request #1242 from lioncash/file-sys
file_sys/submission_package: Replace includes with forward declarations where applicable
7 years ago
bunnei a6ae765410
Merge pull request #1179 from DarkLordZach/bktr
file_sys: Add support for BKTR format (Game Updates)
7 years ago
Markus Wick 7f15306f78 gl_rasterizer: Skip TODO log.
This is called ~3k times per frame in SMO ingame.
My laptop spends ~3ms per frame on allocating and freeing this string.

Let's just stop printing this kind of redundant information.
7 years ago
Lioncash 6bd6beee20 file_sys/submission_package: Correct constructor initialization list order
Orders the elements in the sequence to match the order in which they'll
actually be initialized in.
7 years ago
Markus Wick d3ad9469a1 gl_rasterizer: Implement a VAO cache.
This patch caches VAO objects instead of re-emiting all pointers per draw call.
Configuring this pointers is known as a fast task, but it yields too many GL
calls. So for better performance, just bind the VAO instead of 16 pointers.
7 years ago
Lioncash c0b7ed8b58 file_sys/submission_package: Replace includes with forward declarations where applicable 7 years ago
Markus Wick 50a806ea67 renderer_opengl: Implement a buffer cache.
The idea of this cache is to avoid redundant uploads. So we are going
to cache the uploaded buffers within the stream_buffer and just reuse
the old pointers.
The next step is to implement a VBO cache on GPU memory, but for now,
I want to check the overhead of the cache management. Fetching the
buffer over PCI-E should be quite fast.
7 years ago
bunnei a1ef02c3e6
Merge pull request #1240 from degasus/optimizations
gl_shader_cache: Use an u32 for the binding point cache.
7 years ago
Zach Hilman c913136eb2 bktr: Fix bucket overlap error 7 years ago
Zach Hilman 7d5d781b20 drd: Parse title ID from program metadata 7 years ago
Zach Hilman 23a16c1720 patch_manager: Centralize Control-type NCA parsing 7 years ago
Zach Hilman 92e26df00f nsp: Fix error masking issue with XCI files
Now display correct error instead of catch-all MissingProgramNCA
7 years ago
Zach Hilman c91b60a421 game_list: Fix version display on non-NAND titles 7 years ago
Zach Hilman cbd517d8cc bktr: Add logging on successful patch 7 years ago
Zach Hilman 2814ca3624 game_list: Use friendly game versions
Mainly, from control.nacp metadata instead of cnmt metadata
7 years ago
Zach Hilman a6e75cd45b bktr: Implement IVFC offset shifting
Fixes base game read errors
7 years ago
Zach Hilman 9664ce255d bktr: Fix missing includes and optimize style 7 years ago
Zach Hilman f92b3512e0 main: Make game updates installable 7 years ago
Zach Hilman 8e150c46b9 game_list: Display patch names and versions on list 7 years ago
Zach Hilman f5e03b9173 loader: Add BKTR-specific error messages and codes 7 years ago
Zach Hilman 08fcb4694f loader: Ignore patches on NRO and DRD 7 years ago
Zach Hilman 97bf83bc56 patch_manager: Add usages of patches to ExeFS 7 years ago
Zach Hilman 8e900a301a file_sys: Add class to manage game patches
Right now only includes Updates, but should eventually contain all of the other patches we need.
7 years ago
Zach Hilman 54e7ddb93a file_sys: Add BKTR patching mechanism 7 years ago
Zach Hilman 1efe5a76b1 content_archive: Add BKTR header parsing to NCA 7 years ago
Zach Hilman 9951f6d054 registration: Add RegisteredCacheUnion
Aggregates multiple caches into one interface
7 years ago
Zach Hilman d2caf4af7d game_list: Use RegisteredCacheUnion for installed
Reduces code
7 years ago
Zach Hilman 99fbcb3bf2 aes_util: Fix error involving reads of less than 0x10
Issues with block size are fixed by making all reads minimum length of 0x10
7 years ago
Markus Wick 99a71580c4 gl_shader_cache: Use an u32 for the binding point cache.
The std::string generation with its malloc and free requirement
was a noticeable overhead. Also switch to an ordered_map to
avoid the std::hash call. As those maps usually have a size of
two elements, the lookup time shall not matter.
7 years ago
Zach Hilman 87be4bc283 main: Only show DRD deprecation warning once 7 years ago
Zach Hilman e973cceadd control_metadata: Use alternate language names if AmericanEnglish isn't available 7 years ago
Zach Hilman 23d2c50479 card_image: Add program title ID getter 7 years ago
Zach Hilman 1280061725 qt: Add deprecation warnings for DRD format 7 years ago
Zach Hilman 8974771334 registration: Fix NSP installation errors 7 years ago
Zach Hilman e4e55d064e nsp: Comply with style and performance guidelines 7 years ago
Zach Hilman 58473309a0 qt: Add UI support for NSP files 7 years ago
Zach Hilman f7eaea424d registration: Add support for installing NSP files 7 years ago
Zach Hilman d7518cf6e0 loader: Add AppLoader for NSP files 7 years ago
Zach Hilman 5c8aff984e card_image: Parse XCI secure partition with NSP
Eliminated duplicate code and adds support for Rev1+ carts
7 years ago
Zach Hilman 93703431e2 file_sys: Add Nintendo Submission Package (NSP) 7 years ago
Zach Hilman a040929c90 drd: Load title ID from program metadata
Previously only loaded from control metadata
7 years ago
Zach Hilman b555311438 loader: Add NSP file type and NSP-specific errors 7 years ago
Zach Hilman d770c60205 key_manager: Avoid autogeneration if key exists 7 years ago
bunnei dda4b5e89e
Merge pull request #1238 from lioncash/explicit
common/logging: Minor changes
7 years ago
bunnei 9a07e9f805
Merge pull request #1237 from degasus/optimizations
Optimizations
7 years ago
bunnei ed37b68fb5
Merge pull request #1223 from DarkLordZach/custom-nand-sd-dirs
file_sys: Allow for custom NAND/SD directories
7 years ago
bunnei 26e96d16d0
Merge pull request #1232 from lioncash/copy
gl_shader_decompiler: Use used_shaders member variable directly within GenerateDeclarations()
7 years ago
bunnei 8ec1e16867
Merge pull request #1235 from lioncash/forward-decl
file_sys: Replace includes with forward declarations where applicable
7 years ago
bunnei 5a29b358aa
Merge pull request #1236 from degasus/microprofile
Update microprofile scopes.
7 years ago
bunnei c156ee8eb8
Merge pull request #1230 from lioncash/ssl
ssl: Move SSL class to cpp file
7 years ago
Lioncash 6ef84f1c4c common/logging: Amend documentation comments
Multi-line doc comments still need the '<' after the ///, otherwise it's
treated as a regular comment and makes the original doc comment broken
in viewers, IDEs, etc. While we're at it, also fix some typos in the
comments.
7 years ago
Lioncash 2949d9552c common/logging/filter: Replace C-style case with C++ static_cast 7 years ago
Lioncash 978f3a3282 common/logging/filter: Make constructor explicit
Implicit conversions aren't desirable here.
7 years ago
Markus Wick dce624e3f1 core: Use a raw pointer in GetGPUDebugContext.
This helper is called very often. The memory ownership shall not be transfered, so just return the raw pointer.
7 years ago
Markus Wick 2081ed7db2 command_processor: Use std::array for bound_engines.
subchannel is a 3 bit field. So there must not be more than 8 bound engines.
And using a hashmap for up to 8 values is a bit overpowered.
7 years ago
Markus Wick 10bc725944 Update microprofile scopes.
Blame the subsystems which deserve the blame :)

The updated list is not complete, just the ones I've spotted on random sampling the stack trace.
7 years ago
Lioncash a813c10e1c file_sys: Replace includes with forward declarations where applicable
Cuts down on include dependencies, resulting in less files that need to
be rebuilt when certain things are changed.
7 years ago
bunnei 1c5636e690
Merge pull request #1231 from lioncash/global
service: Migrate global named port map to the KernelCore class
7 years ago
Zach Hilman 04397cd185 qt: Add message about not moving contents on dir change 7 years ago
Zach Hilman 1ff3318458 qt: Add UI options to change NAND/SD dirs 7 years ago
Zach Hilman b2268f1f8d settings: Save and load NAND/SD dirs from config 7 years ago
Lioncash 18a89931a9 gl_shader_decompiler: Use used_shaders member variable directly within GenerateDeclarations()
Using the getter function intended for external code here makes an
unnecessary copy of the already-accessible used_shaders vector.
7 years ago
Lioncash a405373144 vfs_real: Forward declare IOFile
Eliminates the need to rebuild some source files if the file_util header
ever changes. This also uncovered some indirect inclusions, which have
also been fixed.
7 years ago
Lioncash 1242c1ec0a service: Migrate global named port map to the KernelCore class
Now that we have a class representing the kernel in some capacity, we
now have a place to put the named port map, so we move it over and get
rid of another piece of global state within the core.
7 years ago
Lioncash 41cd766438 ssl: Move SSL class to cpp file
This isn't required to be visible to anything outside of the main source
file, and will eliminate needing to rebuild anything else including the
header if the SSL class needs to be changed in the future.
7 years ago
bunnei 325f3e0693
Merge pull request #1213 from DarkLordZach/octopath-fs
filesystem/maxwell_3d: Various changes to boot Project Octopath Traveller
7 years ago
bunnei 89be49d2f3
Merge pull request #1215 from ogniK5377/texs-nodep-assert
Added assert for TEXS nodep
7 years ago
bunnei d2ade27c3f
Merge pull request #1220 from FearlessTobi/extensions-qol
yuzu: Display the unsupported GL extensions in the popup
7 years ago
bunnei 177c45e97d
Merge pull request #1214 from ogniK5377/ipa-assert
Added better asserts to IPA, Renamed IPA modes to match mesa
7 years ago
bunnei 9c206fe94d
Merge pull request #1216 from ogniK5377/ffma-assert
Added FFMA asserts and missing fields
7 years ago
bunnei 1ccc0457d5
Merge pull request #1218 from ogniK5377/fmul-assert
Added FMUL asserts
7 years ago
Lioncash fda8f1da20 filesystem: Move dir retrieval after path checking in DeleteFile()
We don't need to do the lookup if the path is considered empty
currently.
7 years ago
fearlessTobi 0f453488e2 citra_qt: Display the unsupported GL extensions in the popup 7 years ago
David Marcec 60754b4728 Removed saturate assert
Unneeded as we already implement it
7 years ago
David Marcec 2edab4e840 Removed saturate assert
Saturate already implemented
7 years ago
David Marcec 2bc6abb9a1 Changed tab5980_0 default from 0 -> 1 7 years ago
David Marcec 6f8ed9508d Added FMUL asserts 7 years ago
David Marcec b89fc407d7 Added FFMA asserts 7 years ago
David Marcec 948bc87a59 Added assert for TEXS nodep 7 years ago
David Marcec ad3dca7e62 Added better asserts to IPA, Renamed IPA modes to match mesa
IpaMode is changed to IpaInterpMode
IpaMode is suppose to be 2 bits not 3
Added IpaSampleMode
Added Saturate

Renamed modes based on
d27c791891/src/gallium/drivers/nouveau/codegen/nv50_ir_emit_gm107.cpp (L2530)
7 years ago
Zach Hilman f32e28c7b8 maxwell_3d: Use CoreTiming for query timestamp 7 years ago
Zach Hilman 19d0951ae6 filesystem: Implement OpenReadOnlySaveDataFilesystem 7 years ago
Zach Hilman 7939ea18e8 filesystem: Add OpenFileSystemWithPatch 7 years ago
Lioncash 4a587b81b2 core/core: Replace includes with forward declarations where applicable
The follow-up to e2457418da, which
replaces most of the includes in the core header with forward declarations.

This makes it so that if any of the headers the core header was
previously including change, then no one will need to rebuild the bulk
of the core, due to core.h being quite a prevalent inclusion.

This should make turnaround for changes much faster for developers.
7 years ago
bunnei 7f7eb29323 gl_rasterizer_cache: Use accurate framebuffer setting for accurate copies. 7 years ago
bunnei 123c065086 gl_rasterizer_cache: Also use reserve cache for RecreateSurface. 7 years ago
bunnei 9bc71fcc5f rasterizer_cache: Use boost::interval_map for a more accurate cache. 7 years ago
bunnei d647d9550c gl_renderer: Cache textures, framebuffers, and shaders based on CPU address. 7 years ago
bunnei 16d65182f9 gl_rasterizer: Fix issues with the rasterizer cache.
- Use a single cached page map.
- Fix calculation of ending page.
7 years ago
greggameplayer 06578e89b2 Implement BC6H_UF16 & BC6H_SF16 (#1092)
* Implement BC6H_UF16 & BC6H_SF16
Require by ARMS

* correct coding style

* correct coding style part 2
7 years ago
bunnei f08d24e9c0
Merge pull request #1204 from lioncash/pimpl
core: Make the main System class use the PImpl idiom
7 years ago
bunnei 6683bf50b5
Merge pull request #1207 from degasus/hotfix
Report correct shader size.
7 years ago
Lioncash e2457418da core: Make the main System class use the PImpl idiom
core.h is kind of a massive header in terms what it includes within
itself. It includes VFS utilities, kernel headers, file_sys header,
ARM-related headers, etc. This means that changing anything in the
headers included by core.h essentially requires you to rebuild almost
all of core.

Instead, we can modify the System class to use the PImpl idiom, which
allows us to move all of those headers to the cpp file and forward
declare the bulk of the types that would otherwise be included, reducing
compile times. This change specifically only performs the PImpl portion.
7 years ago
Markus Wick 5be8b7a362 Report correct shader size.
Seems like this was an oversee in regards to 1fd979f50a
It changed GLShader::ProgramCode to a std::vector, so sizeof is wrong.
7 years ago
Hexagon12 d626bc8c62 Added predicate comparison GreaterEqualWithNan 7 years ago
bunnei 26aaa86ece
Merge pull request #1195 from FearlessTobi/port-gamelist-compat
yuzu: Show game compatibility in the game list (PR ported from Citra)
7 years ago
Laku 915ab81ec2 gl_shader_decompiler: Implement POPC (#1203)
* Implement POPC

* implement invert
7 years ago
bunnei d6accf96ff
Merge pull request #1200 from bunnei/improve-ipa
gl_shader_decompiler: Improve IPA for Pass mode with Position attribute.
7 years ago
bunnei 5094dfa081
Merge pull request #1198 from lioncash/kernel
kernel: Eliminate kernel global state
7 years ago
tech4me a6dd577d02 Shaders: Implemented IADD3 7 years ago
fearlessTobi 78653f7339 Show game compatibility within yuzu 7 years ago
bunnei b1ccd88434 gl_shader_decompiler: Improve IPA for Pass mode with Position attribute. 7 years ago
Lioncash 0cbcd6ec9a kernel: Eliminate kernel global state
As means to pave the way for getting rid of global state within core,
This eliminates kernel global state by removing all globals. Instead
this introduces a KernelCore class which acts as a kernel instance. This
instance lives in the System class, which keeps its lifetime contained
to the lifetime of the System class.

This also forces the kernel types to actually interact with the main
kernel instance itself instead of having transient kernel state placed
all over several translation units, keeping everything together. It also
has a nice consequence of making dependencies much more explicit.

This also makes our initialization a tad bit more correct. Previously we
were creating a kernel process before the actual kernel was initialized,
which doesn't really make much sense.

The KernelCore class itself follows the PImpl idiom, which allows
keeping all the implementation details sealed away from everything else,
which forces the use of the exposed API and allows us to avoid any
unnecessary inclusions within the main kernel header.
7 years ago
bunnei 4d7e1662c8
Merge pull request #1193 from lioncash/priv
gpu: Make memory_manager private
7 years ago
bunnei eb4f2d5596
Merge pull request #1192 from lioncash/unused
gl_rasterizer: Remove unused variables
7 years ago
bunnei d8ba202070
Merge pull request #1191 from lioncash/noexcept
hle/result: Make ResultVal's move constructor as noexcept
7 years ago
bunnei 72e4499a9e
Merge pull request #1194 from lioncash/alloc
gl_shader_cache: Remove unused program_code vector in GetShaderAddress()
7 years ago
Lioncash 2e7dc4cac9 gl_shader_cache: Remove unused program_code vector in GetShaderAddress()
Given std::vector is a type with a non-trivial destructor, this
variable cannot be optimized away by the compiler, even if unused.
Because of that, something that was intended to be fairly lightweight,
was actually allocating 32KB and deallocating it at the end of the
function.
7 years ago
Lioncash 45fb74d262 gpu: Make memory_manager private
Makes the class interface consistent and provides accessors for
obtaining a reference to the memory manager instance.

Given we also return references, this makes our more flimsy uses of
const apparent, given const doesn't propagate through pointers in the
way one would typically expect. This makes our mutable state more
apparent in some places.
7 years ago
Lioncash 6771a18c6c gl_rasterizer: Remove unused variables 7 years ago
Lioncash f1bc62bb4c hle/result: Make ResultVal's move constructor as noexcept
Many containers within the standard library provide different behaviors
based on whether or not a move constructor/assignment operator can be
guaranteed not to throw or not.

Notably, implementations will generally use std::move_if_noexcept (or an
internal implementation of it) to provide strong exception guarantees.
If a move constructor potentially throws (in other words, is not
noexcept), then certain behaviors will create copies, rather than moving
the values.

For example, consider std::vector. When a std::vector calls resize(),
there are two ways the elements can be relocated to the new block of
memory (if a reallocation happens), by copy, or by moving the existing
elements into the new block of memory. If a type does not have a
guarantee that it will not throw in the move constructor, a copy will
happen. However, if it can be guaranteed that the move constructor won't
throw, then the elements will be moved.

This just allows ResultVal to be moved instead of copied all the time if
ever used in conjunction with containers for whatever reason.
7 years ago
fearlessTobi 4a56931703 Fix two stupid errors made in #1141 7 years ago
bunnei ffe2336136
Merge pull request #1165 from bunnei/shader-cache
renderer_opengl: Implement a new shader cache.
7 years ago
fearlessTobi 9a6bfc55f3 yuzu: Fix stick UI direction order 7 years ago
bunnei a409d49bbd
Merge pull request #1177 from lioncash/err
kernel/error: Amend several error codes
7 years ago
bunnei b55d8111e6 renderer_opengl: Implement a new shader cache. 7 years ago
bunnei a0e1566dc5 gl_rasterizer_cache: Update to use RasterizerCache base class. 7 years ago
bunnei 382852418b video_core: Add RasterizerCache class for common cache management code. 7 years ago
bunnei 2f5ed3877c
Merge pull request #1169 from Lakumakkara/sel
shader_bytecode: fix SEL_IMM bitstring
7 years ago
bunnei 90fd03015a
Merge pull request #1188 from lioncash/unused
vfs_real: Remove unused variable in CreateDirectoryRelative()
7 years ago
bunnei 2562fe4a16
Merge pull request #1170 from lioncash/ret
file_util: Correct return value in early exit of ReadFileToString()
7 years ago