SuuperW
5906d44c2d
On Windows, draw HUD before the filter to avoid having to scale it separately. (significant performance boost when using a filter)
2018-07-06 11:45:07 -05:00
SuuperW
e4d5da97c0
Add prefilterWidth/Height
2018-07-06 11:44:11 -05:00
retr0s4ge
7548294333
1- Apply WiFi-ONLY related fixes from desmume-reloaded project by Jackobo Le Chocobo to desmume project (code base 22/06/2018).
...
2-Add required include and define statement to aviout.h to fix build error.
(cherry picked from commit 470e54e361
)
2018-06-29 09:31:30 +02:00
zeromus
bd63ff1bd1
Merge pull request #148 from SuuperW/master
...
Do not allow skipping display frames (except in extreme lag).
2018-06-28 12:50:47 -04:00
SuuperW
ee8fdebcf1
Do not allow skipping display frames (except in extreme lag), so that the user sees every emulated frame and the HUD updates every frame.
2018-06-28 11:34:38 -05:00
Ingo Saitz
0e86cf128d
Call XInitThreads() in posix frontend
...
XInitThreads() is needed in multi-threading X applications when multiple
threads try to access the Xlib. Add the call to the three frontends in
posix/ and add the required autoconf-stuff, too.
2018-06-27 14:41:02 -05:00
zeromus
23f4dcc009
Merge pull request #147 from SuuperW/master
...
Reduce RAM usage
2018-06-27 12:59:03 -04:00
SuuperW
a8fa8a44d6
Do not reset buffers when calling SetPrescale with the current scaling values.
2018-06-27 11:27:05 -05:00
SuuperW
35a2ca9721
Redraw display after changing video filter. (Regression from commit 8622a33.)
2018-06-27 11:25:48 -05:00
SuuperW
8622a334a2
Rework buffer size allocations to only allocate as much space as is actually required.
2018-06-27 11:23:36 -05:00
zeromus
0f4b3ead00
replace SMLAL_BB and friends with more clear logic that hopefully isnt bugged
...
but I couldnt find a game exercising it, so I dont know whether it's correct.
should fix #139
2018-06-15 17:48:28 -04:00
zeromus
022d24b5c2
gfx3d - savestate `renderState` along with `state`
...
there's really nothing more to it than this. it should have been done from the beginning.
you wouldn't notice this unless you had a game that stopped rendering 3d, though.
(re #141 )
2018-05-25 11:39:58 -04:00
rogerman
932cdd6366
Cocoa Port:
...
- Do a bunch of code refactoring and cleanup.
- Add some new UI for an upcoming new feature.
2018-05-17 21:22:51 -07:00
rogerman
c024a78a43
GPU / SoftRasterizer: Fix a build issue for Altivec-enabled code. (Related to commits c41a006
and 43d3883.)
2018-05-17 20:06:31 -07:00
zeromus
9c128460c4
winport - make it so you can only open one of each disassembler views at a time (reportedly theyre crashy if theres more than one of them open.. seems likely to be the case for any of our tool windows)
2018-04-18 13:14:01 -05:00
zeromus
deffcaa075
added /LARGEADDRESSAWARE so we can get more than 6x or 7x scaling in 32bit builds
2018-04-12 21:48:22 -05:00
rogerman
24d941d02e
Colorspace Handler: Fix some bugs in AVX2. (Regression from commit 858b05d
. Fixes #131.)
2018-03-11 14:13:26 -07:00
rogerman
ab3c221bf6
Windows Port: In Sound Settings, under the Interpolation menu, remove the obsolete performance notes, as these options do not actually affect performance. Instead, provide a better description of the effects caused by these options as experienced by the end-user.
2018-03-05 12:06:10 -08:00
rogerman
92924db136
Windows Port: Related to commit 8d011f8
-- check the flag first to try to avoid the more expensive system calls.
2018-03-04 17:39:27 -08:00
rogerman
42c0379cbb
OpenGL Renderer: Fix one more possible crash that may occur if the 3D framebuffer is read before the 3D renderer has a chance to render at least once. (Related to commit f8bbbec.)
2018-03-04 17:20:21 -08:00
rogerman
8d011f8344
Windows Port: Optimize input handling, reducing CPU usage when the emulator is idle. (Related to commit 8fb0d6d.)
2018-03-04 17:17:26 -08:00
rogerman
8fb0d6ddc5
Windows Port: Reduce CPU usage while the emulator is idle.
2018-03-03 20:41:23 -08:00
rogerman
e825cddbe5
Windows Port: Fix a rare and intermittent bug that could cause the AVI recording to accidentally stop in between AVI segments. (Regression from commit db1a19a.)
2018-03-02 15:59:37 -08:00
rogerman
b8c006b0b5
Windows Port: Do some minor code cleanup related to commit 8763a61
.
2018-03-02 14:00:52 -08:00
rogerman
8763a6169a
Windows Port: AVI recording now maintains many more frames in memory. Also, the framebuffer color conversion threads and file writing thread are more free running threads.
...
- These changes help to stabilize the performance of AVI recording, making it less sensitive to sudden changes in disk writing speed.
- The maximum amount of frames maintained in memory will either be 1.5 GB worth or 180 frames (or 3 seconds) worth, whichever is less.
2018-03-02 13:09:39 -08:00
rogerman
db1a19ad86
Windows Port: Do a complete code cleanup and refactor of aviout.cpp to use proper C++ objects.
...
- aviout.cpp now uses Windows-style line-endings instead of Unix-style line-endings.
- AVI segments now fill up much closer to the 2 GB file limit than before.
- Error handling in the file writing thread is much more robust.
2018-03-01 08:47:24 -08:00
rogerman
cbe4717d2f
Windows Port: When recording AVIs, video framebuffer conversions and file write operations are performed asynchronously with the main thread. This should greatly increase AVI recording performance.
2018-02-25 16:00:31 -08:00
rogerman
c7ca122d95
Windows Port: Fix building on Windows. (Regression from commit c7bb41e.)
2018-02-19 12:46:41 -08:00
rogerman
c7bb41e4b1
matrix.cpp: Rework all matrix function parameters for explicit array sizing in order to aid compiler optimization and (hopefully) aid in code readability. Also add SSE4.1 versions for the main matrix functions.
2018-02-19 11:43:55 -08:00
rogerman
5a61a08727
matrix.cpp: Do some more code cleanup.
2018-02-16 20:11:36 -08:00
rogerman
249afccfca
matrix.cpp: Do a bunch of code cleanup.
2018-02-16 11:59:19 -08:00
rogerman
c41a006b2a
GPU: Add additional basic SIMD-accelerated functions for memset_u16(), memset_u16_fast(), memset_u32(), and memset_u32_fast() for AVX2 and Altivec.
2018-02-13 14:45:17 -08:00
rogerman
5fbaa53b46
GPU: If a custom-sized layer is to be rendered first, GPUEngineBase::_TransitionLineNativeToCustom() will do a line clear instead of an upscaled line copy.
...
- Since this is a very common occurrence in many games, and since doing a clear is faster than doing an upscaled copy, this should give a small performance improvement for the larger framebuffer sizes.
2018-02-13 13:54:10 -08:00
rogerman
43d3883986
SoftRasterizer: Framebuffer clears are now accelerated using AVX2 and Altivec.
2018-02-12 18:03:52 -08:00
rogerman
ab18de05ef
SoftRasterizer: Oops! Fix a performance regression in SoftRasterizerRenderer_SSE2::ClearUsingValues() where the framebuffer was accidentally being cleared twice. (Regression from commit 7509d46.)
2018-02-12 13:42:42 -08:00
rogerman
7509d469b9
SoftRasterizer: Do some multithreading improvements, and also clean up and refactor RasterizerUnit.
...
- Completely encapsulate all stray global variables into the SoftRasterizer class where they belong.
- Framebuffer clears are now fully multithreaded, significantly improving clearing performance.
- Doing multithreaded texture loads and vertex calculations now requires a minimum of 2 threads, down from 4 threads.
- The maximum amount of SoftRasterizer threads has been increased from 16 to 32.
2018-02-12 11:35:21 -08:00
rogerman
9e3b694ace
Cocoa Port: Do some minor code cleanup.
2018-02-05 20:29:09 -08:00
rogerman
d1dcbb8218
Cocoa Port: Fix a potential deadlock that may occur on emulation reset.
2018-02-04 13:07:59 -08:00
rogerman
9ee7cd8ec0
NDSSystem.cpp: Check for the GPU struct before calling GPUSubsystem::ForceFrameStop() in GameInfo::closeROM().
2018-02-03 21:59:00 -08:00
rogerman
23be799a67
Cocoa Port: Metal display views no longer lose visible frames when running multiple display views.
2018-02-03 21:21:54 -08:00
rogerman
01c508f93a
Cocoa Port: Remove and replace the high-overhead NSThread with the lower-overhead pthread_t. Improves video display performance when the frame rate is very high (greater than 600 FPS).
2018-02-03 11:31:41 -08:00
rogerman
f9c32c9e79
Cocoa Port: Rework triple buffering for Metal display views yet again. This should fix the performance regression introduced in commit a65ceae9
for the larger custom framebuffer sizes.
2018-01-30 16:26:05 -08:00
zeromus
2a58246eb5
Merge pull request #123 from keelimeguy/master
...
Windows Port: Adding Pen and Touch support for touch screen devices
2018-01-08 16:04:11 -06:00
Keelin Wheeler
b11bde4be4
Windows Port: Adding Pen and Touch support for touch screen devices
2018-01-08 16:37:20 -05:00
rogerman
f2f3680a7c
Cocoa Port: Fix a bug where Metal display view backing textures weren't updating their custom framebuffer sizes. (Regression from commit 4c01e66.)
2017-12-19 15:35:20 -08:00
rogerman
4c01e66a8a
GPU: Instead of using fixed double-buffered output framebuffers, allow clients to request any number of framebuffer pages between 1 and 8.
...
- For all non-Cocoa ports, reduce the number of framebuffer pages from 2 to 1, reducing the memory usage for those ports.
- For the Cocoa port, increase the number of framebuffer pages from 2 to 3 in preparation for a new triple-buffered display scheme.
2017-12-19 14:33:48 -08:00
rogerman
d3b628af47
Cocoa Port: Rework synchronization for Metal display views yet again. It should be a lot better now.
2017-12-17 20:35:00 -08:00
rogerman
a65ceae98f
Cocoa Port: For Metal display views, be much smarter about how we do synchronization. Should fix the performance issues introduced with commit 26ac91ed
.
2017-12-11 16:28:42 -08:00
rogerman
1ea95cdde4
Cocoa Port: Do some minor code cleanup.
2017-12-11 16:17:02 -08:00
rogerman
cd2f75e43a
Cocoa Port: Replace all POSIX named semaphores with Mach semaphores and GCD semaphores, which are both faster than POSIX named semaphores.
2017-12-08 11:49:49 -08:00