Commit Graph

5489 Commits

Author SHA1 Message Date
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
rogerman e54a0eb3e4 GPU:
- Fix bug where the composited 3D layer could have incorrect colors on non-SSE2 systems. (Regression from r5509.)
2016-08-04 01:08:42 +00:00
rogerman cd7690730b GPU:
- For SSE2 systems, when reading graphics data from main memory, eliminate the extraneous pshufd instruction.
2016-08-03 18:14:44 +00:00
rogerman 2e2d02302b GPU:
- Fix compiling issue with non-SSE2. (Regression from r5512.)
2016-07-31 21:10:14 +00:00
rogerman 44ff1b077f Cocoa Port:
- Do some minor code cleanup.
2016-07-30 01:50:54 +00:00
rogerman b053c562d0 GPU:
- Do some minor code cleanup.
2016-07-30 01:49:47 +00:00
zeromus 7dae5d2206 fix #1570 better 2016-07-30 01:38:14 +00:00
rogerman 0ee96c0262 GPU:
- Fix bug where the OBJ layer wasn’t doing the window test. Fixes graphical issues in Mario Kart DS. (Regression from r5515. Fixes bug #1572 and #1574.)
- The NOWINDOWSENABLEDHINT template parameter is no longer an optional hint; it is now required functionality. It has been renamed to WILLPERFORMWINDOWTEST to reflect this change.
2016-07-28 19:34:12 +00:00
rogerman 687ddb39c2 GPU:
- Window testing is now a per-scanline operation instead of a per-pixel operation. Removes the performance penalty of window testing at larger framebuffer sizes.
2016-07-27 16:58:39 +00:00
zeromus d6677ef42f apply suggestions from #1570 2016-07-26 17:17:36 +00:00
zeromus 2d143a9147 fix infinite loop bugs in commandline parsing 2016-07-26 17:15:27 +00:00
rogerman b5519378e7 GPU:
- Use a GPUEngineCompositorInfo struct for managing compositor states, instead of using individual variables for everything.
2016-07-22 19:30:24 +00:00
rogerman cd07e14802 GPU:
- Fix bugs with window processing when rendering at the native resolution. (Regression from r5506.)
2016-07-22 18:32:31 +00:00
rogerman ebea960714 Cocoa Port:
- In the OpenGL blitter, replace some calls to glBufferSubDataARB() with glMapBufferARB(). This, maybe, possibly, fixes an intermittent crash that can occur with the Intel HD Graphics 3000 OpenGL driver.
2016-07-20 10:07:53 +00:00
rogerman ab874d0d5e GPU:
- Do some code cleanup.
2016-07-19 06:40:53 +00:00
zeromus d243063c2c add texture smoothing option to windows port 2016-07-16 22:21:22 +00:00
rogerman 7d58eb9885 GPU:
- Move towards completing support for changing the output framebuffer color format to RGB666 or RGB888. Significantly increases the generated code size, but this is necessary for performance. (Related to r5433. This rework is still incomplete.)
2016-07-15 20:30:05 +00:00
rogerman c5c9e14eb9 GPU:
- Parse and cache the WININ and WINOUT registers, instead of using them directly.
- Parse and cache the Target1 bits of the BLDCNT register.
- Remove some template parameters which are now suspected to no longer improve performance, most notably LAYERID. Should significantly reduce the generated code size.
2016-07-15 16:29:08 +00:00