flacs
696d6eae09
Merge pull request #3108 from lioncash/cstyle-array
...
ChunkFile: Provide additional helpers for C-style arrays
2015-10-01 01:55:54 +02:00
Lioncash
c6678687b0
ChunkFile: Provide additional helpers for C-style arrays
...
Gets rid of magic numbers in cases where the array size is known at compile time.
This is also useful for future entries that are stack allocated arrays as these
functions prevent incorrect sizes being provided.
2015-09-30 19:45:46 -04:00
flacs
16957fcaec
Merge pull request #3107 from lioncash/pragma
...
TextureDecoder_x64: Remove now-unnecessary clang #pragma warning suppression
2015-09-29 19:53:12 +02:00
Lioncash
50a7390622
TextureDecoder_x64: Remove unnecessary commented out header
2015-09-29 11:04:00 -04:00
Lioncash
80c7e3ebc0
TextureDecoder_x64: Remove clang warning suppression
...
This was an issue two years ago on clang 3.3
2015-09-29 11:00:59 -04:00
Lioncash
4a981e3a04
FPSCounter: Change Update's return type to void
...
Its returned value is never used.
2015-09-29 10:01:37 -04:00
Lioncash
55c7754738
FPSCounter: Give the refresh interval a concrete type
2015-09-29 10:01:37 -04:00
Lioncash
e82b6a8532
FPSCounter: Direct initialize class members
2015-09-29 10:01:37 -04:00
Lioncash
bf23fcfc1f
FPSCounter: Don't provide direct access to m_fps
2015-09-29 09:43:03 -04:00
Rohit Nirmal
3b75f45cf6
Fix building with PCH disabled.
2015-09-28 11:51:08 -05:00
waddlesplash
5643fe5d1f
FileSearch: Don't use RegExs, just do string comparisons.
...
Nothing used the RegEx feature of FileSearch, and GCC < 4.9
doesn't support C++11 RegEx properly, so get rid of it.
2015-09-27 13:25:51 -04:00
Scott Mansell
af327aec79
Merge pull request #3036 from mimimi085181/hash-respecting-stride
...
Respect the stride for efb copies when hashing them
2015-09-28 05:23:55 +13:00
flacs
8ea9b07b59
Merge pull request #3093 from lioncash/header_shuffle
...
Common: Trim Common.h
2015-09-27 03:18:03 +02:00
Lioncash
cc036ca86c
Common: Remove other Common prefixed headers from Common.h
2015-09-26 18:51:58 -04:00
Lioncash
1d42db2439
Common: Move NonCopyable to its own header
2015-09-26 18:50:35 -04:00
mimimi085181
e24b8c4ab7
Respect the stride for efb copies when hashing them
2015-09-26 20:19:02 +02:00
Ryan Houdek
be667e7de8
Merge pull request #3035 from aserna3/SSAAImprovements
...
Improved OGL and D3D's AA options in UI
2015-09-26 09:27:39 -04:00
Anthony Serna
df189c3ea3
Improved D3D and OGL AA option UI
...
Removed Quality Levels from D3D AA options
Dropdown text now shows whether you're applying MSAA or SSAA
Added a description for SSAA
Moved SSAA checkbox
Cleaned up AA in backends slightly. Supported modes is now a list of ints.
2015-09-25 09:05:18 -07:00
Lioncash
7e69a0ce79
CommandProcessor: Remove unused extern
2015-09-24 11:35:46 -04:00
ghost
7c1565b201
VideoConfig/LocalConfig/HotkeyManager: Added hotkeys for switching stereo-3d presets.
...
Added 3 depth/convergence presets. They are adjustable via (existing) hotkeys - changes to depth and convergence are applied to current preset.
Added 3 hotkeys for activating presets. Added hotkey for toggle between first and second preset.
Added OSD message for convergence/depth changes.
Presets are saved into per-game configs.
2015-09-24 15:19:55 +03:00
Lioncash
d694994874
BoundingBox: Remove unnecessary headers
2015-09-24 03:19:43 -04:00
Rohit Nirmal
a48e425f41
Silence -Wshadow warning.
2015-09-23 11:02:24 -05:00
Lioncash
213d11dc62
Merge pull request #2939 from lioncash/find
...
FramebufferManagerBase: Compress a loop into a find_if
2015-09-22 18:56:38 -04:00
Scott Mansell
a355d9868e
FifoRecorder: Use Video Common to record efb2ram correctly.
...
Texture updates have been moved into TextureCache, while
TMEM updates where moved into bpmem. Code for handling
efb2ram updates was added to TextureCache.
There was a bug for preloaded RGBA8 textures, it only copied
half the texture. The TODO was wrong too.
2015-09-22 23:59:16 +12:00
ghost
07e4b4f7c4
VideoBackend: Video config filename is now exposed in VideoBackends.
...
It reduces redundancy. Needed make possible to save current video config.
2015-09-22 09:47:19 +03:00
Scott Mansell
b6cd78a370
VideoBackendBase: Remove check for XP.
2015-09-19 07:10:44 +12:00
Lioncash
28d1001ff8
VertexLoaderUtils: Get rid of pointer casts
...
Eliminates most ubsan asserts that stem from VideoCommon when running starfield.
2015-09-17 14:24:11 -04:00
Markus Wick
295b869304
Merge pull request #3028 from mimimi085181/sonic-fighters-regression-fix2
...
Fix performance regression in Sonic the Fighters, introduced by PR#2001
2015-09-16 21:53:03 +02:00
Lioncash
b7739f5d85
VideoCommon: Remove unnecessary enum typedef
2015-09-14 19:43:31 -04:00
mimimi085181
dd458b554d
Fix performance regression in Sonic the Fighters, introduced by PR#2001
2015-09-12 09:12:14 +02:00
Lioncash
baa9eacd51
LookUpTables: Make functions constexpr
2015-09-12 03:04:40 -04:00
Ryan Houdek
6d9b4d7d35
Merge pull request #3025 from Tilka/fixfix
...
VertexLoaderX64: fix 2GB warnings
2015-09-12 01:38:14 -04:00
Scott Mansell
68b415ba87
Merge pull request #3019 from mimimi085181/store-base-hash
...
Store the base hash for paletted textures in the texture cache entries
2015-09-12 16:24:29 +12:00
Tillmann Karras
63c9fdd074
VertexLoaderX64: fix 2GB warnings
...
Unlike the CPU JIT, the vertex loader JIT already emits
position-independent code, so all we need to do is disable the warning.
2015-09-12 01:24:47 +02:00
flacs
c5685ba53a
Merge pull request #2972 from lioncash/align
...
General: Replace GC_ALIGN macros with alignas
2015-09-11 17:00:13 +00:00
Lioncash
19459e827f
Partially revert "General: Toss out PRI macro usage"
2015-09-11 09:49:00 -04:00
mimimi085181
e408e0ab17
Store the base hash for paletted textures in the texture cache entries
2015-09-10 22:28:59 +02:00
Ryan Houdek
3014feedc8
Merge pull request #3012 from degasus/destAlpha
...
VideoCommon: Drop "Disable destAlpha" hack
2015-09-10 13:56:43 -04:00
mimimi085181
38f6cf2089
Perform garbage collection for efb copies
...
This checks every TEXTURE_KILL_THRESHOLD frames, to see if the hash for the memory area of the efb copy has hanged. If it has changed, the efb copy can be removed, it wouldn't be used anymore. Before this pr, some efb copies would never be deleted.
Fixes issue https://bugs.dolphin-emu.org/issues/6101 and possibly some other VRAM leaks.
2015-09-10 11:58:58 +02:00
degasus
74b20e627c
VideoCommon: Drop "Disable destAlpha" hack
...
This option has no use any more, neither performance nor driver workaround.
2015-09-09 21:31:54 +02:00
Scott Mansell
1f800b80dd
Merge pull request #2960 from phire/improve_efb2tex
...
Make efb2tex behave much more like efb2ram.
2015-09-07 14:12:03 +12:00
degasus
1c0366993a
VideoBackends: Reimplement SSAA, now for D3D + OGL
2015-09-06 19:40:00 +02:00
Scott Mansell
ac467d9fb9
FifoPlayer: Don't check efb copy hashes when plaing back a broken dff
2015-09-07 05:20:25 +12:00
Lioncash
8ce04f9a65
General: Replace GC_ALIGN macros with alignas
...
Standard supported alignment -> out with compiler-specific.
2015-09-06 12:53:51 -04:00
Scott Mansell
bda964e0b9
Workaround to allow partial texture updates to keep working in NSMBWii
2015-09-07 02:32:01 +12:00
Scott Mansell
ee649c6d9f
Make efb2tex behave more like efb2ram.
...
Instead of having special case code for efb2tex that ignores hashes,
the only diffence between efb2tex and efb2ram now is that efb2tex
writes zeros to the memory instead of actual texture data.
Though keep in mind, all efb2tex copies will have hashes of zero as
their hash.
2015-09-07 02:32:01 +12:00
Scott Mansell
c08a83a5aa
Merge pull request #2957 from phire/unify_efbcopy
...
Cleanup and unify efb copy implemtations into VideoCommon
2015-09-07 00:10:42 +12:00
Scott Mansell
d797b5d0b5
Use ROUND_UP instead of custom bittwiddling.
2015-09-06 23:00:17 +12:00
Scott Mansell
e745748c3e
Improve comments for texture formats enum.
2015-09-06 21:16:51 +12:00
Scott Mansell
b9be3245e1
Move common EFB copy code into VideoCommon
...
Addded a few duplicated depth copy texture formats to the enum
in TextureDecoder.h. These texture formats were already implemented
in TextureCacheBase and the ogl/dx11 texture cache implementations.
2015-09-06 21:16:51 +12:00
Scott Mansell
be4caa3dc0
Merge pull request #2961 from lioncash/printf
...
General: Toss out PRI macro usage
2015-09-06 21:02:22 +12:00
comex
96e42dff52
Merge pull request #2977 from lioncash/unused
...
General: Remove unimplemented function prototypes
2015-09-05 22:20:47 -04:00
Lioncash
633be0387d
General: Remove unimplemented function prototypes
2015-09-05 22:01:07 -04:00
Lioncash
8fdb013d54
General: Toss out PRI macro usage
...
Now that VS supports more printf specifiers, these aren't necessary
2015-09-05 16:02:35 -04:00
Markus Wick
60e0339ae5
Merge pull request #2963 from Sonicadvance1/AArch64_improved_vertexloader
...
[AArch64] Minor improves to the vertex loader JIT
2015-09-05 15:44:52 +02:00
Scott Mansell
52948bb3ef
Cleanup and unify handling of efb copy stride.
2015-09-05 23:37:24 +12:00
Ryan Houdek
7650117c26
Properly support MSAA and SSAA as separate features(+GLES)
...
SSAA relies on MSAA being active to work. We only supports 4x SSAA while in fact you can enable SSAA at any MSAA level.
I even managed to run 64xMSAA + SSAA on my Quadro which made some pretty sleek looking games. They were very cinematic though.
With this, it properly fixes up SSAA and MSAA support in GLES as well. Before they were broken when stereo rendering was enabled.
Now in GLES they can properly support MSAA and also stereo rendering with MSAA enabled(with proper extensions).
2015-09-05 05:23:29 -05:00
Ryan Houdek
9618738278
Remove all of our workarounds for Qualcomm devices we don't support anymore.
2015-09-04 23:45:35 -05:00
Ryan Houdek
c458c9d049
[AArch64] Minor improves to the vertex loader JIT
...
Just some minor improvements noticed by dumping the vertex loader blocks.
2015-09-04 19:57:08 -05:00
Lioncash
e90eb17aeb
Merge pull request #2956 from JosJuice/extra-space
...
Remove extra space from 5a32c3f
2015-09-04 14:22:59 -04:00
JosJuice
0af2bbcea3
Remove extra space from 5a32c3f
2015-09-04 15:32:30 +02:00
Lioncash
a11ae2cf30
CommonFuncs: Remove SLEEP macro
...
There's already a function in Thread for this.
2015-09-04 02:43:38 -04:00
Shawn Hoffman
aa7208e270
[windows] Update projects to vs2015.
2015-09-03 04:23:01 -07:00
booto
5a32c3fba4
VideoCommon: xfb height calculation adjusted
...
Baten Kaitos allocates its XFBs from a tagged heap
structure. With the old calculation, too many lines
were being written so the tag of the allocation
after the XFB was being corrupted. Fixes crash
mentioned in this comment:
https://code.google.com/p/dolphin-emu/issues/detail?id=7734#c6
2015-09-03 03:57:03 +08:00
Scott Mansell
ecbb83fa0f
Merge pull request #2686 from booto/field-timing
...
VI: derive field timing from VI registers
2015-09-03 01:09:43 +12:00
Markus Wick
66e9395d5d
Merge pull request #2937 from lioncash/enums
...
VideoCommon: Convert some defines into enums
2015-09-02 13:27:09 +02:00
Lioncash
401f765462
FramebufferManagerBase: Compress a loop into a find_if
2015-09-01 16:54:44 -04:00
Rohit Nirmal
9c26bb0e17
Fix building with PCH disabled.
2015-09-01 13:45:23 -05:00
Lioncash
71ef0a0245
PixelShaderGen: Use spaces instead of tabs for vertical alignment
2015-09-01 12:20:50 -04:00
Lioncash
91eff28699
PixelShaderGen: Move defines into the implementation file
...
These aren't used outside of it. This also reduces the amount of things in
the global namespace.
2015-09-01 12:18:18 -04:00
Lioncash
c760ffbd28
BPMemory/XFMemory: Convert defines to enums
...
These actually convey a concrete type, as well as also providing a
symbolic constant during debugging.
2015-09-01 12:07:10 -04:00
booto
acc9a74174
VI: Restore forced-progressive hack with option
...
Bugfix: TargetRefreshRate uses rounded result
NTSC's 59.94 was becoming 59 with integer division.
2015-09-01 20:24:40 +08:00
booto
480dbb22f2
VI: derive field timing from VI registers
2015-09-01 20:24:40 +08:00
Lioncash
f7e22c8126
VertexLoader_Color: Mark translation-unit-local functions static
2015-08-31 17:31:23 -04:00
Lioncash
ec42be79f3
VertexLoader_Color: Get rid of some pointer casts
2015-08-31 17:31:11 -04:00
Markus Wick
a16669231a
Merge pull request #2917 from Sonicadvance1/android_fix_sgs6
...
[Android] Workaround Mali driver issue on the Samsung Galaxy S6.
2015-08-29 08:56:32 +02:00
Rohit Nirmal
6252d2d71a
Fix building with PCH disabled.
2015-08-28 14:13:28 -05:00
Markus Wick
b11de5bddb
Merge pull request #2918 from lioncash/memcpy
...
DataReader: Get rid of pointer casts
2015-08-28 20:45:15 +02:00
Ryan Houdek
01db003779
[Android] Workaround Mali driver issue on the Samsung Galaxy S6.
...
Samsung updated the video drivers on the SGS6 which introduced a bug when disabling vsync.
Both the driver versions are r5p0, but the md5sums of the blob differ.
To work around the issue, make sure to never disable vsync by calling eglSwapInterval.
We can't actually determine the driver version on Android yet.
So until the driver version lands that displays the driver version string in the GL_VERSION string
we will need to keep this workaround enabled at all times, which is a bit annoying.
Current mali drivers return the video driver version in one of the EGL strings you can query.
The issue with that is that Android eats all of those strings, so we can't query it.
2015-08-28 09:02:46 -05:00
flacs
d373dd372d
Merge pull request #2913 from Tilka/fix_warning_fix
...
AVIDump: fix -Wsign-compare warning
2015-08-27 23:50:34 +02:00
Lioncash
4fb3a8b78d
DataReader: Get rid of pointer casts
2015-08-27 13:43:04 -04:00
Tillmann Karras
ee4a12ffe2
Jit64: some byte-swapping changes
2015-08-26 05:41:18 +02:00
Ryan Houdek
cd03b8baf6
Merge pull request #2895 from Sonicadvance1/qualcomm_workaround_gles31
...
Disable OpenGL ES 3.1 on all Qualcomm Adreno devices.
2015-08-24 13:22:12 -05:00
Ryan Houdek
cc3fb7e7b4
Merge pull request #2883 from degasus/master
...
Profiler: Sort output by total time
2015-08-22 17:52:54 -05:00
Ryan Houdek
b4e4a4cef4
Disable OpenGL ES 3.1 on all Qualcomm Adreno devices.
...
Their new driver that supports GLES3.1 + AEP has issues with it.
At the very least they don't implement all of the geometry shader features fully which causes shader linker issues when we attempt to use them.
I don't have a device so I can't fully test, so until I do I'm going to blanket disable the whole thing.
2015-08-22 09:12:19 -05:00
Ryan Houdek
3242e1a617
Fix the shader overrunning our max shader size.
...
The Star Wars games really push the hardware to its limits, which can cause the shaders that are produced to be 18kb or more.
Double our maximum shader size to compensate.
Fixes issue #8860
2015-08-22 01:01:03 -05:00
Tillmann Karras
39ced2a2d7
AVIDump: fix -Wsign-compare warning
...
Cast the other side of the comparison to avoid a warning with newer
ffmpeg/libav versions (cb3591e69738c808d26ba15eb02414fedfcd91cc).
2015-08-21 10:26:35 +02:00
degasus
17932935d9
Profiler: Sort output by total time
2015-08-20 11:50:43 +02:00
Markus Wick
cb264df64c
Merge pull request #2874 from barat/master
...
VideoCommon: Allow more Ram for HiresTexture if system memory is over 4GB
2015-08-20 11:08:42 +02:00
Bartosz Telesiński
a52aaf22ba
VideoCommon: Allow more Ram for HiresTexture if system memory is over 4GB
2015-08-19 23:13:09 +02:00
Dominic Chen
09714f86c3
Fix some compilation warnings
2015-08-19 11:07:54 -04:00
Markus Wick
ff95fa8a6d
Merge pull request #2861 from lioncash/param
...
VideoCommon: Remove unused parameters
2015-08-17 15:02:44 +02:00
Lioncash
8e17c710f3
TextureConversionShader: Remove an unused parameter
2015-08-16 21:10:54 -04:00
Lioncash
0e41b973c7
VertexShaderManager: Remove unused parameter
2015-08-16 21:07:10 -04:00
Jules Blok
b01ca1794a
Revert "VideoCommon: Clamp integer conversions."
...
This reverts commit 0f2c72f0f8
.
2015-08-15 13:50:43 +02:00
degasus
d3cf4034de
DriverDetails: Disable GL_ARB_copy_image on mesa.
2015-08-06 19:41:36 +02:00
degasus
e2f42f8fd0
OGL: Move copy_image variable into backend.
2015-08-06 19:41:36 +02:00
Scott Mansell
a1df1f5ae4
Widescreen Heuristic: Cleanup code.
2015-08-01 14:39:34 +12:00
Scott Mansell
615e5db0cb
Make the GameCube game widescreen heuristic smarter.
...
The last heuristic wasn't quite smart enough and had a few
false positives in Mario Kart: Double Dash and Metroid prime 2.
Now we only activate if the game is rendering a 16:9
projection to a 4:3 viewport.
2015-08-01 13:21:53 +12:00
unknown
739ede2242
Fix code to comply with coding style
2015-07-31 20:00:36 -04:00
mirrorbender
0faba3b018
Changed the aspect ratio settings to account for NTSC/PAL pixel aspect ratios and VI scaling.
2015-07-31 19:58:02 -04:00
Scott Mansell
567d0b20fa
Merge pull request #2769 from phire/autodetect_widescreen
...
Heuristic to detect if a gamecube game is rendering 16:9 widescreen.
2015-07-29 18:23:35 +12:00
booto
86dce8b0f7
VideoCommon: reduce level of debug output
2015-07-27 10:22:40 +08:00
Scott Mansell
bb60bcc42d
Heuristic to detect if a gamecube game is rendering 16:9 widescreen.
...
Someone suggested on IRC that we should make a database of memory
locations in GameCube games which contain the 'Widescreen' setting
so we can automatically detect if the game is in 4:3 or 16:9 mode.
But that's hardly optimal, when the game actually tells the gpu
what aspect ratio to render in. 10 min and 6 lines of code later,
this is the result. Not only does it detect the correct aspect ratio
it does so on the fly.
I'm a little suprised nobody thought about doing this before.
2015-07-27 10:40:41 +12:00
booto
9d055ba5f2
Video: Trying to fix D3D/XFB disabled regression
2015-07-26 00:59:00 +08:00
booto
efd250494d
Video: stride in bytes rather than pixels
2015-07-25 02:48:56 +08:00
booto
c43ae67b3b
RealXFB sizes don't get scaled by IR
...
When calculating the size of the undisplayed margin in the case where
fbWidth != fbStride for RealXFB for displaying in the output window,
we do not scale by IR - RealXFB is implicitly 1x.
2015-07-25 01:52:13 +08:00
booto
2e28ed3291
Video: respect stride of efb copies to xfb
2015-07-25 01:52:12 +08:00
Ryan Houdek
8bd108426e
Merge pull request #2759 from Sonicadvance1/pvr_workaround2
...
Work around PowerVR's shader compiler.
2015-07-22 16:51:48 -05:00
Ryan Houdek
6ee5ce32cf
Merge pull request #2757 from Sonicadvance1/pvr_workaround
...
Work around slow glBufferSubData on PowerVR.
2015-07-22 16:48:40 -05:00
Markus Wick
6bcdae616b
Merge pull request #2679 from Tinob/master
...
Implement scaled partial texture updates
2015-07-22 19:04:04 +02:00
Ryan Houdek
c1df6d7b4e
Work around PowerVR's shader compiler.
...
This bug has been reported to IMGTec at https://pvrsupport.imgtec.com/ticket/472
The basic idea of the bug is that if you're doing a bitwise and of a constant value vector with a constant scalar value, this causes PowerVR's shader
compiler to fail out with a very non-descriptive message.
Working around the issue by making the value a vector that it is being masked by.
2015-07-20 22:04:16 -05:00
Ryan Houdek
012a9afdb6
Work around slow glBufferSubData on PowerVR.
...
As with all tiled renderers, glBufferSubData is terribly slow.
Use glBufferData as typical.
2015-07-20 22:02:58 -05:00
Justin Chadwick
b3a0b6def4
Disables assert messages that seem to be invalid.
2015-07-08 16:12:32 -04:00
Markus Wick
f6766dd347
Merge pull request #2722 from lioncash/statement
...
VertexLoaderBase: Adjust the scope of a boolean variable
2015-07-08 09:37:06 +02:00
Tillmann Karras
2559a6f25c
VertexLoader: avoid empty lines in perf-$pid.map
2015-07-08 07:17:28 +02:00
Lioncash
df379dabae
VertexLoaderBase: Adjust the scope of a boolean variable
...
if a or b do actually turn out to be null, this can cause a null pointer dereference.
2015-07-07 18:33:58 -04:00
Rodolfo Bogado
d8cd2c3252
Implement scaled partial texture updates
2015-07-02 08:53:40 -03:00
Lioncash
daa205990f
Use emplace() instead of insert() where applicable for maps.
2015-06-28 19:52:40 -04:00
Jules Blok
75a9740ab7
Merge branch 'stable'
2015-06-25 12:24:15 +02:00
Ryan Houdek
521f6e89c3
Merge pull request #2624 from sigmabeta/android-save-screenshot
...
Android: Save screenshot at end of an emulation session.
2015-06-24 21:39:47 -05:00
Jules Blok
dbfdbf7dbd
D3D: Cosmetics.
...
Merge two cases which should've already been merged.
2015-06-24 23:16:53 +02:00
Jules Blok
2a5dd69c72
Merge branch 'stable'
2015-06-24 19:34:16 +02:00
mimimi085181
829fc3dc2d
Quick fix for an invalid iterator
2015-06-24 19:12:46 +02:00
Markus Wick
8493feb89f
Merge pull request #2602 from mimimi085181/partial-texture-updates2
...
Support partial texture updates via efb copies
2015-06-24 09:22:50 +02:00
sigmabeta
a028805626
Android: Save screenshot at end of an emulation session.
2015-06-23 22:22:01 -04:00
degasus
5bc88d5c6a
Revert "GeometryShaderGen: Don't use `centroid in` for input variables."
...
This reverts commit 4cbaddb7ad
.
2015-06-22 17:20:41 +02:00
mimimi085181
0ed6b5623f
Support partial texture updates via efb copies
2015-06-21 14:02:44 +02:00
Ryan Houdek
a811370329
[AArch64] Fix a couple of bugs in the vertex loader
...
In particular this fixes the 6666 colour format
We were loading from the wrong location and it was causing /terrible/ colour changes.
This also fixes a bug in the all the colour formats(except 888) where the unaligned path was loading in to the wrong register.
2015-06-20 21:12:31 -05:00
flacs
a702c4e01e
Merge pull request #2629 from lioncash/vertexloader-ifdef
...
VertexLoader: Remove the LOADERDECL define.
2015-06-21 03:17:38 +02:00
Lioncash
619e333dcc
VertexLoader: Remove the LOADERDECL define.
...
These functions aren't called from jitted code anymore so it isn't necessary.
2015-06-20 20:52:54 -04:00
Lioncash
cfead69f67
RenderBase: Remove an unused variable
2015-06-19 20:30:29 -04:00
Lioncash
4c79aa8216
HiresTextures: Remove unused variable
2015-06-19 17:31:04 -04:00
degasus
dd2183dbb5
Revert "GeometryShaderGen: Don't use `centroid in` for input variables."
...
This reverts commit 4cbaddb7ad
.
2015-06-18 20:25:32 +02:00
Jeffrey Pfau
7085fcc8d6
Fix FreeBSD build
2015-06-13 21:52:47 -07:00
Jules Blok
4042945ee5
Merge branch 'stable'
2015-06-13 01:12:12 +02:00
degasus
c375111076
Options: merge SCoreStartupParameter into SConfig
2015-06-12 19:07:45 +02:00
Markus Wick
be1d1e2798
Merge pull request #2024 from RisingFog/irgui
...
Add UI Support for up to 8x Internal Resolutions
2015-06-11 15:47:39 +02:00
Fog
6e7fedd4d0
Add UI Support for up to 8x Internal Resolutions
2015-06-10 20:17:30 -04:00
degasus
20ec5867ec
GameIni: Remove default Projection Hack
2015-06-10 19:31:10 +02:00
Jules Blok
fd637030e4
GeometryShaderGen: Consistently use xfmem just as the vertex shader.
...
There are very rare conditions in which xfmem can actually desync from bpmem.
2015-06-10 16:13:54 +02:00
Jules Blok
4cbaddb7ad
GeometryShaderGen: Don't use `centroid in` for input variables.
2015-06-10 16:04:32 +02:00
mimimi085181
4d5fdb74be
Code cleanup for FreeTexture after merging PR #2097
2015-06-09 21:45:09 +02:00
Markus Wick
e47e4c677a
Merge pull request #2097 from mimimi085181/find-textures-by-hash
...
Search the texture cache for small textures by address and hash
2015-06-09 10:12:05 +02:00
Jules Blok
d5788f75a3
Merge pull request #2533 from degasus/syncgpu
...
Fifo: Rewrite SyncGPU
2015-06-09 09:43:26 +02:00
NanoByte011
06d1b8c63a
VideoSW: rewrite lighting attenuation
...
- Fixes remaining lighting issues (Mario Tennis, etc)
- Apply same fixes to Software Renderer
- Corrected zero length light direction vector to resolve with normal direction (essentially becomes LIGHTDIF_NONE which was what I was after)
2015-06-08 23:20:27 +02:00
degasus
d31bed8b79
Fifo: Rewrite SyncGpu
...
The new implementation has 3 options:
SyncGpuMaxDistance
SyncGpuMinDistance
SyncGpuOverclock
The MaxDistance controlls how many CPU cycles the CPU is allowed to be in front
of the GPU. Too low values will slow down extremly, too high values are as
unsynchronized and half of the games will crash.
The -MinDistance (negative) set how many cycles the GPU is allowed to be in
front of the CPU. As we are used to emulate an infinitiv fast GPU, this may be
set to any high (negative) number.
The last parameter is to hack a faster (>1.0) or slower(<1.0) GPU. As we don't
emulate GPU timing very well (eg skip the timings of the pixel stage completely),
an overclock factor of ~0.5 is often much more accurate than 1.0
2015-06-08 23:16:24 +02:00
comex
5c7caf1f22
Merge pull request #2517 from comex/netplay-timebase-rb
...
[rebased] Compare timebase of netplay users to detect desyncs.
2015-06-07 17:47:53 -07:00
Ryan Houdek
10bd68936c
[AArch64] Implement ZFreeze cache
2015-06-07 12:13:01 +02:00
Tillmann Karras
5ddd2cef6c
zfreeze: cache vertex positions
...
Suggested by degasus.
2015-06-07 12:13:00 +02:00
Tillmann Karras
9e2f4dd7da
VertexLoaderX64: revert 9da86092ae
...
I can't reproduce that it's actually faster and it will definitely be
slower with position caching for zfreeze.
2015-06-07 12:13:00 +02:00
comex
9c63b78397
Fix indeterminism in GPU thread mode.
2015-06-06 02:14:06 -04:00
Jules Blok
ef1dfa8bcb
VideoBackends: Allow the viewport to use the full depth range.
2015-06-06 03:37:46 +02:00
mimimi085181
3b9020dc9b
Search the texture cache for small textures by address and hash
...
This fixes issue 6563:
https://code.google.com/p/dolphin-emu/issues/detail?id=6563
This PR adds a 2nd map to texture cache, which uses the hash as key. Cache entries from this new map are used only if the address matches or if the texture was fully hashed. This restriction avoids false positive cache hits. This results in a possible situation where safe texture cache accuracy could be faster than the fast one.
Small textures means up to 1KB for fast texture cache accuracy, 4KB for medium, and all textures for safe accuracy.
Since this adds a small overhead to all texture cache handling, some regression testing would be nice. Games, which use a lot of textures the same time, should be affected the most.
2015-06-05 21:30:39 +02:00
comex
78e0e78671
Merge pull request #2516 from comex/hires-oops
...
Undo accidental screwup of some HiresTextures code from project-moration
2015-06-04 16:13:05 -04:00
JosJuice
95a2abc1ce
Use PanicAlertT instead of PanicAlert when appropriate
...
I tried to change messages that contained instructions for users,
while avoiding messages that are so technical that most users
wouldn't understand them even if they were in the right language.
2015-06-04 13:25:06 +02:00
comex
830a4e4f8f
Undo accidental screwup of some HiresTextures code from project-moration.
...
This is why I should wait for people to review, even if I get annoyed
that nobody seems to care. :duncecap:
2015-06-04 02:52:41 -04:00
Tillmann Karras
7a6a5e2791
VertexLoaderX64: generate PIC
...
Address static memory relative to a base register, analog to what we're
doing with PPCSTATE in the CPU JIT. This allows executable memory for
the vertex loader JIT to be allocated anywhere, not just within 2 GiB of
static data.
Fixes issue 8180.
2015-06-03 02:27:37 +02:00
comex
0c5aa54606
Merge pull request #2470 from degasus/syncgpu
...
Common: Blocking Loop (extracted from Fifo.cpp)
2015-06-02 20:19:00 -04:00
comex
a3b3f0522b
Merge pull request #1556 from comex/project-moration
...
Rudimentary version of Wii IPC determinism. Ported from my old udpnet branch.
2015-06-02 18:38:19 -04:00
Markus Wick
aa2576a2c7
Merge pull request #2480 from phire/GamesDoWeirdShit
...
Fix invalid pointer errors in Burnout 2.
2015-05-31 23:26:55 +02:00
flacs
a806feb10e
Merge pull request #2474 from Tilka/zfreeze
...
zfreeze: fix 2-component positions
2015-05-31 06:35:21 +02:00
degasus
bfa61105d5
Common: Update BlockingLoop to only use one atomic.
...
This merges two atomic<bool> into one atomic<int>.
We did move the bit from one bool to another, now we can use operator--.
2015-05-30 12:58:09 +02:00
degasus
02a3a063c3
Fifo: Extract syncing loop
...
It's now a new helper function within common.
2015-05-30 12:58:09 +02:00
Scott Mansell
7df6982973
Add a dirty flag for arraybases.
...
Only loop through and call getPointers when something has actually
changed.
Worth about 2-4% speedup un SMG over the previous commit.
2015-05-30 04:39:48 +12:00
Scott Mansell
f57517f1a0
Clean up cached_arraybases. Update VideoSW to new scheme.
...
Move ownership of cached_arraybases from CPMemory to VertexLoaderManager
to better match it usage.
2015-05-30 04:09:27 +12:00
Tillmann Karras
4943b36259
zfreeze: fix 2-component positions
2015-05-29 13:43:12 +02:00
Scott Mansell
6d916762fb
Fix invalid pointer errors in Burnout 2.
...
Yet another story of games loading weird shit into registers.
For some reason, Burnout 2 would (in rare situations) load invalid
addresses into cp_state.array_bases. What would the real hardware
do in this situation? Who knows, Burnout 2 doesn't actually enable
the vertex array with the invalid address so nothing kinky happens.
But dolphin tries to optimise things and starts using the address
as soon as it is loaded into memory. This causes GetPointer (which is
now much more vocal) to throw an error.
The Fix: We don't call GetPointer until we are sure the vertex array
has been enabled.
2015-05-29 18:51:17 +12:00
Ryan Houdek
cdbdff436b
Merge pull request #2478 from degasus/fix_prefetching
...
HiresTexture: Fix prefetching with broken textures
2015-05-29 01:42:48 -04:00
degasus
c69cc91f00
HiresTexture: Fix prefetching with broken textures
2015-05-29 07:31:11 +02:00
Lioncash
ac26f8e79f
Pass strings by const reference where possible
2015-05-28 20:54:55 -04:00
comex
a225426510
Rewrite FileSearch and improve ScanDirectoryTree.
...
- FileSearch is now just one function, and it converts the original glob
into a regex on all platforms rather than relying on native Windows
pattern matching on there and a complete hack elsewhere. It now
supports recursion out of the box rather than manually expanding
into a full list of directories in multiple call sites.
- This adds a GCC >= 4.9 dependency due to older versions having
outright broken <regex>. MSVC is fine with it.
- ScanDirectoryTree returns the parent entry rather than filling parts
of it in via reference. The count is now stored in the entry like it
was for subdirectories.
- .glsl file search is now done with DoFileSearch.
- IOCTLV_READ_DIR now uses ScanDirectoryTree directly and sorts the
results after replacements for better determinism.
2015-05-28 19:14:42 -04:00
Lioncash
1ba3b4e7ac
CommandProcessor: Replace volatile usages with atomics
...
Also remove said variables from being globals.
2015-05-27 03:53:29 -04:00
Lioncash
ec03196267
PixelEngine: Replace volatile usages with atomics
...
Also removes two unused volatile variables.
2015-05-27 02:39:55 -04:00
Markus Wick
a6b327751a
Merge pull request #2463 from lioncash/fifo
...
Fifo: Replace usages of volatile with atomics
2015-05-27 08:03:39 +02:00
Lioncash
4cb55cc427
Fifo: Replace usages of volatile with atomics
2015-05-27 00:42:56 -04:00
Matthew Parlane
3135b4f3e4
Merge pull request #2461 from lioncash/barrier
...
Thread: Remove unused Barrier class
2015-05-27 13:21:14 +10:00
Lioncash
23c11b3f27
Thread: Remove unused Barrier class
2015-05-26 19:25:59 -04:00
galop1n
2975e53091
D3D: Depth range inversion.
...
Credits go to Galop1n for designing this technique and to BhaaLseN for cleaning up the commit.
2015-05-26 15:31:31 +02:00
Markus Wick
a6412fb41e
Merge pull request #2162 from degasus/prefetch_tex
...
CustomTexture: prefetch all available textures
2015-05-26 13:30:26 +02:00
Ryan Houdek
061848457a
Merge pull request #2382 from RisingFog/vfwfix
...
Fix video dumping incorrect lengths for some games in Windows
2015-05-25 23:46:22 -04:00
Ryan Houdek
dad5d8e13d
Merge pull request #2357 from degasus/ogl_efb_poke_merge
...
ogl: efb poke merge
2015-05-25 23:26:39 -04:00
Ryan Houdek
69963dc4b0
Merge pull request #2274 from degasus/disable_bbox
...
Disable bbox
2015-05-25 08:46:12 -04:00
Tillmann Karras
30ebb2459e
Set copyright year to when a file was created
2015-05-25 13:22:31 +02:00
Tillmann Karras
cefcb0ace9
Update license headers to GPLv2+
2015-05-25 13:22:31 +02:00
Tillmann Karras
268f52e054
Add missing license headers
2015-05-25 13:11:47 +02:00
degasus
7e127da791
VideoCommon: Warn if bbox is disabled but used
2015-05-25 09:33:34 +02:00
degasus
029912681e
VideoCommon: return 0 if bbox is disabled
...
Through just returning the last written value sounds better, this crashes Paper Mario.
In my opinion, gfx issues are fine on older GPUs, but crashes should not happen.
2015-05-25 09:33:34 +02:00
degasus
6b2a1e57e2
BBox: remove now unreachable SW bbox implementation
2015-05-25 09:33:34 +02:00
degasus
acd074e291
VideoCommon: Make BBox emulation optional
2015-05-25 09:33:34 +02:00
Jules Blok
e31982474c
OGL: Depth range inversion.
2015-05-22 23:52:22 +02:00
Jules Blok
88cc91030e
VertexShaderGen: Use correct depth output when glClipControl is supported.
2015-05-22 23:52:21 +02:00
degasus
c7bae5ad11
VideoCommon: Merge EFB pokes
2015-05-20 10:39:21 +02:00
Jules Blok
ef78941042
VideoBackends: Clamp depth to uint24 range.
2015-05-18 23:22:28 +02:00
degasus
562b9d4a9f
VideoCommon: Abort texture prefetching on low RAM
...
There is no nice way to correctly "detect" the "used" memory, so we just say
we're fine to use 50% of the physical memory for custom textures.
This will fix out-of-memory crashes, but we still might run into swapping issues.
2015-05-16 15:39:36 +02:00
degasus
242f7d964d
CustomTexture: prefetch all available textures
2015-05-16 15:12:07 +02:00
degasus
3d98f6ab9f
PixelShaderGen: apply zfreeze before ztextures
...
The zfreeze option freezes the depth plane of the rasterization.
So this is done before the TEV stages, where the z-textures are applied.
2015-05-13 20:06:23 +02:00
Fog
16081a23f1
Fix video dumping incorrect lengths for some games
2015-05-09 02:28:48 -04:00
Jules Blok
1d745d632a
PixelShaderGen: Clamp zCoord to the depth range.
2015-05-08 14:43:43 +02:00
Jules Blok
d04af15ad4
TextureConversionShader: Use floating point values in clamp().
2015-05-08 14:32:24 +02:00
Jules Blok
5dbb43ae1d
PixelShaderGen: Use new multiplier everywhere and directly cast to int instead or rounding.
2015-05-08 14:32:23 +02:00
Jules Blok
0f2c72f0f8
VideoCommon: Clamp integer conversions.
2015-05-08 14:32:16 +02:00
Jules Blok
c4f85a38e6
VideoBackends: Use proper floating point depth precision.
2015-05-08 14:29:29 +02:00
Markus Wick
a76bfb1f55
Merge pull request #2356 from Armada651/dump-efb
...
VideoCommon: Implement EFB dumping for both backends.
2015-05-02 13:27:38 +02:00
Jules Blok
54f4443971
VideoCommon: Implement EFB dumping for both backends.
2015-05-02 13:23:33 +02:00
Ingve Skåra
5799824b22
Fix dead link
2015-05-01 21:42:50 +02:00
comex
bac4167ff5
Merge pull request #2319 from comex/linted-fix-qualcomm-fail
...
(lint issues fixed) Fix OpenGLES 3.0 on Qualcomm's crappy driver, it can't bitshift sometimes.
2015-04-29 17:09:56 -04:00
Lioncash
8e59987d46
TextureDecoder_Common: Add missing algorithm include
...
It was being indirectly included, causing VS to syntactically mark std::min/max usages as being undefined (however it still compiled fine, of course)
2015-04-27 23:17:41 -04:00
skidau
4bf4778cd7
Merge pull request #2312 from comex/shutdown-race-condition
...
Exit ReadDataFromFifoOnCPU, PushFifoAuxBuffer early if shutting down (GpuRunningState=false)
2015-04-27 19:47:00 +10:00
Dwayne Slater
ae83a1b821
Fix OpenGLES 3.0 on Qualcomm's crappy driver, it can't bitshift sometimes.
...
[fixed lint issues and grammar ~comex]
2015-04-23 16:33:12 -04:00
comex
74c30d1784
Fix code broken by merge
2015-04-23 02:07:45 -04:00
comex
ad95454d04
Merge pull request #2223 from phire/imm
...
Cleanup OpArg, make immediates more explicit.
2015-04-23 01:53:18 -04:00
comex
06dd0ba3b4
Exit ReadDataFromFifoOnCPU, PushFifoAuxBuffer early if shutting down (GpuRunningState=false)
...
This was causing a race condition where the "absurdly large aux buffer"
panic alert would be triggered in the last bit of fifo processing on the
CPU thread in deterministic mode (i.e. netplay). SyncGPU is supposed to
move the auxiliary queue data to the beginning of the containing buffer
so we don't have to deal with wraparound; if GpuRunningState is false,
however, it just returns, because it's set to false by another thread -
thus it doesn't know whether RunGpuLoop is still executing (in which
case it can't just reset the pointers, because it may still be using the
buffer) or not (in which case the condition variable it normally waits
for to avoid the previous problem will never be signaled). However,
SyncGPU's caller PushFifoAuxBuffer wasn't aware of this, so if the
buffer was filling at just the right time, it'd stay full and that
function would complain that it was about to overflow it. Similar
problem with ReadDataFromFifoOnCPU afaik. Fix this by returning early
from those as well; other callers of SyncGPU should be safe. A
*slightly* cleaner alternative would be giving the CPU thread a way to
tell when RunGpuLoop has actually exited, but whatever, this works.
2015-04-21 22:33:29 -04:00
Lioncash
9eb608c9da
Merge pull request #2301 from lioncash/const
...
General: Apply the const specifier where applicable
2015-04-16 23:13:39 -04:00
Lioncash
63393570fb
PerfQueryBase: Move common implementation variables into base class
2015-04-15 19:22:16 -04:00
Lioncash
b0613bb1c8
General: Apply the const specifier where applicable
2015-04-15 02:04:03 -04:00
degasus
74795b4553
Fifo: rewrite Fifo_PauseAndLock
...
This lock isn't required any more as our FlushGpu garanty to block until the GPU is idle
2015-04-06 12:35:35 +02:00
degasus
b1ffd32f5f
Fifo: only touch the SIMD state once in the single core loop
2015-04-06 12:35:35 +02:00
degasus
d2c62b1744
Fifo: only sleep once within every ms of emulated time
2015-04-06 12:35:35 +02:00
degasus
b020ae1c5d
Fifo: rewrite sync on idle skipping hack
...
Now it's done without a busy loop
2015-04-06 12:35:35 +02:00
degasus
9bdaa00e2d
Fifo: use the outer loop on sync GPU
2015-04-06 12:35:35 +02:00
degasus
279c657cda
Fifo: Replace busy loop with condition variable
2015-04-06 12:35:27 +02:00
Tillmann Karras
9da86092ae
VertexLoaderX64: use common code for FORMAT_FLOAT
2015-03-18 12:12:21 +01:00
Tillmann Karras
7030542546
VertexLoaderX64: support SSE2 as a fallback
...
With suggestions by Fiora and magumagu.
2015-03-18 12:12:21 +01:00
Tillmann Karras
8d90ecda7f
VertexLoaders: make positions more compact
2015-03-18 12:09:06 +01:00
Scott Mansell
858ff69c01
Make OpArg.offset and operandReg private.
...
Also cleaned up WriteRest function.
2015-03-17 18:49:30 +13:00
magumagu
629fb8fb49
Merge pull request #2222 from Tilka/fix_warnings
...
Fix warnings
2015-03-16 17:41:46 -07:00
Tillmann Karras
f82afd1b2f
Fix warnings
2015-03-16 19:02:30 +01:00
Shawn Hoffman
ad64336137
quiet some warnings which appear on vs2015.
...
quieted warnings include shadowed variable names and integer extensions.
2015-03-15 19:28:47 -07:00
skidau
cdff138c67
Show no more than one FIFO error per session.
2015-03-13 23:25:15 +11:00
Tillmann Karras
3987725217
VertexLoaderX64: fix harmless off-by-one error
2015-03-08 04:43:59 +01:00
degasus
35373c5185
TextureCache: load all mipmap levels from custom textures
...
This drops the "feature" to load level 0 from the custom texture
and all other levels from the native one if the size matches.
But in my opinion, when a custom texture only provide one level,
no more should be used at all.
2015-03-02 00:09:09 +01:00
magumagu
7f7973efa5
Merge pull request #2148 from Tilka/fifo_cleanup
...
Small FIFO-related cleanup
2015-03-01 13:06:43 -08:00
degasus
7ca24f90d1
TexCache: increase TEXTURE_KILL_THRESHOLD
...
Xenoblade uses more than 40 textures alternately per frame for eg water effects.
So don't try to drop them as aggressive.
2015-03-01 13:41:14 +01:00
Tillmann Karras
9493c713dd
Fifo: small cleanup
2015-02-28 15:40:01 +01:00
Tillmann Karras
e28c97f6bd
Fifo: drop unused functions
2015-02-28 15:40:00 +01:00
Lioncash
d10571a86a
PixelShaderManager: Remove unnecessary casts.
...
EFBToScaledXf and EFBScaledYf return a float, so the cast isn't needed here.
2015-02-28 00:04:05 -05:00
Lioncash
7408de7e79
Merge pull request #2058 from Stevoisiak/Codemaid-Cleanup-Take2
...
Basic Formatting/Whitespace Cleanup
2015-02-25 18:07:56 -05:00
Stevoisiak
93b16a4a2d
Formatting/Whitespace Cleanup
...
Various fixes to formatting and whitespace
2015-02-25 10:48:21 -05:00
degasus
967eaad8df
VideoCommon: rename efb2tex and efb2ram
2015-02-24 23:10:13 +01:00
degasus
1313d3461f
VideoCommon: always enable efb copy
2015-02-24 23:01:01 +01:00
Tillmann Karras
e2fec13ab6
Fix some -Wsign-compare warnings
2015-02-24 10:29:59 +01:00
Tillmann Karras
f298f00e1b
Clean up the intrinsics #ifdef mess
2015-02-24 01:02:36 +01:00
skidau
593563e16c
Merge pull request #2087 from Armada651/epsilon-3d
...
VertexShaderManager: Turn the epsilon hack back on for 3D Vision.
2015-02-23 13:12:55 +11:00
skidau
f8e51a1a26
Merge pull request #2050 from Tilka/reset_vertex_loader_stats
...
VertexLoaderManager: reset stats properly
2015-02-23 13:10:38 +11:00
degasus
b35fa222f5
VideoCommon: perf querys by async events
2015-02-22 08:41:15 +01:00
degasus
edbd402101
VideoCommon: bbox by async events
2015-02-22 08:41:15 +01:00
degasus
ad7264da7d
VideoCommon: implement swap requests in the full async way
2015-02-22 08:41:15 +01:00
degasus
bc248f8941
VideoCommon: use a new async event system for efb access
2015-02-22 08:41:15 +01:00
Jules Blok
ff4127cf50
VertexShaderManager: Turn the epsilon hack back on for 3D Vision.
...
The bug is fixed in version 347.52 of the drivers.
2015-02-21 12:09:49 +01:00
Jules Blok
139ad3b2b9
TextureConversionShader: Use a Texture2DArray to match the shader resource view.
2015-02-21 11:50:20 +01:00
Markus Wick
6bbf774507
Merge pull request #2075 from magumagu/titantron-fix
...
Partially fix WWE12 titantron videos.
2015-02-21 10:09:47 +01:00
Scott Mansell
355be1719e
Fix regression with directx when zfreeze=true and ztest=false.
2015-02-21 10:52:29 +13:00
magumagu
074397c12d
Explicitly set up AllocateTexture configuration for palette conversion.
...
No functional change.
2015-02-19 15:57:05 -08:00
magumagu
ddc815dd7a
Remove TextureAddress struct.
2015-02-19 15:36:32 -08:00
magumagu
c0a4760f0e
Decode EFB copies used as paletted textures.
...
A number of games make an EFB copy in I4/I8 format, then use it as a
texture in C4/C8 format. Detect when this happens, and decode the copy on
the GPU using the specified palette.
This has a few advantages: it allows using EFB2Tex for a few more games,
it, it preserves the resolution of scaled EFB copies, and it's probably a
bit faster.
D3D only at the moment, but porting to OpenGL should be straightforward..
2015-02-19 15:09:27 -08:00
magumagu
4cdf9f543f
Partially fix WWE12 titantron videos.
...
The obvious question here is, why does it matter if we round or truncate?
The key is that GC/Wii does fixed-point interpolation, where PC GPUs do
floating-point interpolation. Discarding fractional bits makes the conversion
from floating-point to fixed point give more consistent results.
I'm not confident this is really the right fix, or that my explanation is
completely correct; ideally, we don't want to depend on floating-point
interpolation at all.
2015-02-18 19:41:00 -08:00
mimimi085181
2f8e0c9bb9
Allow multiple texture cache entries for textures at the same address
...
This is the same trick which is used for Metroid's fonts/texts, but for all textures. If 2 different textures at the same address are loaded during the same frame, create a 2nd entry instead of overwriting the existing one. If the entry was overwritten in this case, there wouldn't be any caching, which results in a big performance drop.
The restriction to textures, which are loaded during the same frame, prevents creating lots of textures when textures are used in the regular way. This restriction is new. Overwriting textures, instead of creating new ones is faster, if the old ones are unlikely to be used again.
Since this would break efb copies, don't do it for efb copies.
Castlevania 3 goes from 80 fps to 115 fps for me.
There might be games that need a higher texture cache accuracy with this, but those games should also see a performance boost from this PR.
Some games, which use paletted textures, which are not efb copies, might be faster now. And also not require a higher texture cache accuracy anymore. (similar sitation as PR https://github.com/dolphin-emu/dolphin/pull/1916 )
2015-02-18 23:54:40 +01:00
Ryan Houdek
3aa605236d
Merge pull request #2041 from Sonicadvance1/AArch64_vertex_loader
...
[AArch64] Vertex loader and things
2015-02-17 00:51:51 -06:00
Ryan Houdek
ed008c3a69
[AArch64] Change the vertex loader over to using unscaled loadstores.
...
In nearly all direct loadstore cases we can use unscaled loadstores.
Still have a fallback in case we hit a situation that we /can't/ do a unscaled loadstore.
2015-02-16 22:03:09 -06:00
Ryan Houdek
b4b03641b3
[AArch64] Implement vertex loader recompiler.
...
Shows a noticeable reduction in time spent in the vertex loader.
2015-02-16 16:51:32 -06:00
Pierre Bourdon
3500740dd4
Windows AVIDump: support "silent" frame dumping
...
When enabled, the silent option will avoid popping up dialog boxes for
overwrite confirmation or codec selection. The codec selection defaults to
uncompressed RGB.
This is required for FifoCI on Windows which needs to drive Dolphin from the
command line exclusively.
2015-02-14 23:38:14 +01:00
Markus Wick
405444d4fe
Merge pull request #1803 from lioncash/rgb
...
OnScreenDisplay: Allow for different colored messages
2015-02-14 10:47:47 +01:00
Tillmann Karras
1a52cff1c9
VertexLoaderManager: reset stats properly
2015-02-14 02:30:05 +01:00
Ryan Houdek
15e41c67f8
Change RunVertices' function arguments.
...
This reduces some dumb state shuffling when calling the emitted vertex loaders.
2015-02-13 12:16:06 -06:00
degasus
c404e87226
ShaderGen: Fix pixel offset correction
...
We want to move the vertex by 1/12 pixel, but the old code
did miss the perspective division. So by multiplying with pos.w,
the position is moved correctly after the perspective division.
2015-02-11 20:54:15 +01:00
magumagu
d9988ee9b5
Merge pull request #1987 from magumagu/thread-safety
...
Cleanup usage of atomic/threadsafe functions
2015-02-10 13:48:12 -08:00
Lioncash
9d5c6c55fe
OnScreenDisplay: Allow for different colored messages
2015-02-07 17:35:21 -05:00
Lioncash
e07679114b
Use emplace_* functions where in-place construction is preferable
2015-02-04 11:39:08 -05:00
magumagu
57d94de2ad
Fix regression for D3D EFB depth copies.
...
On D3D, we read from the depth buffer using the format
DXGI_FORMAT_R24_UNORM_X8_TYPELESS (essentially, the "r" component contains
the depth, and the other components contain nothing).
2015-02-03 11:27:27 -08:00
Markus Wick
3c475b91ea
Merge pull request #1993 from Armada651/line-perspective
...
GeometryShaderGen: Perspective divide the line coordinates before comparing the angle.
2015-01-31 23:45:54 +01:00
Jules Blok
8c55ec0d51
GeometryShaderGen: Perspective divide the line coordinates before comparing the angle.
2015-01-31 23:32:23 +01:00
Tillmann Karras
1aac65f988
VertexLoaderManager: assimilate GetVertexSize()
2015-01-31 09:23:50 +01:00
magumagu
47be9d8e6b
Clean up usage of ScheduleEvent_Threadsafe.
2015-01-30 14:48:23 -08:00
degasus
20628b6e5d
OpcodeDecoder: Calculate decoding time for vertices
2015-01-29 19:55:28 +01:00
Gabriel Corona
a4adfe194a
JitRegister: overload Register with a [start,end) variant
2015-01-28 09:50:19 +01:00
Markus Wick
beaa9905a6
Merge pull request #1966 from magumagu/unify-efb-encode
...
Unify EFB encoding shader generation
2015-01-27 23:14:18 +01:00
Markus Wick
43605f8716
Merge pull request #1948 from magumagu/remove-efb-cache
...
Remove EFB to RAM cache, and simplify code.
2015-01-27 09:42:15 +01:00
Tillmann Karras
3dbd6cd384
VertexLoaderX64: save XMM0 if the ABI requires it
2015-01-26 22:24:06 +01:00
Tillmann Karras
8416a86b6d
VertexLoaderBase: fix crash on invalid formats
2015-01-26 22:24:06 +01:00
Tillmann Karras
66f28707e7
VertexLoader: small clean up
2015-01-26 22:24:06 +01:00
magumagu
b56025e6eb
Don't use boolean negation.
2015-01-25 23:28:59 -08:00
magumagu
92189823f3
Fix RGBA8 encoding.
2015-01-25 22:53:30 -08:00
magumagu
b0b99b6922
Fix shader so it's possible to use with D3D Map().
...
Well, that's not strictly true, but trying to memcpy between two buffers
using different row lengths and different strides is at minimum extremely
unintuitive.
2015-01-25 19:57:09 -08:00
magumagu
6c1bdfe04c
More work.
2015-01-25 19:57:07 -08:00
magumagu
ef75f3005d
WIP.
2015-01-25 15:49:35 -08:00
Jules Blok
5c4ee2f71e
PostProcessing: Move default pixel shader to PostProcessingShaderConfiguration.
...
Reduces code complexity and fixes a bug where the shader is not properly invalidated.
2015-01-25 23:08:49 +01:00
Jules Blok
262c3b19ec
PostProcessing: Add support for user-supplied anaglyph shaders.
...
There are lots of different anaglyph glasses out there and there may be even more creative uses for stereoscopic post-processing shaders.
2015-01-25 22:07:03 +01:00
Scott Mansell
61215e7180
Fix a buffer underrun in CalculateZSlope.
2015-01-25 20:31:20 +13:00
Lioncash
9cdfe889af
Coding style cleanup from the zfreeze merge
2015-01-24 15:16:48 -05:00
Markus Wick
ae514cb0f2
Merge pull request #1955 from degasus/master
...
TexCache: Rewrite the texID generation for paletted textures
2015-01-24 15:37:25 +01:00
degasus
51990fcdfa
TexCache: Rewrite the texID generation for paletted textures
...
This changes the behavior if both texture are available. The old code did
try to load the modfied texID, the new code tries the unmodified texID first.
2015-01-24 13:58:20 +01:00
Markus Wick
4f6d0049a7
Merge pull request #1951 from Sonicadvance1/Remove_old_defines
...
Remove an old GLES define that I missed.
2015-01-24 13:38:26 +01:00
Tony Wasserka
43036af944
Merge pull request #1812 from phire/real_zfreeze
...
Add proper zfreeze support.
2015-01-24 13:29:57 +01:00
Scott Mansell
14baf038e7
Stop doing nastly shit to OpenGL stream buffers.
...
Instead we keep the loaded vertices in CPU memory.
2015-01-24 14:41:51 +13:00
Ryan Houdek
189528171b
Remove an old GLES define that I missed.
2015-01-23 14:30:23 -06:00
magumagu
6659c15bed
Remove EFB to RAM cache, and simplify code.
2015-01-23 10:48:15 -08:00
Scott Mansell
5510c86b81
Move Zfreeze code out individual backends into videoCommon
...
Also:
* Implement support for per-vertex PosMatrixIndex
* Only update zslope constant once when zfreeze is activated.
* Added a bunch of comments.
2015-01-24 03:22:27 +13:00
Scott Mansell
daf760b202
A few small cleanups based on code review.
2015-01-23 04:38:36 +13:00
Scott Mansell
e88c02dece
Ensure that ZSlopes save/restore state correctly.
...
Had to re-do *ShaderManager so they saved their constant arrays
instead of completly rebuilding them on restore state.
2015-01-23 03:32:31 +13:00
Scott Mansell
128d303656
Reduce number of divisions in screenspace transform.
...
This is closer to what the hardware does anyway.
2015-01-23 03:32:31 +13:00
NanoByte011
add59b3bea
Fixes Mario Tennis Gimmick Courts and adds support for FastDepthCalc
...
- Calculate ZSlope every flush but only set PixelShader Constant on Reset Buffer when zfreeze
- Fixed another Pixel Shader bug in D3D that was giving me grief
2015-01-23 03:32:31 +13:00
Scott Mansell
6d5065c58d
Fix pixelshader constant offsets.
2015-01-23 03:32:31 +13:00
Scott Mansell
88c7afd315
Make zfreeze use screenspace coordinates independant of IR.
...
OpenGL requires the y coordinates to be flipped.
Also refactored PixelGen code to remove duplicate code.
2015-01-23 03:32:31 +13:00
Scott Mansell
418296961c
Fix various issues with zfreeze implemntation.
...
Results are still not correct, but things are getting closer.
* Don't cull CULLALL primitives so early so they can be used as reference
planes.
* Convert CalculateZSlope to screenspace coordinates.
* Convert Pixelshader to screenspace coordinates (instead of worldspace
xy coordinates, which is totally wrong)
* Divide depth by 2^24 instead of clamping to 0.0-1.0 as was done
before.
Progress:
* Rouge Squadron 2/3 appear correct in game (videos in rs2 save file
selection are missing)
* Shadows draw 100% correctly in NHL 2003.
* Mario golf menu renders correctly.
* NFS: HP2, shadows sometimes render on top of car or below the road.
* Mario Tennis, courts and shadows render correctly, but at wrong depth
* Blood Omen 2, doesn't work.
2015-01-23 03:32:31 +13:00
NanoByte011
613781c765
Cleanup and refactor of zfreeze port
...
Based on the feedback from pull request #1767 I have put in most of
degasus's suggestions in here now.
I think we have a real winner here as moving the code to
VertexManagerBase for a function has allowed OGL to utilize zfreeze now
:)
Correct use of the vertex pointer has also corrected most of the issue
found in pull request #1767 that JMC47 stated. Which also for me now
has Mario Tennis working with no polygon spikes on the characters
anymore! Shadows are still an issue and probably in the other games
with shadow problems. Rebel Strike also seems better but random skybox
glitches can show up.
2015-01-23 03:32:31 +13:00
NanoByte011
937844b9e3
Initial port of zfreeze branch (3.5-1729)
...
Initial port of original zfreeze branch (3.5-1729) by neobrain into
most recent build of Dolphin.
Makes Rogue Squadron 2 very playable at full speed thanks to recent core
speedups made to Dolphin. Works on DirectX Video plugin only for now.
Enjoy! and Merry Xmas!!
2015-01-23 03:31:54 +13:00
skidau
d27bd9d291
Merge pull request #1885 from degasus/custom_texture
...
CustomTexture: new name format
2015-01-23 00:43:39 +11:00
NanoByte011
0a9257ad37
Cleaned up whitespace
...
Fixed Directional Attenuation (assumed, data was light dir vector already, but it was not!)
2015-01-21 22:30:41 -07:00
NanoByte011
f475e367f2
Lighting Attenuation Fixes
2015-01-21 15:55:32 -07:00
degasus
7cf4dd63e4
CustomTexture: fix texture format
2015-01-21 23:33:42 +01:00
degasus
1d0557a5e6
CustomTexture: use xxhash
2015-01-21 21:47:18 +01:00
degasus
84c8645d22
CustomTexture: Convert old format automatically
2015-01-21 21:22:55 +01:00
degasus
f9ced4eb13
CustomTexture: also support the legacy format
2015-01-21 21:22:55 +01:00
degasus
62402efa6c
CustomTexture: Mark textures with mipmaps
2015-01-21 21:22:55 +01:00
degasus
ee9d05d67f
CustomTexture: Use another file name with wildcards
2015-01-21 21:22:55 +01:00
degasus
a353ead3cb
CustomTexture: Use always safe texture hash
2015-01-21 21:22:55 +01:00
degasus
eeaad06a07
CustomTexture: check for min/max index on paletted textures
2015-01-21 21:22:55 +01:00
Ryan Houdek
1c62c2f935
Merge pull request #1924 from degasus/xxhash
...
VideoCommon: xxhash
2015-01-21 14:19:35 -06:00
Ryan Houdek
80e6367e46
Merge pull request #1869 from Stevoisiak/GeneralConsistency
...
Minor consistency changes
2015-01-21 13:46:53 -06:00
Ryan Houdek
50d495b581
Merge pull request #1916 from mimimi085181/master
...
Make efb to texture less broken for paletted textures that are efb copies
2015-01-21 13:40:36 -06:00
Ryan Houdek
7fba4856ce
Merge pull request #1931 from Sonicadvance1/Fix_PP_Config
...
Fix the Post Processing shader configuration dialog.
2015-01-21 13:29:01 -06:00
degasus
402fb4bd20
xxhash: Add cmake + VS files
...
Based on riking's PR.
2015-01-21 07:35:34 +01:00
Ryan Houdek
d348bfea46
Fix the Post Processing shader configuration dialog.
...
On locales that don't use period as a separator this would break us.
For vector values in a configuration, we use comma as a separator which causes the configuration to balloon to massive sizes due to never saving them
correctly. Loading would then break since it would load a million configuration options.
Fixes issue #7569 .
2015-01-20 16:40:46 -06:00
Jules Blok
f40cd04a29
PixelShaderGen: Fix uninitialized variables.
2015-01-20 23:15:01 +01:00
Tillmann Karras
1dcf49237b
VertexLoaderX64: support VAT.ByteDequant=0
2015-01-20 09:23:15 +01:00
Tillmann Karras
46ab5d63d6
VertexLoader: never reset alpha in 8888 colors
...
Fixes the opening menu of Xenoblade Chronicles.
2015-01-20 09:22:55 +01:00
Tillmann Karras
80617ec6bd
VertexLoader: remove weird line
2015-01-20 01:53:52 +01:00
Tillmann Karras
873902b4a3
VertexLoader: remove non-JIT SSE code
2015-01-20 01:51:07 +01:00
Markus Wick
0d0f7ec662
Merge pull request #1894 from Armada651/exclusive-fix
...
D3D: Fix Dolphin immediately exiting exclusive fullscreen.
2015-01-19 23:29:43 +01:00
Jules Blok
332d5888eb
VideoConfig: Add exclusive mode flag.
...
Allows the UI to easily check the current exclusive mode state.
This simplifies a few checks and prevents the user from ever getting stuck in fullscreen.
2015-01-19 22:55:21 +01:00
Tillmann Karras
804341d4fe
VertexLoader: fix position offset bug
2015-01-19 17:38:40 +01:00
Tillmann Karras
4b323096ec
VertexLoader_Position: remove old JIT ideas
2015-01-19 17:36:24 +01:00
Ryan Houdek
7e64869185
Merge pull request #1887 from Tilka/vertex_loader_jit
...
VertexLoader: rewrite x64 JIT
2015-01-18 19:48:14 -06:00
mimimi085181
0d3343d093
Make efb to texture less broken for paletted textures that are efb copies
...
Don't change the texID depending on the tlut_hash for paletted textures that are efb copies and don't have an entry in the cache for texID ^ tlut_hash. This makes those textures less broken when using efb to texture.
This is not really fixing those textures, but it's a step forward. The mini map in Twilight Princess for example is in grayscales with this and is more or less usable.
2015-01-19 01:31:41 +01:00
Tillmann Karras
d3f49097c5
VertexLoaderX64: register symbol for code page
2015-01-18 23:20:44 +01:00
degasus
9f13a77799
TexCache: don't try to aggressive reuse the entry
...
As we pool them now, freeing and reallocating them is quite fast.
2015-01-18 19:58:33 +01:00
degasus
8565f02699
TexCache: use an unordered_multimap for the tex pool
2015-01-18 19:58:33 +01:00
degasus
4639d3b1bc
TexCache: also incude textures within the render target pool
2015-01-18 19:47:48 +01:00
degasus
6cd6e6546f
TexCache: merge texture and rendertarget factory function
2015-01-18 19:47:48 +01:00
degasus
615ae9f106
TexCache: remove PC_TexFormat
...
We only support rgba32 for a while now, so there is no need to have everything in common configureable.
2015-01-18 19:47:48 +01:00
Tillmann Karras
bc5cf10ad5
VertexLoaderX64: optimize color conversions
2015-01-18 17:47:18 +01:00
Tillmann Karras
7d0cff05e9
VertexLoaderX64: make table lookup deterministic
2015-01-18 16:22:21 +01:00
Tillmann Karras
1855d56f1a
VertexLoaderX64: fix a bunch of stuff
...
Suggestions by @degasus and @FioraAeterna.
2015-01-18 13:31:28 +01:00
Tillmann Karras
dc01e261d1
VertexLoaderX64: fix duplicate register allocation
...
Thanks to @shuffle2 for noticing this.
2015-01-18 13:30:21 +01:00
Tillmann Karras
f5545477e3
VertexLoaderX64: suggestions by @magumagu
...
- avoid register merges
- avoid redundant MOV
2015-01-18 13:30:19 +01:00
Tillmann Karras
b27ba3802e
VertexLoaderX64: implement pre-Haswell fallbacks
2015-01-18 13:29:34 +01:00
Tillmann Karras
e82e9f97f5
VertexLoader: add new JIT
2015-01-18 13:29:34 +01:00
Tillmann Karras
20ded4c1e5
VertexLoader: remove old JIT
2015-01-18 12:59:33 +01:00
Tillmann Karras
bec30068a6
VertexLoader_TextCoord: reorder function list
2015-01-18 12:59:33 +01:00
Tillmann Karras
d86957944a
VertexLoader_Color: clean up
2015-01-18 12:59:33 +01:00
Tillmann Karras
6a26771cd5
VertexLoader_Normal: use shorter notation
2015-01-18 12:59:33 +01:00
Tillmann Karras
20bc18cd5d
VertexLoaderManager: make it nicer to read
2015-01-18 12:59:33 +01:00
Tillmann Karras
b0df4b08ec
VertexLoaderTester: fix a few problems
2015-01-18 12:59:33 +01:00
Tillmann Karras
2cedc0034d
DataReader: turn WritePointer into GetPointer
2015-01-18 12:59:33 +01:00
mimimi085181
96bcb09fb2
Fix another small bug with the efb2ram cache
...
Textures that are directly next to each other were falsely detected as overlapping.
2015-01-17 19:10:00 +01:00
Markus Wick
7069450ce5
Merge pull request #1872 from degasus/texcache
...
Texcache cleanup 2
2015-01-13 22:45:49 +01:00
Markus Wick
980ce440ef
Merge pull request #1813 from Armada651/convergence
...
Add UI for per-game stereoscopy settings.
2015-01-13 00:25:38 +01:00
Markus Wick
5be85cf928
Merge pull request #1814 from phire/worldspace_untangling
...
Move worldpos into it's own varying.
2015-01-12 22:59:21 +01:00
Stevoisiak
cb86db7b68
Minor consistency changes
...
Mostly small changes, like capitalization and spelling
2015-01-12 15:18:18 -05:00
skidau
14ced85d85
Made the CPU thread wait for the GPU thread to swap, when XFB is enabled. May fix some of the "FIFO is overflowed by GatherPipe ! CPU thread is too fast!" errors.
2015-01-12 19:40:43 +11:00
degasus
22e06daf5c
TexCache: recreate the entry on level missmatch
2015-01-11 23:11:04 +01:00
degasus
a9eb08b85d
TexCache: Choose texture based on mipmap count
2015-01-11 22:41:04 +01:00
degasus
744b1c1624
TexCache: rewrite level calculation
2015-01-11 22:23:35 +01:00
degasus
d95e5e2b6f
TexCache: create a const Config struct
2015-01-11 22:23:35 +01:00
degasus
d640453274
TexCache: cleanup max texture level
2015-01-11 22:23:35 +01:00
degasus
1261f5f7f4
TextureCache: inline arguments into texture cache
2015-01-11 22:23:35 +01:00
degasus
2b47df07b6
TexCache: use c++11 syntax for std::map::erase
2015-01-11 22:23:35 +01:00
degasus
1c98a43203
TexCache: clean up frameCount handling
2015-01-11 22:23:35 +01:00
degasus
6ba613fbd3
TexCache: unify global variables
2015-01-11 22:23:35 +01:00
degasus
774596dbed
TexCache: rename OverlapsMemoryRange
2015-01-11 22:23:35 +01:00
degasus
dddcea5a9a
TexCache: don't invalidate efb copys because of config changes
...
We'll loose data on invalidating them. So just keep them until a new copy is done.
A wrong scaled copy is better than no copy if the game doesn't creates a new one.
2015-01-11 22:23:35 +01:00
degasus
38f42da55a
TexCache: remove expanded_width
...
This variable isn't use any more.
2015-01-10 12:22:03 +01:00
degasus
614d058db1
TexCache: don't load tex level 0 on creation
...
This reverts an optimization which isn't worth imo. Every texture uploads have to alloc vram and a staging buffer, so there is no need to do both in the same call.
2015-01-10 12:21:33 +01:00
degasus
8bdbe37c91
TexCache: Wipe pal hash
2015-01-10 11:55:16 +01:00
Markus Wick
f0f8384639
Merge pull request #1785 from degasus/custom_texture
...
VideoCommon: Custom texture handling
2015-01-08 13:29:45 +01:00
Tillmann Karras
4d1face540
Fix indentation
2015-01-07 21:51:47 +01:00
Markus Wick
d8d4c94e07
Merge pull request #1819 from Tilka/cmake
...
CMake: simplify some expressions
2015-01-06 09:27:59 +01:00
degasus
110d494070
VideoCommon: fix deterministic dual core
2015-01-03 21:50:51 +01:00
Tillmann Karras
6bcdb10eee
CMake: simplify some expressions
2015-01-03 13:17:57 +01:00
Scott Mansell
1b771deb56
Move worldpos into it's own varying.
...
Previously it was packed into spare slots in clippos.xy and normal.w,
but it's ugly and more importantly it's causing bugs.
This was discovered during the debugging of a zfreeze branch, which
expected clippos.xy to be xy position coordinates in clipspace (as
the name suggested).
Turns out the stereoscopy shader had also run into this trap, modifying
clippos.x (introducing errors with per-pixel lighting).
This commit has been moved outside of the zfreeze PR for fast merging.
2015-01-03 09:23:09 +13:00
Jules Blok
b816ee1f79
VideoConfig: Define a per-game minimum convergence value instead of a percentage boost.
2015-01-02 17:07:08 +01:00
skidau
9c6795c7b7
Merge pull request #1778 from JMC47/ReadIdleFix
...
Remove AtBreakpoint() from ReadIdle. Fixes Rogue Squadron 2 without breaking Gladius
2015-01-02 12:00:00 +11:00
Markus Wick
ec4dfae333
Merge pull request #1747 from Armada651/intel-workaround
...
OGL: Work around Intel structures bug.
2015-01-01 21:41:09 +01:00
Markus Wick
f5cddd4020
Merge pull request #1790 from Armada651/master
...
VideoConfig: Don't disable stereoscopy if Real XFB is enabled but not in use.
2014-12-30 12:30:23 +01:00
Jules Blok
0860c02258
VideoConfig: Don't disable stereoscopy if Real XFB is enabled but not in use.
2014-12-29 19:15:31 +01:00
Jules Blok
b474c4229d
VertexShaderManager: Turn off the epsilon hack for Nvidia 3D Vision.
2014-12-29 17:05:39 +01:00
Jules Blok
da058b3078
VideoConfig: Fix convergence parameter.
...
Looks like a rebase failed somewhere.
2014-12-29 12:03:59 +01:00
degasus
c6dd5044d6
VideoCommon: make hash independet from hires textures
2014-12-29 10:24:27 +01:00
degasus
f8184858da
VideoCommon: Merge code to generate texture names on dumping
2014-12-29 10:24:27 +01:00
degasus
51bfc4c52a
VideoCommon: rewrite custom textures
2014-12-29 10:24:21 +01:00
Jules Blok
3ed777b0f9
PixelShaderGen: Don't assign to input variables.
2014-12-28 23:37:05 +01:00
Jules Blok
8676891f77
VertexShaderGen: Don't read from output variables.
2014-12-28 23:28:00 +01:00
Jules Blok
3f763e6999
DriverDetails: Remove Intel Structs bug since it doesn't affect us anymore.
2014-12-28 23:28:00 +01:00
Jules Blok
7eb353b3bd
VideoCommon: Don't pass structs between shaders, use the interface blocks instead.
2014-12-28 23:28:00 +01:00
Jules Blok
2c0bee5da9
DriverDetails: Update Intel bug description.
2014-12-28 23:28:00 +01:00
Markus Wick
0f87d9b669
Merge pull request #1781 from Armada651/xfb-fixes
...
D3D: Fix Virtual XFB viewport.
2014-12-28 22:22:27 +01:00
Ryan Houdek
15f074dd21
Merge pull request #1766 from Armada651/enable-stereo
...
Enable stereoscopy settings.
2014-12-28 15:14:53 -06:00
Jules Blok
e1dc033113
Renderer: Cosmetics.
2014-12-28 18:35:23 +01:00
Justin Chadwick
51b26f3397
Remove AtBreakpoint() from ReadIdle. Fixes Rogue Squadron 2 without
...
Breaking Gladius
2014-12-27 19:16:50 -05:00
Jules Blok
86120bfc97
GeometryShaderManager: Set viewport in SetConstants().
...
Setting it in the callback is too early.
2014-12-26 17:58:59 +01:00
Jules Blok
af8ac328e5
Renderer: Use old method of calculating the source rectangle.
2014-12-25 02:37:22 +01:00
Jules Blok
46bb4fd364
FramebufferManagerBase: Remove obsolete parameters.
2014-12-25 00:58:16 +01:00
Jules Blok
31a55384b3
VideoConfig: Rename "StereoMonoEFBDepth" to "StereoEFBMonoDepth"
...
Makes a little bit more sense.
2014-12-24 23:30:40 +01:00
Jules Blok
c424aa1ac6
GeometryShaderManager: Boost convergence value.
...
Most game don't require much granularity regarding the convergence value.
The default convergence was also too low, this commit increases it tenfold.
2014-12-24 23:29:40 +01:00
Jules Blok
70b898e2c6
VideoConfig: Rename Separation to Depth and update descriptions.
...
More accurate since it's not a real IPD and Nvidia also calls it depth.
2014-12-24 23:28:23 +01:00
Jules Blok
9590ea0cf6
VideoConfig: Turn off stereoscopy when Real XFB is enabled.
2014-12-24 18:45:24 +01:00
Jules Blok
4a86234a79
D3D: Support stereoscopic XFB blit to screen.
2014-12-24 18:45:24 +01:00
Jules Blok
b109b31f61
FramebufferManagerBase: Only allocate one layer for Real XFB.
2014-12-24 17:22:23 +01:00
degasus
01cd11a835
OGL: fix ssbo based bbox support
2014-12-22 19:10:35 +01:00
degasus
1efd00227d
VertexLoader: Skip vertices with position index = -1
2014-12-21 14:29:44 +01:00
degasus
325e8e370e
VertexLoader: Merge dummy functions
2014-12-21 14:13:04 +01:00
degasus
7c486a8c24
VertexLoader: Add a VertexLoader pointer to each function call
2014-12-21 14:13:04 +01:00
degasus
7edf6ec4e4
VertexLoader: Add a test loader which compares two vertex loaders
2014-12-21 14:13:04 +01:00
degasus
809117102e
VideoCommon: split VertexLoaderBase from VertexLoader
2014-12-21 14:12:43 +01:00
degasus
a71c8158d9
VertexLoader: remove inlined getters
...
They just blow up the code.
2014-12-21 13:47:43 +01:00
degasus
6e3b2712d2
VideoCommon: Move NativeVertexFormat cache to VertexLoaderManager
2014-12-21 13:47:43 +01:00
degasus
1281798992
VertexLoaderUid: remove operator<
...
Not needed for unordered map.
2014-12-21 13:47:43 +01:00
degasus
ec28a80e00
VideoLoader: remove VAT_*_FRACBITS
...
They are used to remove the flush amounts, but as we don't
flush anymore on vertex loader changes (only on native
vertex format right now), this optimization is now unneeded.
This will allow us to hard code the frac factors within the
vertex loaders.
2014-12-21 13:47:42 +01:00
Ryan Houdek
59e1a8a1a0
Merge pull request #1736 from degasus/osd
...
OSD
2014-12-20 23:21:24 -06:00
degasus
a858db1d27
OGL: move osd warning for not supported stereo mode into config validation
2014-12-20 19:54:00 +01:00
degasus
ed9c14e0d5
OGL: Fix OGL3 with stereo enabled
2014-12-20 19:13:34 +01:00
degasus
3f9b52e555
OGL: draw shadows within rasterfont itself
2014-12-20 13:31:41 +01:00
Jules Blok
d09af2dbba
GeometryShaderManager: Set stereo parameters in a SetConstants() call.
...
Doing it in SetProjectionChanged() is too early because the projection type is not set yet.
2014-12-20 13:16:26 +01:00
degasus
fb177ca04e
VideoCommon: merge debug test generators
2014-12-20 13:06:29 +01:00
degasus
ffa014dd48
VideoCommon: merge debug info generators
2014-12-20 12:25:10 +01:00
Dolphin Bot
a560d8f150
Merge pull request #1716 from Armada651/geom-wireframe
...
VideoCommon: Handle wireframe mode in the geometry shader.
2014-12-20 12:22:40 +01:00
Jules Blok
bc3ed44050
OGL: Disable geometry shaders on Intel's Windows drivers due to broken interface blocks.
2014-12-19 23:56:02 +01:00
Ryan Houdek
b30802e2f0
Merge pull request #1721 from Sonicadvance1/fix_adreno_400
...
Fixes Adreno 400 performance.
2014-12-19 15:55:50 -06:00
Jules Blok
0d79e8f32b
VideoCommon: Don't specify the redundant in/out qualifier if GL_ARB_shading_language_420pack is supported.
...
Some driver developers interpreted "can" as "must" in the OpenGL specs. (I'm looking at you AMD)
2014-12-19 22:45:39 +01:00
Ryan Houdek
8c0e26d969
Minor changes to DriverDetails
...
Fixes a typo where the official IMGTec drivers were said to be the OSS driver support.
Removes Mali GPU family detection just like I removed the Adreno family detection.
We don't support Mali Utgard anyway.
If we need family detection we can properly add it, right now it isn't needed.
2014-12-19 21:41:12 +00:00
Ryan Houdek
0fec69001b
Fixes Adreno 400 slow performance.
...
Adreno 300 and 400 have the same video driver performance issues because they are very similar architectures which use basically the same thing with
everything.
There isn't any need to detect the family of the driver with Qualcomm anyway. If we ever need family specific bugs then we can implement real support
for that.
Performance issue on Adreno 400 series was due to us only detecting Adreno 300 series, and with Adreno 400 it wouldn't use the bugs, which would cause
it to use glBufferSubData, causing the huge performance hit.
2014-12-19 21:31:37 +00:00
Jules Blok
531b3941ff
GeometryShaderGen: Re-emit the first vertex when wireframe mode is enabled.
2014-12-19 14:24:08 +01:00
Jules Blok
1b9fe70d7c
VideoCommon: Make IsPassthrough() a function of the ShaderUid.
2014-12-19 14:10:53 +01:00
Jules Blok
925bbcb85b
VideoCommon: Handle wireframe mode in the geometry shader.
2014-12-19 14:10:52 +01:00
Jules Blok
cdd9e07522
VideoCommon: Add in/out qualifiers to centroid storage qualifier.
...
Fixes shaders for GPUs that don't support GL_ARB_shading_language_420pack.
2014-12-19 12:19:15 +01:00
Ryan Houdek
02f22152be
Merge pull request #1706 from Armada651/line-width
...
VideoCommon: Merge LineGeometryShader into GeometryShaderGen.
2014-12-18 19:43:12 -06:00
Jules Blok
e7e8a4f1cb
GeometryShaderGen: Don't use the reserved keyword "point" in D3D.
2014-12-19 02:24:41 +01:00
Markus Wick
c7b809d46b
Merge pull request #1669 from degasus/swvertexloader
...
Video Software Vertex Loader
2014-12-18 19:30:56 +01:00
Jules Blok
8dc3653ac9
VideoCommon: Don't pass structs between shader stages when geometry shaders are unsupported.
2014-12-18 00:37:16 +01:00
Jules Blok
69df23f725
VideoCommon: Only use interface blocks when geometry shaders are supported.
2014-12-18 00:37:14 +01:00
Jules Blok
1af3d8447a
GeometryShaderManager: Set the constants within the callbacks.
2014-12-18 00:37:09 +01:00
Jules Blok
7e8f96f0d3
OGL: Don't generate a geometry shader if the backend doesn't support it.
...
This commit repurposes the bSupportsStereoscopy flag as the bSupportsGeometryShaders flag.
2014-12-18 00:36:49 +01:00
Jules Blok
782a5adb94
VideoCommon: Pass interface blocks between shader stages to resolve naming conflicts.
2014-12-18 00:36:49 +01:00
Jules Blok
bd6d229733
GeometryShader: Disable the geometry shader stage if it is a pass-through shader.
2014-12-18 00:36:48 +01:00
Jules Blok
f2e52b46c3
GeometryShaderGen: Cosmetics.
2014-12-18 00:36:47 +01:00
Jules Blok
0ac7103391
GeometryShaderGen: Pack uniforms more tightly.
2014-12-18 00:36:40 +01:00
Jules Blok
d115048615
GeometryShaderGen: Remove redundant declaration.
2014-12-15 23:20:56 +01:00
Jules Blok
16af00d515
GeometryShaderGen: Use signed integers for the texture offset flags.
2014-12-15 23:05:16 +01:00
Jules Blok
861fa1af23
GeometryShaderGen: Declare a prototype for EmitVertex().
2014-12-15 22:47:43 +01:00