Commit Graph
100 Commits
Author SHA1 Message Date
Connor McLaughlin 9b17805be9 Merge pull request #9881 from blaahaj/postprocessing-fix
PostProcessing: Fix OpenGL UBO linking with configuration options
2021-07-14 13:14:17 +10:00
Connor McLaughlin c729852d72 Merge pull request #9782 from Techjar/bbox-ogl-upsidedown-fix
VideoCommon: Perform OpenGL bounding box inversion in pixel shader
2021-06-08 13:24:03 +10:00
Connor McLaughlin 1b3977990b Merge pull request #9800 from Techjar/vulkan-subgroup-fix
Vulkan: Fix subgroup reduction
2021-06-08 13:21:41 +10:00
Connor McLaughlin b3a414ea9d Merge pull request #9766 from stenzek/ogl-bbox-memory-barrier
OGL: Force memory barrier when reading back bounding box values
2021-05-29 17:04:57 +10:00
Connor McLaughlin b31d4400e3 Merge pull request #9765 from Techjar/bbox-pixel-quads-2-electric-boogaloo
VideoCommon: Move bounding box pixel quads rounding to shader
2021-05-29 17:00:14 +10:00
Connor McLaughlin 6393f157f0 OGL: Force memory barrier when reading back bounding box values
We also need to ensure the the CPU does not receive stale values
which have been updated by the GPU. Apparently the buffer here
is not coherent on NVIDIA drivers. Not sure if this is a driver
bug/spec violation or not, one would think that
glGetBufferSubData() would invalidate any caches as needed, but
this path is only used on NVIDIA anyway, so it's fine. A point
to note is that according to ARB_debug_report, it's moved from
video to host memory, which would explain why it needs the
cache invalidate.
2021-05-29 16:57:40 +10:00
Connor McLaughlin 37d0559493 Merge pull request #9648 from stenzek/dx11-gl-bbox-caching
Cache bounding box values between register reads in DX11/GL
2021-05-28 21:17:44 +10:00
Connor McLaughlin 7fd0a526e1 VideoBackends/OGL: Cache bounding box values between reads 2021-05-28 19:30:46 +10:00
Connor McLaughlin 0c11dca121 VideoBackends/D3D: Cache bounding box values between reads 2021-05-28 19:30:46 +10:00
Stenzek e3ac5dca32 Fifo: Run/sync with the GPU on command processor register access 2021-04-18 03:24:01 +10:00
Connor McLaughlin edeb6bcdb7 Merge pull request #9635 from stenzek/amd-exclusive-fullscreen
Vulkan: Work around AMD exclusive fullscreen bug (21.3+)
2021-04-17 16:09:09 +10:00
Connor McLaughlin b24e3f2f1a Vulkan: Work around AMD exclusive fullscreen bug (21.3+) 2021-04-12 12:41:17 +10:00
Stenzek d6ce8eef36 Software: Use same logic for colors as hardware backends 2020-11-20 15:54:06 -08:00
Stenzek 51724c1ccd LightingShaderGen: Always calculate lighting for both color channels
Cel-damage depends on lighting being calculated for the first channel
even though there is no color in the vertex format (defaults to the
material color). If lighting for the channel is not enabled, the vertex
will use the default color as before.

The default value of the color is determined by the number of elements in
the vertex format. This fixes the grey cubes in Super Mario Sunshine.

