Commit Graph

3027 Commits

Author SHA1 Message Date
Henrik Rydgård
ecd62e7eb2 Lift length limit on Android logging 2022-11-08 00:21:37 +01:00
Henrik Rydgård
4d637342f7 Log source code for failed pipeline creations 2022-11-08 00:21:08 +01:00
Henrik Rydgård
90f67e91f5 Avoid drawing with failed-to-create pipelines 2022-11-08 00:21:08 +01:00
Henrik Rydgård
25547b5fe2 Make Mailbox handle null values. Fixes hang. 2022-11-08 00:21:08 +01:00
Henrik Rydgård
bd40ccda51 Improve VkResult logging 2022-11-08 00:21:07 +01:00
Henrik Rydgård
7b09fc43b0 Warning fix in VR code 2022-11-08 00:21:07 +01:00
Lubos
eec414d331 OpenXR - Allow more extreme camera adjusts 2022-11-07 21:40:25 +01:00
Lubos
47f2afcd55 Merge branch 'master' into cleanup_camera_control 2022-11-07 18:23:07 +01:00
Henrik Rydgård
7beff4da96
Merge pull request #16350 from lvonasek/refactor_openxr_matrices
OpenXR - Refactor
2022-11-07 18:18:55 +01:00
Henrik Rydgård
e7b6fcd513 Properly buildfix GL/VR again 2022-11-07 17:36:46 +01:00
Henrik Rydgård
81dd95e16d Fix sky plane fix (broke in my last VR refactor) 2022-11-07 17:13:14 +01:00
Lubos
cd49dc6627 OpenXR - Camera adjustment using PSP keys 2022-11-07 17:13:08 +01:00
Lubos
90d117ce71 OpenXR - Keep status of PSP keys 2022-11-07 16:46:10 +01:00
Lubos
73ccff9ba0 Restore assert 2022-11-07 16:28:41 +01:00
Henrik Rydgård
c7db9a865d Disable remaining false positive. 2022-11-07 09:51:11 +01:00
Henrik Rydgård
668904a515 Vulkan: Use the very same view as input attachment and color attachment, not just the same image
Fixes most of the new validation errors seen #16351, though one remains.

