Mathew Maidment
e9713e19d7
Merge pull request #3561 from lioncash/render
...
RenderBase: Get rid of an undefined global extern
2016-01-24 17:17:48 -05:00
Mathew Maidment
b451b722fb
Merge pull request #3562 from lioncash/cpmem
...
CPMemory: Remove unnecessary extern specifiers from functions
2016-01-24 17:17:31 -05:00
degasus
4295751662
Fifo: More comments for SyncGPU functions.
2016-01-24 11:06:01 +01:00
degasus
cf4478dc92
Fifo: Fix SyncGPU.
...
CBoot::BootUp() did call CoreTiming::Advance which itself blocks on the GPU,
but the GPU thread wasn't started already. This commit moves the SyncGPU
initialization into the Fifo.cpp file and call it after BootUp().
2016-01-24 11:06:01 +01:00
Lioncash
e187c55bdd
OpcodeDecoder: Add namespace
2016-01-24 01:31:36 -05:00
Lioncash
758cd796a7
CPMemory: Remove unnecessary extern specifiers from functions
...
These are defined in CPMemory.cpp, as expected. There's no need for
extern
2016-01-24 01:17:43 -05:00
Lioncash
508c521f10
RenderBase: Get rid of an undefined global extern
...
This doesn't have an implementation, so into
the trash it goes.
2016-01-24 01:07:24 -05:00
Lioncash
59d5935067
TextureCacheBase: Simplify init/comparison of TCacheEntryConfig
2016-01-23 22:57:05 -05:00
Lioncash
f45e1bff37
VideoInterface: Change a global into a translation-unit local variable
2016-01-21 00:39:24 -05:00
Pierre Bourdon
f98176f38a
Merge pull request #3528 from Shugyousha/codedframedeprecated
...
AVIDump: coded_frame is deprecated
2016-01-20 19:40:31 +01:00
Pierre Bourdon
be1a9e4231
Merge pull request #3518 from Sonicadvance1/blacklist_sandy
...
Blacklist Sandy Bridge on mesa from using geometry shaders.
2016-01-20 19:32:56 +01:00
Ryan Houdek
3dda36bc5b
Blacklist Sandy Bridge on mesa from using geometry shaders.
2016-01-20 12:13:21 -06:00
Silvan Jegen
59f72d3571
AVIDump: coded_frame is deprecated
...
Setting this is not required anymore as of commit 40cf1bbacc622 of
FFmpeg.
For users of older versions of the libavcodec library we guard the
change with an #if.
2016-01-19 20:38:21 +01:00
Jules Blok
51a36f27e0
Merge pull request #3448 from Armada651/depth-epsilon
...
VertexShaderManager: Add an epsilon hack to the perspective projection.
2016-01-18 20:56:18 +01:00
Pierre Bourdon
24c228c6e9
Merge pull request #3523 from lioncash/video
...
VideoCommon: Header cleanup
2016-01-18 02:24:50 +01:00
Lioncash
d9fec92628
VideoCommon: Header cleanup
...
Also remedies places where the video backends and core rely on things
being indirectly included.
2016-01-17 20:11:45 -05:00
Stenzek
edebadc093
PixelShaderGen: Use bitwise AND for wrapping indirect texture coordinates
...
(x % y) is not defined in GLSL when sign(x) != sign(y).
This also has the added benefit of behaving the same as sampler wrapping modes, in regards to negative inputs.
2016-01-15 19:46:38 +10:00
Jules Blok
d54291f2e8
Merge pull request #3506 from stenzek/odd-mips
...
TextureCacheBase: Change CalculateLevelSize to match D3D/OGL sizes
2016-01-13 23:10:18 +01:00
Jules Blok
a307883069
Merge pull request #3505 from Armada651/invert-conversion
...
TextureConversionShader: Also invert color encoders if they're used to encode depth.
2016-01-13 12:58:44 +01:00
Stenzek
1f3b90d70a
TextureCacheBase: Change CalculateLevelSize to match D3D/OGL sizes
...
This was causing crashes/driver resets when odd-dimension textures were
being loaded, due to the size we were uploading being larger than the size
of the higher-level texture calculated by the runtime.
2016-01-13 12:54:38 +10:00
Jules Blok
daabd88d69
TextureConversionShader: Also invert color encoders if they're used to encode depth.
2016-01-13 01:08:27 +01:00
degasus
aa430c10d5
VideoState: Simplify dummy wrapper.
2016-01-12 23:28:26 +01:00
degasus
5f244abf28
Fifo: Create a "Fifo" namespace.
2016-01-12 23:28:26 +01:00
degasus
c3481a576b
VideoBackend: Remove simple wrapper functions.
2016-01-12 23:28:26 +01:00
degasus
0c92603fd5
Merge VideoBackendHardware into VideoBackend.
...
And rename it to VideoBackendBase because of conflicts within the backends itself.
2016-01-12 23:18:58 +01:00
Ryan Houdek
5a549ef663
[Android] Add support for rotation and minimizing the application
2016-01-10 13:00:32 -06:00
Ryan Houdek
b4eb5d8e3f
Disable geometry shaders on mesa AMD/ATI drivers.
...
Causes misrenderings in games that uses them.
2016-01-09 15:09:37 -06:00
Ryan Houdek
3f15aa4b57
Add support for framedumping to OpenGL ES.
2016-01-09 00:21:20 -06:00
Scott Mansell
74b772c3be
Avoid the "Memory stride too small" assert
...
EFB2Tex still has no idea what to do with these weird textures so we
simply disable EFB2Tex when one is encountered.
2016-01-09 18:30:29 +13:00
Pierre Bourdon
39971ec039
Merge pull request #3472 from phire/TVs_dont_have_pixels
...
Rework the aspect ratio calculation (Fixes 240p mode)
2016-01-09 04:27:16 +01:00
Pierre Bourdon
bf1c53a6e8
Merge pull request #3451 from RisingFog/libav
...
Use ffmpeg for Windows Video Dumping instead of VFW
2016-01-09 01:01:05 +01:00
Chris Burgener
66595b0ac9
Force XVID FourCC for MPEG4 output
2016-01-08 10:22:19 -05:00
Scott Mansell
9c0dae47ca
Normalize aspect ratio calculations to 4:3
...
Video Interface simply isn't aware about widescreen.
Instead, the render class can multiply by 1.3333333 to get
the 16:9 aspect ratio.
2016-01-08 13:31:48 +13:00
Chris Burgener
c34fb3edf0
Use ffmpeg for Windows Video Dumping instead of VFW
2016-01-07 18:37:58 -05:00
Pierre Bourdon
22555312de
Merge pull request #3464 from Armada651/stereo-warnings
...
VideoConfig: Don't give warnings for per-game stereoscopy parameters.
2016-01-07 00:35:14 +01:00
Jules Blok
1e111421e9
VideoConfig: Don't give warnings for per-game stereoscopy parameters.
2016-01-06 22:21:12 +01:00
degasus
efbe5bc4b6
VideoSW: Use more VideoCommon
...
Now we require lots of empty functions, but this removes by far more duplicated code.
2016-01-06 22:10:29 +01:00
JosJuice
03091ce180
HiresTextures: Refactor getting directory
2016-01-06 19:35:16 +01:00
JosJuice
42237dc511
Merge pull request #3456 from JosJuice/custom-texture-all-regions
...
HiresTextures: Also look for directories with 3-character IDs
2016-01-06 14:43:49 +01:00
JosJuice
a2b45a4b82
HiresTextures: Also look for directories with 3-character IDs
...
People who make texture packs usually release them using a specific ID
(for instance SX4E01). Users who have a different version of the game
(like the PAL version SX4P01) then need to rename the custom texture
folder to match. This is a lot simpler than renaming every texture file,
as was required with the old texture format, but it's still something
that users can forget to do. To make that unnecessary, this change makes
it possible to use three-character region-free IDs for custom texture
folders, similarly to how game INIs can use three-character IDs. Once
most people have updated to Dolphin versions that include this change,
those who make texture packs will be able to name them with
three-character IDs, removing the need for users to rename anything.
2016-01-06 14:33:36 +01:00
degasus
3ff4ec275a
Throttler: Rename "framelimiter" to "emulation speed".
...
We don't throttle by frames, we throttle by coretiming speed.
So looking up VI for calculating the speed was just very wrong.
The new ini option is a float, 1.0f for fullspeed.
In the GUI, percentual values are used.
2016-01-05 23:39:05 +01:00
Markus Wick
0da8bd0f61
Merge pull request #3444 from RisingFog/avidumpfixes
...
AVIDump Clean Up and Fixes
2016-01-05 10:38:07 +01:00
Jules Blok
358e458a93
VertexShaderManager: Add an epsilon hack to the perspective projection.
2016-01-05 01:24:54 +01:00
Mathew Maidment
0509292f86
Merge pull request #3431 from stenzek/shadercache
...
ShaderGen: Remove virtual methods and string from ShaderGeneratorInterface.
2016-01-04 19:11:14 -05:00
Markus Wick
ca7160f714
Merge pull request #3434 from lioncash/enum
...
OnScreenDisplay: Make CallbackType an enum class
2016-01-04 13:47:22 +01:00
Chris Burgener
fe4e99d6bf
AVIDump Clean Up and Fixes
2016-01-03 18:39:52 -05:00
Lioncash
01f99a04a2
VideoBackend: Get rid of a boolean global
...
Also gets rid of global headers
2016-01-02 18:03:28 -05:00
Lioncash
edda018d54
OnScreenDisplay: Make CallbackType an enum class
2016-01-02 14:57:55 -05:00
Stenzek
617f9d9532
ShaderGen: Remove virtual methods from ShaderGeneratorInterface, move string buffer to ShaderCode
...
This fixes the crashes occuring at startup with a non-empty shader cache.
Because LinearDiskCache reads/writes to the storage of ShaderUid, ShaderUid must be trivially copyable.
Additionally, adds a static assert to LinearDiskCache to ensure this doesn't happen in the future.
The initialization of ShaderUid data has been moved to the code generation functions, so the above condition holds true.
2016-01-02 17:35:06 +10:00
Ryan Houdek
721d319c7b
Add a comment to DriverDetails about Qualcomm failing our alpha tests.
2015-12-31 10:14:14 -06:00
Markus Wick
330329254c
Merge pull request #3361 from stenzek/d3d-vectored-efb-pokes
...
D3D: Implement vectored efb pokes
2015-12-30 15:27:24 +01:00
Markus Wick
8cf078a1a0
Merge pull request #3407 from phire/fix_assert
...
TextureCache, fix an incorrect assert.
2015-12-29 20:58:24 +01:00
Lioncash
e082ebad1a
HiresTextures: Remove the need to explicitly free SOIL allocated data
2015-12-29 08:40:17 -05:00
Lioncash
1d01fbd217
HiresTextures: Make Load return a unique_ptr
2015-12-29 08:40:15 -05:00
Lioncash
6a9e4511b5
HiresTextures: Remove unnecessary header includes
2015-12-29 08:40:07 -05:00
Scott Mansell
d8e5d8659e
TextureCache, fix an incorrect assert.
2015-12-29 14:25:31 +13:00
Markus Wick
aabcd441d9
Merge pull request #3381 from Armada651/revert-3076
...
Revert "Merge pull request #3076 from void-ghost/stereo3d_presets"
2015-12-28 10:18:32 +01:00
Markus Wick
281860eafa
Merge pull request #3400 from lioncash/shadergen
...
ShaderGen: Get rid of static buffers
2015-12-28 10:09:11 +01:00
Lioncash
c5f123a70b
ShaderGenCommon: Remove unnecessary static keywords
...
Functions defined in a header should be inline only, otherwise program
code is generated for every other file that calls said functions
2015-12-26 18:02:54 -05:00
Lioncash
c151fe582f
ShaderGenerators: Remove unnecessary inline keywords
...
Static by itself is sufficient
2015-12-26 17:57:32 -05:00
Lioncash
8ce3a4aa70
ShaderGeneration: Get rid of static buffers
2015-12-26 17:01:54 -05:00
Scott Mansell
bed102ae89
Revert "ShaderGen: Toggle value of uninitialized color."
2015-12-27 02:28:29 +13:00
Lioncash
a8ab156a29
Fifo: Convert define into constant
...
Also moves it to the cpp file where it's used.
2015-12-25 16:07:04 -05:00
Scott Mansell
0216879d3e
Revert "Config Hotfix: Prevent per-game settings (ie. GameINI) being stored to the global user configuration."
2015-12-24 18:25:22 +13:00
Lioncash
8371c428cd
VertexLoaderBase: Get rid of explicit delete and new
2015-12-22 20:09:54 -05:00
Mathew Maidment
3cf16f8573
Merge pull request #3382 from lioncash/render
...
Render: Get rid of explicit new and delete
2015-12-22 19:26:26 -05:00
Lioncash
da0e647346
Render: Get rid of explicit new and delete
2015-12-22 19:10:05 -05:00
Jules Blok
8bda12bcfd
Revert "Merge pull request #3076 from void-ghost/stereo3d_presets"
...
This reverts commit 81414b4fa2
, reversing
changes made to b926061f64
.
Conflicts:
Source/Core/DolphinWX/Frame.cpp
Source/Core/VideoCommon/VideoConfig.cpp
Source/Core/VideoCommon/VideoConfig.h
2015-12-23 00:35:19 +01:00
Jules Blok
7b4c4bfc5e
VideoConfig: Fix stereoscopy preset settings.
...
PR #3076 looks to be pretty poor quality and should be reverted.
2015-12-22 23:24:05 +01:00
Jules Blok
fa207ef8a0
VideoConfig: Move all stereoscopy options to the stereoscopy section.
2015-12-22 23:16:27 +01:00
Jules Blok
c49bb57e09
VideoConfig: Move all GameINI stereoscopy options to the stereoscopy section.
2015-12-22 23:16:27 +01:00
Scott Mansell
1ce9c33f6c
Merge pull request #3373 from JosJuice/temp-settings-ini-hotfix
...
Config Hotfix: Prevent per-game settings (ie. GameINI) being stored to the global user configuration.
2015-12-22 12:37:22 +13:00
Admiral H. Curtiss
3149140052
Config: Hotfix to prevent per-game settings from ie. GameINIs being stored to the global user configuration.
2015-12-22 00:16:29 +01:00
Lioncash
f448c6e291
FramebufferManagerBase: Get rid of explicit delete and new
2015-12-21 15:57:48 -05:00
Lioncash
f295182833
VideoBackends: Simplify initialization and deinitialization of resources
...
Approximately three or four times now, the issue of pointers being
in an inconsistent state been an issue in the video backend renderers
with regards to tripping up other developers.
Global (ugh) resources are put into a unique_ptr and will always have a
well-defined state of being - null or not null
2015-12-20 22:40:37 -05:00
Stenzek
a61fc372bb
VideoCommon: Change PokeEFB to take a pointer rather than a vector
...
This saves allocating a vector for the pass-through path.
2015-12-20 14:42:14 +10:00
Pierre Bourdon
de21da5fb2
Merge pull request #3315 from degasus/test
...
ShaderGen: Toggle value of uninitialized color.
2015-12-18 14:21:37 +01:00
Scott Mansell
ebe3c49c5f
Merge pull request #3332 from degasus/master
...
MSAA: Store samples in ini files.
2015-12-19 01:37:10 +13:00
Markus Wick
e15b6e1a37
Merge pull request #3162 from lioncash/rast
...
Software: Minor changes to Rasterizer
2015-12-15 18:22:42 +01:00
Markus Wick
e4b83d17bf
Merge pull request #3270 from JosJuice/more-translations
...
Mark more strings for translation
2015-12-15 18:13:26 +01:00
degasus
e26d9f7c35
MSAA: Store samples in ini files.
2015-12-15 09:41:01 +01:00
Jules Blok
ee657c04fe
VideoConfig: Change convergence setting to percentage value.
2015-12-13 22:58:16 +01:00
degasus
7b34319e53
ShaderGen: Toggle value of uninitialized color.
...
SMS seems to need 0, no regressions either.
2015-12-06 12:39:18 +01:00
Lioncash
7762d68c4b
Rasterizer: Mark some references as const
2015-12-06 02:51:36 -05:00
Pringo
b6f16b3049
Remove Google Code Reference and Fix Grammar
2015-12-03 18:20:59 -08:00
Markus Wick
52204c7296
Merge pull request #3299 from phire/JJ_Abrams
...
Fix lens flares in Mario Kart Wii.
2015-12-01 09:07:09 +01:00
Andrew Wickham
d9f1523a7b
Make cast from int to float explicit in shader
...
This should fix this panic message I saw when playing Super Mario Strikers:
Failed to compile pixel shader [...]: error C7011: implicit cast from "int" to "float"
2015-11-30 13:35:46 -08:00
Scott Mansell
03461915a7
Fix lens flares in Mario Kart Wii.
2015-12-01 05:25:38 +13:00
degasus
0b02dc4f81
FramebufferManager: check for g_framebuffer_manager
2015-11-24 22:48:56 +01:00
degasus
0f26cdd31b
FramebufferManager: Allow CreateXFBSource to return nullptr
2015-11-24 22:48:55 +01:00
degasus
c9dc5fb376
TextureCache: Allow the backends to return nullptr for textures.
2015-11-24 22:48:55 +01:00
degasus
fc00598785
NativeVertexFormat: Inline Initialize in contructor
...
They were only called at once, so no need to seperate them.
This also removes the only dereference of the NativeVertexFormat in VideoCommon, so backends may just return nullptr.
2015-11-24 22:48:49 +01:00
degasus
df799dd124
VideoCommon: Create default implementation for state setters
...
It's fine to pull those within the backends, so there is no need to enforce them to implement this interface.
2015-11-24 22:39:10 +01:00
JosJuice
74ea765427
Mark more strings for translation
2015-11-20 11:33:47 +01:00
degasus
ee2223c4a0
TextureCache: Fix crash for invalid textures.
2015-11-17 23:29:54 +01:00
degasus
087ba5268a
TextureCache: Rewrite EFB Copy control flow
2015-11-15 12:02:41 +01:00
degasus
dcdf8fd3ce
TextureCache: Split efb2ram from efb2tex
2015-11-15 11:59:52 +01:00
Scott Mansell
636bedb207
XFMem: Don't warn on writes of zero to unknown registers.
2015-11-08 14:59:55 +13:00
Tillmann Karras
2ad901b2da
VideoCommon: drop unused variable/setter
2015-11-06 15:43:58 +01:00
Tillmann Karras
81d9cce70c
VideoCommon: rename TextureCache to TextureCacheBase
2015-11-06 15:43:58 +01:00
Scott Mansell
51c984dde3
Remove the "Show EFB Copy Regions" debug option.
...
It was only implemented in OpenGL, though the option was visible in both
backends, leading to memory leaks if you enabled it in DirectX.
And it wasn't particularly useful as a debug feature as it only showed
where in the EFB the copies were taken from, not what format it was, or
what the copy was used for, or what content was in the EFB at that point
in time.
Also, it stretched the copy regions relative to the window, so the
on-screen regions don't even line up with the window unless the game used
the full EFB (some pal games) and you game image stretched to the full
window.
2015-11-05 18:15:46 +13:00
Scott Mansell
ba7b7522be
BPStructs: add debug info for texture setup.
2015-11-05 00:13:25 +13:00
Scott Mansell
e161e714c7
Merge pull request #3226 from Tilka/shadergen
...
VideoCommon: return code/uid from shader gens
2015-11-04 13:42:49 +13:00
Tillmann Karras
bc38892db7
DriverDetails: remove BUG_BROKENINFOLOG leftovers
...
It was removed in 9618738278
.
2015-11-03 18:50:44 +01:00
Tillmann Karras
71d1eb3c31
VideoCommon: return code/uid from shader gens
...
rather than passing in non-const references
2015-11-03 14:40:23 +01:00
Ryan Houdek
c04358fbe2
Merge pull request #3222 from Tilka/vertexmanagerbase
...
VideoCommon: rename VertexManager to VertexManagerBase
2015-11-03 08:34:30 -05:00
Sintendo
c4b56f06f9
Fix a few typos
2015-11-02 21:17:43 +01:00
Tillmann Karras
a656c05be2
VertexManagerBase: fix indentation
2015-11-02 11:53:54 +01:00
Tillmann Karras
c52c73f762
VideoCommon: VertexManager -> VertexManagerBase
...
It may be a bit weird to see calls to static functions in
VertexManagerBase now, but at least it's easier to see what's going on.
2015-11-02 11:53:54 +01:00
Tillmann Karras
983978ee66
VideoCommon: flush vertex manager if components change
2015-11-01 22:39:31 +01:00
Tillmann Karras
7066689131
ShaderCaches: remove unneeded typedefs
2015-10-29 14:43:05 +01:00
Tillmann Karras
b0d5b4483e
VertexLoaderX64: optimize more color swizzles
...
Based on https://gist.github.com/rygorous/c5dba8c6c75bc83aa4ae , but with
a small tweak and a somewhat related change for the 565 case.
2015-10-25 14:51:07 +01:00
Scott Mansell
bd20dd3962
Merge pull request #3188 from lioncash/texcache
...
TextureCacheBase: Change CacheLinesPerRow to BytesPerRow
2015-10-25 17:46:43 +13:00
Scott Mansell
4c5c33c514
VertexShader: Remove 'special case' that has been disabled forever.
2015-10-23 19:02:51 +13:00
Tillmann Karras
33784456a5
VertexLoaderTester: drop superfluous newlines
2015-10-22 16:31:02 +02:00
Tillmann Karras
2a58802c00
VertexLoaderManager: symbolize magic constant
2015-10-22 16:31:02 +02:00
Tillmann Karras
d80124ab59
VertexLoaderX64: optimize 4444 color conversion
...
https://gist.github.com/rygorous/75133a50c60f9243366e
2015-10-22 16:30:56 +02:00
Lioncash
c28e3affc5
TextureCacheBase: Change CacheLinesPerRow to BytesPerRow
2015-10-22 08:14:43 -04:00
mimimi085181
ff709247e2
Check the hashes of efb copies before applying them as partial texture updates
2015-10-18 16:36:38 +02:00
Scott Mansell
e7b2a22225
Support Conservative Depth as a fallback for EarlyZ
...
Allows Mesa based drivers to support ZCompLoc
2015-10-18 01:46:54 +13:00
Scott Mansell
ac8976689b
Merge pull request #3177 from Tilka/fix_warnings
...
PixelShaderGen: silence -Wformat-security warnings
2015-10-17 17:44:29 +13:00
flacs
63b08618c2
Merge pull request #3174 from ShadowsFriend/generic_build_fix
...
VideoCommon: Add includes for generic build
2015-10-17 05:08:30 +02:00
Tillmann Karras
1df455bd13
PixelShaderGen: silence -Wformat-security warnings
2015-10-17 05:05:50 +02:00
Lioncash
c756025902
Core: Move a global into a namespace
2015-10-16 22:52:41 -04:00
Ilia Mirkin
2fc2b82963
VideoCommon: teach gcc to type-check the arguments fed to Write()
...
Note that the "this" implicit argument counts as 1, which is why all the
printf arguments are shifted over one.
2015-10-16 18:20:37 -04:00
Ilia Mirkin
5380fd9dba
VideoCommon: fix variable types fed to Write() function
2015-10-16 18:20:36 -04:00
Christian Widmer
252a3d16c2
VideoCommon: Add includes for generic build
...
On x86_64 and arm64 builds Common/MsgHandler.h and Common/Logging/Log.h are
indirectly included through the corresponding VertexLoaders, Emitters
and lastly Assert.h. Because the generic build does not build a vertex
loader JIT it does not include those and fails at compile time.
Thanks to HdkR and mibofra!
2015-10-16 20:18:27 +02:00
Markus Wick
d12b026ecb
Merge pull request #3165 from mimimi085181/partial-texture-updates-same-offset
...
Do not try to load strided efb copies or ones with wrong dimensions
2015-10-16 10:02:36 +02:00
Lioncash
419fed3952
VertexShaderManager: Get rid of other magic constants
2015-10-15 23:41:42 -04:00
Lioncash
b5b304cff2
VertexShaderManager: Get rid of float pointer casts
2015-10-15 23:34:54 -04:00
mimimi085181
af28934703
Do not delete strided efb copies on load
...
This hopefully allows to use partial texture updates with strided efb copies that start at the same offset as the loaded texture
2015-10-15 00:45:55 +02:00
flacs
b0bbe52cc9
Merge pull request #3164 from phire/samplerArrays
...
PixelShaderGen: Use arrays of texture samplers.
2015-10-12 18:44:14 +02:00
Tillmann Karras
9f8981c7c0
VertexLoaderUtils: remove simple wrapper functions
2015-10-11 23:40:50 +02:00
Scott Mansell
645e4cbbee
PixelShaderGen: Use arrays of texture samplers.
2015-10-12 05:06:39 +13:00
Tillmann Karras
0f1b287402
Misc. style fixes
2015-10-10 17:44:42 +02:00
Rohit Nirmal
18f0831861
VideoCommon: Silence -Wsign-compare warnings.
2015-10-03 20:32:16 -05:00
shuffle2
81414b4fa2
Merge pull request #3076 from void-ghost/stereo3d_presets
...
Stereo3d presets
2015-10-03 18:10:23 -07:00
Lioncash
5464e698fc
Merge pull request #3102 from rohit-n/build-pch
...
Fix building with PCH disabled.
2015-10-03 13:30:51 -04:00
Scott Mansell
58d893e56f
Merge pull request #3075 from waddlesplash/no-regexp
...
FileSearch: Don't use RegExes, just do string comparisons.
2015-10-02 04:00:23 +13:00
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