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
Stenzek
8a56ef42dc
Vulkan: Fix image layout assertion failing for palette textures
2017-06-13 14:47:09 +10:00
shuffle2
2b86cf02a8
Merge pull request #5589 from stenzek/vulkan-validation-fixes
...
Vulkan: Don't transition image layouts inside render passes
2017-06-11 16:59:02 -07:00
MerryMage
a0b41c83e7
VideoConfig: Remove bRunning
...
Value was set but not used.
2017-06-11 15:06:12 +01:00
Stenzek
ca55ba6c1d
Vulkan: Transition texture cache entries before usage
2017-06-10 23:52:39 +10:00
Stenzek
8bb6abacf8
Vulkan: Transition EFB/XFB buffers before beginning swap render pass
...
Image layouts shouldn't be changed within a render pass.
2017-06-10 23:52:32 +10:00
Shawn Hoffman
5480efdff2
video: change multisample/AA setting to u32
2017-06-07 20:20:25 -07:00
Shawn Hoffman
ab4a785f1b
d3d: silence variable shadowing warning
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
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
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
iwubcode
1b685bcde9
Fix for loop in D3D Renderer ApplyState function
2017-05-29 23:32:32 -05:00
Leo Lam
c76335eaf1
Merge pull request #5484 from BhaaLseN/permissive
...
Windows: Enable MSVC Standards Conformance (/permissive-)
2017-05-29 22:29:44 +02:00
Lioncash
d6b6b070bc
D3D/Render: Get rid of undefined behavior in Create3DVisionTexture
...
pSysMem is of the type const void* -- because of this, it makes the
original delete[] call undefined behavior, as deleting a void pointer is
undefined behavior.
Also punning types into existence, like what was done for the stereo
image header is undefined behavior as well. The proper way to do this is
to either manually add all individual bytes manually, or memcpy the
struct into memory.
As we want to deallocate the memory before returning, and because
pSysMem is a const void*, we keep a unique_ptr to the data and just pass
pSysMem a raw pointer to the data.
2017-05-28 23:28:00 -04:00
Lioncash
278e406f0b
D3D/Render: Use std::array where applicable
2017-05-28 23:28:00 -04:00
Lioncash
0c3958bbe5
D3D/Render: Join variable with declaration
2017-05-28 23:27:59 -04:00
Lioncash
3ee447e5f7
D3D/Render: Get rid of unnecessary casts
2017-05-28 23:27:59 -04:00
Lioncash
ba5b215c42
D3D/Render: Mark translation unit local variables as static
2017-05-28 23:27:59 -04: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
e041602416
CMake: remove references to D3D12
...
It's gone!
2017-05-26 01:16:04 -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
Helios747
a465c483f3
Remove D3D12
2017-05-18 17:01:12 -07:00
lcsondes
94be591606
VS2017 build fix after upgrading project
2017-05-13 20:34:27 +01:00
degasus
afb0beb9ab
OpenGL: Mute nvidia performance warning about stalling the GPU.
...
They are right, our perf query implementation is terrible.
But raising a warning makes it just even slower.
2017-05-03 23:48:14 +02: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
c53a60f3c3
Vulkan: Support native compressed textures
2017-04-29 13:46:42 +10:00
Stenzek
3f18c5e0f1
D3D12: Support native compressed textures
2017-04-29 13:46:42 +10:00
Stenzek
2d75c2ab10
D3D11: Support native compressed textures
2017-04-29 13:46:42 +10:00
Stenzek
f5d95dcc86
OGL: Use native compressed textures on supported drivers
2017-04-29 00:44:34 +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
417a4ca206
Vulkan: Implement post-processing backend
...
No new features, just parity with OpenGL.
2017-04-25 14:27:02 +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
Stenzek
d1dc9d5a0c
Merge pull request #5284 from stenzek/vulkan-videocommon-blending-state
...
Vulkan: Use BlendingState from VideoCommon
2017-04-18 22:16:32 +10:00
Stenzek
16a947a88b
Merge pull request #5270 from stenzek/vulkan-aa
...
Vulkan: MSAA and frame dumping fixes
2017-04-18 21:58:14 +10: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
9dc7358395
Vulkan: Use BlendingState from VideoCommon
...
Remove the internal BlendState union. Also fixes Kirby's Return to
Dreamland shadows.
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
Stenzek
e370f6a82a
OGL: Use struct for post-processing shader options
...
This removes the need for token pasting, which isn't supported in GLSL
ES. Shouldn't cause any issues unless people are using reserved keywords
as option names.
2017-04-16 14:00:02 +10:00
Stenzek
3fd1e6c2f6
Vulkan: Ensure all frames are written before resizing framedump buffer
...
Prevents destroying a framebuffer that may still be in use by a previous
frame dump.
2017-04-15 20:00:40 +10:00
Stenzek
48da42b49f
Vulkan: Ensure framedump texture is incorrect layout for render/readback
2017-04-15 19:57:25 +10:00
Stenzek
69b0a31938
Vulkan: Clamp framebuffer resolve rectangle to texture size
...
This is invalid and was causing the NVIDIA driver to throw an error.
2017-04-15 19:55:32 +10:00
Stenzek
eef7b6cf7a
Vulkan: Fix invalid resolve at swap time when MSAA is enabled
2017-04-15 18:35:58 +10:00
Stenzek
c8b98dca1a
Vulkan: Raise the number of texel buffer/storage image descriptors
...
Running with GPU texture decoding enabled could cause us to run out of
descriptors within a single frame.
2017-04-14 18:29:53 +10:00
Stenzek
f4bdfe3e0c
Vulkan: Fix incorrect render pass area for out-of-range clears
...
This occured when a game set an out-of-range EFB clear region.
2017-04-14 18:29:48 +10:00
Stenzek
5e7bd03d0b
Vulkan: Linear filter >1xIR EFB copies, matching the other backends
2017-04-12 00:11:22 +10:00
Stenzek
e9850aa0f2
VideoBackends: Support updated texture encoding shader generators
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
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
Stenzek
2492f196a7
TextureCache: Fix incomplete GPU texture decoding of non-square mips
2017-04-07 23:03:14 +10:00
Lioncash
f7a2f6ad01
FileSearch: Namespace functions under the Common namespace
2017-04-07 01:02:14 -04:00
Stenzek
97dc773a3e
D3D: Drop redundant interface TextureEncoder
2017-04-04 22:57:23 +10:00
Stenzek
739aced97c
Vulkan: Implement compute-shader based GPU texture decoding
2017-04-01 12:32:57 +10:00
Stenzek
5fbc63fbcf
Vulkan: Compute shader support
2017-04-01 12:32:57 +10:00
Stenzek
02f887ede0
OGL: Add GPUTimer class for measuring execution time of a draw/dispatch
2017-04-01 12:32:57 +10:00
Stenzek
b01bcb80f4
OGL: Implement GPU texture decoding backend
2017-04-01 12:32:56 +10:00
Stenzek
82fd984f3e
VideoBackends: Add configuration field for GPU texture decoding
2017-04-01 12:32:05 +10:00
Stenzek
abc662d69c
OGL: Support compute shaders and emitting GLSL 4.3
...
This also changes bSupportsEarlyFragmentTests to
bSupportsImageLoadStore, as it is used for both.
2017-04-01 12:31:41 +10:00
Stenzek
b987f220e1
VideoBackends: Add support flag for compute shaders
2017-04-01 12:31:41 +10:00
Stenzek
a8876a29fe
OGL: Use ARB_texture_storage to allocate TextureCache entries
...
This ensures that they are complete textures by decoding time, as when
using compute shaders we write directly to the destination texture.
2017-04-01 12:31:41 +10:00
Stenzek
f8059eae43
OGL: Fix render-target texture mipmap allocation
...
The loop was allocating one-too-many levels, as well as incorrect sizes
for each level. Probably not an issue as mipmapped render targets aren't
used, but the logic should be correct anyway.
2017-04-01 12:31:40 +10:00
Stenzek
5326a18fdf
OGL: Fix MSAA being forced to 1x
...
This was a regression from the remove-everything-static-from-renderer
PR. As the comment indicates, it would be nice to move all of this logic
out of the Renderer constructor, but this is a much larger change.
2017-03-31 21:55:26 +10:00
Vincent Duvert
bbb5945375
OGL: Fix texture_type checks in CreateTexture
...
The FrameBufferManager::CreateTexture (from the OpenGL backend) method introduced by commit 69cedf41
incorrectly compares the texture variable (which contains a name provided by glGenTextures) against GL_TEXTURE_2D_MULTISAMPLE_ARRAY and GL_TEXTURE_2D_MULTISAMPLE.
It should instead use the texture_type variable for this (as done in the first branch of the if).
2017-03-17 23:53:56 +01:00
Michael Maltese
134317e07f
videoconfig: add BBoxPreferStencilImplementation
...
@JMC47 requested this to be able to do performance comparisons.
2017-03-15 17:41:33 -07:00
Michael Maltese
53224d41d0
OGL: only create stencil buffer when needed
2017-03-15 17:41:33 -07:00
Michael Maltese
ba6e917b49
OGL: implement Bounding Box on systems w/o SSBO
...
This commit should have zero performance effect if SSBOs are supported.
If they aren't (e.g. on all Macs), this commit alters FramebufferManager
to attach a new stencil buffer and VertexManager to draw to it when
bounding box is active. `BBoxRead` gets the pixel data from the buffer
and dumbly loops through it to find the bounding box.
This patch can run Paper Mario: The Thousand-Year Door at almost full
speed (50–60 FPS) without Dual-Core enabled for all common bounding
box-using actions I tested (going through pipes, Plane Mode, Paper
Mode, Prof. Frankly's gate, combat, walking around the overworld, etc.)
on my computer (macOS 10.12.3, 2.8 GHz Intel Core i7, 16 GB 1600 MHz
DDR3, and Intel Iris 1536 MB).
A few more demanding scenes (e.g. the self-building bridge on the way
to Petalburg) slow to ~15% of their speed without this patch (though
they don't run quite at full speed even on master). The slowdown is
caused almost solely by `glReadPixels` in `OGL::BoundingBox::Get`.
Other implementation ideas:
- Use a stencil buffer that's separate from the depth buffer. This would
require ARB_texture_stencil8 / OpenGL 4.4, which isn't available on
macOS.
- Use `glGetTexImage` instead of `glReadPixels`. This is ~5 FPS slower
on my computer, presumably because it has to transfer the entire
combined depth-stencil buffer instead of only the stencil data.
Getting only stencil data from `glGetTexImage` requires
ARB_texture_stencil8 / OpenGL 4.4, which (again) is not available on
macOS.
- Don't use a PBO, and use `glReadPixels` synchronously. This has no
visible performance effect on my computer, and is theoretically
slower.
2017-03-15 17:41:32 -07:00
Michael Maltese
56fe938366
extract OGL::FramebufferManager::BindLayeredTexture
2017-03-15 17:20:47 -07:00
Michael Maltese
69cedf4144
extract OGL::FramebufferManager::CreateTexture
2017-03-15 17:20:47 -07:00
Michael Maltese
de940a5fd6
VideoConfig: add bSupportsFragmentStoresAndAtomics
2017-03-15 17:20:47 -07:00
Markus Wick
31bb41c532
Merge pull request #4973 from z0z0z/master
...
Disable pinned memory for AMD mesa drivers
2017-03-14 10:02:05 +01:00
Jules Blok
0a2b58c896
OGL: Remove support for NV_depth_buffer_float.
...
We can't clamp the depth values to the 24-bit range while this extension is active.
2017-03-14 01:02:13 +01:00
Stenzek
27d7a1646c
Merge pull request #5065 from JosJuice/character
...
Fix issue 10146 (compilation issue because of colliding defines)
2017-03-11 18:26:26 +10:00
JosJuice
40e707348c
Fix issue 10146 (compilation issue because of colliding defines)
2017-03-11 08:59:14 +01:00
Markus Wick
e99cd57eb3
Merge pull request #4935 from Armada651/depth-range-fix
...
VideoBackends: Set the maximum range when the depth range is oversized.
2017-03-10 18:05:52 +01:00
Stenzek
42993eeabc
D3D11: Fix error on startup with >2.5xIR selected
2017-03-10 23:41:20 +10:00
Markus Wick
ef74c5eabd
Merge pull request #5051 from stenzek/renderer-fixes
...
VideoBackends: Fix crashes introduced by #4999
2017-03-09 21:06:50 +01:00
JosJuice
ced1614cac
Unify the way of setting game ID, title ID, revision
...
The existing code from ConfigManager, ES and MIOS is merged
into a new set of functions called SetRunningGameMetadata.
2017-03-09 15:34:14 +01:00
Stenzek
2cd240af0d
VideoBackends: Move max texture size to VideoConfig
...
This stops the virtual method call from within the Renderer constructor.
The initialization here for GL had to be moved to VideoBackend, as the
Renderer constructor will not have been executed before the value is
required.
2017-03-10 00:04:13 +10:00
Markus Wick
489d90b6f3
Merge pull request #4999 from stenzek/renderer-statics
...
VideoCommon: Eliminate static state in Renderer
2017-03-08 11:02:20 +01:00
Mat M
7fa14169e9
Merge pull request #5007 from lioncash/swap
...
Common: Move byte swapping utilities into their own header
2017-03-05 09:45:29 -05:00
Markus Wick
7304cb0f8e
Merge pull request #5011 from stenzek/d3d-texture-corruption
...
D3D11: Use default usage for TextureCache entries
2017-03-04 15:55:58 +01:00
Stenzek
725d5bc3a1
D3D11: Drop unused method ReplaceRGBATexture2D
2017-03-04 22:37:10 +10:00
Stenzek
526fa9bc85
D3D11: Use D3D11_USAGE_DEFAULT for all TextureCache textures
2017-03-04 22:36:33 +10:00
Stenzek
4cea9a2f99
Vulkan: Fix underflow in StreamBuffer::WaitForClearSpace
...
This could cause the assertion on line 212 to fail when uploading large
amounts of data in between command buffer executions.
2017-03-04 18:07:04 +10:00
Stenzek
00a0a91513
VideoCommon: Move last EFB scale handling to CalculateTargetSize
2017-03-04 16:53:07 +10:00
Stenzek
afc25fdca0
VideoCommon: Rename Renderer s_ prefixes to m_
2017-03-04 16:42:21 +10:00
Stenzek
238a70b006
VideoCommon: Move some common initialization logic to RenderBase
2017-03-04 16:42:16 +10:00
Stenzek
277829d842
VideoCommon: Eliminate static state in Renderer
2017-03-04 16:39:50 +10:00
Lioncash
552c0d8404
Common: Move byte swapping utilities into their own header
...
This moves all the byte swapping utilities into a header named Swap.h.
A dedicated header is much more preferable here due to the size of the
code itself. In general usage throughout the codebase, CommonFuncs.h was
generally only included for these functions anyway. These being in their
own header avoids dumping the lesser used utilities into scope. As well
as providing a localized area for more utilities related to byte
swapping in the future (should they be needed). This also makes it nicer
to identify which files depend on the byte swapping utilities in
particular.
Since this is a completely new header, moving the code uncovered a few
indirect includes, as well as making some other inclusions unnecessary.
2017-03-03 17:18:18 -05:00
Stenzek
2fd77895a2
Vulkan: Fix issue where target rectangle changes weren't detected
...
This was causing issues when toggling the crop setting, as well as some
widescreen hacks.
2017-03-02 21:53:42 +10:00
Stenzek
3390e6f258
Merge pull request #4993 from ligfx/fixsonicadventure2
...
OGL SetBlendMode: always set blend equation and func
2017-03-02 21:30:10 +10:00
Lioncash
ee61bd6f2e
CMakeLists: Normalize whitespace
...
Normalizes tabs to spaces to follow our codebase's indentation style.
2017-03-01 14:53:23 -05:00
Michael Maltese
db1d826ac3
OGL SetBlendMode: always set blend equation and func
...
Before #4581 , an invocation of `SetBlendMode` could invoke
`glBlendEquationSeparate` and `glBlendFuncSeparate` even when it was
setting `glDisable(GL_BLEND)`. I couldn't figure out how to map the old
behavior over to the new BlendingState code, so I changed it to always
call the two blend functions.
Fixes https://bugs.dolphin-emu.org/issues/10120 : "Sonic Adventure 2
Battle: graphics crash when loading first Dark level".
2017-03-01 00:49:14 -08:00
z0z0z
005e6796b8
Disable pinned memory for AMD mesa drivers
2017-02-26 10:49:28 -05:00
Jules Blok
a15555fe03
VideoBackends: Use vertex shader depth range if ztexture is used.
2017-02-26 11:34:48 +01:00
Jules Blok
bde8126913
VideoBackends: Remove depth range clamping hacks.
...
Oversized depth ranges are handled correctly now, we don't need to hack around them with clamps anymore.
2017-02-24 14:54:20 +01:00
Jules Blok
94522d4cf3
OGL: Add support for glDepthRangedNV to handle oversized depth ranges.
2017-02-24 14:54:16 +01:00
Jules Blok
28e6e259ed
VideoBackends: Set the maximum range when the depth range is oversized.
...
The depth values generated by the vertex shader need to be clamped correctly.
2017-02-21 02:57:23 +01:00
Jules Blok
21967b1f6e
VideoBackends: Add a developer option to disable the shader cache.
...
Makes it easier to disable the cache while working on the shaders.
2017-02-19 12:05:44 +01:00
Stenzek
b8eb1080ce
Merge pull request #4924 from stenzek/vulkan-list-restart
...
Vulkan: Fix GPU hangs on AMD Polaris
2017-02-18 21:58:30 +10:00
Lioncash
1fa81f24d3
VertexManagerBase: Make CreateNativeVertexFormat return a unique_ptr
...
Much safer as opposed to just returning raw allocated memory.
2017-02-18 03:16:24 -05:00
Stenzek
50fa135594
Vulkan: Handle BUG_PRIMITIVE_RESTART
2017-02-18 15:07:34 +10:00
Stenzek
4094268009
Vulkan: Use TRIANGLE_LIST when primitive restart is not supported
2017-02-18 15:07:33 +10:00
Stenzek
6965dc0481
Vulkan: Don't enable primitive restart on list topologies
2017-02-18 15:07:32 +10:00
Phil Christensen
2ed61b0ee1
C++ conformance fixes (MSVC /permissive-)
...
We (the Microsoft C++ team) use the dolphin project as part of our "Real world code" tests.
I noticed a few issues in windows specific code when building dolphin with the MSVC compiler
in its conformance mode (/permissive-). For more information on /permissive- see our blog
https://blogs.msdn.microsoft.com/vcblog/2016/11/16/permissive-switch/ .
These changes are to address 3 different types of issues:
1) Use of qualified names in member declarations
struct A {
void A::f() { } // error C4596: illegal qualified name in member declaration
// remove redundant 'A::' to fix
};
2) Binding a non-const reference to a temporary
struct S{};
// If arg is in 'in' parameter, then it should be made const.
void func(S& arg){}
int main() {
//error C2664: 'void func(S &)': cannot convert argument 1 from 'S' to 'S &'
//note: A non-const reference may only be bound to an lvalue
func( S() );
//Work around this by creating a local, and using it to call the function
S s;
func( s );
}
3) Add missing #include <intrin.h>
Because of the workaround you are using in the code you will need to include
this. This is because of changes in the libraries and not /permissive-
2017-02-15 20:37:04 -08:00
Matthew Parlane
691abc223b
Merge pull request #4859 from lioncash/opcodedecoder
...
OpcodeDecoding: Convert #defines into enum constants
2017-02-08 18:12:11 +13:00
Lioncash
d9d069e024
OpcodeDecoding: Convert #defines into enum constants
...
Gets several constants out of global scope.
2017-02-08 00:05:17 -05:00
Florent Castelli
8c82607c95
cmake: Don't use unqualified target_link_libraries
...
You can't mix unqualified and qualified link libraries (PUBLIC / PRIVATE).
Use the modern form.
2017-02-08 03:07:43 +01:00
Lioncash
c85e0a2586
FramebufferManagerBase: Return a std::pair from GetTargetSize
...
Keeps associated data together. It also eliminates the possibility of out
parameters not being initialized properly. For example, consider the
following example:
-- some FramebufferManager implementation --
void FBMgrImpl::GetTargetSize(u32* width, u32* height) override
{
// Do nothing
}
-- somewhere else where the function is used --
u32 width, height;
framebuffer_manager_instance->GetTargetSize(&width, &height);
if (texture_width != width) <-- Uninitialized variable usage
{
...
}
It makes it much more obvious to spot any initialization issues, because
it requires something to be returned, as opposed to allowing an
implementation to just not do anything.
2017-02-03 15:27:53 -05:00
Lioncash
a30c653f3d
D3D: Add CommonTypes include to D3DTexture.h
...
Resolves a compile error on the Windows CMake build.
2017-02-03 12:07:53 -05:00
Lioncash
468f623d27
ShaderGenCommon: Remove unnecessary includes
2017-02-01 12:19:55 -05:00
Lioncash
273ace7bb7
LightingShaderGen: Remove unnecessary includes
2017-02-01 01:06:00 -05:00
Stenzek
3b218c64b1
Vulkan: Refactor initialization to only use a single instance
...
Hopefully will fix the crash in vkDestroyInstance on the NV Shield TV,
and likely reduce boot times slightly for drivers that take a while
to create instances.
2017-01-29 22:18:53 +10:00
Lioncash
70cf774a5c
RenderBase: Forward declare EFBAccessType
2017-01-23 12:41:26 -05:00
Lioncash
5b461f50af
VideoBackendBase: Convert EFBAccessType into an enum class
2017-01-23 03:53:38 -05:00
Florent Castelli
e55ec1ed35
cmake: Build D3D and D3D12 video backends
2017-01-21 00:35:55 +01:00
Matthew Parlane
ad84b904e4
Merge pull request #4496 from Mystro256/master
...
Fix GCC build issue with Fedora (linux)
2017-01-13 23:13:08 +13:00
degasus
f12460d1f4
VideoSW: Fix GL ES shader.
2017-01-07 12:32:15 +01:00
degasus
23b0faeba5
OGL: Use VideoCommon blend state for framebuffer configuration.
2017-01-06 14:01:39 +01:00
BhaaL
23d99f2f2c
specify custom brace style to fix unions
...
BreakBeforeBraces: Allman apparently includes all styles,
except for AfterUnion (which is false) when using clang-format -dump-config
2017-01-05 12:55:13 +01:00
degasus
41b0c74e30
VideoCommon: Make dst_alpha state implicit.
2017-01-04 20:02:31 +01:00
degasus
b7d8bd13a6
OGL/Vulkan: Drop dual pass alpha.
2017-01-04 19:59:41 +01:00
Markus Wick
96314a0ec1
Merge pull request #4574 from stenzek/vulkan-alpha-clear
...
Vulkan: Clear alpha channel to 0 when pixel format has no alpha channel
2017-01-02 12:29:36 +01:00
Jules Blok
ee7a2edf35
Update comments
2016-12-27 21:32:52 +01:00
Jules Blok
65b5765858
VideoBackends: Clamp the range to the maximum depth value supported in the z buffer.
2016-12-27 20:25:40 +01:00
Jules Blok
2ab6711f43
VideoBackends: Use the full depth range when inverted depth range is unsupported.
2016-12-27 14:31:17 +01:00
Jules Blok
ef82aebb97
VideoCommon: Don't process the depth range in the vertex shader if it's not oversized.
2016-12-27 14:31:17 +01:00
Stenzek
e6249619a0
Vulkan/GL: Set the alpha channel to 0 when creating the EFB framebuffer
2016-12-27 13:06:08 +10:00
Stenzek
d1dd910f17
Vulkan: Clear alpha channel to 0 when pixel format has no alpha channel
2016-12-27 12:59:52 +10:00
degasus
abf9bb170b
TextureCache: Drop unused parameter in backend API.
2016-12-26 22:10:32 +01:00
degasus
04f319066d
TextureCache: Extract BP enum check to VideoCommon.
...
We have TOO many video backends.
2016-12-26 22:10:21 +01:00
Mystro256
1963996dd0
Change RasterFont static const names
...
Fixes build issue with GCC/CPP 6.2.1 build issues on Fedora 26
2016-12-24 11:58:07 -05:00
Mat M
9160be50db
Merge pull request #4224 from lioncash/tcache
...
TextureCacheBase: Eliminate static state
2016-12-23 04:33:42 -05:00
Markus Wick
b5fe0b5b83
Merge pull request #4528 from stenzek/vulkan-descriptor-crash
...
Vulkan: Fix crash where a potentially deleted buffer is referenced
2016-12-20 11:11:54 +01:00
Stenzek
01047319f8
Merge pull request #4517 from stenzek/mp3-blotches
...
TextureCache: Use same color coefficients for EFB2Tex as EFB2RAM
2016-12-19 22:11:38 +10:00
Stenzek
9290bf5844
Vulkan: Fix crash where a potentially deleted buffer is referenced
...
This happened when the geometry shader was disabled, and the uniform
buffer was grown to a larger size. The update would be skipped, leaving
the old buffer to be included in the descriptor set.
2016-12-19 22:00:42 +10:00
Markus Wick
989cdc0929
Merge pull request #4505 from hthh/macos-likes-pbos
...
OpenGL: Always use a PBO in EncodeToRamUsingShader
2016-12-19 09:47:40 +01:00
Stenzek
accce4294a
TextureCache: Use same color coefficients for EFB2Tex as EFB2RAM
2016-12-15 02:20:46 +10:00
Stenzek
d6cdf49769
VideoSoftware: Don't drop least significant bit of 5-bit blue channels
2016-12-14 23:56:06 +10:00
hthh
801d1d1876
OpenGL: Always use a PBO in EncodeToRamUsingShader
...
This improves performance significantly on macOS, particularly
noticeably in the Super Mario Sunshine transition, which goes
from ~5FPS to ~17FPS.
2016-12-12 20:33:41 +11:00
Stenzek
607ce40f0b
OGL: Fix black screen when MSAA is enabled
2016-12-12 17:51:19 +10:00
Lioncash
58a5395173
TextureCacheBase: Eliminate static state
2016-12-09 16:50:37 -05:00
Stenzek
af706efaef
Vulkan: Fix viewport depth when depth clamp is unsupported
2016-12-09 22:45:10 +10:00
Léo Lam
31ccfffd38
Common: Add alignment header
...
Gets rid of duplicated alignment code.
2016-12-06 20:33:53 +01:00
Markus Wick
7192789c11
Merge pull request #4486 from stenzek/gl-minimize-assert
...
OGL: Fix assertion when minimizing window
2016-12-05 12:46:29 +01:00
Stenzek
bff394ec8a
Merge pull request #4489 from stenzek/vulkan-minor-fixes
...
Vulkan: Minor fixes
2016-12-05 12:19:49 +10:00
Stenzek
8f97a24904
Vulkan: Enable GS instancing
2016-12-04 20:53:49 +10:00
Stenzek
9736198c3b
Vulkan: Use explicit barriers instead of dependancies
...
At least on NV, some of these don't seem to have the intended effect. One
known instance of this is in texture conversion.
2016-12-04 20:10:13 +10:00
Stenzek
a475792163
Vulkan: Fix incorrect logic in readback preemption
...
This could have been causing a large number of command buffer
submissions per frame, depending on when the readbacks occured.
2016-12-04 20:10:13 +10:00
Stenzek
58978c1440
Vulkan: Faster path for decoding XFB data
...
Using a texel buffer as the copy destination removes the need to copy to
an intermediate texture first.
2016-12-04 20:10:13 +10:00
Stenzek
804cd0ff03
Vulkan: Move XFB encoding/decoding to TextureConverter
2016-12-04 20:10:13 +10:00
Stenzek
d67463e0a7
Vulkan: Simplify palette texture conversion
2016-12-04 20:10:13 +10:00
Stenzek
add638538b
Vulkan: Combine PaletteTextureConverter and TextureEncoder classes
2016-12-04 20:10:13 +10:00
Stenzek
804af42ccc
Vulkan: Support binding texel buffers in UtilityShaderDraw
2016-12-04 20:10:13 +10:00
Stenzek
e241ec6666
Vulkan: Implement StagingTexture2D on top of StagingBuffer
...
Greatly simplifies things, and we weren't using the linear texture
implementation anyway.
2016-12-04 20:10:13 +10:00
Stenzek
4bc0e14995
Vulkan: Use an enumeration to index pipeline layouts
2016-12-04 20:10:13 +10:00
Stenzek
cd3481fbc7
Vulkan: Differentiate between descriptor set layouts and bind points
...
This also moves the pipeline and descriptor set layouts used for texture
conversion (texel buffers) to ObjectCache, and shares a binding location
with the SSBO set.
2016-12-04 20:10:13 +10:00
Stenzek
4e9018049d
Vulkan: Support logging debug reports without enabling validation layers
...
There is a caveat, Host GPU must be checked prior to starting the game, as
we can't enable the extension at runtime without recreating the instance.
2016-12-04 19:55:12 +10:00
Stenzek
1cfb0a1185
Vulkan: Fix deadlock in some resize scenarios
...
Only have experienced this on a few occasions when using the anv driver.
2016-12-04 19:12:33 +10:00
Stenzek
2ef884893a
Vulkan: Fix map error when texture dumping is enabled
2016-12-04 00:23:34 +10:00
Stenzek
4c860ddb70
Vulkan: Fix typo in PopulateBackendInfoMultisampleModes
2016-12-04 00:23:30 +10:00
Stenzek
730ec3809a
Vulkan: Remove unused variable
2016-12-04 00:23:25 +10:00
Stenzek
107e8c8ee7
OGL: Fix assertion when minimizing window
...
Also fixes a potential divide by zero in Renderer::RenderText.
2016-12-03 20:35:14 +10:00
Stenzek
7b1966a680
Vulkan: Fix assertion triggering when geometry shaders are unsupported
...
Happened when loading the pipeline UID cache.
2016-12-02 17:37:10 +10:00
Stenzek
ca691a9d95
Vulkan: Allow re-use of uniform buffers when doing per-stage uploads
...
This is safe now because we invalidate the pointers after submitting a
command buffer.
2016-11-30 23:34:46 +10:00
Stenzek
6a4eba1153
Vulkan: Replace explicit command buffer submits with wrapper function
...
Should we ever introduce anything else that has to be done when a command
buffer is executed (e.g. invalidating constants from previous commit), we
don't have to update all the callers.
2016-11-30 23:14:36 +10:00
Stenzek
3adeacb78d
Vulkan: Fix case where uniforms could be overwritten
...
If a draw caused a command buffer submission, the current uniform storage
should not be used for the new command buffer.
2016-11-30 23:14:35 +10:00
Stenzek
4c11735bd5
Vulkan: Fix case where a draw's vertices could be overwritten
...
This could happen because the vertex memory was already committed, if a
uniform buffer allocation failed and caused a command buffer to be
executed, it would be associated with the previous command buffer rather
than the buffer containing the draw that consumed these vertices.
2016-11-30 22:45:00 +10:00
Stenzek
37550501cc
Vulkan: Fix incorrect handling of buffer wrap-around in StreamBuffer
...
This was happening when a fence wait happened mid-frame. The data written
between the fence being queued and the allocation occuring was incorrectly
assumed to be consumed by the GPU.
2016-11-30 22:44:52 +10:00
Stenzek
0212741574
Merge pull request #4436 from stenzek/vulkan-full-ir-framedump
...
VideoBackends: Internal resolution frame dumping
2016-11-28 22:05:16 +10:00
Stenzek
b81dee8b9a
OGL: Support full-resolution frame dumping
2016-11-28 21:54:56 +10:00
Stenzek
93221e7f48
OGL: Move frame rendering procedures to seperate methods
2016-11-28 21:54:56 +10:00
Stenzek
1c1a686f63
Vulkan: Support full resolution frame dumping
2016-11-28 21:54:55 +10:00
Stenzek
8d48319414
Vulkan: Validate the pipeline cache before using it
...
This ensures that if a user changes adapters or vendors we're not passing
invalid data to the driver.
2016-11-28 21:21:55 +10:00
Stenzek
9604b336c8
Vulkan: Don't destroy the device's pipeline cache on MSAA mode change
...
The user could switch back again, and this would mean this data would be
lost. Disk space is cheap, and it's not going to be much.
2016-11-28 21:21:54 +10:00
Stenzek
aac66a1b61
Vulkan: Implement a pipeline UID cache
...
This stores enough information to recreate the pipeline, including the
shader UIDs, blend/depth/rasterization state, primitive and vertex format.
2016-11-28 21:21:53 +10:00
Stenzek
6db0ee9561
VideoCommon: Remove backbuffer size parameters from methods
...
We have the s_backbuffer_{width,height} fields to represent this, so
there's no point in passing them as parameters every time.
2016-11-28 20:14:59 +10:00
Stenzek
a0a62c0f46
VideoConfig: Add option for full-resolution frame dumping
2016-11-28 20:14:59 +10:00
Stenzek
e66373b7ff
Merge pull request #4456 from stenzek/vulkan-framedump-fix-2
...
Vulkan: Fix black borders in frame dumps
2016-11-28 20:03:08 +10:00
Léo Lam
72e3f1ecec
Remove unnecessary ConfigManager includes
...
Making changes to ConfigManager.h has always been a pain, because
it means rebuilding half of Dolphin, since a lot of files depend on
and include this header.
However, it turns out some includes are unnecessary. This commit
removes ConfigManager includes from files which don't contain
SConfig or GPUDeterminismMode or GPU_DETERMINISM (which means the
ConfigManager include is not used).
(I've also had to get rid of some indirect includes.)
2016-11-27 22:38:38 +01:00
Stenzek
d6d3341183
D3D: Fix strided XFB copies
2016-11-19 20:29:51 +10:00
Stenzek
6b88a854a7
Vulkan: Handle strided XFB copies
...
Where src_rect.width * 2 != dst_stride.
2016-11-19 20:29:47 +10:00
Stenzek
725ef4c5dc
Vulkan: Pass target_rect to framebuffer draw methods
...
Fixes the black borders in frame dumps when the window was not sized to
the framebuffer aspect ratio.
2016-11-18 22:55:22 +10:00
Stenzek
3c92b35422
Vulkan: Use multiple command pools, one per frame
...
Instead of resetting two command buffers, now we only have to call
vkResetCommandPool once at the start of a frame.
NV's recommends using one pool per frame/thread. May offer a very small
boost in performance on some systems.
2016-11-15 00:40:15 +10:00
Stenzek
bd67adb362
Vulkan: Use correct sample count for EFB pokes with MSAA enabled
2016-11-14 20:24:16 +10:00
Stenzek
89176fe2ab
Vulkan: Fix crash on EFB poke
2016-11-14 20:19:59 +10:00
Jules Blok
99de9fbe33
Merge pull request #4443 from Armada651/exclusive-ui
...
D3D: Move exclusive mode switching to UI thread.
2016-11-14 01:45:07 +01:00
Jules Blok
7e35a47b51
Cosmetics.
2016-11-13 22:17:40 +01:00
Markus Wick
bc98ec77be
Merge pull request #4441 from stenzek/vulkan-max-image-count
...
Vulkan: Handle maxImageCount of zero when creating swap chain
2016-11-13 14:12:32 +01:00
Markus Wick
c723532f0d
Merge pull request #4430 from stenzek/vulkan-no-relaxed-vsync
...
Vulkan: Don't use FIFO_RELAXED present mode for vsync.
2016-11-13 14:10:58 +01:00
Jules Blok
d7cf5e28b6
Frame: Use PauseAndLock when switching fullscreen modes.
...
This allows us to regain exclusive mode directly from OnActive().
2016-11-11 20:36:10 +01:00
Jules Blok
9909babe2c
D3DBase: Create the swapchain in fullscreen mode if enabled.
2016-11-11 20:36:10 +01:00
Jules Blok
0a194f8a3e
VideoConfig: Remove fullscreen flags.
...
These weren't actually settings, they were used as a bad way to communicate with the GPU thread.
2016-11-11 20:36:09 +01:00
Jules Blok
c21efa0cad
D3D: Move exclusive mode switching to UI thread.
...
This prevents deadlocks when switching to exclusive mode.
And it also allows the CPU thread to block until we've completed the switch.
2016-11-11 20:36:04 +01:00
Stenzek
160fee6791
Vulkan: Handle maxImageCount of zero when creating swap chain
...
anv seems to set this to zero, which is fine according to the spec, but
we were using it as a maximum, which was resulting in a swap chain
without any buffers being created.
2016-11-11 23:33:40 +10:00
degasus
3816207d7b
OGL: Fix frame dump on emulation close.
2016-11-10 12:59:22 +01:00
degasus
21774bdc81
OGL: Only flush the frame dumping thread on dumping.
...
This fixes the screenshot stutter, as this needs more than a frame.
So we won't stall on the png writing at all until emulation stops or
a new screenshot is requested.
2016-11-10 12:59:22 +01:00
Stenzek
38c3ca5cd4
Vulkan: Implement asynchronous frame dumping
2016-11-10 01:07:46 +10:00
degasus
741debe229
OGL: Avoid reallocation of frame dumping PBO.
2016-11-07 22:32:54 +01:00
degasus
f6a6cc9c67
OGL: Use PBO for framedump, with async readback.
2016-11-07 22:17:32 +01:00
Stenzek
c09ce029df
Vulkan: Don't use FIFO_RELAXED present mode for vsync.
2016-11-07 19:22:27 +10:00
degasus
be29090aae
AVIDump: Add a struct for the state.
...
So AddFrame use no global state and can be threaded well.
2016-11-04 18:35:42 +01:00
Stenzek
c880c37244
Vulkan: Rename screenshot buffer to frame dump buffer.
...
Name makes more sense given the methods it calls in the base class.
2016-11-03 22:38:48 +10:00
Stenzek
9aed27cdcf
Vulkan: Combine frame dumping and present into one command buffer.
...
Small optimization that should make things slightly more efficient when
frame dumping is enabled.
2016-11-03 22:38:48 +10:00
Stenzek
690a6deeb3
Vulkan: Fix swapped top/bottom images in TAB stereo mode
2016-11-03 22:33:24 +10:00
Stenzek
70eb904536
Vulkan: Fix incorrect geometry shader input/output usage
2016-11-03 22:33:24 +10:00
Stenzek
5250f3c6a4
Vulkan: Add missing call to ObjectCache::RecompileSharedShaders
...
This was causing issues when the stereo mode was changed at runtime.
2016-11-03 22:33:24 +10:00
Stenzek
d67877d27e
Vulkan: Fix fast clear path not being used in all cases
2016-11-03 22:33:24 +10:00
Stenzek
5182e6b549
Vulkan: Implement virtual/real XFB support
2016-11-03 22:33:24 +10:00
Stenzek
3593fa27ab
Vulkan: Move CopyRectangleFromTexture to TextureCache
2016-11-03 22:01:55 +10:00
Stenzek
01b3c0f036
Vulkan: Make TextureCache::TCacheEntry public
2016-11-03 22:01:54 +10:00
Stenzek
b066d51dfa
Vulkan: Remove parameters/members of single-instance classes
...
There's not a lot of point in passing these around or storing them
(texture cache/state tracker mainly) as there will only ever be a single
instance of the class.
Also adds downcast helpers such as Vulkan::Renderer::GetInstance().
2016-11-03 22:01:54 +10:00
Markus Wick
9ce1cdde98
Merge pull request #4414 from linkmauve/single-newline
...
Remove double newlines at the end of *_LOG messages
2016-11-02 12:20:46 +01:00
Emmanuel Gil Peyrot
c9e6b05ce9
Core: Remove double newlines at the end of *_LOG messages.
2016-11-02 02:09:33 +00:00
Jules Blok
086f839435
DriverDetails: Make the bug identifiers humanly readable.
2016-10-31 15:02:08 +01:00
Markus Wick
b9e4370023
Merge pull request #4383 from Sintendo/minor-text-fixes
...
Fix minor comment typos
2016-10-31 12:51:42 +01:00
Markus Wick
d5ca153c26
Merge pull request #4401 from JosJuice/rename-getuniqueid
...
DiscIO/SConfig: Rename GetUniqueID to GetGameID
2016-10-31 12:39:27 +01:00
Jules Blok
ce9f717045
OGL: Fall back to the old dual-source blending behaviour.
2016-10-29 18:00:22 +02:00
JosJuice
1081497cad
DiscIO/SConfig: Rename GetUniqueID to GetGameID
...
We call this "game ID" everywhere else, and it's not
actually completely unique.
2016-10-29 15:24:02 +02:00
Jules Blok
afe707bc18
DriverDetails: Disable dual-source blending on AMD OGL drivers.
2016-10-27 22:03:25 +02:00
Sintendo
f163bd1048
Fix various comment typos
2016-10-24 18:27:49 +02:00
Jules Blok
2536e37ec5
Merge pull request #4194 from Armada651/efb-source-format
...
PixelShaderGen: Add support for RGBA6 EFB format truncation.
2016-10-21 21:45:29 +00:00
degasus
df5eff9ab7
VideoSW: Use VideoCommon frame dumping.
2016-10-11 22:32:06 +02:00
Markus Wick
7d5363ffa8
Merge pull request #4337 from degasus/framedump
...
AVIDump: Move CoreTiming into caller.
2016-10-11 22:25:28 +02:00
Rohit Nirmal
dc1b35fa4b
Fix building with PCH disabled.
2016-10-11 14:25:14 -05:00
Jules Blok
ab5054c34e
VideoBackends: Always enable dual-source blending if supported.
2016-10-10 17:32:51 +02:00
degasus
9f264c0872
AVIDump: Move CoreTiming into caller.
2016-10-10 12:03:18 +02:00
Markus Wick
a583d36c7f
Merge pull request #4326 from degasus/framedump
...
Framedump: Merge screenshot code with framedumping.
2016-10-10 11:48:57 +02:00
shuffle2
c8cb1fa7d7
Merge pull request #4319 from leoetlino/sysconf
...
Don't read/store settings directly from/to SYSCONF (and fix config restore)
2016-10-09 02:34:52 -07:00
shuffle2
3ec91a4e33
Merge pull request #4330 from ligfx/no_vulkan_on_mac
...
Don't build Vulkan video backend on macOS
2016-10-08 20:58:18 -07:00
Markus Wick
a86b2c15d8
Merge pull request #4322 from Helios747/I_hate_features
...
Remove Frameskip
2016-10-08 21:41:43 +02:00
degasus
64927a2f81
Renderer: Merge screenshot logic into VideoCommon.
2016-10-08 19:38:57 +02:00
anthony
b427ead0cc
Remove Frameskip
2016-10-08 11:49:51 -05:00
degasus
db0509560e
AVIDump: Hard code rgba.
2016-10-08 18:16:32 +02:00
degasus
0864ef4352
VideoCommon: Add custom stride for framedumping.
2016-10-08 15:44:54 +02:00
degasus
1ef5ba0c53
D3D: Skip redundant format convertions.
2016-10-08 15:40:49 +02:00
degasus
b5a91e1dfa
Framedumps: Add finish() function to limit memory lifetime.
2016-10-08 15:39:22 +02:00
degasus
ebc617882b
VideoCommon: Drop RepeatFrameDumpFrame helper.
...
This was needed with fixed framerate dumping. As we now synchronize the frames, the last one will just get padded.
2016-10-08 15:39:21 +02:00
Markus Wick
6e8901de17
Merge pull request #4315 from stenzek/vulkan-aspect
...
Vulkan: Handle forced aspect ratio changes at runtime
2016-10-08 11:53:22 +02:00
Stenzek
176b00ded7
Vulkan: Handle forced aspect ratio changes at runtime
2016-10-08 18:59:46 +10:00
Léo Lam
39fd6dcd5b
Fix missing includes
...
Aren't indirect includes great?
2016-10-07 23:46:41 +02:00
degasus
e82cf46436
Vulkan: Use VideoCommon framedump helpers.
2016-10-07 23:17:16 +02:00
degasus
6b08830a95
D3D12: Use VideoCommon framedump helpers.
2016-10-07 23:15:10 +02:00
degasus
64b648f6c8
D3D: Use VideoCommon framedumping helpers.
2016-10-07 23:10:36 +02:00
degasus
a530708bb1
OGL: Use VideoCommon framedump helpers.
2016-10-07 23:09:10 +02:00
degasus
34d733d376
OGL/Render: Drop write-only variable.
2016-10-07 21:44:52 +02:00
Michael Maltese
f301ebf780
Don't build Vulkan video backend on macOS
...
There's no official implementation of the Vulkan API,
and Dolphin currently isn't set-up to work with the
single, commercially-available third-party implementation.
2016-10-06 16:53:55 -07:00
Stenzek
010514bd39
Vulkan: Use correct source format to determine palette size
...
Fixes blur in fortune street fifologs.
2016-10-06 21:55:27 +10:00
Stenzek
b39ac950eb
Vulkan: Don't save borders to screenshots/frame dumps
...
This matches the behavior on GL, making for easier comparisons.
2016-10-05 22:28:51 +10:00
Stenzek
400ba3c7e5
Vulkan: Stop dumping frames on shutdown if left enabled
2016-10-05 22:28:51 +10:00
Stenzek
c422fb7e82
Vulkan: Set alpha channel of swap chain buffers to 1.0.
...
Copying the alpha channel from the game causes issues with frame dumping,
since we're using a buffer directly from the GPU as a source for AVIDump.
2016-10-05 22:02:04 +10:00
Stenzek
abb5a64919
Merge pull request #4295 from stenzek/vulkan-dbz-bloom
...
Vulkan: Fix bug with palette converted EFB copies
2016-10-05 20:24:36 +10:00
Markus Wick
ef1bfc26b2
Merge pull request #4291 from degasus/shader_gen
...
PixelShaderGen: Fix UID issues.
2016-10-05 12:20:58 +02:00
Chris Burgener
43c48a6f48
Fix frame dumps on file close in certain situations
2016-10-04 09:26:23 -04:00
Stenzek
db09c05eec
Vulkan: Fix bug with palette converted EFB copies
...
This happened when the source texture was an EFB copy, therefore it had
not been populated prior to the draw command buffer being executed, and
the conversion was occurring in the init command list.
2016-10-04 22:30:37 +10:00
shuffle2
ea33405feb
Merge pull request #4270 from stenzek/vulkan-defer-fix
...
Vulkan: Miscellaneous minor fixes
2016-10-04 01:47:59 -07:00
degasus
829fc8f0ad
PixelShaderGen: Drop dstAlphaMode constant in shader generation.
...
It is already stored within the UID.
2016-10-04 10:13:46 +02:00
Shawn Hoffman
86112c7258
VideoCommon: Minor changes
...
Make Renderer::GetMaxTextureSize return u32 instead of int.
2016-10-03 06:51:46 -07:00
Stenzek
28e5fa8d26
Vulkan: Handle both destination alpha and logic ops being enabled
...
Same way as GL with the dual-pass fallback. Not highly accurate, but does
fix the Kirby shadow bug.
2016-10-03 19:11:50 +10:00
Stenzek
f595fe080f
Vulkan: Fix bug with fractional LOD bias and min/max LOD
2016-10-03 19:11:48 +10:00
Stenzek
5e29508b8f
Vulkan: Fix vsync behavior when throttler is temp disabled
2016-10-03 19:11:48 +10:00
Stenzek
b193282830
Vulkan: Correct logic for handling target and window size changes
...
Should fix a possible reference to deleted framebuffers, as well as fixing
the issues with the render area being correct if the game's source area
changes, or auto-scaling is enabled.
2016-10-03 19:11:47 +10:00
Stenzek
7d14b9b48b
Vulkan: Add missing call to TextureCache::OnConfigChanged
...
This was preventing certain settings from being updated when changed at
runtime.
2016-10-03 19:11:47 +10:00
Stenzek
4a8766cec4
Vulkan: Fix resource leaks present at shutdown and mode changes
...
Infrequent, but still happened.
2016-10-03 19:11:47 +10:00
Stenzek
1286c309e3
Vulkan: Fix compilation on 32-bit targets
2016-10-03 19:11:47 +10:00
shuffle2
17aef319e8
Merge pull request #4240 from lioncash/include
...
Software: Clean out unnecessary includes/fwd decls
2016-10-02 20:31:35 -07:00
Mat M
ccfc081697
Merge pull request #4245 from aldelaro5/logs-levels-changes
...
Lots of Logs levels changes (also enable INFO level in every build)
2016-10-02 16:51:44 -04:00
aldelaro5
f0aa9b3751
Reorganise a ton of logs level
...
Most of this commits changes performance decreasing logs from info to debug and also cleans up innacurate levels.
2016-10-01 15:50:28 -04:00
Lioncash
9395b8efa9
Vulkan: Amend header includes
...
Adds headers where necessary to eliminate indirect includes.
Also adds headers to ensure certain standard constructs always
resolve correctly
2016-09-30 23:26:03 -04:00
Stenzek
a8194cff3c
VideoNull: Set all fields in backend_info
...
A few of these were missing, which could cause the adapter list to remain
visible after switching to null, for example.
2016-10-01 02:40:03 +10:00
Stenzek
5f66cf5ed7
Vulkan: Only submit init/upload command buffer when it has commands
...
This way we're not submitting empty buffers when it's unnecessary.
2016-10-01 02:40:03 +10:00
Stenzek
f6cdc38c8b
Vulkan: Use render-pass based clears where possible
2016-10-01 02:40:02 +10:00
Stenzek
c290398320
Vulkan: Ensure fast path is used for non-RGBA formats when clearing
2016-10-01 02:40:02 +10:00
Stenzek
f4944f006d
Vulkan: Support frame dumping/screenshots
2016-10-01 02:40:02 +10:00
Stenzek
77a128ab87
Implement experimental Vulkan backend
2016-10-01 02:40:01 +10:00
Stenzek
828aac7890
VideoBackends: Make TextureCache::CompileShaders return a bool
2016-10-01 01:09:12 +10:00
Stenzek
6a99cbd9fc
VideoCommon: Call Renderer::SurfaceChanged on render parent resize
...
This is needed because for some reason the WSI for NV Vulkan drivers
doesn't return VK_ERROR_OUT_OF_DATE_KHR, so there is no other way to know
that a resize has occured apart from polling, which is a poor solution for
X11 (since it is blocking).
2016-10-01 01:09:12 +10:00
Stenzek
5346078791
VideoCommon: Add config fields for multithreading and validation layers
2016-10-01 01:09:12 +10:00
Stenzek
09638e714e
VideoCommon: Extend DriverDetails to support both OpenGL and Vulkan
2016-10-01 01:09:12 +10:00
Stenzek
d9c034e8cc
ShaderGen: Specify attribute/output locations/bindings explicitly
...
This also shifts the SSBO index from index 3 to index 0.
2016-10-01 01:09:11 +10:00
Stenzek
9f541e490d
OGL: Handle case where both constant alpha and logic op is enabled
2016-09-30 23:18:14 +10:00
Markus Wick
cb759528e0
Merge pull request #3893 from hthh/perf-query-bug
...
Improve PerfQuery accuracy
2016-09-27 13:07:35 +02:00
Lioncash
c9ef042b2d
Software: Clean out unnecessary includes/fwd decls
2016-09-24 05:28:00 -04:00
Lioncash
ab28ef5cff
FramebufferManager: Add missing header guard
2016-09-23 13:55:51 -04:00
Lioncash
330944eef8
DebugUtils: const correctness
2016-09-22 21:05:17 -04:00
Lioncash
5ac161c132
TextureEncoder: const correctness
2016-09-22 21:01:56 -04:00
Lioncash
eb574e7bac
NativeVertexFormat: const correctness
2016-09-22 21:01:55 -04:00
Lioncash
5f1e444c28
Clipper: const correctness
2016-09-22 21:01:49 -04:00
Lioncash
d79d5d49f4
Rasterizer: const correctness
2016-09-22 20:39:28 -04:00
Markus Wick
2d0e857cb3
Merge pull request #4225 from lioncash/soft
...
SWVertexLoader: Value initialize SetupUnit instance
2016-09-22 16:05:32 +02:00
Lioncash
a8c8dd0c53
SWVertexLoader: Value initialize SetupUnit instance
2016-09-22 09:58:44 -04:00
Markus Wick
5890565575
Merge pull request #4233 from lioncash/efb
...
EfbInterface: Change out parameters on getters to return by value
2016-09-22 10:49:33 +02:00
Lioncash
33288c4569
EfbInterface: Change out parameters on getters to return by value
2016-09-21 20:56:44 -04:00
Lioncash
fc41e982e9
SWOGLWindow: Utilize the move constructor in PrintText
...
The previous code would always do a copy
2016-09-21 13:11:34 -04:00
Lioncash
99baa3268f
SWOGLWindow: const correctness for ShowImage
2016-09-21 12:54:22 -04:00
Lioncash
5b3c74a31a
OGL: Remove unnecessary c_str calls
2016-09-09 06:30:34 -04:00
Scott Mansell
f5c70a4b27
EFB2RAM: Downsample higher resolutions with linear filtering.
2016-09-07 11:17:32 +12:00
EmptyChaos
9d8f373016
VideoSoftware: Don't Init the PixelEngine twice
...
PixelEngine is initialized by InitializeShared()
2016-09-03 15:12:41 +10:00
Markus Wick
da82389347
Merge pull request #4172 from phire/software_fog_error
...
VideoSoftware: Fix unsigned overflow bug in fog
2016-09-02 09:53:44 +02:00
Scott Mansell
0e7424b359
VideoSoftware: Fix unsigned overflow bug in fog
...
Was causing fog errors on the left half of the screen.
Only appeared to affect visual studio builds, GCC did the correct
thing.
2016-09-02 10:12:44 +12:00
Jules Blok
2ab9e5e610
Merge pull request #4165 from lioncash/global
...
Backends: Remove unnecessary references to the renderer global
2016-09-01 03:20:31 +02:00
Lioncash
ec7114a658
OGL: Remove unnecessary renderer global references
2016-08-31 14:19:56 -04:00
Lioncash
168e145fae
D3D: Remove unnecessary renderer global references
2016-08-31 14:17:22 -04:00
Lioncash
9e26ef4aa8
D3D12: Remove unnecessary renderer global references
2016-08-31 14:14:51 -04:00
Preston Smith
94cbe0c12a
Comments
2016-08-31 06:40:50 -05:00
Preston Smith
e6ccd0729f
Revert postMat movement
2016-08-31 02:14:51 -05:00
Preston Smith
89b1d613cc
Remove else in software renderer
2016-08-30 18:33:27 -05:00
Preston Smith
e0a1ab9027
lint fix
2016-08-30 18:33:26 -05:00
Preston Smith
8f69de51ca
inputform ABC1's q value is defaulting to 0
...
This is causing the 0 divide case to run when source row is using tex0-7 and inputform is ABC1.
2016-08-30 18:33:25 -05:00
Preston Smith
767f56d7c8
Software renderer fix
2016-08-30 18:33:24 -05:00
Scott Mansell
0fbf72cbf1
Merge pull request #4140 from Armada651/ww-depth
...
D3D: Correctly invert the viewport depth range.
2016-08-24 02:28:53 +12:00
Jules Blok
a8a9348913
OGL: Handle cases where reversed depth is already used.
2016-08-23 15:54:04 +02:00
Jules Blok
65472260d8
D3D: Correctly invert the viewport depth range.
2016-08-23 09:57:11 +02:00
Lioncash
2bf05a544d
VertexManager: Correct variable naming scheme
...
Altered to indicate regular class members
2016-08-22 20:01:00 -04:00
Scott Mansell
f1964f90d6
Merge pull request #4129 from RisingFog/hahahahahahahahahaha
...
Fix a really stupid GLSL version parsing bug
2016-08-20 08:48:28 +12:00
Chris Burgener
da0204a85c
Fix a really stupid GLSL version parsing bug
2016-08-19 08:53:27 -04:00
JosJuice
31c530c7b3
Merge pull request #3386 from lioncash/memory
...
Common: Namespace MemoryUtil
2016-08-19 11:04:45 +02:00
Jules Blok
e86d7cbc99
OGL: Workaround gl_ClipDistance bug on Mesa i965.
2016-08-18 01:08:39 +02:00
Jules Blok
7078216b61
Improve documentation.
2016-08-16 21:09:58 +02:00
Jules Blok
8c1c7fc2da
Cosmetics.
2016-08-15 13:11:30 +02:00
Jules Blok
afa251af42
DriverDetails: Add bug for broken gl_ClipDistance on i965.
2016-08-15 13:11:28 +02:00
Jules Blok
94927f360f
VideoCommon: Add a user-defined far clipping plane.
2016-08-15 13:11:28 +02:00
Jules Blok
6e2052fae6
OGL: Disable clip distance on when not in a game-like state.
2016-08-15 13:11:27 +02:00
Jules Blok
a141e91dd2
OGL: Check for GL_DEPTH_CLAMP support.
...
It's not available in OpenGL ES and officially it's not supported on OpenGL 3.0/3.1.
Fallback to old depth range code if there is no method to disable depth clipping.
It's more important to have correct clipping than to have accurate depth values.
Inaccurate depth values can be fixed by slow depth.
2016-08-15 13:11:26 +02:00
Jules Blok
4582853af4
VertexShaderGen: Use reversed depth range.
2016-08-15 13:11:26 +02:00
Jules Blok
e9e81ece65
VideoBackends: Enable depth clamping.
2016-08-15 13:11:25 +02:00
Jules Blok
b1ed7e80fb
VertexShaderGen: Clip z using user-defined clipping planes.
2016-08-15 13:11:25 +02:00
Jules Blok
c223bd47b9
VideoCommon: Implement depth range equation in vertex shader.
2016-08-15 13:11:23 +02:00
Stenzek
bce8097712
D3D11: Support texture dumping of non-zero mipmap levels
2016-08-10 23:45:25 +10:00
Lioncash
e01c143379
Common: namespace MemoryUtil
2016-08-07 13:03:07 -04:00
Pierre Bourdon
d078c6cb35
Merge pull request #4073 from amaiorano/fix-d3d-debugobjectname
...
Fix D3D::SetDebugObjectName to bind to the EFB color_read_texture rat…
2016-08-01 00:38:02 +02:00
amaiorano
2030a5e1b8
Fix D3D::SetDebugObjectName to bind to the EFB color_read_texture rather than the depth_read_texture (probably a copy paste error)
2016-07-31 10:48:09 -04:00
Lioncash
14e0b48ae4
VideoCommon: Make API_TYPE an enum class
...
Allows for forward declarations in most places, which prevents dumping
unrelated VideoCommon.h contents directly into headers.
2016-07-29 19:20:16 -04:00
hthh
8be5717a60
Improve PerfQuery accuracy
...
In TimeSplitters: Future Perfect, PerfQuery is used to detect
the visibility of lights and draw coronas. 25 points are drawn
for each light. However, the returned count was incorrectly
being divided by four leading to dim coronas.
Using 4x antialiasing was a workaround because of a bug where
antialiasing multiplied the PerfQuery results. This commit
fixes that bug too (but only for OpenGL).
2016-07-04 18:54:49 +10:00
Chris Burgener
28a3691e70
Merge pull request #3930 from RisingFog/split_video_dump_resolution
...
Split Video Dumps on Resolution Change
2016-06-27 22:39:19 -04:00
Chris Burgener
f31adf9635
Fix D3D crashes/issues
2016-06-27 10:13:17 -04:00
Léo Lam
1b71249562
D3D: Fix crash on start with BBox enabled
...
Someone removed the BBox::Init(), causing crashes when BBox is enabled.
Fixes issue #9643 .
2016-06-27 12:45:00 +02:00
degasus
d79aeaa1e9
VideoCommon: Drop GetConfigName.
...
We're past 5.0 now, so there is no need to look for old inis.
2016-06-26 12:34:59 +02:00
degasus
5f2f462067
VideoBackends: Merge ShowConfig functions.
2016-06-26 12:34:59 +02:00
degasus
7833ff25df
VideoBackends: Merge Initialize and Shutdown functions.
2016-06-26 12:34:59 +02:00
Scott Mansell
ee9e3432cb
Merge pull request #3513 from phire/make_hdkr_happy
...
Get shadergen ready for Multithreadded generation of shaders.
2016-06-26 21:55:22 +12:00
comex
fe73ae8526
Add missing override
2016-06-26 00:49:50 -04:00
Scott Mansell
2f134c5c36
Remove the rest of ShaderDebugging.
...
Without UID checking, it's basically a no-op that disables shader cache
and stores the shader source code (without ever reading it back).
2016-06-26 16:25:11 +12:00
Scott Mansell
ebe5fd0b36
Multithreadded Shadergen: Minor fixups.
2016-06-26 16:13:22 +12:00
Scott Mansell
95469ec225
Remove UID Checker.
...
Kind of pointless now that multiple shaders with the same UID are
now fundementally impossible.
2016-06-26 16:13:22 +12:00
Scott Mansell
24e5d21780
Multithreadded Shadergen: Second pass over Pixel Shadergen.
...
Note: It's not 100% perfect, as some of the GPU capablities leak into the
pixel shader UID.
Currently our UIDs don't get exported, so there is no issue. But someone
might want to fix this in the future.
2016-06-26 16:13:21 +12:00
Scott Mansell
1a831cfc7d
Multithreadded Shadergen: Second Pass over vertex/lighting Shadergens
...
As much as possible, the asserts have been moved out of the GetUID
function. But there are some places where asserts depend on variables
that aren't stored in the shader UID.
2016-06-26 16:13:21 +12:00
Scott Mansell
28c7113e41
Multithreadded Shadergen: Second Pass over geometery Shadergen
2016-06-26 16:13:21 +12:00
degasus
fdbda7b7dd
Null: Create Visual Studio project file.
...
Why is this so stupid on linux.....
2016-06-25 22:40:23 +02:00
degasus
59e4882af3
nullvideo: initial release of null video backend
2016-06-25 22:40:23 +02:00
Pierre Bourdon
43d0d692f9
Fix D3D12 headers missing includes.
2016-06-24 11:14:10 +00:00
Pierre Bourdon
3570c7f03a
Reformat all the things. Have fun with merge conflicts.
2016-06-24 10:43:46 +02:00
Scott Mansell
d197f489b9
analytics: Report OpenGL's adapter name too.
2016-06-20 23:54:44 +12:00
Anthony Serna
0e5852f634
[OGL] Workaround nvidia being weird with GL_MAX_TEXTURE_SIZE
2016-05-30 10:06:19 -05:00
Rohit Nirmal
14220ae488
Fix building with PCH disabled.
2016-05-26 13:05:21 -05:00
Stenzek
e169d54f3c
D3D11: Fix CPU EFB color reads when MSAA is enabled
...
Also swaps the byte order from RGBA->BGRA to match GL/D3D12, and what
the read handler is expecting.
Depth reads will now return the minimum depth of all samples, instead of
the average of all samples.
2016-05-19 22:51:00 +10:00
Stenzek
89e54fbd6c
OGL: Work around slowdown of glMapBufferRange with SSBO on NVIDIA drivers
...
Using glMapBufferRange to read back the contents of the SSBO is extremely
slow on NVIDIA drivers. This is more noticeable at higher internal
resolutions. Using glGetBufferSubData instead does not seem to exhibit
this slowdown.
2016-05-19 21:24:09 +10:00
Markus Wick
22648729c7
Merge pull request #3832 from degasus/android
...
DriverDetails: Update Qualcomm new driver version.
2016-05-18 21:26:45 +02:00
degasus
3a452f3cc5
VideoSW: Fix XFB config.
2016-05-18 18:37:44 +02:00
degasus
fa3526962d
VideoSW: Drop Update in XFB copy.
2016-05-18 18:37:44 +02:00
degasus
bca0e06a95
OGL: Use coherent mapping on Qualcomm devices.
2016-05-11 23:55:28 +02:00
degasus
6219c39cf5
OGL: Drop QC ES3.1 workaround.
...
This was never tested well:
HdkR> The tester was most likely trying to load a stale shader cache or something
2016-05-11 20:45:07 +02:00
Stenzek
ccf9470241
D3D12: Specify read/write ranges when calling Map/Unmap
2016-05-08 23:18:59 +10:00
Stenzek
fde7dee652
D3D12: Fix invalid CopyTextureRegion call in CopyRectangleFromTexture
...
This was occuring when the source texture was larger than the destination
texture, but the source rect was <= dest rect, so the copy is valid.
2016-05-08 23:18:58 +10:00
Stenzek
9bff187547
D3D12: Cleanup startup/shutdown process
...
Sorts out references that cause some modules to be kept around after
backend shutdown.
Should also solve the issue with errors being thrown due to the config
being loaded after device creation, leading to the incorrect device being
used in a multi-adapter system.
2016-05-08 23:18:58 +10:00
Stenzek
4269abdc3e
D3D12: Implement perf query support
2016-05-08 23:18:57 +10:00
Stenzek
25d5da0ea3
D3D12: Remove D3D11 header references
2016-05-08 23:18:56 +10:00
Stenzek
6f3573dda8
D3D12: Implement XFB encoding/decoding (support Real XFB)
2016-05-08 23:18:51 +10:00
Stenzek
3372bfa6ab
D3D12: Remove feature level checks
...
We don't create a device below feature level 11_0 anyway, so no point
checking, we can just assume support.
2016-05-08 12:08:25 +10:00
Stenzek
063761fbd2
D3D12: Don't add padding when allocating within empty StreamBuffer
...
Resources are already aligned to an address larger than any of our
requirements, anyway.
2016-05-08 12:08:25 +10:00
Stenzek
0c27aae7d3
D3D12: Improve output of shader compiler errors
...
These were completely broken due to lack of c_str(). We also output
warnings now as well (these can be useful).
2016-05-08 12:08:25 +10:00
Stenzek
acfa93372e
D3D12: Refactoring and cleanups
...
Moves render target restoring to RestoreAPIState, this also means no need
to manually restore after allocating in a buffer that caused execution,
because the manager restores it for us.
Remove a method that wasn't used from D3DUtil.cpp, and fixes a few errors
in EFB poke drawing.
2016-05-08 12:08:25 +10:00
Stenzek
7ec1fce741
D3D12: Fix error with >1xIR/MSAA EFB depth access
2016-05-08 12:08:25 +10:00
Stenzek
ac1cd8279b
D3D12: Implement GPU-based bounding box
2016-05-08 12:08:25 +10:00
Stenzek
32599559db
D3D12: Use helper method for binding EFB render targets
2016-05-08 12:08:25 +10:00
Stenzek
984da2d624
D3D12: Use signed ints for viewport origin
...
Fixes black screen when crop is enabled.
2016-05-08 12:08:25 +10:00
Stenzek
a8c4d6c242
D3D12: Allow large texture uploads (>64MiB) by using temporary buffer
...
This is not optimal, but for those texture packs with extremely large
images, it won't crash. Releasing after the frame completes is an option
too, however, there is the risk of running out of memory by doing this.
2016-05-08 12:08:25 +10:00
Matthew Parlane
1634948b6e
Merge pull request #3742 from phire/dither
...
Implement Dithering for video software
2016-05-03 22:41:39 +12:00
degasus
6f2d8483b7
VideoSW: Fix special case.
...
I have no clue what this special case shall be, but accessing g_main_cp_state within Flush() is not allowed.
We likely still have a bad behavior, but now it only depends on the current state, not on the next one after flushing.
2016-04-30 13:14:09 +02:00
Jules Blok
8a21b082d6
Merge pull request #3745 from stenzek/d3d11-texcache
...
D3D11: Fix EFB MSAA depth buffer copies, StateManager desyncs in some cases
2016-04-24 11:47:32 +02:00
Lioncash
33c22ffab7
D3D: Amend code to fix a new VS warning
...
Fixes warning C4334
2016-03-30 20:59:57 -04:00
Pierre Bourdon
486d3a7114
Merge pull request #3656 from phire/windows-10-sdk-update
...
Updated D3D12 to build on the newer windows 10 sdk.
2016-03-30 18:37:53 +02:00
Scott Mansell
c036cf7a5f
Updated D3D12 to build on the newer windows 10 sdk.
2016-03-26 18:11:49 +13:00
Pierre Bourdon
2fd0884347
Merge pull request #3672 from EmptyChaos/d3d-anisotropy
...
Fix D3D Forced Anisotropy
2016-03-26 03:25:01 +01:00
Scott Mansell
066b6b0bcb
OpenGL: Cache query to max texture size.
...
This showed up really high when I was profiling things.
2016-03-26 03:14:39 +13:00
Stenzek
53cf42fb06
D3D11: Fix some cases where render target switches desynced StateManager
...
This was occuring in certain EFB copy patterns, leaving the textures
unbound for the next draw call.
2016-03-26 00:01:26 +10:00
Stenzek
63e4e07683
D3D11: Simplify MSAA depth texture resolving
...
This also fixes EFB depth buffer copies when MSAA is enabled.
2016-03-26 00:00:39 +10:00
EmptyChaos
0b9a72a62d
VideoCommon: Refactor TexMode0 mipmaps disabled test into a helper function
2016-03-24 13:43:29 +11:00
EmptyChaos
902e5cddf7
VideoBackends: Do not use Anisotropy on Point filtered textures.
...
The D3D backend was always forcing Anisotropic filtering when that is enabled regardless of how the game chose to configure the texture filtering registers; this causes the same issues as "Force Filtering" without Anisotropy, such as causing game UI elements to no longer line up adjacent correctly. Historically, OpenGL's Anisotropy support has always worked "better" than D3D's due to seeming to not have this problem; unfortunately, OpenGL's Anisotropy specification only gives GL_LINEAR based filtering modes defined behavior, with only the mipmap setting being required to be considered. Some OpenGL implementations were implicitly disabling Anisotropy when the min/mag filters were set to GL_NEAREST, but this behavior is not required by the spec so cannot be relied on.
2016-03-24 13:43:29 +11:00
Scott Mansell
51dc779b7c
Implement Dithering for video software
2016-03-23 12:29:35 +13:00
mimimi085181
e4f984d5dd
Minor fixes to the partial updates code
...
- remove an outdated comment about the efb to ram and scaled efb restriction
- when upscaling efb copies, mark the new texture as efb copy
- dx12 fixes for the src box, especially the number of layers for 3D
2016-03-16 22:24:11 +01:00
degasus
ab44d2ec5c
VideoSW: Drop SetTevReg for colors.
2016-03-06 11:05:49 +01:00