If the color channel count is zero, we set the color to black before the
end of the vertex shader. It's possible that this would be undefined
behavior on hardware if a vertex color index that was greater than the
channel count was used within TEV.
2020-11-20 15:54:04 -08:00
Connor McLaughlin 0fe6081680 Merge pull request #9126 from stenzek/moltenvk-1.1
Externals: Update MoltenVK to v1.1
2020-10-03 11:39:21 +10:00
Stenzek 9649d13462 Externals: Update MoltenVK to v1.1 2020-10-02 22:47:51 +10:00
Connor McLaughlin a8df2caba9 Merge pull request #9125 from stenzek/vulkan-validation
Vulkan: Use VK_LAYER_KHRONOS_validation for validation
2020-10-02 20:18:13 +10:00
Connor McLaughlin 56e8058a06 Merge pull request #9123 from sepalani/bsd-socket-crash
Socket: Set SO_NOSIGPIPE on macOS
2020-10-02 20:17:37 +10:00
Stenzek 24bb947eff Vulkan: Use VK_LAYER_KHRONOS_validation for validation
VK_LAYER_LUNARG_standard_validation is deprecated.
2020-10-01 17:21:46 +10:00
Connor McLaughlin aea0239071 Merge pull request #9109 from stenzek/msaa-efb-readback
FramebufferManager: Fix EFB readbacks with MSAA on
2020-09-26 17:46:16 +10:00
Stenzek 880f7ca6bb FramebufferManager: Fix EFB readbacks with MSAA on
Regression from #8827.
2020-09-25 20:58:02 +10:00
Connor McLaughlin 9c12a843f8 Merge pull request #8884 from iwubcode/freelook_performance_fix
VertexShaderManager: Only look for freelook config changes if we're using freelook
2020-07-04 14:19:59 +10:00
Connor McLaughlin b3c705fa96 Merge pull request #8829 from stenzek/fix-macos-again
Core: Use window instead of surface for ControllerInterface updates
2020-05-28 16:56:13 +10:00
Connor McLaughlin b4e063311e Merge pull request #8827 from stenzek/adreno-more-like-brokenreno
FramebufferManager: Fix invalid readback of EFB D24S8 depth
2020-05-28 16:55:42 +10:00
Stenzek ff92357b63 Core: Use window instead of surface for ControllerInterface updates
Fixes crashes with Vulkan on macOS.
2020-05-24 17:39:56 +10:00
Stenzek bf74553878 FramebufferManager: Copy to color format for depth readbacks on GLES
glReadPixels() with depth formats is not supported.

Should fix broken EFB access on GLES.
2020-05-24 16:11:11 +10:00
Stenzek ad373950a2 FramebufferManager: Fix invalid readback of EFB D24S8 depth
Fixes assertion tripping when saving state on Adreno.
2020-05-24 15:36:04 +10:00
Connor McLaughlin c704548f00 Merge pull request #8810 from Techjar/have-xrandr-fix
Core/UICommon: Fix EnableScreenSaver preprocessor directive
2020-05-13 16:32:17 +10:00
Connor McLaughlin 2488e4a587 Merge pull request #8795 from WamWooWam/master
InputCommon: Use the Window handle when initializing DirectInput.
2020-05-10 19:16:15 +10:00
Connor McLaughlin dcc2a2b7d6 Merge pull request #8761 from Sintendo/fixquirk
Analytics: Report correct quirk for mismatched xf/bp colors
2020-04-24 11:53:41 +10:00
Connor McLaughlin 960ba4fe5e Merge pull request #8728 from stenzek/update-mvk
Vulkan: Switch from vkCreateMacOSSurfaceMVK() to vkCreateMetalSurfaceEXT() and Update MoltenVK
2020-04-08 00:30:40 +10:00
Stenzek a2f4fafe86 Vulkan: Switch from vkCreateMacOSSurfaceMVK() to vkCreateMetalSurfaceEXT()
Since we are calling this off the UI thread, we can't use anything which
accesses the underlying NSView object. We create and set the Metal layer
on the UI thread before the video backend is initialized. This extension
is both compatible with MoltenVK and gfx-portability for accepting a
layer at surface creation.
2020-04-07 18:56:55 +10:00
Stenzek 52d4756679 Externals: Update MoltenVK to SDK version 1.2.131.2 2020-04-07 18:53:26 +10:00
Stenzek ff7180cac4 Analytics: Add quirk for mismatched xf/bp texgens/colors 2020-04-02 12:52:16 +10:00
Stenzek a9c1dcf656 VertexManagerBase: Skip drawing objects with mismatched xf/bp stages
Hardware tests have shown that if the number of texgens/channels do not
match, you get garbage rendering. Presumably because the output
registers from the XF stage are fed into the incorrect input registers
for TEV/BP.

Currently, this causes Dolphin to crash/generate invalid shaders with an
assertion failure in the hardware backends. Instead, we log an error.

