61541ab243
Enhance xfb dumping to distinguish between the xfbs created from memory and the xfbs created from overlapping copies
2017-11-17 22:11:34 -06:00
8678e8ddd3
Texture Cache Base: Optimization to allow stitched or memory xfb textures to be looked up from cache directly if they were defined previously and their hash hasn't changed
2017-11-17 22:11:33 -06:00
332af8aa49
TextureCacheBase: Fix issue in Rogue Squadron 2 where overlapping textures caused a hash change which would cause us to do a lookup from memory that gave us an incorrect result in XFB2Ram
2017-11-17 22:11:33 -06:00
ada37ec642
TextureCacheBase: Remove vertical scaling from EFB path and have copy checks only check EFBs
2017-11-17 22:11:33 -06:00
7248dd47d5
Hybrid XFB: Fix lint errors
2017-11-17 22:11:32 -06:00
2c87a53f11
TextureCacheBase: make sure stitching rectangle bounds don't exceed the
...
texture size they are meant to represent
2017-11-17 22:11:32 -06:00
74610646ce
TextureCacheBase: Add XFB specific functions
2017-11-17 22:11:32 -06:00
4964fc87ae
Video Backends: Remove the right of the xfb region for games where the
...
VI stride does not match the VI width
2017-11-17 22:11:32 -06:00
a129a53e56
Video Common: Improve texture dumping to work with fifoci and
...
fifo_comparer
2017-11-17 22:11:32 -06:00
53684701fa
HybridXFB: Fix lint errors
2017-11-17 22:11:31 -06:00
65418a76f5
Video Common: Use correct aspect ratio when saving screenshots / video
2017-11-17 22:11:31 -06:00
1090549552
Software Backend: Force EFB/XFB to copy to ram
2017-11-17 22:11:31 -06:00
e6d85b0915
Video Common: Avoid 'presenting' duplicate frames by detecting when swap
...
hasn't changed since the last frame
2017-11-17 22:11:31 -06:00
2295d60fdc
VideoCommon: Output gamma now comes from the xfb copy
2017-11-17 22:11:30 -06:00
7f0834c919
Add 'immediate xfb' which reduces xfb latency at the cost of graphical errors
2017-11-17 22:11:30 -06:00
e33ab4117d
Video Common: Make auto IR work with HybridXFB
2017-11-17 22:11:30 -06:00
76b775d5be
Video Common: Add XFB decoding via the GPU
2017-11-17 22:11:30 -06:00
4d13f69dc1
Remove TODOs
2017-11-17 22:11:29 -06:00
33bc286baa
Remove old XFB logic
2017-11-17 22:11:29 -06:00
081b92b8a7
Video Common: Only update FPS when frame is renderered which yields more
...
accurate results
2017-11-17 22:11:29 -06:00
b285188de1
Video Backends: Implement vertical scaling for xfb copies. This fixes the
...
display of PAL games that run in 50hz mode.
2017-11-17 22:11:29 -06:00
5a372020ea
FifoPlayer: Generate fake VideoInterface updates
2017-11-17 22:11:29 -06:00
2cd9565b18
Add an additional flag fo 'XFB Copy'
2017-11-17 22:11:29 -06:00
65cd085f9b
Add new GUI option to skip XFBToRam and remove old XFB options
2017-11-17 22:11:28 -06:00
198d3b69b4
Add ability to dump xfb copies to texture for debugging purposes
2017-11-17 22:11:28 -06:00
a9f0d1783b
Support frame and video dumping from VideoCommon
2017-11-17 22:11:23 -06:00
79387dddb2
Add support for hybrid XFB
2017-11-17 19:47:56 -06:00
8ad5ea2ede
Call Do for every member of SCPFifoStruct individually
...
We need this because VS currently doesn't consider
std::is_trivially_copyable<typename
std::remove_volatile<SCPFifoStruct>::type>::value
to be true and because no compiler should consider it
to be true if we replace the volatiles with atomics.
2017-11-13 19:51:16 +01:00
8e654528fc
VideoConfig: Add const specifier to IsVSync() member function
...
This member function doesn't alter VideoConfig's state.
2017-11-10 22:23:15 -05:00
4dc425b9c9
Merge pull request #6158 from Tomcc/master
...
Improved arbitrary mipmap detection (Mario Sunshine water fix)
2017-11-09 18:06:58 -08:00
aa23684d66
Improved detection: it doesn't desaturate the input anymore (woops) also it makes its own whole chain! This way it "notices" much better gradual divergences. Fixes Mario Sunshine, moss on the window in Zelda TP
2017-11-06 21:49:48 -08:00
a310cbec8e
Fix incorrect handling of auto IR
...
Some lines of code in Dolphin just plainly grabbed the value of
g_ActiveConfig.iEFBScale, which resulted in Auto being treated as
0x rather than the actual automatically selected scale.
2017-11-03 16:04:46 +01:00
5fb6ceac45
Fixed fog, lava, water in Mario Galaxy (and possibly other games) in higher IRs by detecting & fixing the mipmaps that aren't just used for downscaling, but are handmade to create a gradient.
2017-10-27 00:45:20 -07:00
802fda26ab
Merge pull request #6093 from endrift/fix-efb-overflow
...
VideoCommon: Fix overflow trying to access outside of EFB bounds
2017-10-26 21:01:27 +02:00
0eafb2f2a2
Merge pull request #6110 from lioncash/texture-config-hash
...
TextureConfig: Specialize std::hash for TextureConfig
2017-10-11 11:07:09 +02:00
edb5f855c2
VideoConfig: Prevent race condition on g_Config when refreshing
...
There was a race condition between the video thread and the host thread,
if corrections need to be made by VerifyValidity(). Briefly, the config
will contain invalid values. Instead, pause emulation first, which will
flush the video thread, update the config and correct it, then resume
emulation, after which the video thread will detect the config has
changed and act accordingly.
2017-10-10 23:56:33 +10:00
c8af9e5f7b
TextureConfig: Specialize std::hash for TextureConfig
...
This allows the hashing for TextureConfig instances to automatically be resolved instead of needing to directly specify it all the time.
2017-10-08 23:55:14 -04:00
e0a326a493
VideoCommon: Fix overflow trying to access outside of EFB bounds
2017-10-01 12:09:16 -07:00
24ddea04ce
VideoBackends: Move SamplerState to common
2017-09-11 20:01:54 +10:00
340aabbb06
VideoCommon: Add helpers for generating common render states
2017-09-11 20:01:52 +10:00
836b9b9acb
Renderer: Move cull mode to a rasterization state object
...
Also moves logic for primitive handling to VideoCommon.
2017-09-11 20:01:45 +10:00
2869c570f1
Renderer: Move depth state to VideoCommon and seperate from bpmem
2017-09-11 19:40:26 +10:00
134daf3b00
Vulkan: Extend the NVIDIA MSAA bug to render-pass based clears
...
Calling vkCmdClearAttachments with a partial rect, or specifying a
render area in a render pass with the load op set to clear can cause the
GPU to lock up, or raise a bounds violation. This only occurs on MSAA
framebuffers, and it seems when there are multiple clears in a single
command buffer. Worked around by back to the slow path (drawing quads)
when MSAA is enabled.
2017-09-07 17:05:43 +10:00
b573319f8f
D3D: Fix shader compile error with logicop and alpha test enabled
2017-09-07 11:48:01 +10:00
84f8ebd95f
VideoBackends: Clear uid bits that are unused for the current backend
...
Currently, this is only the logic op bit, but this will be extended to
the framebuffer fetch/blend modes. In the future, when/if we move to
VideoCommon pipelines, this state will be part of the pipeline UID
anyway, and we can mask it out in the backend by using a two-level map,
so the shaders/programs are shared.
2017-09-05 23:49:42 +10:00
6d32cce2f5
ShaderGen: Output uint when logic op is enabled for D3D ubershaders
2017-09-05 23:49:42 +10:00
ee6930a231
Merge pull request #6013 from stenzek/d3d-logic-op
...
D3D: Implement logic op support
2017-09-03 19:26:50 -07:00
26e777d80b
Merge pull request #5337 from stenzek/d3d-common-blending-state
...
D3D: Use blending state from VideoCommon
2017-09-03 19:25:46 -07:00
edf4bfaf5f
Merge pull request #5989 from lioncash/constantmgr
...
ConstantManager: Use std::array where applicable
2017-09-03 13:18:10 -04:00
75574ec6cc
Merge pull request #5946 from stenzek/ubershader-stereo-texture-samples
...
UberShaderPixel: Fix sampling of EFB copies in stereo modes
2017-09-03 12:26:52 +02:00