Commit graph

5600 commits

Author SHA1 Message Date
James Rowe
ac4c589ab5 Workaround for ICE on gcc5 2017-12-23 16:10:31 -07:00
Phantom
9a6a452857 Fix broken surface validation logic since removal of the reinterpret hack 2017-12-23 16:10:30 -07:00
Phantom
f893daa4a2 Perform the same checks on TexCopy params that SW does 2017-12-23 16:10:30 -07:00
James Rowe
91fad7010b Fix compilation on mac and linux 2017-12-23 16:10:30 -07:00
James Rowe
34ff77f5f7 Revert "OpenGL Cache: Ignore format reinterpretation hack"
Testing found a few games that did some crazy things which breaks the
assumptions made in that commit.
2017-12-23 16:10:29 -07:00
James Rowe
72034b772d Minor style changes 2017-12-23 16:10:29 -07:00
James Rowe
0498d34d18 OpenGL Cache: Ignore format reinterpretation hack
Several games such as Smash will cause some regions that are cached on
the gpu to be revalidated, but (seemingly) we can just ignore these
cases. If the data is already found on the gpu in dirty_regions, then we
validate those, and skip flushing that region from cpu.

Its unknown if this breaks any games, but it does speed up many games.
Additionally, it removes outlines in the pokemon games.
2017-12-23 16:10:29 -07:00
James Rowe
5b872c41d8 OpenGL Cache: Reorder methods
The previous commits added the methods where they were located
originally to try to get an easy to read diff between changes. This
commit fixes compliation since the static methods are now declared
before they are used.
2017-12-23 16:10:28 -07:00
James Rowe
24e187891f OpenGL Rasterizer: Update to use the new cache 2017-12-23 16:10:28 -07:00
James Rowe
e5adb6a26b OpenGL Cache: Add the rest of the Cache methods
Fills in the rasterizer cache methods using the helper methods added in
the previous commits.
2017-12-23 16:10:27 -07:00
James Rowe
81ea32d1e0 OpenGL Cache: Refactor Surface Cache interface
Changes the public interface of the surface cache to make it easier to
use. Reintroduces the cached page count cached pages that was removed in
an earlier commit.
2017-12-23 16:10:27 -07:00
James Rowe
3e1cbb7d14 OpenGL Cache: Split CachedSurface
Breaks CachedSurface into two classes, the parameters used to create or
find a cached surface, and the actual cached surface. This also adds a
few helper methods for getting surfaces from cache
2017-12-23 16:10:27 -07:00
James Rowe
0b98b768f5 OpenGL Cache: Add surface utility functions
Separates creating and filling surfaces into static functions that
can be reused from the different RasterizerCache methods.
2017-12-23 16:10:26 -07:00
James Rowe
e9e2d444ef OpenGL Cache: Optimize Morton Copy to copy in tiles
Compiles two lookup arrays of functions for the different
configurations of Morton Copy.
2017-12-23 16:10:26 -07:00
James Rowe
160ac25527 OpenGL State: Change setters so they don't directly write to curstate 2017-12-23 16:10:25 -07:00
James Rowe
13606a6d0b Memory: Remove count of cached pages and add InvalidateRegion
In a future commit, the count of cached pages will be reintroduced in
the actual surface cache. Also adds an Invalidate only to the cache
which marks a region as invalid in order to try to avoid a costly flush
from 3ds memory
2017-12-23 16:10:25 -07:00
James Rowe
c821c14908 Settings: Change resolution scaling to an integer instead of a float 2017-12-23 16:10:25 -07:00
Sebastian Valle
c3c684cd2b
Merge pull request #3301 from Subv/exitprocess2
Kernel/SVC: Partially implemented svcExitProcess.
2017-12-23 10:49:36 -05:00
Yuri Kunde Schlesner
f2e1160601
Merge pull request #3326 from wwylele/cmake-gen
cmake: add missing ${...} for variables inside generator expressions
2017-12-22 22:25:42 -08:00
wwylele
80ed0f03ac cmake: add missing ${...} for variables inside generator expressions 2017-12-23 03:00:15 +02:00
Sebastian Valle
ae42267cc7
Merge pull request #3307 from Subv/gsp_new_frame
HLE: Convert GSP_GPU to ServiceFramework.
2017-12-21 10:31:41 -05:00
Subv
3652809408 HLE: Convert GSP_GPU to ServiceFramework.
The only functional change is the error handling of GSP_GPU::ReadHWRegs function. We previously didn't return error codes (not even for success). The new returns were found by reverse engineering the GSP module.
2017-12-21 10:30:22 -05:00
Mat M
c143a5a3a6
Merge pull request #3318 from MerryMage/gdb_stub_
gdbstub: Correct typo
2017-12-20 15:05:37 -05:00
MerryMage
19814d68c1 gdbstub: Correct typo
Constructing and destructing a Core::System instance for the
GetInstance() call isn't the smartest thing to do.
2017-12-20 18:47:06 +00:00
Merry
c6293d7357
Merge pull request #3312 from lioncash/qt5-connect
citra_qt: Migrate to Qt 5 signal/slot connection syntax where applicable
2017-12-19 14:24:39 +00:00
Merry
3f37976fd3
Merge pull request #3309 from wwylele/cro-session-slot
ldr_ro: use ServiceFramework's session slot for client slot
2017-12-18 18:22:39 +00:00
Merry
32b2d5bdfe
Merge pull request #3253 from lioncash/mic-ipc
mic_u: Migrate to the new service framework
2017-12-18 14:34:47 +00:00
Lioncash
a73f135868
citra_qt: Migrate to Qt 5 signal/slot connection syntax where applicable
This is more type-safe than the string-based signal/slot syntax that was
being used. It also makes the connections throughout the UI code consistent.
2017-12-17 18:44:48 -05:00
Weiyi Wang
4c3a4ab664
Merge pull request #3306 from lioncash/qt4
citra_qt: Drop Qt 5 version checks in code
2017-12-17 12:08:21 +02:00
wwylele
eeec04fcaa ldr_ro: use ServiceFramework's session slot for client slot 2017-12-17 01:43:12 +02:00
James Rowe
6e2a4ba665
Merge pull request #3305 from lioncash/fwd
game_list: Use forward declarations where applicable
2017-12-16 12:42:26 -07:00
Subv
f4b595331f GSP/GPU: Make FrameBufferInfo::active_fb use the entire u32 instead of just one bit.
The GSP module reads the entire 32 bit word from this field to determine the framebuffer.
2017-12-16 13:33:42 -05:00
Lioncash
9ec0609ae5
citra_qt: Drop Qt 5 version checks in code
We don't support Qt 4.x anymore.
2017-12-16 13:26:14 -05:00
Lioncash
8e53599deb
game_list: Use forward declarations where applicable
Reduces the number of header dependencies propagated by the header file.
2017-12-16 13:14:23 -05:00
Sebastian Valle
125f5d1e68
Merge pull request #3284 from Subv/session_data
HLE/Services: Allow specifying a SessionData template parameter to ServiceFramework.
2017-12-16 09:14:34 -05:00
Mat M
d3112aedba
Merge pull request #3295 from lioncash/qt4
citra_qt: CMakeLists: Drop leftover handling code for Qt 4 UI files
2017-12-15 19:49:22 -05:00
Lioncash
d613c6f74f mic_u: Migrate to the new service framework 2017-12-15 19:22:58 -05:00
Lioncash
c681090d06 citra_qt: CMakeLists: Drop leftover handling code for Qt 4 UI files
We don't support Qt 4 anymore.
2017-12-15 19:01:21 -05:00
Subv
1856aa7b32 Kernel/SVC: Partially implemented svcExitProcess.
Terminating processes with ready threads is not currently implemented and will assert. It is currently unknown how the 3DS kernel stops ready threads or threads running in another core.
2017-12-15 15:47:33 -05:00
Sebastian Valle
4fd28e715e
Merge pull request #3252 from Subv/fs_user
HLE/FS: Converted some functions to use IPCHelpers
2017-12-15 15:40:36 -05:00
Sebastian Valle
4b4e1861c7
Merge pull request #3265 from Subv/getappletinfo
HLE/APT: Implement GetAppletInfo for LLE applets.
2017-12-15 10:29:53 -05:00
bunnei
95d4d7c864
Merge pull request #3292 from Tilka/inf_nan
video_core: fix infinity and NaN conversions
2017-12-15 09:58:48 -05:00
Yuri Kunde Schlesner
b89f347a0c
Merge pull request #3294 from lioncash/redundant
input_common: Remove redundant target_sources in CMakeLists
2017-12-15 01:03:32 -05:00
Subv
9a22e8d9ed HLE/APT: Implement GetAppletInfo for LLE applets.
Calling this function for AppletId::Application is not yet implemented because we don't support launching applications from APT.
2017-12-14 19:30:12 -05:00
Subv
674bd550a4 HLE/APT: Stubbed FinishPreloadingLibraryApplet.
An applet is considered "loaded" when the parent application calls this function.
2017-12-14 19:30:11 -05:00
Lioncash
761101f64c input_common: Remove redundant target_sources in CMakeLists 2017-12-14 19:21:02 -05:00
Sebastian Valle
542f14d3c5
Merge pull request #3249 from Subv/logo
NCCH: Load the "logo" file from the specified offset if it's present instead of the ExeFS.
2017-12-14 18:30:19 -05:00
Subv
b5bfaaae29 HLE/FS: Use the SessionData parameter of ServiceFramework in the File class. 2017-12-14 18:24:03 -05:00
Subv
daecd812b0 HLE/Services: Allow specifying a SessionData template parameter to ServiceFramework.
Some services can have multiple clients at the same time, and they identify the different clients using the server session as a key.
This parameter (if present) should be a structure that contains the per-session data for each service.
The data can be retrieved using ServiceFramework::GetSessionData(session)
2017-12-14 18:24:02 -05:00
Tillmann Karras
fd3ec6be30 video_core: fix infinity and NaN conversions 2017-12-14 19:51:58 +00:00