Perhaps in the future we should just spit out all texgens/colors anyway
from both stages, and let cross-stage optimization take care of DCE'ing
it away. But doing so would require changing the UIDs and invalidating
everyone's shader caches.
2020-04-02 12:51:41 +10:00
Connor McLaughlin 651595c521 Merge pull request #8701 from howard0su/static_wiimote
Wiimote: Cleanup warnings of -Wmissing-variable-declarations
2020-03-24 23:14:46 +10:00
Connor McLaughlin 323bffed01 Merge pull request #8700 from howard0su/add_override
NoGUI: missing override in PlatformX11
2020-03-24 18:34:48 +10:00
Connor McLaughlin 361364260a Merge pull request #8651 from spycrab/ext_qt_shallow
[RFC] .gitmodules: Make Externals/Qt clone shallow
2020-03-16 21:55:46 +10:00
Stenzek cdb0aa850d Qt/RenderWidget: Remove fill background functionality
We no longer need this since the video backend handles clearing the
window, and it fixes MoltenVK with Qt 5.14.
2020-03-11 23:13:45 +10:00
Stenzek 2f016295a6 Core: Render a blank UI frame before booting
This is related to https://bugs.dolphin-emu.org/issues/10958 which
uses Qt to clear out the window so the game list isn't displayed
while the core is booting. Instead, we use the video backend to
render a black screen, which means Qt doesn't have to flip between
paint engines.
2020-03-11 23:13:18 +10:00
Stenzek fb947296b0 Vulkan: Pass CAMetalLayer to MoltenVK instead of NSView
Gets rid of the warning for calling [NSView layer] off the main thread.
2020-03-11 23:11:26 +10:00
Stenzek a545344268 VideoBackends: Make it possible for PrepareWindow to change the surface
Again, needed for MoltenVK.
2020-03-11 23:10:30 +10:00
Stenzek 86db015c23 Common: Add a render_window field to WindowSystemInfo
We need this because we need to pass the layer to MoltenVK, not
the view handle. But the input subsystem still needs the window.
2020-03-11 23:09:30 +10:00
Connor McLaughlin 69ee15e5ef Merge pull request #8478 from jordan-woyak/dsu-client-cleanup
ControllerInterface/DSUClient: Minor cleanup.
2020-02-01 11:29:29 +10:00
Stenzek f83b2fc62d Android: Fix typo in Skip Presenting Duplicate Frames setting name 2020-01-31 22:14:51 +10:00
Stenzek 08cc73108a Vulkan: Treat VK_SUBOPTIMAL_KHR as VK_SUCCESS on Android
Android 10 seems to expect a prerotated/transformed swap chain for optimal
presentation. For now, until we implement that, just ignore the hint.
2020-01-31 19:16:06 +10:00
Stenzek ead65b0d8c Vulkan: Log when a swap chain resize is occurring
This may help us debug performance problems in the future.
2020-01-31 19:11:43 +10:00
Connor McLaughlin 47239ddaac Merge pull request #8587 from lioncash/const-qual
DolphinQt/TASCheckBox: Mark GetValue() as const
2020-01-27 12:52:10 +10:00
Connor McLaughlin e3a7922e12 Merge pull request #8336 from Ebola16/PS
Add Dolphin version and current video backend to shader compilation logs
2020-01-25 11:52:14 +10:00
Connor McLaughlin 42c03c4dad Merge pull request #8576 from lioncash/texture-cvt-shader-fmt
VideoCommon/TextureConversionShader: Convert over to using ShaderCode
2020-01-24 11:53:51 +10:00
Connor McLaughlin a0b7c1beae Merge pull request #8366 from Techjar/high-dpi-auto-adjust
Qt/RenderWidget: Account for devicePixelRatio when auto-adjusting window size
2020-01-24 11:31:09 +10:00
Connor McLaughlin a63510a55a Merge pull request #8554 from stenzek/present-duplicate-frames
Add an option to present duplicate frames
2020-01-20 12:04:26 +10:00
Connor McLaughlin c74b1140a5 Merge pull request #8567 from tinyredpanda/fix-arm64-qt-path
Update Qt5_DIR path for ARM64 in CMake project
2020-01-19 11:48:10 +10:00
Stenzek 11ba623f26 Add an option to present/skip presenting duplicate frames
Currently, we do not display every second frame in 25fps/30fps games
which run to vsync. This improves performance as there's less rendering
for the GPU to perform, but when combined with vsync, could cause frame
pacing issues.

