Commit Graph

4947 Commits

Author SHA1 Message Date
rogerman d1db3dd7ef GPU:
- Add new malloc_alignedN() functions for easier dynamic allocation of aligned memory blocks.
- Rework buffer allocations using the new malloc_alignedN() functions.
- To enable SSSE3, also require ENABLE_SSE2 and ENABLE_SSE3.
- Add some more SSE2/SSSE3 optimizations.
- CACHE_ALIGN and malloc_alignedCacheLine() now set 64 byte alignment on 64-bit systems.
- Do a bunch more code cleanup.
2015-06-30 19:25:00 +00:00
rogerman 3b332f3a12 GPU:
- Fix HOFS bug when reading back the 3D framebuffer. Tested in Nanostray 2 by explosions that cause the screen to shake. (Regression from r5210.)
2015-06-20 01:32:32 +00:00
rogerman d28e49dd2b GPU:
- Last major round of code cleanup as a set up for future rework.
2015-06-19 20:13:27 +00:00
rogerman 54fc839208 GPU:
- Revert VRAM readback optimization. Fixes the battle sequence in Golden Sun: Dark Dawn. (Regression from r5208.)
2015-06-17 08:18:00 +00:00
rogerman d3ec1dedfb GPU:
- More code cleanup, and various small optimizations.
- Optimize the OpenGL 3D renderer’s framebuffer flush. (Requires SSSE3.)
2015-06-17 07:15:22 +00:00
zeromus ccf2e76c32 fix windows compiling 2015-06-14 21:07:45 +00:00
zeromus c7cbf47472 fix allocations of formerly 32-byte aligned buffers to once more be 32-byte aligned. not 100% sure I did this right... 2015-06-14 21:07:20 +00:00
rogerman e95c176f82 Render3D:
- Fix bug where using the Null 3D renderer would greatly reduce performance, instead of improving performance as intended. (Regression from r5198.)
2015-06-14 04:35:21 +00:00
rogerman 4f3990245d GPU:
- Do a whole bunch of code cleanup.
2015-06-14 00:52:53 +00:00
rogerman 6673298c1e GTK/CLI Ports:
- Fix compiling for CLI port. (Regression from r5198.)
- Fix issue with GTK port where the video output framebuffer wasn't getting cleared on reset. (Regression from r5198.)
2015-06-13 23:23:56 +00:00
rogerman 11a8221856 GTK/Glade/Qt Ports:
- Fix compiling issues. (Regression from r5196.)
- On Qt port, use -Ofast and -ffast-math optimizations.
2015-06-13 20:54:47 +00:00
rogerman d2a0307431 Windows Port:
- Fix compiling issues. (Regression from r5198.)
2015-06-10 04:58:59 +00:00
rogerman 70cb9375cc Cocoa Port:
- Add shader-based equivalents to the following pixel scalers: HQ3x, HQ3xS
2015-06-10 04:28:47 +00:00
rogerman db06a04d73 Cocoa Port:
- Give the video blitter the ability to handle any arbitrary dimensions of video input.
2015-06-10 03:53:19 +00:00
rogerman 12342e21cc GPU:
- Do a whole bunch of code cleanup.
2015-06-10 03:45:58 +00:00
rogerman 1648b5f74d Render3D:
- Hack: Fix bug where the overworld map in Dragon Quest IV wouldn't draw correctly. (Regression from r5191. Addresses bug #1477.)
2015-06-08 04:36:19 +00:00
rogerman 947adcd956 Video Filters:
- Add HQ3x and HQ3xS pixel scalers.
- Delete unused hq4x.h file.
2015-06-05 20:08:55 +00:00
rogerman fec691bd26 Render3D:
- Add the ability to set the size of the output framebuffer.
- Do some more code cleanup.
2015-05-20 23:39:43 +00:00
rogerman afba637244 Cocoa Port:
- Silence some compiler warnings.
2015-05-14 20:56:00 +00:00
rogerman 5215efe844 Windows Port:
- Fix compiling issue. (Regression from r5192.)
2015-05-11 18:35:08 +00:00
rogerman b41c194c10 GFX3D:
- The code cleanup continues.
2015-05-11 08:54:01 +00:00
rogerman 28d40ffcf5 GFX3D:
- Fix bug where the depth LUT wasn’t being generated correctly, causing the clear image depth buffer to malfunction. (Regression from r5187.)
- In SoftRasterizer, obsolete GFX3D_Zelda_Shadow_Depth_Hack for depth-equals tests. We’re now using a fixed tolerance of +/-0x200, according to GBATEK.
- In SoftRasterizer, z-depth is now calculated using the depth LUT instead of with << 9. This spreads the depth value more evenly across the range of [0 - 0x00FFFFFF]. This change will need additional testing.
- Do some small optimizations to SoftRasterizer.
- Do more code cleanup.
2015-05-10 23:38:35 +00:00
rogerman 9d6f284681 GFX3D:
- Do more code cleanup and refactoring.
2015-05-08 22:45:09 +00:00
rogerman dcbe28c94e Render3D:
- In SoftRasterizer, do multithreading optimization for the fog and edge mark pass. This involved a change to the edge marking algorithm, so this will need additional testing.
- Fix bug where a SoftRasterizer renderer object wouldn’t get destroyed properly. (Regression from r5187.)
- Fix bug where the user wasn’t able to switch between different threaded versions of SoftRasterizer. (Regression from r5187.)
- Fix a potential bug that might occur if an OpenGL renderer object failed to create. (Regression from r5188.)
2015-05-07 19:06:13 +00:00
rogerman c36b8cbebb Render3D:
- Get rid of annoying flickering when switching 3D renderers.
- More code cleanup and refactoring.
2015-05-07 05:49:53 +00:00
rogerman 0c0f968d01 Render3D:
- Do some code cleanup and refactoring.
2015-05-07 00:42:28 +00:00
rogerman f56e15da02 OpenGL Renderer:
- Upload the toon table through the render state UBO instead of through a 1D texture. (OpenGL 3.2 only.)
- Small optimization in the edge mark fragment shader.
2015-05-06 04:48:33 +00:00
rogerman c5350f6247 OpenGL Renderer:
- Remove even more extraneous binds.
- Do some misc. optimizations.
2015-05-05 23:58:38 +00:00
zeromus e527ed1e37 im tired of seeing the 2005 and 2008 projects. 2010 is the end of the line, the others arent needed 2015-05-05 03:59:27 +00:00
zeromus 6461b474bc apply patch from bug #1468 to fix vs2012 x64 building 2015-05-05 03:56:28 +00:00
rogerman 42a1f7b9f5 Windows Port:
- Fix compiling issues. (Regression from r5162. Fixes bug #1468.)
- Fix crashing issue when selecting the OpenGL 3.2 renderer. Failure to init should now fallback properly. (Regression from r5180. Fixes bug #1470.)
2015-05-04 22:52:32 +00:00
rogerman d5bb6fd79e Render3D:
- In the OpenGL renderer, do better handling of the geometry index buffer, and also load its data in OpenGLRenderer::BeginRender().
- In the OpenGL renderer, remove a bunch of extraneous binds.
- Fix bug in SoftRasterizer where clear-image depth wasn’t being written correctly. (Regression from r5176.)
- Reduce the buffer sizes in the core 3D engine.
- Do even more refactoring.
2015-05-04 18:30:09 +00:00
rogerman 7dd90c9948 OpenGL Renderer:
- Optimize the uploading of all rendering and polygon states, moving all state uploads to OpenGLRenderer::BeginRender(). (OpenGL 3.2 only)
2015-05-01 23:40:59 +00:00
rogerman 15f9d3ee6b OpenGL Renderer:
- Fix compiling for platforms that aren't OS X. (Regression from r5178.)
2015-04-30 16:48:01 +00:00
rogerman 80ac952e9e Render3D:
- In the OpenGL renderer, optimize framebuffer clearing (OpenGL v3.2 only).
- In SoftRasterizer, multithread the rendering state setup (requires at least 4 threads).
- Do more code refactoring.
2015-04-30 08:39:10 +00:00
rogerman 5c64a3858f Render3D:
- In the OpenGL renderer, optimize edge marking performance.
- In SoftRasterizer, fix a bug where edge marking and fog weren’t being drawn if multithreading was off.
2015-04-29 17:35:50 +00:00
rogerman 8f38fb38e8 OpenGL Renderer:
- Clear the stencil buffer with a value of 0 instead of with the polygon ID.
2015-04-29 09:14:32 +00:00
rogerman f48ed9fb89 SoftRasterizer:
- Refactor SoftRasterizer to use Render3D as the base class.
2015-04-29 04:50:23 +00:00
rogerman d627a5b6aa OpenGL Renderer:
- Fix bug where certain scenes would fail to draw when edge marking is enabled.
2015-04-28 00:39:48 +00:00
rogerman e89544aa7b OpenGL Renderer:
- Fix some more graphical bugs with fog and translucent fragments.
- Do some small optimizations to the fragment shaders.
2015-04-27 21:18:48 +00:00
rogerman ecc22fb24d OpenGL Renderer:
- Don’t output the depth to the secondary depth buffer if depth writing is disabled.
2015-04-25 19:07:54 +00:00
rogerman 74dbe2efdd OpenGL Renderer:
- Fix compiling for platforms that aren't OS X. (Regression from r5169.)
2015-04-25 03:08:20 +00:00
rogerman 398cd31bf3 Cocoa Port:
- In the 3D Rendering Settings panel in the DeSmuME Preferences view, move the Enable Edge Marking and Enable Fog checkboxes to the General Settings section.
- Update tooltips to reflect the new behavior.
2015-04-25 02:52:57 +00:00
rogerman d652249c34 OpenGL Renderer:
- Add support for edge marking.
2015-04-25 02:04:13 +00:00
rogerman 629da9c8e2 OpenGL Renderer:
- Fix compiling for platforms that aren't OS X. (Regression from r5166.)
2015-04-24 09:00:54 +00:00
rogerman f66287d0e0 OpenGL Renderer:
- Fix some graphical bugs with fog and translucent fragments.
2015-04-23 22:46:37 +00:00
rogerman 2ae84828e5 OpenGL Renderer:
- Add fog support.
2015-04-23 20:01:51 +00:00
rogerman 4fdcffa126 OpenGL Renderer:
- Do a bunch of code cleanup.
- Prepare the code for doing multipass rendering for the implementation of fog and edge mark.
2015-04-22 21:38:31 +00:00
zeromus db5b63fc2e fix vs2012 vcxproj 2015-04-18 16:17:49 +00:00
rogerman 21fce2cab0 OpenGL Renderer:
- Bring back vertex draw batching from r4522, fixing the bug that caused it to fail on Metroid Prime Hunters. This gives a small performance improvement for users with older drivers.
2015-04-16 21:55:57 +00:00