Commit Graph

15977 Commits

Author SHA1 Message Date
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
Mat M
d1c89db8c8 Merge pull request #4448 from lioncash/isoproperties
DolphinWX: Separate the information panel from ISOProperties
2016-12-03 19:15:25 -05:00
Michael Maltese
f798bcd5c0 DolphinQt2: InfoWidget: explicit type for std::min
Avoids errors on macOS:

```
Source/Core/DolphinQt2/Config/InfoWidget.cpp:190:21: error: no matching function for call to 'min'
    u64 read_size = std::min(file_data.size(), game_size - read_offset);
                    ^~~~~~~~
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/algorithm:2589:1: note: candidate template ignored: deduced conflicting types for parameter '_Tp' ('unsigned long' vs. 'unsigned long long')
min(const _Tp& __a, const _Tp& __b)

```
2016-12-02 21:26:18 -08: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
Lioncash
20fcfd0ed8 DolphinWX: Separate the information panel from ISOProperties
Makes the information panel self-contained.

This was done first, as opposed to isolating the GameConfig panel--the
first panel in the group--as this panel had code all over the place in
ISOProperties, so I figured it'd be best to fix this one up first.
2016-12-01 21:21:46 -05:00
Mat M
2e7c90eeb5 Merge pull request #4450 from PEmu1/fifo-player-capitalization
Update FIFO Player Window Capitalization
2016-12-01 21:09:44 -05:00
Anthony
0705c53681 Merge pull request #4340 from sepalani/step_timeout
CodeWindow: Fix step out issues
2016-12-01 13:32:44 -06:00
Anthony
ffe20705dd Merge pull request #4362 from ligfx/osxhotplug
ControllerInterface: enable hotplugging on macOS
2016-12-01 00:29:56 -06:00
Michael Maltese
7ed8fb95c5 ControllerInterface: enable hotplugging on macOS 2016-11-30 22:27:46 -08:00
Anthony
a95e3c875e Merge pull request #4343 from ligfx/fixsdlcrash
ControllerInterface: Fix crashes when using SDL controllers
2016-11-30 20:47:38 -06:00
Stenzek
e2018f2208 Merge pull request #4480 from stenzek/vulkan-streambuffer-reuse
Vulkan: Fix stream buffer re-use problems
2016-12-01 12:38:31 +10:00
Michael Maltese
3e69d066f5 ControllerInterface: replace Reinitialize with RefreshDevices
The SDL backend crashes when you close a joystick after SDL_Quit has
been called. Some backends don't need to be shutdown and
re-initialized everytime, we can just ask to enumerate devices again.
2016-11-30 16:07:55 -08:00
Michael Maltese
cebb4d84f2 ControllerInterface: clear devices before shutting down backends
The SDL backend faults if it tries to close a joystick after SDL_Quit
has been called.
2016-11-30 16:07:54 -08:00
Hector Martin
90c2dec02d Wii IPC HLE: do not clobber memory when launching a new title
It's questionable whether ES_LAUNCH should write *anything* to the
command structure at all, ever, given that it never actually returns
it back through the mailbox. But it *definitely* shouldn't write
anything to it if it has just launched a DOL, because otherwise it might
clobber code/data from the just-loaded application.
2016-12-01 06:55:15 +09:00
Hector Martin
288e75f672 Wii IPC HLE: Fix IPC missing reply fail 2016-12-01 06:38:51 +09:00
Hector Martin
2b906e3fc4 DOL/ELF loaders: enable HID4.SBE in Wii mode
When booting "cooked" executables, BATs should already be set up and
enabled. They should only really be disabled when booting NAND contents
in real mode.
2016-12-01 06:36:53 +09:00
Hector Martin
a6742d9cf7 ELF boot: scan segments for Wii mode detection, not sections 2016-12-01 06:36:53 +09:00
Hector Martin
3f11879640 ES HLE / WAD boot: hardcode the entrypoint
NAND titles are always started at address 0x3400 with translation off.
The entrypoint in the DOL is ignored.
2016-12-01 06:36:53 +09: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
JosJuice
3cfc49a613 Merge pull request #4472 from JosJuice/revert-absolute-path
IOS HLE: Replace broken path traversal prevention
2016-11-29 18:34:22 +01:00
aldelaro5
f705d8378e Fix the order of the name of the hotkeys 2016-11-29 11:51:55 -05:00
Stenzek
aadc77c493 Merge pull request #3649 from stenzek/wgl-core-shared
GLInterface: Implement core and shared context creation for WGL
2016-11-29 22:59:31 +10:00
Mat M
eebe4ef1fd Merge pull request #4461 from aldelaro5/hotkey-config-redo
Redo every input configuration dialog
2016-11-29 07:39:28 -05:00
Stenzek
7353cae707 GLInterface: Implement core and shared context creation for WGL 2016-11-29 20:04:32 +10:00
aldelaro5
32a0dae257 Completely redo All configuration dialog
Hotkeys

Make a new class that inherits from InputConfigDialog with a specialised constructor.  The changes are mainly the top portion and it now uses tabs to categorise the hotkeys.

Redo the GCPad configuration dialog

The layout is similar, but it now allows flexibility to change it more easily.

Redo the GC Keyboard configuration dialog

Same layout.

Redo completely the Wiimote configuration dialog

Separated the controls into 2 tabs to make them less imposing overall.

Redo the Nunchuk configuration dialog

Similar layout, except for 2 control group sizers.

Redo the Classic controller configuration dialog

Same layout.

Redo the Guitar input configuration dialog

Stacked 2 sets of group together.

Redo the Turntable configuration dialog

More stacked groups and the window is much less wide.
2016-11-28 08:26:34 -05:00
aldelaro5
03e0cae9b7 Prepare for having different extensions dialogs
Just setting up a switch on the type so that different dialogs can be instantiated.  This also makes the extension type an enum because I don't see why not here and finally, it removes ControlGroupSizer.  This removal allows to not dynamically generate the UI, but instead, let the specialised constructors do the layout.
2016-11-28 08:26:34 -05:00
aldelaro5
00f680b830 Add flexibility to InputConfigDialog
Removed the unecessary forced tabbed layout, removed the layout part of the constructor and remade some method in preparation for tabbed styled input dialog such as the new hotkey configuration one.  It breaks every inputconfigDialog, but this will get fixed in the next commits.

Also moved to a folder since there will be many more files created in the next commits so it gives better separation.
2016-11-28 08:26:27 -05: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
49e807b71f Merge pull request #4459 from stenzek/nogui-resize-notify
DolphinNoGUI: Receive resize events and notify backend when this occurs
2016-11-28 22:04:21 +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
adc22a5e20 VideoCommon: Add method for calculating full-scale framedump rectangles 2016-11-28 21:54:54 +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
a83ca587c6 VideoCommon: Make FramebufferManagerBase::GetTargetSize public 2016-11-28 20:14:59 +10:00