Anthony
b66f96c617
Merge pull request #6042 from stenzek/videocommon-pipelines
...
VideoCommon pipelines ("Abstract Pipeline")
2018-02-23 09:18:19 -08:00
Stenzek
2ba8f67feb
OGL: Call GLInterface->Update() on window resize
...
macOS in particular requires the context be updated manually when the window
is resized.
2018-02-23 22:27:10 +10:00
Stenzek
fec6bb4d56
VideoBackends: Add AbstractShader and AbstractPipeline classes
2018-02-22 22:02:34 +10:00
Stenzek
31111ef143
D3D: Remove state stack from tracker, set explicitly instead
2018-02-22 19:40:55 +10:00
Stenzek
e18c7b1c33
D3D: Support state tracking of compute shaders
2018-02-22 19:11:27 +10:00
Stenzek
e8ff2b2006
D3D: Support compiling compute shaders
2018-02-22 19:11:25 +10:00
Stenzek
aaea515d71
GLUtil: Drop now-unused attributeless VAO helpers
2018-02-22 19:09:28 +10:00
Stenzek
052d78bcb1
OGL: Log warnings from shader compiles, even if it compiled successfully
2018-02-22 19:08:54 +10:00
Stenzek
3fd4142f36
OGL: Track state of last bound vertex array object
...
This reduces the overhead of calling glBindVertexArray() every time
RestoreAPIState() is called, even when it is redundant.
2018-02-22 19:08:52 +10:00
Markus Wick
e01fe46068
Merge pull request #6367 from stenzek/gl-flush
...
OGL: Use explicit flush instead of GL_SYNC_FLUSH_COMMANDS_BIT
2018-02-19 16:26:35 +01:00
Stenzek
de632fc9c8
Renderer: Handle resize events on-demand instead of polling
...
We now differentiate between a resize event and surface change/destroyed
event, reducing the overhead for resizes in the Vulkan backend. It is
also now now safe to change the surface multiple times if the video thread
is lagging behind.
2018-02-20 01:15:55 +10:00
Stenzek
5baf3bbe2e
OGL: Clear backbuffer before presenting instead of at start of frame
2018-02-20 01:11:40 +10:00
Stenzek
c1b39ecc58
BPFunctions: Move upscaling of scissor rect to VideoCommon
2018-02-20 00:49:32 +10:00
Stenzek
5359396099
BPFunctions: Move GX viewport conversion to VideoCommon
2018-02-20 00:49:32 +10:00
Stenzek
7c517226ed
Vulkan: Remove redundant YUYV conversion shaders
...
These are no longer used as of hybrid XFB.
2018-02-14 15:26:35 +10:00
Stenzek
84b990faa0
VideoConfig: Remove bForceCopyToRam field
...
It's the inverse of supports-copy-to-vram.
2018-02-11 15:29:37 +10:00
Stenzek
6490c2b86b
OGL: Use explicit flush instead of GL_SYNC_FLUSH_COMMANDS_BIT
2018-02-09 01:25:14 +10:00
Stenzek
4b96db8fc9
OGL: Don't leave staging texture buffer bound after mapping
...
This could cause glReadPixels() calls which assume no buffer is bound
(e.g. CPU EFB access) to fail. The problem was limited to devices which
don't support persistent mapping, as the map path is not otherwise.
2018-02-09 01:15:27 +10:00
Anthony
096131c908
Merge pull request #6334 from stenzek/startup
...
Video Backend Initialization/Core Boot Improvements
2018-02-07 23:35:54 -08:00
Anthony
4636230f5a
Merge pull request #6333 from stenzek/vulkan-transition
...
Vulkan: Fix invalid stage mask in layout transitions
2018-02-07 23:32:05 -08:00
Greg V
be716a680f
Do not link to libusbhid on FreeBSD/NetBSD
...
Both libusbhid (system library) and libhidapi (3rd party library)
provide a function called hid_init. Dolphin was being linked to both.
The WiimoteScannerHidapi constructor was calling hid_init without
arguments. libusbhid's hid_init expects one argument (a file path).
It was being called as if it was defined without arguments, which
resulted in a garbage path being passed in, and because of that,
the Qt GUI was failing to launch with the following error:
'dolphin-emu-qt2: @ : No such file or directory'
2018-02-05 00:46:59 +03:00
Stenzek
260d5b7aa7
BPMemory: Handle fog configuration where both A and C are infinity/NaN
...
The console appears to behave against standard IEEE754 specification
here, in particular around how NaNs are handled. NaNs appear to have no
effect on the result, and are treated the same as positive or negative
infinity, based on the sign bit.
However, when the result would be NaN (inf - inf, or (-inf) - (-inf)),
this results in a completely fogged color, or unfogged color
respectively. We handle this by returning a constant zero for the A
varaible, and positive or negative infinity for C depending on the sign
bits of the A and C registers. This ensures that no NaN value is passed
to the GPU in the first place, and that the result of the fog
calculation cannot be NaN.
2018-02-01 17:40:39 +10:00
Stenzek
fe5150cc31
Merge pull request #6303 from TraceBullet/auto-adjust-window-size
...
Fix Auto-Adjust Window Size option making the window too large
2018-01-29 17:28:44 +10:00
Stenzek
c790077c13
VideoBackend: Remove PeekMessages method
...
The video thread and backend no longer create any windows, therefore
there will never be any messages dispatched to their thread.
2018-01-27 13:53:55 +10:00
Stenzek
d96e8c9d76
VideoBackends: Combine Initialize/Prepare and Cleanup/Shutdown methods
...
Also allows the work previously done in Prepare to return a failure
status.
2018-01-27 13:53:55 +10:00
TraceBullet
ab6f932347
Fix Auto-Adjust Window Size option making the window too large
2018-01-26 10:47:19 -05:00
Stenzek
81ae88d2d5
AbstractTexture: Fix crash in Vulkan backend when freeing texture
2018-01-26 19:12:11 +10:00
Stenzek
fd39103c73
Vulkan: Fix invalid stage mask in layout transitions
2018-01-26 12:33:24 +10:00
Stenzek
47f453d7aa
Vulkan: Fix waiting on non-existant fence when reading back
2018-01-26 12:33:24 +10:00
Stenzek
38e0b6e2ab
AbstractTexture: Move Bind() method to Renderer
...
This makes state tracking simpler, and enables easier porting to command
lists later on.
2018-01-22 13:22:09 +10:00
Stenzek
4997fbce44
Vulkan: Fix possible mismatch between EFB framebuffer and render pass
...
This could happen when changing MSAA settings or internal resolution at
runtime.
2018-01-11 16:02:31 +10:00
Stenzek
0525726338
Vulkan: Move pipeline barrier outside render pass for EFB peeks
2018-01-11 15:36:01 +10:00
Stenzek
48a8063cd5
Vulkan: Fix FramebufferManagerBase::m_EFBLayers being set out-of-range
2018-01-11 15:30:27 +10:00
Stenzek
173a33886c
Vulkan: Move render pass management to ObjectCache
2018-01-11 15:21:34 +10:00
Stenzek
0e50b2c9f2
Vulkan: Add missing layout transition when resolving MSAA depth buffers
2018-01-11 15:21:33 +10:00
Jonathan Hamilton
c709f3c2d1
Standardise some enums from ALL_CAPS to CamelCase
2018-01-05 10:03:58 -08:00
Jonathan Hamilton
8d68adcaf3
Workaround qualcomm driver bug
...
It seems it doesn't like modifying inout variables in place - so instead
use a temporary for ocol0/ocol1 and only write them once at the end of
the shader
2018-01-05 09:56:46 -08:00
Jonathan Hamilton
29a9ed043b
Implement dual-source blending in shader
...
For some GLES drivers that don't support dual-source blending, but do
support GL_EXT_shader_framebuffer_fetch, this might be useful.
2018-01-05 09:56:46 -08:00
Stenzek
5f5aca7870
OGL: Fix incorrect usage of glGetTextureSubImage
...
Was causing issues with texture dumping on newer drivers.
2017-12-10 15:31:14 +10:00
degasus
02dd062518
VideoCommon: Drop now unused efb2tex matrix generation.
2017-12-06 09:30:03 +01:00
Stenzek
e0ffce2785
D3D: Use VideoCommon EFB-to-texture shaders
2017-12-06 03:33:50 +10:00
Lioncash
050440fd5b
OGL/TextureConverter: Remove unnecessary using declaration
2017-12-03 18:51:22 -05:00
Lioncash
93e85f9a7c
OGL/TextureConverter: Resolve -Wmissing-variable-declaration warnings
2017-12-03 18:51:17 -05:00
JosJuice
f68956a614
Merge pull request #6232 from lioncash/d3d-vert-mgr
...
D3D/VertexManager: Add missing includes
2017-12-03 09:24:23 +01:00
Lioncash
6ca85dbf0a
VKTexture: Add missing override specifier to the other ScaleRectangeFromTexture() prototype
2017-12-02 20:20:13 -05:00
Lioncash
c7bc16811c
VKTexture: Remove unimplemented ScaleRectangleFromTexture() prototype
2017-12-02 20:15:32 -05:00
Lioncash
b0fadbb5de
D3D/VertexManager: Add missing includes
...
Gets rid of reliance on indirect includes
2017-12-02 20:09:33 -05:00
Léo Lam
d95177526f
VideoBackends: Fix -Wswitch warnings
2017-12-02 21:52:07 +01:00
degasus
e2a9ee384f
VideoCommon: Rename TextureConversionShader namespace.
2017-12-02 15:17:39 +01:00
degasus
e8febd0cef
VideoCommon: Create a namespace for TextureConversionShaderGen.
2017-12-02 15:17:39 +01:00