Henrik Rydgård
99b34c7b45
Use glslang to translate GLSL 1.x postshaders to GLSL 3.0 or later to appease strict GL Core drivers. Should fix #10362
...
Fixed small bugs, now tested and working on mac.
Add spirv-cross to cmake build
2017-12-08 10:25:42 +01:00
Unknown W. Brackets
c30e4a9382
Windows: Request a core profile by default.
...
Also, update to OpenGL 4.6.
2017-12-03 07:00:56 -08:00
Henrik Rydgård
b6911d2764
Add a hidden debug option [Graphics]GfxDebugSplitSubmit to try to narrow down some Vulkan issues, see #10163 . Also improve some asserts.
2017-11-22 10:47:04 +01:00
Henrik Rydgård
27a60f5e58
Fix message asserts on Android. Add more of them to check things in Vulkan code.
2017-11-20 12:11:47 +01:00
Henrik Rydgård
506c4eef17
Win32: Improvements to vulkan init error handling
2017-11-16 21:55:06 +01:00
Unknown W. Brackets
b1554ef061
Vulkan: Cut down on asserts during init.
...
In case something is horribly wrong, or our desired settings aren't
compatible, let's try to stumble our way out.
More things can fail, but the goal is to detect failure or at least be
able to render UI settings to swap out of Vulkan.
2017-11-12 21:56:55 -08:00
Henrik Rydgård
05930ea32e
MotoGP: Compat hack to disable framebuffer readbacks.
...
This is the only known game to copy its framebufer to RAM before display on every frame and we already have a
hack so we can display the high resolution framebuffer, but we still did the readback for no good reason.
This eliminates the readback.
2017-11-10 16:32:56 +01:00
Henrik Rydgård
ec504756e0
Vulkan: Improve init/shutdown logging on Android. Fix a bug where we'd not run InitDeviceObjects on GPU_Vulkan sometimes.
2017-11-09 16:02:05 +01:00
Unknown W. Brackets
ebe9dcafde
Vulkan: Wait for queue idle in DestroyBackbuffers.
...
Otherwise it's only done after destroying Draw, so no need to mutex.
2017-11-05 08:44:14 -08:00
Unknown W. Brackets
8edc6eaf5e
Vulkan: Fix segfault on swapchain fail.
...
This at least allows us to detect that the backend failed to init.
Happens when switching backends with debugger attached (probably driver
bug?)
2017-11-04 20:45:08 -07:00
Henrik Rydgård
bbfc32f131
Remove disabling of validation warning. It works.
2017-10-31 12:57:27 +01:00
Henrik Rydgård
07dfda0633
Vulkan depal code now passes validation, but produces black.
2017-10-31 12:35:00 +01:00
Henrik Rydgård
d016bfe221
Fix some resource leaks and excessive logging in VulkanRenderManager
2017-10-26 10:57:00 +02:00
Henrik Rydgård
3e2b810c39
Improve synchronization, though there are very weird issues. Possibly need to run the swap chain from the thread that created it?
2017-10-26 10:57:00 +02:00
Henrik Rydgård
833916a906
A multitude of fixes. The UI now works correctly, though of course ingame still broken.
2017-10-26 10:56:59 +02:00
Henrik Rydgård
0a0494ef8e
It builds! With some shortcuts, of course.
2017-10-26 10:56:59 +02:00
Henrik Rydgård
eabaf6ddcd
Bit more Vulkan barrier cleanup.
2017-10-21 13:05:52 +02:00
Henrik Rydgård
804aa79376
Various Vulkan image transition fixes and related
2017-10-20 18:09:05 +02:00
Henrik Rydgård
b9ba525de1
Don't call functions in asserts, they get compiled out in release...
2017-10-20 14:45:00 +02:00
Henrik Rydgård
017d3da067
Allow D3D9 context creation to bail if shader compilation fails (D3D9 runtime not installed).
...
Fixes an issue where after switching to D3D9 on a PC without the D3D9 runtime, it's impossible to start PPSSPP anymore.
2017-10-20 11:53:07 +02:00
Henrik Rydgård
62972cb891
D3D11: Move to CopyFramebufferToSync where easily possible.
2017-10-11 13:34:31 +02:00
Henrik Rydgård
55e9807a53
Separate VulkanContext::CreateDevice into ChooseDevice and CreateDevice to give an opportunity to enable extensions.
2017-08-28 14:12:56 +02:00
Henrik Rydgard
0c70735bc4
Buffered rendering is starting to work, though still kinda broken.
2017-05-30 09:36:17 +02:00
Henrik Rydgard
273c266b78
Silence a perf warning
2017-05-30 09:36:17 +02:00
Henrik Rydgard
fd4ef48971
Windows debug builds: Only break on Vulkan validation warnings if a debugger is attached.
2017-05-07 18:09:09 +02:00
Henrik Rydgard
42a694368e
Vulkan: Remove obsolete warning suppressions. Increase descriptor pool sizes.
2017-05-07 11:14:25 +02:00
Henrik Rydgard
ff6fcc9179
More vulkan fixes
2017-05-07 10:53:04 +02:00
Unknown W. Brackets
0b16899f67
Windows: Init with OpenGL 4.5 if possible.
...
Also, try more versions if older.
2017-04-29 17:38:18 -07:00
Unknown W. Brackets
ccd9a17235
D3D11: Free swapchain on graphics reset.
2017-04-27 20:04:30 -07:00
Unknown W. Brackets
bf02f7d98b
Vulkan: Detect swapchain init failure.
...
This seems to be a driver bug, and occurs on NVIDIA when OpenGL has
previously been inited. Or we're not cleaning something up properly...
but there's a driver error logged to debug output.
2017-04-15 16:26:26 -07:00
Henrik Rydgard
db89bced86
Remove unused code
2017-04-06 09:57:55 +02:00
Henrik Rydgård
c0f6a24a21
Fix issue where we were a little too aggressive when eliminating calls to SetRenderTarget
2017-03-23 10:02:28 +01:00
Unknown W. Brackets
4514af9d6e
Windows: Improve core context init.
...
This clears the error from glewInit(), and ensures we check GL extensions
only after selecting the desired GL profile.
Also, consistently use the core profile flag to select the context.
2017-03-18 13:47:15 -07:00
Henrik Rydgård
f4a0c4504f
Fixes to GPU system information. Fixes #9434
2017-03-16 09:48:10 +01:00
Henrik Rydgard
5d5844632a
Fix shader issues with D3D11 feature level 9
2017-03-05 22:56:33 +01:00
Henrik Rydgard
042d09a049
Fix #9390 , also unbreak D3D11 screenshots
2017-03-05 20:30:39 +01:00
Henrik Rydgard
85717a981c
Show feature levels in System Info, allow lower D3D11 feature levels
2017-03-05 11:05:36 +01:00
Henrik Rydgard
7b3f84aae8
More buildfixes for Windows on ARM
2017-03-05 10:52:08 +01:00
Henrik Rydgard
5de190a45f
D3D11: Move the responsibility for the swapchain out of the DrawContext so it can be used with differently-managed D3D like with UWP.
...
Minor cleanups.
2017-02-27 10:10:24 +01:00
Henrik Rydgard
fa80cfa4aa
Additional UWP preparations
2017-02-25 09:57:14 +01:00
Henrik Rydgard
acde17e3ce
Improvements to D3D11 detection and error handling.
2017-02-23 10:40:55 +01:00
Henrik Rydgard
5a0ee6cc36
Add some plumbing to be able to reach DX11.1 features.
2017-02-18 01:54:28 +01:00
Henrik Rydgard
522ac5c739
Add an escape route to D3D9 in case D3D11 fails to initialize. Cleanups.
2017-02-17 19:53:24 +01:00
Henrik Rydgard
e83dd2b524
Minor cleanup, elimintate some bind ordering hazards that D3D11 warns about
2017-02-17 14:31:02 +01:00
Henrik Rydgard
77d087776c
D3D11: Support window resize
2017-02-14 11:21:53 +01:00
Henrik Rydgård
bbdb0ee195
Fix the stencil buffer initialization stuff (not sure it's 100% working et)
2017-02-12 13:55:49 +01:00
Henrik Rydgård
6efdde9ea4
D3D11: Fix build issue in Release mode. Triangle fan workaround.
2017-02-12 12:12:36 +01:00
Henrik Rydgård
f7717063a8
Assorted fixes for memory leaks etc
2017-02-10 14:41:32 +01:00
Henrik Rydgard
3f4e14f504
D3D11: Lumines is now playable in non-buffered, with reverse colors.
2017-02-10 11:25:24 +01:00
Henrik Rydgard
5ee3b534ed
More D3D11 improvements
2017-02-10 10:26:18 +01:00
Henrik Rydgard
aba669c3e6
D3D11: Cube now visible
2017-02-10 00:30:42 +01:00
Henrik Rydgard
6b193e7434
Break on D3D11 validation errors in _DEBUG mode
2017-02-10 00:01:34 +01:00
Henrik Rydgard
41fecc8c16
More D3D11 basics. Only dynamic constant buffers left, then it should display the UI.
2017-02-07 19:45:09 +01:00
Henrik Rydgard
abc80ae770
Enough D3D11 to stumble to the first thin3d draw call. Buffers not implemented yet.
2017-02-07 11:44:44 +01:00
Henrik Rydgard
ad29974a56
Change when drawcontexts are allocated. Hook up backbuffer events to fix d3d9 resizing.
2017-02-06 11:40:16 +01:00
Henrik Rydgard
f1c96c056d
Move all the GL/D3D9 FBO code into thin3d.
2017-02-06 11:40:16 +01:00
Henrik Rydgard
41f770d815
Move dx_state into gfx/d3d9_state
2017-02-05 20:54:24 +01:00
Henrik Rydgard
9c275730c5
Move pD3DDevice into dx_state.h.
2017-02-05 20:46:26 +01:00
Henrik Rydgard
4dd96d6993
Remove dx_fbo dependency on global.h
2017-02-05 20:19:43 +01:00
Henrik Rydgard
5b49c2f840
DX9 cleanup: Remove more stuff from global.cpp
2017-02-05 20:13:48 +01:00
Henrik Rydgard
0b3ebbddf4
Minor DX9 code cleanup
2017-02-05 19:38:52 +01:00
Henrik Rydgard
20d9e60a67
Just some renaming. Start moving away from the "thin3d" name
2017-01-30 14:38:31 +01:00
Henrik Rydgård
8bcb5f01eb
Remove accidental hard dependency on d3d11. when it works, we'll load it dynamically. Fixes #9204
2017-01-03 23:39:57 +08:00
Henrik Rydgård
674937a520
Extend some enums with potentially useful values
2016-12-27 11:59:12 +01:00
Henrik Rydgård
1ed7f0d7fd
More modern way to specify vertex data format (inputlayout)
2016-12-27 11:59:10 +01:00
Henrik Rydgård
f86b9f7900
Guess what? More renaming
2016-12-27 11:59:06 +01:00
Henrik Rydgård
10393f5d4e
Move Thin3D into the Draw namespace.
2016-12-27 11:58:03 +01:00
Henrik Rydgård
9658c8dd5c
Basic D3D11 context setup code
2016-12-25 11:37:26 +01:00
Henrik Rydgård
1c0c755b03
Extract RasterState from thin3d, for easier d3d11 porting
2016-12-25 11:31:33 +01:00
Henrik Rydgard
a2b49fd0e0
Update Vulkan headers. Hack around another validation check (which I beleive to be bugged).
2016-12-15 18:12:53 +01:00
Florent Castelli
f02e2b59b0
qt: Build Qt frontend with CMake. Requires Qt5.
2016-10-17 23:45:21 +02:00
Unknown W. Brackets
2e2674be21
Properly allow triggering a core context.
...
This will be useful on Mac.
2016-08-08 17:56:09 -07:00
Henrik Rydgard
210cd4b52d
New vulkan validation issues...
2016-07-24 15:55:05 +02:00
Henrik Rydgard
b560038b3d
Work around a new false positive from the latest Vulkan validation layers
2016-06-30 16:11:50 +02:00
Henrik Rydgard
fd0af5b271
Vulkan: Mostly pass the validation layers in SDK 1.0.13
2016-05-24 21:41:35 +02:00
Henrik Rydgard
51bcb02921
Minor vulkan updates to match the latest SDK/validator
2016-05-14 16:29:40 +02:00
Henrik Rydgard
37616a6f95
Update the Vulkan validator workarounds to match the 1.0.8 validator... gah.
2016-04-07 23:45:38 +02:00
Henrik Rydgard
32f5930e15
Move clear handling to FramebufferVulkan, center the clear properly in non-buffered. more cleanup.
2016-03-31 00:50:50 +02:00
Unknown W. Brackets
aec117d8ea
Vulkan: Allow resizing window/backbuffer.
...
Not tested much on Android. Fixes #8656 .
2016-03-21 19:45:27 -07:00
Unknown W. Brackets
2461a849f9
Correct some warnings reported by clang.
2016-03-20 23:13:28 -07:00
Henrik Rydgard
d0659f0deb
No need to align vertex/index data. Will only be harmful for an upcoming optimization.
2016-03-20 19:35:03 +01:00
Henrik Rydgard
c2775d4dfa
Default validation on in Debug and off in Release
2016-03-20 19:31:02 +01:00
Henrik Rydgard
1f1e679aa0
Silence another validation warning
2016-03-20 19:31:02 +01:00
Unknown W. Brackets
82205a4660
Handle Vulkan init errors more gracefully.
2016-03-20 19:31:02 +01:00
Henrik Rydgard
76b17a4912
Revert "Replace ugly workaround with VK_LAYER_LUNARG_unique_objects which prevents handle reuse."
...
This reverts commit 6342c07a19d5ab410cbc233a570488214923a9f8.
2016-03-20 19:31:02 +01:00
Henrik Rydgard
b0098f7961
Replace ugly workaround with VK_LAYER_LUNARG_unique_objects which prevents handle reuse.
...
See https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers/issues/121
2016-03-20 19:31:02 +01:00
Henrik Rydgard
575cc890b7
Turn off annoying "debug flicker" I used to see if we were swapping buffers properly early on
...
Also minor logging changes, refine the false-positive debug layer check
2016-03-20 19:31:02 +01:00
Henrik Rydgard
79fd828d16
Work around what seems like a validation layer bug (trigger by scrolling
...
around the UI a bit)
2016-03-20 19:31:02 +01:00
Henrik Rydgard
5ca012e83d
Fix a bunch of new vulkan validation layer failures.
2016-03-20 19:31:02 +01:00
Unknown W. Brackets
c92790c5a8
Specify a useful app version when loading Vulkan.
2016-03-20 19:31:02 +01:00
Henrik Rydgard
76d8a87b2f
Vulkan: Attempt at fixing dual source blending. Should work but doesn't.
2016-03-20 19:31:02 +01:00
Henrik Rydgard
d325aa2b30
Hook up Vulkan on Android, no idea if it works. Move VulkanContext to Common.
2016-03-20 19:30:11 +01:00
Henrik Rydgard
2481714a8e
Load Vulkan dynamically. Fix Android build (though - Vulkan is not working on Android yet)
2016-03-20 19:30:11 +01:00
Henrik Rydgard
ca63cca9a2
WIP: Start work on getting the Vulkan code to compile for Android
2016-03-20 19:30:11 +01:00
Henrik Rydgard
b51b38f97c
Switch to "Mailbox" frame submission if available, lets us go beyond 60hz for unthrottle
2016-03-20 19:30:11 +01:00
Henrik Rydgard
4063f7e0db
Fill out GPU_Vulkan.cpp with what's mostly a copy of GLES_GPU.cpp
2016-03-20 19:30:11 +01:00
Henrik Rydgard
cfbecf5071
More progress
2016-03-20 19:26:41 +01:00
Henrik Rydgard
4ddca8607f
Further vulkan stuff
2016-03-20 19:26:12 +01:00
Henrik Rydgard
73d6d2dc72
More vulkan in thin3d
2016-03-20 19:25:53 +01:00
Henrik Rydgard
2a71e164f5
Enable vulkan validation
2016-03-20 19:25:30 +01:00