This commit adds an option to force every frame generated by the console
to be displayed to the host, which may improve pacing for these games.
2020-01-14 10:57:35 +10:00
Connor McLaughlin efc1ee8e6a Merge pull request #8537 from degasus/fastmem
Core/HW -> PowerPC/JIT: Fastmem arena construction
2020-01-14 09:38:15 +10:00
Connor McLaughlin ae6d3be449 Merge pull request #8530 from s-daveb/master
MacOS: Fixes configuration hang; bump MacOS SDK.
2020-01-13 20:21:08 +10:00
Connor McLaughlin 1701363854 Merge pull request #8547 from stenzek/windows-arm64-qt
DolphinQt: Support compiling on ARM64
2020-01-12 15:34:40 +10:00
Stenzek d8b2be9d06 DolphinQt: Support compiling on ARM64 2020-01-12 15:23:42 +10:00
Stenzek 2a18d1beb4 Externals: Update Qt submodule for ARM64 Windows binaries 2020-01-12 15:23:32 +10:00
Connor McLaughlin 04e9279f3d Merge pull request #8536 from leoetlino/warnings
Fix several warnings
2020-01-04 21:24:27 +10:00
Connor McLaughlin a04d4982b1 Merge pull request #8544 from gtalusan/master
MacOS: Dispatch GL calls to main thread to prevent crashes on Catalina
2020-01-02 14:43:21 +10:00
Connor McLaughlin 084344aa5d Merge pull request #8495 from stenzek/windows-arm64
Platform support for Windows-on-ARM64
2019-12-28 19:27:47 +10:00
Stenzek d744c5a148 Compile fixes for Windows-on-ARM64 2019-12-28 19:20:41 +10:00
Stenzek 6fcb1c6c46 Add an ARM64 target to Visual Studio projects 2019-12-28 19:20:41 +10:00
Stenzek 5a65031611 Add a Win32 NoGUI platform and project 2019-12-28 08:56:27 +10:00
Connor McLaughlin 8a50d9c540 Merge pull request #8522 from stenzek/fifoci-ffmpeg
FrameDump: Set first_frame if movie frame number <= 1
2019-12-22 12:11:03 +10:00
Stenzek 6a0067fd26 FrameDump: Set first_frame if movie frame number <= 1
The frame number is incremented before the first frame is swapped out.

Fixes ffmpeg creating invalid video files on output if the emulator only
runs for a single frame, e.g. FifoCI.
2019-12-22 11:54:34 +10:00
Connor McLaughlin 74dedc57fd Merge pull request #8519 from JosJuice/setupwiimemory-region-override
Boot: Optionally allow preserving region settings in setting.txt
2019-12-19 20:47:56 +10:00
Connor McLaughlin 6f5d770bdd Merge pull request #8524 from shuffle2/update-externals
Update externals
2019-12-19 20:41:49 +10:00
Connor McLaughlin 90223de536 Merge pull request #8526 from shuffle2/remove-x86
remove x86 targets from sln
2019-12-19 20:07:43 +10:00
Connor McLaughlin a980a39807 Merge pull request #8518 from stenzek/more-wiimote-reset-crashes
Core: Reset Wiimotes/rumble/memwatcher on emu thread
2019-12-13 13:44:22 +10:00
Stenzek e5485ca499 Core: Reset wiimotes/rumble on emu thread instead of main thread
This was causing a race which was crashing the FifoCI runners. The main
thread called Stop() which in turn called ResetAllWiimotes() while the
emu thread was still exiting, also shutting down the Wiimote class.

