Commit Graph

5356 Commits

Author SHA1 Message Date
rogerman 812cabb752 Texture Handler:
- The 3D renderers are now responsible for managing the texture unpack buffers instead of relying on the TexCacheItem itself to do it.
- The OpenGL 3D renderer now uses a fixed 4MB buffer for unpacking textures, instead of maintaining extra copies of each unpacked texture in main memory even after they’ve been uploaded to the GPU.
2016-11-03 00:39:02 +00:00
rogerman 158f0c561b Texture Handler:
- Increase TEXCACHE_MAX_SIZE to 32MB. Fixes severe performance problems with continuously evicting/reloading the texture cache in Umihara Kawase Shun.
2016-11-02 18:49:36 +00:00
rogerman b0e649c9bb Texture Handler:
- Fix a bug where 4x4 formatted textures were being read incorrectly. (Regression from r5569.)
2016-11-02 09:37:59 +00:00
rogerman df60214b26 Texture Handler:
- Rework TexCacheItem::GetTexture() so that instantiating a new object, dumping the packed data, and dumping the palette are performed as separate operations.
- Invalid OpenGL textures are now updated instead of being completely replaced.
- NDSTextureUnpack4x4() now uses the srcIndex pointer parameter instead of recalculating the palette address.
- Delete the now obsolete MemSpan-based texture unpacking functions.
2016-11-02 07:25:11 +00:00
rogerman 2c82d4b7b4 Texture Handler:
- Texture items in cache are now searched using std::map instead of std::multimap.
- Texture item search keys now ignore the render-specific bits of the texture attributes (repeat mode, flip mode, and coordinate transformation mode bits are ignored). This is to help reduce the number of duplicate textures in the cache.
- Searching a texture and unpacking a texture are now performed as separate operations.
- Texture unpacking functions now use restrict pointers instead of normal pointers.
2016-11-01 21:07:17 +00:00
rogerman 95db2317b9 Texture Handler:
- Do some heavy cleanup and code refactoring.
- Add SSE2-enabled unpacking function for direct 16-bit color textures.
2016-10-30 23:16:49 +00:00
zeromus 318613e783 add savetype hardcode for puzzler world 2016-10-25 06:02:33 +00:00
zeromus 77918f13ee fix support importing newer style ardsi duc files 2016-10-05 08:21:38 +00:00
zeromus 66613008f1 update path format tooltip 2016-10-03 01:48:05 +00:00
rogerman b9c33745c5 Filters:
- Simplify the functionality of the Deposterize filter by making the threshold a constant value.
- Increase the Deposterize threshold from 21 to 23.
2016-09-30 05:41:00 +00:00
zeromus 284119237e support importing newer style ardsi duc files 2016-09-30 05:08:23 +00:00
rogerman 4af90cd902 Filters:
- Remove the Deposterize texture filter from render3D.cpp and make it a general-purpose standalone filter.
2016-09-29 00:58:04 +00:00
zeromus b39f9ef9e4 fix bugs in MC import. I dont want to talk about it. 2016-09-25 22:09:13 +00:00
rogerman 59088e1ff8 Cocoa Port:
- OS X App Debug builds now use Xcode 8’s new Incremental LTO feature.
2016-09-14 21:49:47 +00:00
zeromus 14458da8f8 do a better job on the language setting, probably 2016-09-08 22:39:31 +00:00
zeromus ebff84cd45 try to apply patches from #1593 2016-09-08 22:31:31 +00:00
zeromus de91bcf369 winport: fix #1590 1 pixel black line on the right side of the emulator 2016-09-06 21:17:32 +00:00
zeromus df7f081cb5 placement of fastbuild hacks in gpu.cpp breaks some build types. tired of fixing it locally. not a safe hack anyway. 2016-09-06 18:09:00 +00:00
zeromus 8f6bfd2808 w32 scond: reorder variable declarations and statements for ancient compilers 2016-09-02 01:15:26 +00:00
rogerman 538442861b rthreads.c:
- In scond_wait(), make use of SignalObjectAndWait() as an optimization.
2016-08-29 20:08:07 +00:00
zeromus 5d66422b94 win32 scond: remove volatile, fix busy loops in some scenarios, tidy code. Except for scond_wait_timeout, this may be done 2016-08-29 04:54:30 +00:00
rogerman 386d9bad96 task.cpp:
- Revert the last resort execution of workFunc in Task::Impl::finish(). Windows now has much better compliance with the behavior of pthread_cond_wait(), so the last resort execution is no longer necessary.
2016-08-26 10:57:20 +00:00
rogerman 3ae591be7a task.cpp:
- Add additional checks for workFunc in Task::Impl::execute() and Task::Impl::finish() to make their reentrancy more robust on Windows.
- Add a last resort execution of workFunc in Task::Impl::finish() in the case where taskProc() misses the wake up signal from Task::Impl::execute() when running on Windows.
2016-08-26 03:45:42 +00:00
rogerman 212c23f30e task.cpp:
- EXPERIMENTAL: Revert task.cpp and pthreads.c to what they were back in r5538, but change scond_wait() to explicitly unlock the mutex before calling WaitForSingleObject().
2016-08-24 21:17:39 +00:00
zeromus 66bc2d1d71 etc 2016-08-23 23:35:06 +00:00
zeromus 166365ab0d task cleanup and add some volatiles which i reasoned were necessary 2016-08-23 23:32:44 +00:00
rogerman 07e3612e4d task.cpp:
- When shutting down, ensure that the existing task is finished if its running before continuing with the shutdown process.
- Explicitly declare thunkTaskProc() as static.
2016-08-23 23:17:10 +00:00
rogerman a1a6c47aac task.cpp:
- Fix compiling for non-MSVC compilers.
2016-08-23 21:55:59 +00:00
zeromus fc77539bda reimplement task to not be buggy 2016-08-23 21:13:29 +00:00
zeromus ae92918d27 fix bugs in libretro's scond for win32, hopefully. 2016-08-23 21:12:49 +00:00
rogerman b4759f854c GPU:
- Add some functions to control when master brightness and RGB666=to=RGB888 conversions occur internally or not.
2016-08-22 21:04:03 +00:00
jsteffens 701bfdde80 configure.ac: Add missing conditionals 2016-08-21 22:41:56 +00:00
jsteffens a7a9371b3a Makefile.am: Fix syntax errors 2016-08-21 21:52:29 +00:00
zeromus 5b2691b40e winport: experimental fix for hanging softrasterizer code. extremely finnicky and untested thread synchronization code in here! 2016-08-21 01:16:51 +00:00
rogerman 44b227d0b8 GPU:
- If a GPU engine is disabled or has master brightness at full intensity, fill the output framebuffer on line 191 instead of on line 0.
- Replace global variable Render3DFramesPerSecond with accessor method GPUSubsystem::GetFPSRender3D().
2016-08-20 19:20:27 +00:00
rogerman c5cae26246 GPU:
- Do some additional tweaks to how GPU events are handled. (Related to r5534.)
2016-08-18 04:38:59 +00:00
rogerman 84a007451a Colorspace Handler:
- Generic color conversion functions are now inlined at the header in order to keep up performance for compilers without LTO.
2016-08-18 04:14:45 +00:00
zeromus 9c1f523a72 support --3d-render in common commandline parsing and use in windows port as a demo 2016-08-16 22:00:27 +00:00
rogerman 8c60f5fdf3 GPU:
- Use more consistent behavior when forcing the 3D rendering to finish.
- Guarantee that 3D rendering will always be finished at the end of V-blank.
2016-08-16 20:00:36 +00:00
rogerman d8735a803b Colorspace Handler:
- Factor out the generic colorspace handling routines out of GPU.cpp/GPU.h into their own separate files.
- Add vectorized routines using AVX2 and AltiVec.
2016-08-16 06:47:22 +00:00
rogerman d837653b5f GFX3D:
- Fix 3D rendering on non-MSVC builds.
2016-08-16 00:12:34 +00:00
zeromus 7abca69750 better fix than r5529 for same bug (which fixes some regressions from that commit) 2016-08-15 07:10:42 +00:00
zeromus abbfa4a6b7 fix #1134 (american girls julie finds a way) by changing behaviour of box test busy flag relative to fifo 2016-08-13 23:50:25 +00:00
zeromus cc2c86cf11 fix #1555 (regression in Kingdom Hearts Re:coded caused by r5440) by changing how wacky nearly-out-of-limits geometry is handled to a possibly more plausible mechanism 2016-08-13 23:48:51 +00:00
zeromus d89fa0c761 winport: fix fastbuild flag 2016-08-13 18:24:45 +00:00
zeromus 17b7ebfa88 change backup memory whitelist application technique and fix SM64 (KOR) which needs an 0.5KB eeprom apparently (based on its use of WRHI and RDHI commands) 2016-08-13 18:24:33 +00:00
zeromus 02a5944a20 winport: allow sizing window under "minimum size". Unclear why we wanted this functionality to begin with, but probably predated view>window size multiples for more easy scaling. Other benefit: stops messing up the viewport determination when magnification overshoots window size (i.e. fullscreening a massive 5x filter applied by idiots) 2016-08-08 03:10:13 +00:00
rogerman a966765ae5 GPU:
- Display capture blending functions now support RGB888 color format. (Related to r5433. This rework is still incomplete.)
2016-08-07 00:26:31 +00:00
rogerman c7e3298b94 GPU:
- Fix compiling on systems that support SSE2 and not SSSE3. (Regression from r5524.)
2016-08-06 04:09:57 +00:00
rogerman 9ea82d913a GPU:
- Do some code cleanup.
2016-08-06 03:36:37 +00:00