Commit Graph

5883 Commits

Author SHA1 Message Date
rogerman 69f97b056a OpenGL Renderer: Lower host GPU requirements for performing on-GPU final framebuffer conversions.
- Framebuffer conversion now occurs purely in shaders, and also
performs flipping along with conversion. FBOs and PBOs are no longer
required to do this.
- If shaders are not available, then framebuffer flipping will occur if
FBOs are available. PBOs are no longer required to do this.
- Also fix a minor framebuffer attachment bug in the v3.2 renderer.
2017-07-29 19:39:21 -07:00
rogerman 5deec25409 OpenGL Renderer: Eliminate two extraneous framebuffers, especially saving VRAM at the larger custom framebuffer sizes. 2017-07-29 17:47:53 -07:00
zeromus 353dcef3ec winport (aviout) - fix stuff 2017-07-29 16:45:22 -05:00
zeromus ef4b203064 winport (aviout) - make output end with less bugs when the disk is full 2017-07-29 13:48:01 -05:00
zeromus 153b3ed61b winport (aviout) - fix regressions in multipart naming; fix spurious "avi recording ended" message 2017-07-29 13:46:45 -05:00
rogerman d08dffd122 OpenGL Renderer: _FlushFramebufferFlipAndConvertOnCPU() now handles all 4 possible permutations of frame buffer flipping and color conversion.
- Also remove OpenGLRenderer_2_1::ReadBackPixels().
2017-07-28 18:41:49 -07:00
rogerman 8c37d4acd6 OpenGL Renderer: Remove extraneous OpenGL v1.x classes, and do more aggressive capabilities checks on init.
- Keep OpenGLRenderer_1_2 as the sole OpenGL v1.x class, and then
remove the following classes: OpenGLRenderer_1_3, OpenGLRenderer_1_4,
OpenGLRenderer_1_5.
2017-07-28 11:22:34 -07:00
rogerman 1938dc2eed Colorspace Handler: Fix the RGBA5551 color swapping lookup table. (Related to commit 8600466.) 2017-07-27 22:45:03 -07:00
rogerman 8600466498 OpenGL Renderer: Standardize 32-bit color red-blue swapping in OpenGLRenderer::_FlushFramebufferConvertOnCPU(). 2017-07-27 22:04:42 -07:00
zeromus d16785eba8 winport - fix avi segmenting (especially or exclusively when dumping with HD) 2017-07-27 22:16:15 -05:00
rogerman 740fb66ca5 OpenGL Renderer: Fix more possible red-blue color swapping issues in legacy OpenGL when the output color format is RGB888. 2017-07-26 23:21:05 -07:00
rogerman d2165f90fe Colorspace Handler: Fix ColorspaceConvert8888To6665_SSE2() for the SSE2 code path. 2017-07-26 22:57:07 -07:00
zeromus 5893dc78f3 action replay - attempt to avoid running off the end of cheat codes and crashing in case of invalid codes (fixes #78) 2017-07-26 23:48:50 -05:00
zeromus 1e5e47f75e winport - fix RGB/BGR of OSD rendering (all bpp's) 2017-07-26 23:13:01 -05:00
zeromus db16f2f888 winport - fix crash making PNG screenshots 2017-07-26 23:02:02 -05:00
rogerman 35e295e3dd OpenGL Renderer: Try and fix some recent issues with legacy OpenGL. 2017-07-26 15:42:30 -07:00
zeromus 679d5384e3 winport: fix some RGB/BGR orders in various displaymethod/gpu_bpp configurations. fixes #77 2017-07-25 13:06:54 -05:00
rogerman b96d2f01e1 GPU: When rendering at custom framebuffer sizes, initialize the deferred index buffer per layer so that previous layers won't corrupt the current layer. Fixes the score screen in Sonic Rush.
- Also do some minor code cleanup in
GPUEngineBase::_RenderPixelsCustom().
2017-07-25 10:43:20 -07:00
rogerman 062c0adef2 GPU: Unify line copying routines, and also make SSSE3-enhanced integer-scaled copying more available. 2017-07-24 23:35:40 -07:00
rogerman 654537a4fb GPU: Do some code cleanup. 2017-07-24 13:57:44 -07:00
rogerman 4ba36cbd1e Colorspace Handler: Fix pixel alignment bug in _ConvertColorBaseTo5551_AVX2(). (Related to commit de4f1c9.) 2017-07-24 13:33:03 -07:00
zeromus 5c983ede81 winport - support 15bpp as well 2017-07-24 13:47:30 -05:00
zeromus 46c28635ef winport - make 3d settings organization match cocoa UI's, and expose choice of 24/18 bpp GPU 2017-07-23 21:30:00 -05:00
zeromus a7ec7c9581 just a comment 2017-07-23 21:29:36 -05:00
zeromus 71eb37f44e gpu - small refinements to BPP-setting interfaces 2017-07-23 21:29:24 -05:00
zeromus 18f02cb7d3 winport - fix screenshot, aviout bugs due to 888 colorspace change 2017-07-23 20:42:27 -05:00
zeromus 918f45e7a4 libretro-common rbmp - add support for y-flipping 2017-07-23 20:42:27 -05:00
zeromus 6ced9e3942 update libretro-common rbmp 2017-07-23 20:42:27 -05:00
zeromus e620b15d3c Revert "Revert "winport: use 666 color". Now I know how to do it... but it wasn't 100% ready anyway, and it breaks avi/screenshot, so let's wait and fix those when the 666 color is finally 100% done."
This reverts commit 50390c6f4f.
2017-07-23 20:42:27 -05:00
rogerman 12a0c861a7 GPU: Add fast compositing paths for BrightnessUp/BrightnessDown color effects. 2017-07-22 13:00:15 -07:00
rogerman 250de64ee5 GPU: Unify the GPUEngineBase::_PixelEffect*() functions. 2017-07-21 15:49:01 -07:00
rogerman 301c875ecb GPU: For native-sized captures, always read from native VRAM -- never from custom VRAM. Should make captures a little faster when running a custom framebuffer and/or using RGB888 color format. 2017-07-21 12:49:57 -07:00
rogerman 1b483d266a GPU: Fix bug where sprite blending would no longer work. (Regression from commit 624dd57.) 2017-07-21 09:51:13 -07:00
rogerman 624dd5788c GPU: Another significant performance improvement to GPU compositing in many games.
- Now composites pixels using explicit functions for simple copy,
masked copy, and masked effect.
- On SSE2 systems, pixels composited using a simple copy no longer
require the destination pixels to be loaded first, since all the pixels
are guaranteed to be overwritten anyways.
- Try and move the window test as far up the pipeline as possible so
that pixel rendering can bail as soon as possible if the window test
fails.
- Clean up and further standardize the code for compositing BG layers,
OBJ layers, and 3D layers.
2017-07-20 23:45:41 -07:00
rogerman 80a4c3f071 GPU: Fix bug where 3D rendering sometimes does not appear correctly on SSE2 systems. (Regression from commit 5c6fcb0.) 2017-07-20 00:55:08 -07:00
rogerman 5c6fcb0f47 GPU: Significantly improve GPU compositing performance in many games.
- Adds more possible conditions for compositing to take the fast path
(simple pixel copying).
- Adds SSE2 optimizations for the 2x and 4x scaling cases in
GPUEngineBase::_LineColorCopy().
2017-07-19 23:41:43 -07:00
rogerman c3bce87556 Cocoa Port: Expose the new feature to change the GPU color depth in the UI. (Related to commit 3b37058.) 2017-07-18 20:57:55 -07:00
rogerman 3b37058cbc GPU: Custom VRAM now works with 24-bit color depth. It can be captured natively in 24-bit and used as a source buffer in 24-bit. (Related to r5433. This rework is now COMPLETE!)
- NEW FEATURE: Clients may now call GPUSubsystem::SetColorFormat() to
choose the color format of the GPU output, which can be RGB555
(15-bit), RGB666 (18-bit), or RGB888 (24-bit).
- On a special note, the Deposterize filter for 3D textures can now
show its true smoothing effect when clients run the GPU in 24-bit color
mode.
2017-07-18 20:56:11 -07:00
rogerman e7f1737bdb Cocoa Port: The Vertical Sync setting has been removed -- it is now automatically set.
- New behavior for layer-backed views (OpenGL on Mountain Lion and
later, or Metal): Vertical Sync is always enabled.
- New behavior for non-layer-backed views (OpenGL on Lion and earlier):
Vertical Sync is only enabled if frameskip is enabled or if the
execution speed is set to 1x or less while the speed limiter is engaged.
- Remove all associated UI for manually setting Vertical Sync.
- Also add a new menu option to the Tools menu for disabling Metal,
instead forcing display views to use OpenGL. (For developer builds
only.)
2017-07-18 17:10:26 -07:00
rogerman ddac7122d3 Cocoa Port: Ensure that display windows avoid drawing with uninitialized display info and possibly non-existent buffers on startup. 2017-07-18 01:26:42 -07:00
rogerman 7791f60495 Cocoa Port: Avoid sending a torrent of MESSAGE_RELOAD_REPROCESS_REDRAW messages whenever a new display window is created. 2017-07-18 01:24:08 -07:00
rogerman 68f201c3ce SoftRasterizer: Fix incorrect coloring when using an output format of RGB888. (Regression from commit eaa5210.) 2017-07-15 17:02:56 -07:00
rogerman eaa5210fb0 GPU: Finishing 3D rendering and flushing the 3D framebuffers are now split into separate operations.
- Fixes the background appearance when receiving items in Pokemon
Black/White 2. (Fixes SF bug #1624.)
2017-07-15 16:00:26 -07:00
rogerman 0f05656a17 Save States: Fix save state compatibility for files created between 32-bit and 64-bit systems. (Regression from r5363.) 2017-07-15 15:38:39 -07:00
rogerman 63b232c1b8 GPU: Fix possible crash by properly initializing working capture buffers. (Regression from commit 28f5c3a.) 2017-07-08 10:56:29 -07:00
rogerman 652af9ec71 Cocoa Port: Always allow client display views to process displays if the client did not request a custom framebuffer size.
- Also try to solve some synchronization issues with Metal display
views.
2017-07-07 13:13:29 -07:00
rogerman 1f60446f3f GPU: Fix bug on SSE2 builds where the window test mask would be undefined if the output color format is RGB666 or RGB888. 2017-07-05 23:30:31 -07:00
rogerman 28f5c3a895 GPU: Don't do ad-hoc allocations of working capture lines in GPUEngineA::_RenderLine_DisplayCapture(). Allocate the lines in GPUEngineA::SetCustomFramebufferSize() instead.
- Also do some minor refactoring and code cleanup.
2017-07-05 23:22:49 -07:00
zeromus ee235d2abc fix gdbstub compiling in posix frontend. didnt really test it... should fix #73 2017-07-03 09:37:51 -05:00
rogerman c37e892090 GPU: Partially reverts changes to the LCDC check, bringing back an optimization for display capture.
- Revert commit abe2e61997. (But retains
the comments about Mario Kart.)
- Partially revert adf682eb23. (But
retains the removal of the LCDC check in ResetDisplayCaptureEnable().)
2017-07-01 13:51:15 -07:00