mimimi085181
cdbd9863b4
Keep textures that are overwritten by efb copies, if the stride matches
...
This is supposed to get efb2tex to the same texture as efb2ram, by applying the related efb copies as updates after each other, in the order of their creation.
2017-08-06 03:13:57 +02:00
mimimi085181
4e8ff42503
Do not load overwritten textures by hash
...
In this case, comparing the hash is not enough to check, if two textures are identical.
2017-08-06 03:13:57 +02:00
mimimi085181
a21ac22e07
fix stored memory stride for normal textures
2017-08-06 03:13:57 +02:00
Léo Lam
e58ba76f07
Don't force the aspect ratio in GameINIs
...
Instead, add a SuggestedAspectRatio option which tells Dolphin which
aspect ratio to use when the aspect ratio option is set to Auto.
2017-08-05 14:27:16 +08:00
N.E.C
c3a57bbad5
Video: Clearly separate Texture and EFB Copy formats
...
Improve bookkeeping around formats. Hopefully make code less confusing.
- Rename TlutFormat -> TLUTFormat to follow conventions.
- Use enum classes to prevent using a Texture format where an EFB Copy format
is expected or vice-versa.
- Use common EFBCopyFormat names regardless of depth and YUV configurations.
2017-08-03 18:35:29 -07:00
Stenzek
7f88711186
Vulkan: Add a driver bug for NV when MSAA is enabled
...
This causes the card to lock up when vkCmdClearAttachments is called,
when multisampling is enabled. Seems to be restricted to Maxwell and
newer?
2017-08-03 17:40:15 +10:00
Stenzek
d0bcdc7f89
Merge pull request #5858 from stenzek/ubershader-6-bit-color
...
Ubershaders: Fix 6-bit color truncation not being applied
2017-08-02 20:10:34 +10:00
Stenzek
fe65b26d53
Merge pull request #5834 from stenzek/bc7
...
Support loading BC7 (BPTC) textures from DDS files
2017-08-01 12:39:19 +10:00
Stenzek
63305e9173
HiresTextures: Support loading BC7 (BPTC) from DDS files
2017-08-01 11:59:38 +10:00
Stenzek
852e30bb8c
Ubershaders: Fix 6-bit color truncation not being applied
2017-08-01 00:01:09 +10:00
Stenzek
d62dcd397d
VideoConfig: Drop force vertex/pixel ubershader settings
...
This was mainly included for debugging, but could end up being confusing
for users, as well as polluting the GL program cache with a mix of uber
and specialized shaders if the option was changed.
2017-07-31 23:21:38 +10:00
Stenzek
b154edb4fb
VideoCommon: Move WM_USER_CREATE message to after backend initialization
...
Fixes the mouse cursor being left visible after ubershader
precompilation when the hide option is checked.
2017-07-30 17:43:59 +10:00
Stenzek
d54ca2a16a
PixelShaderGen: Don't include host early z support in UID
...
Disable it at shader generation time instead. This way the UIDs are
sharable.
2017-07-30 17:43:59 +10:00
Stenzek
e968c191ff
Ubershaders: Support per-pixel lighting
2017-07-30 17:43:59 +10:00
Stenzek
c8f31656cb
VideoBackends: Support a different number of threads for precompiling
...
At runtime, we only really want a single shader compiler thread.
However, for initial boots, we can use a higher number to speed things
up.
2017-07-30 17:43:59 +10:00
Stenzek
e17efb1d8d
ShaderGen: Use consistent variable names for texture coordinates
2017-07-30 17:43:59 +10:00
Stenzek
25338c53e0
NativeVertexFormat: Drop unused virtual method SetupVertexPointers
2017-07-30 17:43:59 +10:00
Stenzek
81b4ed2a81
Vulkan: Uber shader support
2017-07-30 17:43:59 +10:00
Stenzek
cd502990fa
OGL: Uber shader support
2017-07-30 17:43:59 +10:00
Stenzek
901bf9c257
VideoConfig: Add config options for ubershaders
2017-07-30 17:43:59 +10:00
Stenzek
745d541527
ShaderGen: Implement vertex ubershaders
2017-07-30 17:43:59 +10:00
Stenzek
7d78cf0f6f
ShaderGen: Implement pixel ubershaders
2017-07-30 17:43:59 +10:00
Stenzek
07591e7d5c
PixelShaderGen: Move header generation to seperate function
2017-07-30 17:43:59 +10:00
Stenzek
c783cd2aaf
GeometryShaderGen: Add UID enumeration functions
2017-07-30 17:43:59 +10:00
Stenzek
38c48ff72e
VertexLoaderManager: Add methods to generate "uber" vertex formats
...
These vertex formats enable all attributes. Inactive attributes are set
to offset=0, and the smallest type possible. This "optimization" stops
the NV compiler from generating variants of vertex shaders.
2017-07-30 17:43:59 +10:00
Stenzek
f48ef65bec
XFMemory: Convert several registers to bitfields
2017-07-30 17:43:59 +10:00
Scott Mansell
479abde9f4
BPMemory: Convert a number of unions to BitFields
2017-07-30 17:43:59 +10:00
Stenzek
0a9574eaa1
VideoCommon: Add AsyncShaderCompiler class implementation
2017-07-30 17:43:59 +10:00
Stenzek
621287e7eb
VideoCommon: Improve precision of FPS counter
2017-07-30 12:38:48 +10:00
Stenzek
3ea9d86faa
ShaderGen: Pass host config to shader generation functions
...
Also moves the host config checks to common.
2017-07-20 17:54:33 +10:00
Stenzek
d01b0bf60f
VideoCommon: Move shader cache filename generation to common
2017-07-20 17:46:59 +10:00
Stenzek
d1381f5021
VideoConfig: Add host config union
...
Contains all host state that can affect shadergen.
2017-07-20 17:46:59 +10:00
Stenzek
82c27182a8
ShaderGen: Remove host state from shader uids
2017-07-20 17:46:59 +10:00
Anthony
ab5a5ee3ea
Merge pull request #5726 from mimimi085181/minimal-tmem-cache-emulation
...
Implement minimal emulation of TMEM caching
2017-07-11 22:49:19 -07:00
Leo Lam
b6c3479bb4
Merge pull request #5720 from JosJuice/file-metadata
...
FileUtil: Redesign Exists/IsDirectory/GetSize
2017-07-11 00:28:34 +02:00
mimimi085181
53663c00b9
Implement minimal emulation of TMEM caching
...
This is a remake of https://github.com/dolphin-emu/dolphin/pull/3749
Full credit goes to phire.
Old message:
"If none of the texture registers have changed and TMEM hasn't been invalidated or changed in other ways, we can blindly reuse the old texture cache entries without rehashing.
Not only does this fix the bloom effect in Spyro: A Hero's Tail (The game abused texture cache) but it will also provide speedups for other games which use the same texture over multiple draw calls, especially when safe texture cache is in use."
Changed the pr per phire's instructions to only return the current texture(s) if none of the texture registers were changed. If any texture register was changed, fall back to the default hashing and rebuilding textures from memory.
2017-07-10 01:49:27 +02:00
Jules Blok
8476d0271d
PixelShaderGen: Add missing inputs.
...
This fixes a linkage warning in D3D because of mismatched inputs.
2017-07-05 22:43:39 +02:00
Jules Blok
179602e921
D3D: Add quad-buffer stereoscopy support.
2017-07-05 22:43:39 +02:00
JosJuice
5ca3aee00a
FileUtil: Add a class for Exists/IsDirectory/GetSize
...
Some code was calling more than one of these functions in a row
(in particular, FileUtil.cpp itself did it a lot...), which is
a waste since it's possible to call stat a single time and then
read all three values from the stat struct. This commit adds a
File::FileInfo class that calls stat once on construction and
then lets Exists/IsDirectory/GetSize be executed very quickly.
The performance improvement mostly matters for functions that
can be handling a lot of files, such as File::ScanDirectoryTree.
I've also done some cleanup in code that uses these functions.
For instance, some code had checks like !Exists() || !IsDirectory(),
which is functionally equivalent to !IsDirectory(), and some
code was using File::GetSize even though there was an IOFile
object that the code could call GetSize on.
2017-06-29 19:07:29 +02:00
Shawn Hoffman
ed8f293b4f
Change "blocking" BlockingLoop::Stop to give up and die after a timeout.
...
This fixes the global-static fifo object causing infinite hangs in some
cases. Notably, failure to initialize a graphics backend would result in
BlockingLoop::Prepare being called but never executing Run(), leaving the
object in a bad state.
2017-06-25 20:47:30 -07:00
Shawn Hoffman
c5fa470ad8
replace DoFileSearch with optimized version
2017-06-23 17:25:53 -07:00
Lioncash
59a947d41d
AbstractTexture: Return config by const reference
...
Returning by const value isn't really necessary (and usually an indicator const reference was intended).
2017-06-18 23:38:42 -04:00
Lioncash
07cddf6f7f
AbstractTexture: Add missing includes (and remove unnecessary ones)
2017-06-18 23:29:22 -04:00
Lioncash
0c57543205
VideoCommon: Fix VS filter for AbstractTexture.cpp
...
This would cause failures when building with VS.
2017-06-18 22:58:02 -04:00
shuffle2
e63c337830
Merge pull request #5305 from iwubcode/abstract_texture
...
Abstract Texture
2017-06-18 12:57:05 -07:00
Stenzek
68fef47aef
Merge pull request #5314 from stenzek/revert-efb-source-truncation
...
TextureConversionShader: Use integer math for truncating EFB format
2017-06-17 15:21:48 +10:00
Stenzek
adebe2239e
TextureConversionShader: Use integer math for truncating EFB format
2017-06-17 12:17:09 +10:00
Leo Lam
bc9c9b9fe4
Merge pull request #5594 from MerryMage/phack
...
Cleanup Projection Hack
2017-06-16 18:36:39 +02:00
JosJuice
cf94ce6305
Add a namespace to OpenFStream
...
For consistency with the other functions in FileUtil.h.
2017-06-15 21:34:04 +02:00
JosJuice
f09ceaa735
Move IOFile to a separate file
...
Reduces the number of files that need to be recompiled
when making changes to FileUtil.h.
2017-06-15 21:33:50 +02:00
MerryMage
f8a99ca192
VertexShaderManager: Rename projection hack variables
2017-06-15 16:38:10 +01:00
iwubcode
e4896d39bd
Video Backends: Move and rename HostTextureFormat to AbstractTextureFormat
2017-06-13 00:41:56 -05:00
iwubcode
2cdc93f4ab
Video Backends: Split texture cache code out into separate files, introduce 'AbstractTexture'
2017-06-13 00:41:51 -05:00
MerryMage
a0b41c83e7
VideoConfig: Remove bRunning
...
Value was set but not used.
2017-06-11 15:06:12 +01:00
Léo Lam
774587cbd1
VideoConfig: Remove useless header includes
2017-06-10 20:25:27 +02:00
Léo Lam
0e85c47237
VideoConfig: Remove manual panic alert setting load
...
This code hadn't been touched since 2010. Nowadays, the panic alert
setting is loaded by ConfigManager and applied in UICommon.
VideoConfig has no business messing with it.
2017-06-10 20:24:18 +02:00
Shawn Hoffman
5480efdff2
video: change multisample/AA setting to u32
2017-06-07 20:20:25 -07:00
Shawn Hoffman
9357cee2ef
do not assign in conditional statements
2017-06-07 20:09:44 -07:00
Shawn Hoffman
e6c15e993b
quiet some sign-conversion-in-parameter warnings
2017-06-07 20:09:43 -07:00
Shawn Hoffman
e1a3e41bf3
fix various instances of -1 being assigned to unsigned types
2017-06-07 19:52:07 -07:00
Shawn Hoffman
be7c6a0819
msvc: disable warning about using setjmp w/c++ objects in scope
2017-06-07 19:52:07 -07:00
shuffle2
c8166951a0
Merge pull request #5418 from MerryMage/config-again-and-again
...
VideoConfig: Port to layered configuration system
2017-06-05 21:11:04 -07:00
shuffle2
98eb192226
Merge pull request #5312 from ligfx/cleanupupdatedrawrectangle
...
RenderBase: clean up UpdateDrawRectangle
2017-06-05 20:03:56 -07:00
Shawn Hoffman
7431dd3dce
msbuild: make Externals inclusion methods uniform
2017-06-03 18:20:41 -07:00
Shawn Hoffman
a3caa14ade
remove duplicate code in msbuild files
2017-06-03 18:20:40 -07:00
Shawn Hoffman
397720a9fe
might as well update yet some more pointless version numbers..
2017-06-03 18:20:40 -07:00
MerryMage
f5f45855f0
GameConfigLoader: Add GFX Game INI translations
2017-06-03 18:13:02 +01:00
shuffle2
3443454ba2
Merge pull request #5271 from JosJuice/allow-aslr
...
Allow (but don't force) ASLR
2017-06-02 21:53:02 -07:00
BhaaL
072c161445
upgrade to Windows SDK 10.0.15063.0
...
this is required for /permissive- to work, because some headers in the
Windows SDK use Microsoft extensions that are not allowed in standards mode
2017-05-28 13:37:31 +02:00
Michael Maltese
3ca03373ae
MSVC: define HAVE_FFMPEG
2017-05-26 00:53:58 -07:00
Michael Maltese
53acd25de4
Rename define HAVE_LIBAV->HAVE_FFMPEG
2017-05-26 00:53:58 -07:00
Michael Maltese
d951d2e4c4
CMake: libav/ffmpeg cleanups
...
Use @Orphis's FindFFmpeg module from ppsspp:
2149d3db7f
From that commit:
> This new module should be able to handle both libraries in the regular
> paths and fallback to pkg-config.
> It is also able to find dynamic libraries, not just static libraries.
> It will generate imported targets with the name FFmpeg::<lib> that you
> can use in your scripts.
2017-05-26 00:53:58 -07:00
Pierre Bourdon
d592bdd4d4
Migrate to Visual Studio 2017.
...
Auto-generated by the IDE, I'll trust it knows what it's doing.
2017-05-25 15:58:59 -07:00
JosJuice
4b4cf509f8
Remove code for only allocating low memory
...
This is unnecessary when we have position-independent code.
2017-05-20 09:35:53 +02:00
Helios747
a465c483f3
Remove D3D12
2017-05-18 17:01:12 -07:00
Jonathan Hamilton
35caf48d7d
Add a workaround for a PowerVR glsl compiler bug
...
It seems it doesn't like negating arguments for bitops, so suff like
"var <<= (-othervar);"
fails to compile
2017-05-03 19:33:56 -07:00
Stenzek
cc851c41c1
TextureCache: Move host texture utility functions to VideoCommon
...
The appropriate place for these would be AbstractTexture, once it is
finished.
2017-04-29 13:46:43 +10:00
Stenzek
de348fc952
HiresTextures: Support loading uncompressed .DDS files
...
Will load files with formats RGBA8, RGBX8, BGRA8, BGRX8, RGB8.
2017-04-29 13:46:43 +10:00
Stenzek
20cbef8e9f
HiresTextures: Move the maximum mip level check from DDS to main loader
...
This way that the mip count check occurs on .png and uncombined DDS
textures as well.
2017-04-29 13:46:43 +10:00
Stenzek
a6a13f51c1
HiresTextures: Support DXT10 extended header in DDS loader
2017-04-29 13:46:43 +10:00
Stenzek
8761c8244d
HiresTextures: Load full mipmap chain from DDS files
...
This removes the need for multiple texture files to store the mipmap
chain for a texture. As many mipmaps will be loaded as are present in
the DDS file, and any remaining mipmaps will fall back to the old
behavior.
2017-04-29 13:46:43 +10:00
Stenzek
f4b848949c
TextureCache: Support compressed textures and pass pitch/size to upload
...
This also removes an extra copy of the image for custom textures.
2017-04-29 00:14:23 +10:00
Stenzek
bc8a96d713
HiresTextures: Support parsing DDS files directly
...
This leaves DDS textures using DXT1/3/5 compressed in-memory, which can
be passed directly to the backend.
2017-04-29 00:14:23 +10:00
Stenzek
27ae5b8d34
VideoConfigDiag: Move post-processing shader list to post processor
...
The backends don't use this list at all, and since more than one
backend supports post-processing now, it's duplicate code.
2017-04-25 14:27:05 +10:00
Stenzek
a10e8b1ef5
VideoCommon: Move the blit methods to the backend class
...
The parameter types will be different for each backend currently,
anyway (e.g. textures/render passes/etc).
2017-04-25 14:25:41 +10:00
Michael Maltese
3158a5bc35
RenderBase: clean up UpdateDrawRectangle
2017-04-24 00:39:25 -07:00
Stenzek
fd896bd9e0
OGL: Drop BlendingState.dither
...
How GL_DITHER works is implementation-defined, and we handle the
non-blended case in the pixel shader.
2017-04-18 21:55:23 +10:00
Stenzek
ddc5275071
VideoCommon: Drop SetDitherMode()
...
It was a no-op on all backends apart from GL anyhow.
2017-04-18 21:55:22 +10:00
Stenzek
34ad5b457d
VideoCommon: Add usedualsrc field to BlendingState
...
This is because we re-use BlendingState for our internal drawing (e.g.
RasterFont) and for these shaders, we can't assume the presence of a
second color output.
2017-04-18 21:33:40 +10:00
Michael Maltese
05b4d14bf0
TextureConversionShader: fix syntax error
...
Fixes a situation where the following invalid GLSL code is generated:
```glsl
float3 texSample0 = texture(samp0, float3(uv0 + float2(0, 0) * sample_offset, 0.0)).rgb;
float3 texSample0 = floor(float3 texSample0 * 63.0) / 63.0;
float3 texSample1 = texture(samp0, float3(uv0 + float2(1, 0) * sample_offset, 0.0)).rgb;
float3 texSample1 = floor(float3 texSample1 * 63.0) / 63.0;
```
2017-04-12 14:23:25 -07:00
Stenzek
e9850aa0f2
VideoBackends: Support updated texture encoding shader generators
2017-04-12 00:11:22 +10:00
Stenzek
3847e226ab
TextureConversionShader: Consider source format of EFB for EFB2RAM
...
Currently, we use the alpha channel from the EFB even if the current
format does not include an alpha channel. Now, the alpha channel is set
to 1 if the format does not have an alpha channel, as well as truncating
to 5/6 bits per channel. This matches the EFB-to-texture behavior.
2017-04-12 00:11:22 +10:00
Markus Wick
4e90c5da8b
Merge pull request #5234 from lioncash/tuple
...
RenderBase: Return tuples from CalculateTargetScale and ConvertStereoRectangle instead of using out parameters
2017-04-11 10:27:16 +02:00
Scott Mansell
e6476b805e
Merge pull request #5008 from ligfx/aspectheuristic
...
VideoCommon: rework anamorphic widescreen heuristic
2017-04-10 11:30:34 +12:00
Anthony
c6b553b6d2
Merge pull request #5220 from stenzek/small-nonsquare-mips
...
TextureCache: Fix incomplete GPU texture decoding of non-square mips
2017-04-09 13:45:38 -07:00
Lioncash
c7ab6861c2
RenderBase: Return a tuple from ConvertStereoRectangle instead of using out parameters
2017-04-09 15:11:59 -04:00
Lioncash
671b5f9747
RenderBase: Return a tuple from CalculateTargetScale instead of using out parameters
2017-04-09 14:41:51 -04:00
Lioncash
cc803db042
RenderBase: Eliminate renderer global accesses within the Renderer class
...
There's no need to access these globals, the instance itself has access
to these data members and functions.
2017-04-08 20:15:39 -04:00
Lioncash
caf25653d8
RenderBase: const correctness
2017-04-08 20:11:29 -04:00
Mat M
59d93f3a0d
Merge pull request #5219 from lioncash/common
...
FileSearch: Namespace functions under the Common namespace
2017-04-08 17:19:00 -04:00