I believe that to be a bug in the validation layers, will investigate
later.
2022-11-07 09:14:55 +01:00
Lubos
e96b9b4649 Remove unnecessary assert 2022-11-06 22:38:15 +01:00
Lubos
c58359a3b3 OpenXR - Move configs out of VRRenderer 2022-11-06 22:30:35 +01:00
Lubos
460386e344 OpenXR - Move matrix calculation out of VRRenderer 2022-11-06 22:06:27 +01:00
Lubos
cd54873edb OpenXR - Simplify projection matrix creation 2022-11-06 21:48:55 +01:00
Lubos
520b92aa94 OpenXR - Matrix indexing fixed 2022-11-06 21:45:47 +01:00
Lubos
5c9e6968a5 OpenXR - Get rid of separate projection matrices 2022-11-06 21:21:13 +01:00
Lubos
637bb57bc6 OpenXR - Get rid of ovrMatrix4f structure 2022-11-06 20:42:28 +01:00
Henrik Rydgård
09c0ebd3ca Windows ARM/ARM64 buildfix 2022-11-06 17:40:41 +01:00
Henrik Rydgård
44106ff2e7 Linking fix for normal Android devices 2022-11-06 15:58:07 +01:00
Henrik Rydgård
162290147f UWP build fix. Had to reshuffle some stuff and compile some Vulkan files. 2022-11-06 15:54:00 +01:00
Henrik Rydgård
0ef39d11d8 Add a dynamic loader for OpenXR so the VR code can link. Make it all build on Windows. 2022-11-06 15:37:58 +01:00
Henrik Rydgård
c44afcf462 Typo fix 2022-11-06 14:37:56 +01:00
Henrik Rydgård
b4507cd5cc Make a lot more code VR build for all platforms 2022-11-06 14:36:51 +01:00
Henrik Rydgård
5d3ec6c8ff Fix type of predictedDisplayTime 2022-11-06 14:35:28 +01:00
Henrik Rydgård
8398b779fb 6dof fix 2022-11-06 11:51:28 +01:00
Henrik Rydgård
ef3b0607ef Rename 6DOF_PRECISE to HAS_UNIT_SCALE 2022-11-06 11:39:41 +01:00
Henrik Rydgård
9b619b8c0b Remove ugly float conversion hacks from VR config 2022-11-06 11:37:52 +01:00
Henrik Rydgård
8bb2313f5d Finish previous buildfix... 2022-11-06 11:34:27 +01:00
Henrik Rydgård
4d81506046 Upgrade gradle, specify NDK version in android/build.gradle
Also fix a warning.
2022-11-06 09:44:06 +01:00
Unknown W. Brackets
15fdb54a59
Merge pull request #16337 from hrydgard/renderpass-type-bitfield
Vulkan: Switch RenderPassType to be a "proper" bitfield enum.
2022-11-05 16:28:48 -07:00
Henrik Rydgård
439b38f705 Comment fixes (feedback) 2022-11-06 00:11:04 +01:00
Henrik Rydgård
675a046759 Fix parsing ampersands in server listings for streaming
Fixes #16263 , or so I hope - haven't actually tested it, but seems
straightforward enough.
2022-11-05 23:31:30 +01:00
Henrik Rydgård
7742fbdeb6 Switch RenderPassType to be a "proper" bitfield enum. 2022-11-05 22:06:53 +01:00
Henrik Rydgård
10c6232b9b
Merge pull request #16310 from lvonasek/feature_openxr_motion
OpenXR - Map controller gestures
2022-11-05 18:18:57 +01:00
Lubos
a52afe9fd8 Merge branch 'master' into cleanup_openxr_core 2022-11-05 10:51:29 +01:00
Lubos
14abd91861 Merge branch 'master' into feature_openxr_motion 2022-11-05 10:49:11 +01:00
Lubos
22980c8b9f Code formatting fixed 2022-11-05 10:16:24 +01:00
Lubos
aacbe4f4a3 OpenXR - Get platform flags in runtime 2022-11-04 14:53:07 +01:00
Lubos
aafa17fa73 OpenXR - Introduce platform flags 2022-11-04 14:22:42 +01:00
Lubos
f8d29e0d19 OpenXR - Fix ifdef ANDROID 2022-11-04 13:52:32 +01:00
Lubos
1d452a2e01 OpenXR - Add an option to disable 72Hz update 2022-11-03 21:33:46 +01:00
Lubos
c6b83dd9d8 OpenXR - Enable camera movement and stereo in flatscreen mode 2022-11-03 20:00:30 +01:00
Lubos
823bfae5ea Memory initialization fixed 2022-10-31 15:00:09 +01:00
Lubos
3c87e71177 OpenXR - Let users set the movement length 2022-10-31 13:19:06 +01:00
Lubos
0101c464a5 OpenXR - Option to disable controller mapping 2022-10-31 12:17:30 +01:00
Lubos
b740bfbcfb OpenXR - Map controller motions on keys 2022-10-31 11:59:07 +01:00
Henrik Rydgård
cf27d14131
Merge pull request #16293 from lvonasek/feature_openxr_camera
OpenXR - Modify camera parameters in realtime
2022-10-30 09:14:56 +01:00
Unknown W. Brackets
0cc94ceb15 Draw: Correct ambiguous comparison overload. 2022-10-29 12:52:00 -07:00
Lubos
cbf93d586c typo fixed 2022-10-29 21:39:46 +02:00
Lubos
363f102cc5 OpenXR - Add new virtual key for camera adjust 2022-10-29 20:47:29 +02:00
Lubos
92422160a0 OpenXR - Camera side adjust added 2022-10-29 19:31:57 +02:00
Lubos
b7da6f7e45 OpenXR - Camera height adjust added 2022-10-29 19:19:25 +02:00
Lubos
48f9c98559 OpenXR - Do not process key actions during camera adjust 2022-10-29 18:50:51 +02:00
Unknown W. Brackets
0bc2bb9efb Vulkan: Log additional queue command. 2022-10-29 09:05:14 -07:00
Henrik Rydgård
c6fe91224a Vulkan: Fixes validation errors with "null" textures
These arise in non-buffered rendering when we don't have a framebuffer
to texture from.
2022-10-28 18:40:55 +02:00
Lubos
96f89f4bd7 OpenXR - Allow updating camera in realtime 2022-10-28 15:50:00 +02:00
Lubos
f4f7dc570f OpenXR - Make VR camera parameters floating numbers 2022-10-28 14:59:12 +02:00
Henrik Rydgård
ab1cebec51 Actually bind a global uniform buffer, too. Not yet used. 2022-10-28 10:15:36 +02:00
Henrik Rydgård
96a5c52037 Vulkan: Reserve descriptor set 0 for frame-global data, move everything else to set 1 2022-10-28 09:39:56 +02:00
Henrik Rydgård
6d9008dab5 Fix validation issue with clears, remove redundant code 2022-10-27 11:05:59 +02:00
Henrik Rydgård
763afd4a8e Improve compatibility checks for stereo rendering. 2022-10-27 11:05:59 +02:00
Henrik Rydgård
31fd928a5c Name more image views. Very useful with a little patch to the Vulkan debug layers. 2022-10-27 11:05:59 +02:00
Henrik Rydgård
cd203291ba Fix rendering in non-stereo mode 2022-10-27 11:05:59 +02:00
Henrik Rydgård
15d4495f76 Pass shadergen tests 2022-10-27 11:05:59 +02:00
Henrik Rydgård
2a1526c352 Address feedback 2022-10-27 11:05:59 +02:00
Henrik Rydgård
390a136cb5 Stereo now works through shader depal too 2022-10-27 11:05:59 +02:00
Henrik Rydgård
8413473fa4 Fix more cases, GTA works now. 2022-10-27 11:05:59 +02:00
Henrik Rydgård
524e92374f Use arrays more consistently. 2022-10-27 11:05:59 +02:00
Henrik Rydgård
91259aaad7 Always use array textures for framebuffers in Vulkan for simplicity. 2022-10-27 11:05:58 +02:00
Henrik Rydgård
2bea495981 wip 2022-10-27 11:05:58 +02:00
Henrik Rydgård
f1b515caaf Minor shaderwriter refactor 2022-10-27 11:05:58 +02:00
Henrik Rydgård
0de12f5ca9 Some refactoring of framebuffer views, layer issues, more work. 2022-10-27 11:05:58 +02:00
Henrik Rydgård
2e87f0bc0b More work. Things are starting to work now. 2022-10-27 11:05:58 +02:00
Henrik Rydgård
c668736924 Add a couple of stereo display shaders, add infrastructure, compile stereo pipelines 2022-10-27 11:05:58 +02:00
Henrik Rydgård
3ce8133656 Non-stereo bugfix 2022-10-27 11:05:58 +02:00
Henrik Rydgård
fb250c4b29 More multiview work 2022-10-27 11:05:58 +02:00
Henrik Rydgård
d3804ec2e5 Misc multiview hackery 2022-10-27 11:05:58 +02:00
Henrik Rydgård
7a620962aa thin3d: Replace hint at future MRT support with basic multi layer support 2022-10-27 11:05:58 +02:00
Henrik Rydgård
80e1db07a7 Minor ShaderWriter refactor, prep for later changes 2022-10-24 17:45:18 +02:00
Henrik Rydgård
1d8ab38ce5 Vulkan: Use v2 feature checks, and add check for multiview features.
Extracted from the multiview PR, and renamed some stuff.
2022-10-24 00:21:28 +02:00
Henrik Rydgård
e77ff0281f Testfix 2022-10-24 00:20:45 +02:00
Henrik Rydgård
ecf2797173 Minor refactor of ShaderWriter flags. Extracted from the stereo PR 2022-10-23 21:57:01 +02:00
Unknown W. Brackets
813bfded92
x86jit: Correct vh2f NAN handling (#16275)
* x86jit: Correct vh2f NAN handling.

Allows another test to pass.

* x86jit: Reuse MAccessibleDisp().
2022-10-23 10:09:29 +02:00
Henrik Rydgård
3af86ec6f7 Make it possible to specify extensions for Vulkan in the ShaderWriter 2022-10-22 17:46:57 +02:00
Luboš Vonásek
df04280c34
OpenXR - Wrong condition removed (#16271) 2022-10-22 14:45:57 +00:00
Henrik Rydgård
cafce7365b Vulkan: Fix frame ordering issue with postprocessing shaders
Requested an init command buffer outside the frame, which is dangerous
and caused validation problems with command pool resets.

Would like to assert on insideFrame in GetInitCmd, but we use it from
some init code where it does work correctly. Might clean that up at some
point.
2022-10-21 12:52:21 +02:00
Lubos
2fd6438c0e OpenXR - Camera distance adjust added 2022-10-20 21:23:27 +02:00
Henrik Rydgård
90d395a10d Remove "attachment" parameter from BindFramebufferAsTexture everywhere.
Not actually useful since our framebuffer objects don't support multiple
color images, and probably won't ever need to.
2022-10-20 10:15:19 +02:00
Henrik Rydgård
8cd602a9c6
Merge pull request #16257 from unknownbrackets/error-cleanup
Kernel: Fix reported StopThread error
2022-10-19 08:06:30 +02:00
Unknown W. Brackets
a42064eb48 Vulkan: Correct some enum switch warnings.
Nice to log debug annotations anyway.
2022-10-18 21:52:38 -07:00
Lubos
fbb1e7eda0 OpenXR - Use only the first projection matrix in frame for mirroing detection 2022-10-18 12:39:42 +02:00
Henrik Rydgård
269eb55c17 Build/warning fix 2022-10-18 10:48:16 +02:00
Henrik Rydgård
feb4f9477a Remove newly added dependencies on PPSSPP 2022-10-18 10:35:42 +02:00
Henrik Rydgård
0251f33ec3 Don't use PPSSPP-specific stuff in Common/VR for now. 2022-10-17 23:13:43 +02:00
Henrik Rydgård
0a222345c1 Buildfixes 2022-10-17 20:43:58 +02:00
Henrik Rydgård
70488be450 Make as much as possible of the VR code build on all platforms 2022-10-17 20:12:48 +02:00
Henrik Rydgård
aa51bfd1ef Use GPU "use" flags to replace IsVRBuild in the renderer. It remains elsewhere. 2022-10-17 19:57:11 +02:00
Lubos
be2613d495 OpenXR - Move VR passes count calculation 2022-10-17 19:07:27 +02:00
Lubos
8ed105ff83 OpenXR - Simplify projection matrix analyze 2022-10-17 18:57:47 +02:00
Lubos
468a193d6d OpenXR - Get rid of VR tweaks 2022-10-17 18:52:03 +02:00
Lubos
d5c9d15ec3 OpenXR - Move matrix composing out of VR tweaks 2022-10-17 18:31:01 +02:00
Henrik Rydgård
eb18a87eee
Merge pull request #16186 from lvonasek/feature_openxr_vulkan
OpenXR - Initial work to support multiple render APIs
2022-10-17 14:47:47 +02:00
Lubos
e90a7de3e4 OpenXR - Add VR mode for stereo flat screen rendering 2022-10-16 20:28:45 +02:00
Henrik Rydgård
cd0cef7aa1
Merge pull request #16219 from catsout/fix-vulkan-wayland
Vulkan: fix wayland swapchain size 1x1
2022-10-15 22:51:48 +02:00
Unknown W. Brackets
8156f6fe28 D3D9: Correct scissor state cache in Draw.
Gets reset when updating the render target.  This fixes UI scissors.
2022-10-15 12:50:27 -07:00
catsout
b0ceeede79 Vulkan: fix wayland swapchain size 1x1
From Vulkan spec,
surfaceCapabilities.currentExtent can be 0xFFFFFFFF(-1)

Define a callback to get drawsize from window creator

relate:
https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VkSurfaceCapabilitiesKHR.html
https://github.com/KhronosGroup/Vulkan-Docs/issues/590#issuecomment-347932321
2022-10-15 19:02:42 +08:00
Lubos
de41650318 OpenXR - Disable VUlkan for now 2022-10-14 16:47:54 +02:00
Henrik Rydgård
f269137c78 Revert "Vulkan: Create depth/stencil buffers on demand"
This reverts commit be37de106c.
2022-10-13 22:39:47 +02:00
Henrik Rydgård
4d1da5859c Add simple way to add debug annotation in the middle of the command stream. Vulkan-only. 2022-10-13 22:39:44 +02:00
Lubos
d0431e494a OpenXR - Create VR framebuffer for Vulkan 2022-10-12 19:16:17 +02:00
Lubos
ade606bc3c OpenXR - Hookup VR API into Vulkan 2022-10-12 16:21:54 +02:00
Henrik Rydgård
e0e29a1556
Merge pull request #16197 from hrydgard/more-uniform-optimization
More uniform optimization, fixes
2022-10-12 01:00:27 +02:00
Henrik Rydgård
b0cf97cf4d Touchpad/mousewheel scrolling acted very weirdly on Mac due to 0 deltas. Make it work better.
Ignoring the 0 deltas helps a lot for the feel, even though it still isn't that smooth feel yet.
2022-10-11 14:00:46 +02:00
Henrik Rydgård
901f698a10
Merge pull request #16201 from unknownbrackets/gedebugger
GE Debugger: Normalize framebuffer texture preview
2022-10-11 11:33:19 +02:00
Henrik Rydgård
804220afb1
Merge pull request #16198 from unknownbrackets/gles-stencil
Readback stencil buffer for debugger on GLES
2022-10-11 10:55:38 +02:00
Unknown W. Brackets
999055791d D3D9: Remove block transfer code overrides.
We can just use Draw now.  Keep depth, though, since it applies scale.
2022-10-10 21:48:38 -07:00
Henrik Rydgård
8b2e7d6e2f
Merge pull request #16200 from unknownbrackets/vulkan-depth
Vulkan: Fix initial depth copy w/o existing depth
2022-10-11 06:45:21 +02:00
Unknown W. Brackets
c89cf1cde7 D3D9: Implement CopyFramebufferToMemorySync().
This works like other backends, including D3D11.  This allows us to get
rid of the old implementation and reuse more code.
2022-10-10 21:28:14 -07:00
Unknown W. Brackets
26fd063cd1 Vulkan: Fix initial depth copy w/o existing depth. 2022-10-10 19:14:34 -07:00
Unknown W. Brackets
fc68cd9457 GLES: Add debug readback of stencil data.
This allows the existing gpu.buffer.renderStencil to snapshot the state.
2022-10-10 17:09:14 -07:00
Unknown W. Brackets
b991a84b91 GLES: Allow stencil texturing if supported. 2022-10-10 16:43:19 -07:00
Henrik Rydgård
6f703128ec Experimentally revert "Delete some misguided FPU control code, that we definitely don't want"
This reverts commit d52d383c22.
2022-10-10 18:35:29 +02:00
Henrik Rydgård
69bc7b060f glslang: Set a missing resource limit. Avoids spurious errors in shader unit test 2022-10-10 17:17:17 +02:00
Henrik Rydgård
d56bdcb81e
Merge pull request #16196 from hrydgard/improved-render-stats
Improved stats in the Vulkan GPU profiler
2022-10-10 15:40:17 +02:00
Henrik Rydgård
d4bfe9299d Track min and max GPU time, init time, render CPU time.
Mainly wanted to see if init time is a factor, there are optimizations
we can do there.
2022-10-10 10:53:27 +02:00
Henrik Rydgård
d52d383c22 Delete some misguided FPU control code, that we definitely don't want 2022-10-10 10:46:51 +02:00
Henrik Rydgård
32699da6df Vulkan (trivial): Fix numDraws stat when merging render passes. Shorten a name. 2022-10-10 10:06:30 +02:00
Unknown W. Brackets
179c1e4a3b GLES: Enable EXT_depth_clamp where supported.
Seems like Freedreno may support this.
2022-10-10 00:54:29 -07:00
Henrik Rydgård
dd389ade8f
Merge pull request #16192 from unknownbrackets/depth-download
D3D11: Correct depth readback
2022-10-10 09:48:18 +02:00
Unknown W. Brackets
bad4a93d3c D3D11: Correct depth readback. 2022-10-09 15:50:50 -07:00
Unknown W. Brackets
8c1acc30e4 Savedata: Combine file info and dir listing calls. 2022-10-09 14:42:31 -07:00
Unknown W. Brackets
7b8350f8a8 Android: Differentiate empty dir from failure. 2022-10-09 14:42:31 -07:00
Henrik Rydgård
be37de106c Vulkan: Create depth/stencil buffers on demand 2022-10-09 20:28:32 +02:00
Lubos
43f848a2aa Merge branch 'master' into feature_openxr_vulkan 2022-10-09 17:49:17 +02:00
Lubos
7c6cff5ae9 Merge branch 'master' into feature_openxr_vulkan 2022-10-09 17:48:23 +02:00
Henrik Rydgård
49de375bff
Merge pull request #16183 from unknownbrackets/depth-usage
GPU: Ignore depth when masked and ALWAYS
2022-10-09 10:41:40 +02:00
Henrik Rydgård
10fedf19bd
Merge pull request #16182 from unknownbrackets/gles-indexed
GLES: Use GL_LUMINANCE on GLES for indexed tex
2022-10-09 10:19:26 +02:00
Henrik Rydgård
76be009b41
Merge pull request #16181 from unknownbrackets/d3d9-clut
Add rendered CLUT handling to D3D9
2022-10-09 10:17:17 +02:00
Unknown W. Brackets
bc84d6345b Vulkan: Disable geometry shaders for Mali <= 18.
These drivers apparently have some weird behavior.
2022-10-09 00:57:10 -07:00
Unknown W. Brackets
ce79649c02 GLES: Use GL_LUMINANCE on GLES for indexed tex.
See #16176, used for rendered CLUTs.
2022-10-08 17:32:11 -07:00
Unknown W. Brackets
81cf76a619 D3D9: Correct sampler states for binding 1+. 2022-10-08 15:34:00 -07:00
Lubos
bf14ca84d3 OpenXR - Revision of VR rendering 2022-10-08 14:38:49 +02:00
Henrik Rydgård
131c1ca79e Typo fix, thanks iota97 2022-10-06 20:46:57 +02:00
Henrik Rydgård
bf25f4b283 Shader uniforms (VK/D3D11): Fix issue where we could overwrite the fourth component padding. 2022-10-06 10:52:58 +02:00