Connor McLaughlin
7d17163ce8
Merge pull request #7862 from spycrab/macos_vulkan_crash
...
VideoCommon/RenderBase: Don't destroy pipelines that are in use
2019-03-07 23:15:48 +10:00
Connor McLaughlin
a59010fa29
Merge pull request #7851 from Tilka/efb_stats
...
VideoCommon: add EFB peek/poke stats
2019-03-04 15:28:22 +10:00
Connor McLaughlin
1d80ab33ad
Merge pull request #7836 from Tilka/fix_xfb
...
TextureConversionShader: fix XFB decoding shader
2019-03-02 12:31:39 +10:00
Stenzek
8192c0dd48
TextureConversionShader: Fix XFB decoding shader for D3D
...
D3D has no mix() equivalent with a bool parameter. Compilers should be
able to optimize the ternary into a select anyway.
2019-02-28 20:43:50 +10:00
Stenzek
21d81f99ff
VideoBackends: Fix GPU decoding of XFB buffers
...
Was using UNORM instead of UINT, resulting in invalid values.
2019-02-28 20:35:22 +10:00
Stenzek
db6763019d
TextureCache: Fix GPU decoding of XFB copies not falling back to CPU
2019-02-28 20:19:37 +10:00
Stenzek
7f0111b022
TextureCache: Fix EFB2RAM copies at >1xIR sampling out-of-range
2019-02-28 20:11:46 +10:00
Stenzek
f039149198
Move most backend functionality to VideoCommon
2019-02-19 16:57:54 +10:00
Stenzek
933f3ba008
TextureCache: Don't copy out-of-range rectangles when stitching textures
...
This can cause driver crashes or GPU hangs if we do.
2019-02-17 16:35:43 +10:00
Stenzek
2165523fdc
TextureConverterShader: Write EFB2Tex XFB copies with alpha value of 1
...
This way we don't end up with artifacts of the EFB's alpha values in
frame dumps. XFB copies loaded from RAM also set the alpha to 1, so this
will match.
2019-02-17 16:35:43 +10:00
Stenzek
50bdcb8d9c
TextureCache: Bind textures/samplers after loading all textures
...
Since loading textures can result in rendering, e.g. partial copies, we
don't want to disturb partially-bound GX state.
2019-02-17 16:35:43 +10:00
Connor McLaughlin
b5c3881fe7
Merge pull request #7512 from stenzek/runtime-headless
...
DolphinNoGUI: Runtime selection of platform
2019-02-16 14:15:00 +10:00
Stenzek
eabde77892
CMake: Add an ENABLE_NOGUI option
2019-02-15 18:40:46 +10:00
Stenzek
836f76da89
DolphinNoGUI: Runtime selection of platform
2019-02-15 18:40:46 +10:00
Stenzek
f9869cb216
Vulkan: Support runtime selection of WSI
2019-02-15 18:40:46 +10:00
Stenzek
a4c64e7964
Externals: Set target platform to 10.0.17134 for FreeSurround
2019-02-14 20:42:06 +10:00
Connor McLaughlin
326d72728c
Merge pull request #5235 from LAGonauta/fs-dplii-decoder
...
Change FFDShow DPL2 decoder to FreeSurround
2019-02-14 18:38:12 +10:00
Stenzek
cecefa2d97
ChunkFile: Don't access element zero of empty container
...
This was causing assertion failures in debug MSVC builds.
2019-02-10 13:28:50 +10:00
Stenzek
ef3306e954
GLContext: Fix shared context creation error on Mesa
...
This was failing if the first version tried (4.6) didn't succeed.
2019-02-09 21:51:23 +10:00
Stenzek
31a5dd15a9
DolphinQt: Connect Host::RequestStop() to MainWindow::RequestStop()
...
The fact that this wasn't connected was causing fifoplayer to hang if
looping was disabled.
2019-02-02 13:36:46 +10:00
Connor McLaughlin
84794a6f0c
Merge pull request #7749 from jordan-woyak/fix-anaglyph-pp-selection
...
DolphinQt: Fix selection of PP shader when using anaglyph 3D.
2019-01-28 11:01:17 +10:00
Stenzek
3b033bf3f0
Vulkan: Move clear shader from Renderer to ShaderCache
2019-01-27 13:07:35 +10:00
Stenzek
e2cf238ec4
Vulkan: Move swapchain related members from Renderer to SwapChain
2019-01-27 12:59:57 +10:00
Stenzek
bd66db049a
Vulkan: Use device-local functions where possible
...
Avoids a call into the loader library, which may improve performance
ever-so-slightly.
2019-01-27 12:51:04 +10:00
Stenzek
ce1cc2d9fa
Vulkan: Don't execute command buffer before shutting down
...
We don't need to, and this was causing occasional crashes on Adreno.
2019-01-27 12:41:10 +10:00
Stenzek
b01df8670f
Renderer: Fix throttle-disable (TAB) hotkey when vsync is enabled
2019-01-27 12:31:12 +10:00
Connor McLaughlin
ff5e296576
Merge pull request #7741 from Techjar/no-resume-on-stop
...
Qt/MainWindow: Don't unpause after confirming shutdown
2019-01-26 23:48:52 +10:00
Stenzek
3d8145af65
RenderWidget: Fix mouse position for imgui on hidpi screens
2019-01-26 01:31:58 +10:00
Stenzek
774480ba23
Vulkan: Set contents scale of Metal layer to screen factor
...
This gives us a native resolution framebuffer.
2019-01-26 00:02:04 +10:00
Connor McLaughlin
af25b9aede
Merge pull request #7731 from zackhow/point
...
Android: Fix pointer if game aspect ratio is larger than device's
2019-01-25 19:38:29 +10:00
Stenzek
ee0fa548bc
Vulkan: Don't bind last descriptor set if bounding box is unsupported
...
Fixes crash on a4xx/Vulkan.
2019-01-25 11:15:57 +10:00
Stenzek
c6f151c4e1
Android: Use scaledDensity as backbuffer scale (for imgui)
2019-01-25 11:15:57 +10:00
Stenzek
82fd923a4e
Android: Add getter method for NativeLibrary.sEmulationActivity
...
Also makes sEmulationActivity private.
2019-01-25 11:15:57 +10:00
Stenzek
e9b02e7dd0
Vulkan: Remove unused UpdateUtilityUniformBuffer function
2019-01-25 11:15:57 +10:00
Stenzek
78588ce79d
ShaderCache: Use imgui for shader compilation dialog
2019-01-25 11:15:57 +10:00
Stenzek
e4b205c769
Decouple XFB scanout from presentation
2019-01-25 11:15:57 +10:00
Stenzek
f1e7fb505b
Renderer: Scale all imgui fonts by the backbuffer scale
2019-01-25 11:15:57 +10:00
Stenzek
c9c0b85056
VideoBackends: Store a backbuffer 'scale'
...
This is a scaling factor, used for hi-dpi configurations.
2019-01-25 11:15:57 +10:00
Stenzek
e03b8e899e
Vulkan: Move texture upload buffer to ObjectCache
2019-01-25 11:15:57 +10:00
Stenzek
36ce47635b
RenderWidget: Hook up to ImGui
2019-01-25 11:15:57 +10:00
Stenzek
63dd91628d
Remove old RasterFont classes
2019-01-25 11:15:57 +10:00
Stenzek
600d1fc0bc
Renderer: Use imgui for drawing debug text and OSD
2019-01-25 11:15:57 +10:00
Stenzek
d1868d9475
RenderBase: Implement imgui rendering
2019-01-25 11:10:49 +10:00
Stenzek
396b7c2978
OGL: Invalidate tracked state when calling ResetAPIState()
...
Due to the current design, any of the GL state can be mutated after
calling this function, so we can't assume that the tracked state will
match if we call SetPipeline() after ResetAPIState().
2019-01-25 11:10:49 +10:00
Connor McLaughlin
224b23b979
Merge pull request #7729 from stenzek/adreno-sillyness
...
ShaderGen: Fix broken rendering on Adreno Vulkan drivers
2019-01-25 11:07:12 +10:00
Stenzek
1d61041985
ShaderGen: Don't use interface blocks on Vulkan without GS
...
Doing so causes the Adreno driver to choke and spew errors about
too many output locations/components, when clearly we're under
the limit.
2019-01-24 17:02:17 +10:00
Stenzek
68cb24172b
ShaderGen: Omit some unused varyings when possible
...
Removes the clipPos varying unless slow-depth is used, and the
clipDistance varyings if geometry shaders are not used.
2019-01-23 18:34:22 +10:00
Stenzek
1070192165
TextureCache: Fix a possible crash when partial updating palette textures
2019-01-19 23:38:02 +10:00
Stenzek
84bcbef944
TextureCache: Don't partial copy to non-existant texture layers
2019-01-19 23:38:00 +10:00
Stenzek
ade255a5ff
TextureCache: Fix broken XFB stitching with stereoscopy is enabled
2019-01-19 23:23:21 +10:00
Stenzek
6bfe4c83a5
OGL: Fix broken stereoscopy geometry shader for EFB copies
2019-01-19 23:22:57 +10:00
Connor McLaughlin
5962316068
Merge pull request #7643 from weihuoya/texture-overlap
...
Texture: fx overlap src position
2019-01-16 08:49:36 +10:00
Connor McLaughlin
c2afcb0f6b
Merge pull request #7692 from zackhow/bboxadroid
...
Android/OGL: fix bounding box for OpenGL-ES
2019-01-10 12:17:33 +10:00
Connor McLaughlin
0da5929226
Merge pull request #7626 from weihuoya/vulkan-oom
...
Always clean cache on render swap
2019-01-08 21:57:25 +10:00
Stenzek
7afd5cc2fb
Use main buffers for utility draws
2018-12-04 17:37:25 +10:00
Stenzek
5ca18ff04e
Vulkan: Restore viewport/scissor state on RestoreAPIState
2018-12-04 17:36:08 +10:00
Stenzek
b409a87d1a
D3D: Clamp viewport to current framebuffer dimensions, not target
2018-12-04 17:36:08 +10:00
Stenzek
fa8262fa4a
Vulkan: Don't panic on missing color/depth buffer in config
2018-12-04 17:36:08 +10:00
Stenzek
2644e920cc
Renderer: Add backbuffer format to base class
2018-12-04 17:36:08 +10:00
Stenzek
1adcd47dcb
Renderer: Add a base Initialize() method to match Shutdown()
2018-12-04 17:36:08 +10:00
Stenzek
38479dd783
RenderBase: Force a pipeline flush when drawing the XFB to the host
...
Since we use the common pipelines here and draw vertices if a batch is
currently being built by the vertex loader, we end up trampling over its
pointer, as we share the buffer with the loader, and it has not been
unmapped yet. Force a pipeline flush to avoid this.
2018-12-04 17:36:08 +10:00
Connor McLaughlin
c675ef148e
Merge pull request #7604 from weihuoya/vulkan-index-buffer
...
Vulkan: fx index buffer reserve size
2018-12-03 21:32:45 +10:00
Stenzek
e3708ea8c3
Externals: Add MoltenVK binary, copy to package on macOS
2018-12-01 14:35:45 +10:00
Connor McLaughlin
6388992f62
Merge pull request #7039 from stenzek/moltenvk
...
Vulkan: macOS support via MoltenVK
2018-11-30 21:55:30 +10:00
Connor McLaughlin
e49e8d3ff8
Merge pull request #7595 from ymartel06/fix-minizip-compilation-vs2017
...
VS2017: update windows 10 sdk from 10.0.15063.0 to 10.0.17134.0 (for minizip)
2018-11-29 12:19:53 +10:00
Stenzek
cfdbd45105
Externals: Add imgui
2018-11-26 20:40:34 +10:00
Stenzek
502c4c0e87
TextureCache: Recompute overlapping XFB copy hashes after copying to RAM
2018-11-13 12:48:27 +10:00
Stenzek
a0653a1a34
Vulkan: Fix incorrect fence being assigned to staging texture
2018-11-12 01:02:32 +10:00
Stenzek
78056686fd
TextureCache: Fix leaking TCacheEntry instances
2018-11-08 11:52:17 +10:00
Stenzek
0c0d66809d
PixelShaderGen: Split bbox into seperate variables
...
The Metal shader compiler fails to compile the atomic instructions
when operating on individual components of a vector. Spltting it
into four variables shouldn't make any difference for other
platforms, as they are accessed independently.
2018-11-07 05:41:09 -08:00
Stenzek
673f1963a0
Vulkan: Support macOS via MoltenVK
...
The path to the MoltenVK library can be specified by the
LIBMOLTENVK_PATH environment variable, otherwise it assumes it is
located in the application bundle's Contents/MacOS directory.
2018-11-07 05:41:09 -08:00
Stenzek
c7a2b1572b
CMake: Build Vulkan backend on macOS
2018-11-07 05:12:20 -08:00
Stenzek
041b977523
Common: Use GCD semaphores on macOS
...
Unnamed semaphores are not supported.
2018-11-07 05:12:20 -08:00
Stenzek
a1b9a9f519
DolphinQt: Add backend multithreading to graphics config
2018-11-07 05:12:20 -08:00
Stenzek
487ea5ab36
VideoBackend: Add a virtual PrepareWindow function
...
Executes backend-specific commands on the main thread.
2018-11-07 05:12:20 -08:00
Stenzek
7efdd1070b
OGL: Fix crash when opening graphics window on another backend
2018-11-07 21:20:12 +10:00
Stenzek
a45f977d26
Analytics: Add deferred EFB copies setting to graphics settings
2018-11-07 16:25:01 +10:00
Stenzek
71e3bc40a3
Android: Add defer EFB copies to settings
2018-11-07 16:25:01 +10:00
Stenzek
66b6e72c5e
Vulkan: Submit fewer command buffers in deferred EFB copies mode
2018-11-07 16:25:01 +10:00
Stenzek
8e2c063d62
TextureCache: Implement deferred/batched EFB copies
2018-11-07 16:25:01 +10:00
Stenzek
6392be61eb
Host: Also call ControllerInterface::ChangeWindow when window changes
...
This should prevent us from trying to poll against destroyed native
windows.
2018-10-29 11:46:06 +10:00
Stenzek
cb6ba59a44
Host: Don't call ChangeSurface when handle hasn't changed
...
This was causing a deadlock when switching to fullscreen in
render-to-main-window mode.
2018-10-29 11:46:06 +10:00
Stenzek
52828901ef
Core: Switch controller interface to render widget on booting
...
Previously, the Qt frontend would initialize the controller
interface on starting, resulting in the cursor position being
relative to the main window, instead of the render window.
2018-10-29 11:46:06 +10:00
Stenzek
a7f334dc2a
ControllerInterface: Don't crash on non-X11 QPA
2018-10-29 11:46:06 +10:00
Stenzek
7c4607a05a
Vulkan: Add missing increment of draw call count
2018-10-28 11:32:26 +10:00
Stenzek
8c84e27155
Core: Fix display being passed as surface to ControllerInterface
2018-10-24 15:24:10 +10:00
Stenzek
1e8cdc02d1
CMake: Fix DolphinNoGUI build
2018-10-24 14:50:23 +10:00
Stenzek
2c6d96433c
GLContext: Try GL versions 3.2-4.6 when getting a context
...
GLX previously was only creating a 4.0 context.
2018-10-20 21:11:34 +10:00
Stenzek
c95802afeb
CMake: Make X11 and EGL optional
2018-10-20 21:11:34 +10:00
Stenzek
0559311f92
GLContext: Runtime selection of EGL/GLX on Linux
2018-10-20 21:11:34 +10:00
Stenzek
025e909773
GLContext: Use destructor instead of Shutdown() to cleanup
...
Also uses the Initialize() method to make the context current.
2018-10-20 21:11:34 +10:00
Stenzek
4b8d1c2b42
GLContext: Combine shared context initialization and creation
2018-10-20 21:11:34 +10:00
Stenzek
dcdd02d646
GLContext: Remove global context pointer
2018-10-20 21:11:34 +10:00
Stenzek
eb284b5d66
VideoBackends: Pass window system info from host on creation
2018-10-20 21:11:34 +10:00
Stenzek
9c57a98723
GLContext: Use host connection
...
This also removes the need for a sleeping event thread.
2018-10-20 21:11:34 +10:00
Stenzek
1d827a5223
Renderer: Pull dimensions from GLInterface/Swapchain
2018-10-20 21:11:34 +10:00
Stenzek
a3961750a7
Drop Host_GetRenderSurface and pass display to backend
2018-10-20 21:11:34 +10:00
Stenzek
134d967be2
Refactoring and cleanup of GLInterface (now GLContext)
2018-10-20 21:11:34 +10:00
Stenzek
74b82bab3b
GLInterface: Drop Haiku support
2018-10-20 21:11:33 +10:00
Stenzek
ea77899ddd
Qt/MainWindow: Maintain pointer to hotkey window
...
Prevents multiple hotkey windows from being opened.
2018-10-14 22:24:31 +10:00