By shifting the reset to the emu thread, all cleanup operations happen
on the same thread where they were initialized.
2019-12-09 20:07:00 +10:00
Stenzek c602cb2e2f Core: Reset memory watcher on same thread which allocates it 2019-12-09 20:06:14 +10:00
Connor McLaughlin 6f274092b6 Merge pull request #8517 from stenzek/fix-vulkan-d3d12
Fix Vulkan and D3D12 video backends crashing on boot
2019-12-09 19:47:34 +10:00
Stenzek e05bc33899 Vulkan: Call VertexManagerBase initialize 2019-12-09 19:16:15 +10:00
Stenzek 07c43b192f D3D12: Call VertexManagerBase initialize 2019-12-09 19:16:04 +10:00
Connor McLaughlin 15fc71cfcf Merge pull request #8498 from stenzek/update-vs2019
Update VS projects/solutions to VS2019
2019-12-03 13:03:49 +10:00
Connor McLaughlin 0f6304ad34 Merge pull request #8504 from stenzek/fifoci-wiimote-crash
Core: Only reset wiimotes in Wii mode
2019-11-30 22:14:28 +10:00
Stenzek 52e2e32193 Core: Only reset wiimotes in Wii mode
This was causing the FifoCI runners to crash, as the Wiimotes were not
initialized in the first place.
2019-11-30 15:41:38 +10:00
Connor McLaughlin ba8b5bea11 Merge pull request #8357 from KAMiKAZOW/patch-1
Always run as X11 app even under Wayland
2019-11-30 14:14:49 +10:00
Stenzek 33c0abd1ab Disable warning C5054 on DolphinQt
They're all in the Qt headers, and quite noisy.
2019-11-30 13:42:52 +10:00
Stenzek ffd38ab6e9 Update Readme.md to specify VS2019 as a requirement 2019-11-30 13:42:52 +10:00
Stenzek dd23a1ee79 Update VS projects/solutions to VS2019 2019-11-30 13:42:52 +10:00
Connor McLaughlin 913cb08066 Merge pull request #8456 from jordan-woyak/input-gate-race-fix
InputCommon: Make the "input gate" not racy.
2019-11-11 10:59:49 +10:00
Connor McLaughlin cc9c1583b1 Merge pull request #8338 from Miksel12/efbaccess-ini
Enable EFB access in INI
2019-11-08 13:32:45 +10:00
Connor McLaughlin 422c3f79da Merge pull request #8382 from tkln/verify-widget-switch-none-warn
VerifyWidget: Handle Severity::None case in Verify()
2019-11-08 11:23:32 +10:00
Connor McLaughlin 62f331dd13 Merge pull request #8431 from ferrrry/game-window-class
Qt: Add "renderer" window role to render window
2019-11-08 11:22:49 +10:00
Connor McLaughlin 71b098a69d Merge pull request #8399 from CookiePLMonster/gametracker-fixes
Qt: Game Tracker fixes
2019-11-08 11:22:09 +10:00
Connor McLaughlin 9700b1e320 Merge pull request #8367 from JosJuice/missing-company-ids
DiscIO: Add missing company IDs
2019-11-08 11:15:27 +10:00
Connor McLaughlin 729308979d Merge pull request #8388 from jordan-woyak/cmake-export-compile-commands
CMake: Enable generation of compile_commands.json.
2019-11-08 11:07:06 +10:00
Connor McLaughlin a89fdb628c Merge pull request #8343 from stenzek/fbdev
DolphinNoGUI: Add a FBDev platform
2019-11-08 11:05:53 +10:00
Connor McLaughlin 2ebea1bfa7 Merge pull request #8433 from JosJuice/settings-onemulationstatechanged
DolphinQt: Call OnEmulationStateChanged when creating config window panes
2019-11-08 11:01:14 +10:00
Connor McLaughlin 47677ecaa7 Merge pull request #8437 from JosJuice/batch-render-to-main
Disable render to main when using batch mode
2019-11-08 11:00:18 +10:00
Connor McLaughlin 9db1ce8ef9 Merge pull request #8436 from JosJuice/vi-wii-freeloader
VideoInterface: Don't crash when running Wii Freeloader
2019-11-08 10:56:25 +10:00
Connor McLaughlin 28ce9330a8 Merge pull request #8444 from booto/vi-fields
VI: Adjust start/end of ACV region for fields
2019-11-08 10:51:32 +10:00
Connor McLaughlin 18ba1fd723 Merge pull request #8452 from JosJuice/android-emulationactivity-rotation-crash
Android: Replace emulation rotation crash workaround with proper fix
2019-11-08 10:45:21 +10:00
Connor McLaughlin 28bf88641f Merge pull request #8457 from JosJuice/just-dance-2020
Update GameTDB title files
2019-11-08 10:31:24 +10:00
Connor McLaughlin 7c8a255ce1 Merge pull request #8450 from jordan-woyak/mapping-button-fix
DolphinQt: Fix output mapping button spacebar activation and tooltip.
2019-11-08 10:30:33 +10:00
Connor McLaughlin b554b636bd Merge pull request #8449 from JosJuice/disable-bt-pt-buttons
DolphinQt: Fix the enabling/disabling of ControllersWindow buttons
2019-11-08 10:27:49 +10:00
Connor McLaughlin 5440be96e7 Merge pull request #8378 from stenzek/quad-buffer-stereo
Various quad-buffered ("HDMI 3D") stereo fixes
2019-11-08 10:26:58 +10:00