Commit Graph

1914 Commits

Author SHA1 Message Date
Andrew Church
163ed5b5f7 Linux: Properly avoid committing address space for large mmap().
A shared or writable mapping is charged to the process's memory
commitment regardless of MAP_NORESERVE, so the mmap() call to find a
4G base can still fail depending on memory usage and overcommit settings.
2020-12-19 19:45:42 +09:00
Henrik Rydgård
7de7680416 Apple driver bug workaround. See issue #13451 2020-12-16 14:39:08 +01:00
Henrik Rydgård
2dcfa63498 GL: Detect Apple GPUs as a category 2020-12-14 22:10:18 +01:00
Henrik Rydgård
559ccd9f33 Minor cleanups 2020-12-14 20:06:06 +01:00
Henrik Rydgård
32c9728c0c Some cleanups in GL feature and shader language detection.
Gets rid of many wrong or bad checks for IsCoreContext.
2020-12-14 19:46:11 +01:00
Henrik Rydgård
f3ebd6553d Turn off vertex range culling in bezier/spline calls.
When we do lower res tess than the real PSP, we cant trust the game to not cause range culling to kick in.

Fixes #11692
2020-12-13 16:04:16 +01:00
Henrik Rydgård
1c925e705f
Merge pull request #13760 from hrydgard/fix-dirt-graphics
Fix car lighting issues in DiRT 2.
2020-12-13 09:19:34 +01:00
Henrik Rydgård
6a5522b185 thin3d: Add a way to query the current render target for debugging. 2020-12-13 00:20:13 +01:00
Halo-Michael
0652d2b52f Change the typo 2020-12-08 14:42:07 +08:00
Halo-Michael
a40674d770 Fix loader 2020-12-08 14:40:29 +08:00
Halo-Michael
277b00dfa0 Bundle libMoltenVK 2020-12-08 13:46:14 +08:00
gameblabla
7ef8e64303
Add missing header in Logmanager.h 2020-12-04 21:24:18 +01:00
gameblabla
4fe3786499
Fix headers in MIPSCPUDetect. 2020-12-04 21:23:36 +01:00
Halo-Michael
cbcfbca895 sz must be longer than target string 2020-12-03 21:05:00 +08:00
Halo-Michael
95e6a1c7a5 Why not iOS? 2020-12-03 11:43:20 +08:00
Henrik Rydgård
9c8feefcdc M1: Correctly detect core count. 2020-12-02 21:59:18 +01:00
Henrik Rydgård
20d579c3b8 Cleaner way to flush the instruction cache on Mac ARM64 2020-12-02 19:15:08 +01:00
Henrik Rydgård
5077a004ff Mark ARM64 Macs as needing WX-exclusive memory protection 2020-12-02 19:13:52 +01:00
Henrik Rydgård
c0a5fa3e8b Fix a crash if JIT space failed to allocate 2020-12-02 00:33:51 +01:00
Henrik Rydgård
c0c2bfb293 D3D11: Fix shader module leak in thin3d.
Thanks Unknown.
2020-12-01 09:20:13 +01:00
Henrik Rydgård
032890803e Need to take renderArea into account when merging render passes.
Fixes #13664
2020-11-26 23:29:59 +01:00
iota97
a014d7c785 Remember game list scroll 2020-11-23 10:10:20 +01:00
Henrik Rydgård
3c2733d8eb Adreno/OpenGL: Limit shader depal to 6xx series GPUs. Should help #13668.
Also make a function static.
2020-11-22 18:00:07 +01:00
Henrik Rydgård
29b2f2c4ef Better GLSL version handling. Now specify the latest version supported by the device.
Correct the version check for our own implementations of packUnorm4x8 etc.
2020-11-16 23:30:07 +01:00
Henrik Rydgård
90cc325b53 Clears didn't always properly set the RenderArea. Should help #13664 2020-11-15 22:30:16 +01:00
Henrik Rydgård
e14437cb3f OpenGL: Assorted shader-depal bugfixes and regression fixes.
Fixes #13517
2020-11-11 23:09:48 +01:00
Henrik Rydgård
a3d06e366f OpenGL: Detect Adreno model number 2020-11-11 22:46:25 +01:00
Henrik Rydgård
34efa1281b More consistent use of GLSL precision modifiers, now use them in Vulkan too.
Might help #13464 ?
2020-11-10 22:42:41 +01:00
Henrik Rydgård
d99cba7308 Outrun on OpenGL: Fix weird purple highlight seen on some devices
mediump int is just not enough.
2020-11-10 22:01:57 +01:00
Henrik Rydgård
5eea7435d0 Minor cleanup in GL backend, fixes #13647
Was a stray old texture in boundTextures_ in thin3d. Now makes sure to
invalidate them, and also make it possible to look up bound framebuffer
textures when checking for valid tex parameters.
2020-11-10 00:13:44 +01:00
Henrik Rydgård
9f33a82b49
Merge pull request #13646 from hrydgard/framebuffer-fetch-fixes
Framebuffer fetch fixes
2020-11-09 19:30:35 +01:00
Henrik Rydgård
ba139975e0 Linker fix - need to move init_resources along. 2020-11-09 15:39:46 +01:00
Henrik Rydgård
69108ab2e9 On GLES3, GL_EXT_shader_framebuffer_fetch works a little differently. 2020-11-09 13:32:49 +01:00
Henrik Rydgård
2384b7a17d Remove support for NV_shader_framebuffer_fetch extension, very old and rare.
Minor refactor.
2020-11-09 13:31:39 +01:00
Henrik Rydgård
e77a9d7368 Reorganize the end of the fragment shader generator.
Thanks unknown.
2020-11-09 11:19:02 +01:00
Henrik Rydgård
864cc54aa4 Remove ForceGL2 flag. Add comments... hm. 2020-11-09 11:18:43 +01:00
Henrik Rydgård
766dbc5a9f Move ShaderTranslation.cpp/h to Common/GPU. 2020-11-09 11:18:43 +01:00
Henrik Rydgård
50619af71d Fix HLSL shader gen issue 2020-11-09 09:10:44 +01:00
Henrik Rydgård
b9dd866c2d
Merge pull request #13640 from hrydgard/shader-color-write-mask
Fix car reflections in Outrun by implementing per-bit color masking
2020-11-09 08:45:28 +01:00
Henrik Rydgård
0c3ead1437 Temporarily disable GL frame-init error checks, see #13639 2020-11-09 00:30:24 +01:00
Henrik Rydgård
6310af25fa Get shader color write masking going on all backends. 2020-11-08 23:45:47 +01:00
Henrik Rydgård
9105249901 Add compat flag for reinterpret shader, also disable on platforms that can't support it yet 2020-11-08 11:32:55 +01:00
Henrik Rydgård
4e16fcaf1a Fix reinterpret shader for D3D11 2020-11-08 11:32:55 +01:00
Henrik Rydgård
96c36d5c10 More work on reinterpret. Get Vulkan running 2020-11-08 11:32:55 +01:00
Henrik Rydgård
1ccc8c129c Reinterpret code runs, no idea if it works 2020-11-08 11:32:55 +01:00
Henrik Rydgård
f2e315b9a6 More shadergen work
Buildfix
2020-11-08 11:32:53 +01:00
Henrik Rydgård
19b4febbbf More reinterpret shader gen and test work.
More work on reinterpret

Buildsystem fixes
2020-11-08 10:41:20 +01:00
Henrik Rydgård
d9ee06a60d Reorganize the DeviceLost code a little. FramebufferManagerCommon now sees it. 2020-11-07 10:51:54 +01:00
Henrik Rydgård
e12c0fb205 Oops, what happened there.. 2020-11-06 23:20:02 +01:00
Henrik Rydgård
26e09c758b Some GL error logging improvements 2020-11-06 22:42:09 +01:00
Henrik Rydgård
6a1e669c45 Fix GLSL version detection bug. Fixes #13631 2020-11-06 21:55:16 +01:00
Henrik Rydgård
7a690f177e Move shader language feature detection to the draw context. 2020-11-06 09:11:57 +01:00
Henrik Rydgård
84037f448e Remove colorDepth property of framebuffers. They're all 8888. 2020-11-05 14:51:46 +01:00
Henrik Rydgård
7b2236778b Remove remnants of an old, no longer applicable readback optimization 2020-11-05 14:38:20 +01:00
Henrik Rydgård
6db943e831 Merge the two ShaderStage enums 2020-11-05 08:34:35 +01:00
Henrik Rydgård
207b76da6e Show an error on screen if a shader fails to compile.
Part of #1 investigation of #13541
2020-11-05 08:27:13 +01:00
Henrik Rydgård
03e8eac6ef Merge the two ShaderLanguage enums. 2020-11-04 09:40:11 +01:00
Henrik Rydgård
733a152c54 Move ShaderWriter to Common/GPU, along with some stuff from ShaderCommon.h. 2020-11-04 09:18:35 +01:00
Henrik Rydgård
0292d1719d GEDebugger: Use utf-8 internally. 2020-11-02 10:02:52 +01:00
Henrik Rydgård
291742535b Safety, comments 2020-11-02 10:02:52 +01:00
Henrik Rydgård
d32fc34b2b Remove inPrefix. HLSL shaders gets slightly longer but probably no biggie.
The extra variable should be optimized out anyway.

Tried doing it with the preprocessor, couldn't get it to work.
2020-10-31 23:22:06 +01:00
Henrik Rydgård
2f1bbd314e Fragment shader gen: Remove unnecessary allocations 2020-10-31 18:32:43 +01:00
Henrik Rydgård
7a63b5e69e Cleanup 2020-10-31 18:32:43 +01:00
Henrik Rydgård
3d4fc7c696 Check for a couple additional GL extensions 2020-10-31 18:32:43 +01:00
Henrik Rydgård
c311eeaf7d Switch D3D9 too to the glsl shader generator 2020-10-31 18:32:43 +01:00
Henrik Rydgård
8d70fd269e Minor D3D9 fixes 2020-10-31 18:32:43 +01:00
Henrik Rydgård
b7d674411e Test parsing of generated OpenGL shaders too (by using glslang). 2020-10-31 18:32:43 +01:00
Henrik Rydgård
af4d6e7642 Set up the test for D3D9, start fixing stuff. 2020-10-31 18:32:43 +01:00
Henrik Rydgård
b070ed45e9 Evolve the HLSL and GLSL fragment shader generators even closer together. 2020-10-31 18:32:42 +01:00
Henrik Rydgård
f3c05cb81a
Merge pull request #13575 from Florin9doi/android_audio_record2
[Android] Audio record using OpenSL
2020-10-31 10:25:14 +01:00
Henrik Rydgård
5ee9cfef0d Remove support for D3D11_level_9 (previously only really used for Windows Phone, probably).
Can always fall back to D3D9, which is not going away anytime soon and
still needs to be there. One less HLSL variant to care about.
2020-10-29 00:52:19 +01:00
Florin9doi
6531c7f4f8 [Android] Retrieve isMicStarted from AndroidAudio state 2020-10-24 20:16:22 +03:00
Henrik Rydgård
254c316b10
Merge pull request #13570 from hrydgard/gl-allow-wrap-framebuffers
GL: Allow texture wrapping on framebuffers
2020-10-23 22:41:10 +02:00
Henrik Rydgård
43ce4e7493 Remove an unmotivated ifdef. Additional cleanup 2020-10-22 00:10:21 +02:00
Henrik Rydgård
3a870a9d81 OpenGL: Allow texture wrapping on framebuffers if supported
Fixes minor texture glitch in Wipeout, and probably more
2020-10-22 00:03:44 +02:00
Henrik Rydgård
d4c02ccc1c Address feedback about recent changes
Thanks unknown.
2020-10-19 22:50:31 +02:00
Henrik Rydgård
92e1dce2db Error handling fixes 2020-10-18 20:26:19 +02:00
Henrik Rydgård
d3339d93b0 Set up depth buffers to be bound as shader resource views 2020-10-18 20:14:25 +02:00
Henrik Rydgård
f526f5977b OpenGL: Disable auto invalidation of framebuffers, it has somehow broken
(Breaks DBZ: Tag Team)
2020-10-17 12:51:45 +02:00
Henrik Rydgård
74f8b3c69a Yet another one 2020-10-15 00:03:47 +02:00
Henrik Rydgård
f46759be5a Another missing header buildfix
thanks autechre
2020-10-14 23:49:59 +02:00
Henrik Rydgård
dc3c161b21 Add missing include in URL.h
Thanks autechre.
2020-10-14 23:30:51 +02:00
Henrik Rydgård
6cc8c2ebc1
Merge pull request #13328 from hrydgard/libretro-fixes
Fix libretro with Vulkan
2020-10-14 22:08:11 +02:00
Henrik Rydgård
332bb7feeb VK: Whenever safely possible, shrink the render area.
We just set the render area to the union of the scissor rects used in a pass.

Might help some games on some mobile hardware, a little bit.

Possibly #13464?
2020-10-11 23:23:25 +02:00
Henrik Rydgård
dffc36b854 Get Vulkan going again with libretro. Rendering is the wrong size and crashes on exit, but it's a start.
Only tested on Windows.
2020-10-11 19:06:09 +02:00
Henrik Rydgård
5ece3de8ba Track and accumulate pipeline flags for render passes.
(Information that will later let us make some interesting optimizations)
2020-10-11 12:22:25 +02:00
Henrik Rydgård
9d78ba93e0 Bugfix 2020-10-11 11:17:43 +02:00
Henrik Rydgård
692048fb8b VK: Separate layout transitions from renderpasses again.
According to sage advice from themaister, this is just unnecessary overengineering.

Having them separate reduces the size of the renderpass key - we might be able to just
change that to an array lookup again. Will also make it easier to in the future add
depth-less render passes.
2020-10-11 11:06:54 +02:00
Henrik Rydgård
940611fe65 Remove the USE_GENERAL_LAYOUT_FOR* debug defines. 2020-10-11 11:06:54 +02:00
Henrik Rydgård
dc0f7ca8ee VK: Copy depth buffer if we can't blit. Some GPUs can't blit to depth.
Fixes some recent issues with Intel GPUs on Vulkan.
2020-10-11 10:57:35 +02:00
Henrik Rydgård
e97baa503a Avoid a division in time_now_d(). Minor optimizations. 2020-10-10 19:05:46 +02:00
Henrik Rydgård
886a8b1ac6 Remove Timer.cpp/h. Move various collections into Common/Data/Collections. 2020-10-05 21:05:23 +02:00
Henrik Rydgård
7d43ca5125 Fix Qt build by simply moving the offending file to the native project. No idea why Qt include paths only work there. 2020-10-05 10:36:57 +02:00
Henrik Rydgård
4310e35714 Windows: Remove the native project. 2020-10-05 06:56:10 +02:00
Henrik Rydgård
b236691548 Complete the eradication of D3DX9 compiler loader 2020-10-05 00:13:29 +02:00
Henrik Rydgård
8761bf2bc9 Move text rendering to Common. 2020-10-05 00:05:28 +02:00
Henrik Rydgård
0e3a84b4a8 Move most GPU things to Common.
It works after the move, on Windows and Android at least.

Deletes the D3DX9 shader compiler loader, which was not used.
2020-10-04 23:39:02 +02:00
Henrik Rydgård
4f43cff5ca
Move fileutil, net, image loaders, ui to Common. (#13506)
* Move and rename file_util/fd_util to Common/File/FileUtil and DirListing

Let's also move net while we're at it.

Move the ZIM/PNG loaders over to Common.

Move the UI framework into Common

iOS buildfix

* Buildfix

* Buildfixes

* Apple buildfix

* This typo again..

* UWP buildfix

* Fix build of PPSSPPQt, such as it is (it's not in good condition...)

* Guess what? Another buildfix.
2020-10-04 20:48:47 +02:00
Henrik Rydgård
7ba8f684a0 Mac/ios buildfix 2020-10-04 12:37:19 +02:00
Henrik Rydgård
f01ba6dc84 Move NativeApp.h to Common/System, split into NativeApp.h and System.h
Buildfix
2020-10-04 11:42:16 +02:00
Henrik Rydgård
b7edf75437 Move Display.cpp/h to Common. 2020-10-04 11:42:16 +02:00
Henrik Rydgård
821817e6d4 Move the profiler to Common 2020-10-04 11:42:16 +02:00
Henrik Rydgård
989e353482 Common.h shouldn't include Log.h.
Buildfixes

More buildfixes. Move JSON code to common.
2020-10-04 11:42:14 +02:00
Henrik Rydgård
9e41fafd0d Move math and some file and data conversion files out from native to Common.
Buildfixing

Move some file util files

Buildfix

Move KeyMap.cpp/h to Core where they belong better.

libretro buildfix attempt

Move ini_file

More buildfixes
2020-10-04 09:12:46 +02:00
Henrik Rydgård
ff8148dd92 Move native/util, native/data and native/i18 to Common/Data.
Also move colorutil.cpp/h

linking build fix experiment

Delete a bunch of unused CMakeLists.txt files

CMakeLists.txt linking fix

Don't include NativeApp.h from any headers.

Android.mk buildfix

Half of the UWP fix

Buildfix

Minor project file cleanup

Buildfixes

Guess what? More buildfixes!
2020-10-04 07:28:29 +02:00
Bartłomiej Burdukiewicz
826656a840
Fixed missing cstring include.
Signed-off-by: Bartłomiej Burdukiewicz <bartlomiej.burdukiewicz@gmail.com>
2020-10-02 14:11:11 +02:00
Henrik Rydgård
342ed97291 Move input utilities from native to Common/Input. 2020-10-01 09:42:32 +02:00
Henrik Rydgård
15382d5f94 Move threading utils from native to Common 2020-10-01 09:27:25 +02:00
Henrik Rydgård
65617889dd Merge ext/native/ext/... directly into ext. 2020-09-30 00:30:42 +02:00
Henrik Rydgård
4d3ec20082 ByteSwap.h results in a file name collision on some systems with byteswap.h. Fix this by merging it into BitSet.h. 2020-09-30 00:09:13 +02:00
Henrik Rydgård
e8ff546457 retro buildfix 2020-09-29 20:42:08 +02:00
Henrik Rydgård
5e976ff842 Buildfixes 2020-09-29 19:33:18 +02:00
Henrik Rydgård
11ab77b995 Remove some TLS. 2020-09-29 15:51:51 +02:00
Henrik Rydgård
d9edc68966 Remove unnecessary use of thread local storage 2020-09-29 15:51:51 +02:00
Henrik Rydgård
311fe431d0 Move buffer.cpp/h from base to Common 2020-09-29 15:51:51 +02:00
Henrik Rydgård
17a9767585 Buildfixes 2020-09-29 15:51:51 +02:00
Henrik Rydgård
40ec0d8358 Finish getting rid of basictypes.h 2020-09-29 15:51:51 +02:00
Henrik Rydgård
3162f30158 Merge base/basictypes.h into Common/Common.h (mostly). 2020-09-29 15:51:51 +02:00
Henrik Rydgård
ed88761ecc Merge ext/native/stringutil.cpp/h into Common/StringUtils.cpp/h. 2020-09-29 15:51:51 +02:00
Henrik Rydgård
5411a40f2a TimeUtil.cpp cleanup 2020-09-29 00:36:29 +02:00
Henrik Rydgård
054acf768c Don't cache time in a variable.
A little weirdness in the code that has stuck around for a long, long
time. It's really not necessary and mostly just confusing.
2020-09-24 23:52:43 +02:00
Henrik Rydgård
a9fef066b5 Reduce string allocations in Vulkan memory allocator 2020-09-24 00:32:52 +02:00
Henrik Rydgård
28b58ca05d More asserts 2020-09-17 20:52:32 +02:00
Henrik Rydgård
6bcff8cbda Linux: Use MAP_NORESERVE when finding a memory base pointer. See #13187 2020-09-13 17:13:07 +02:00
Unknown W. Brackets
2b49c3e464 MemMap: Check for MAP_FAILED in mmap call. 2020-09-13 00:37:20 -07:00
Henrik Rydgård
f595f7368f Optimize a couple more single color conversion functions 2020-09-12 16:10:17 +02:00
Henrik Rydgård
60a6bf6d43 Optimize the DarkStalkers software rendering path a little more. 2020-09-12 16:10:17 +02:00
Henrik Rydgård
a22181df1c Partially fix Katamari (flicker due to choice of the wrong depth buffer still happening). 2020-09-01 22:54:36 +02:00
Henrik Rydgård
cb3ed8f4a1
Merge pull request #13343 from unknownbrackets/xxhash
Switch to XXH3
2020-08-28 12:20:26 +02:00
Unknown W. Brackets
15c25be42b GPU: Switch vertex/lookup hashes to XXH3.
This is faster pretty much everywhere.
2020-08-27 20:37:49 -07:00
Henrik Rydgård
3607f0ab32 Log validation errors normally as well as using OutputDebugString. 2020-08-27 21:50:05 +02:00
Unknown W. Brackets
90344fdee5 Exception: Don't trust sigaltstack().
Let's just track our allocation separately and free it, always.
2020-08-26 21:44:38 -07:00
Henrik Rydgård
479dedf0ba Some logging improvements. Show more coordinates for block transfers, etc. 2020-08-16 22:27:21 +02:00
Henrik Rydgård
0bf6bd9175 More Log.h cleanup. 2020-08-16 14:48:54 +02:00
Henrik Rydgård
9561a4f80a Move MsgHandler into Log.cpp/h 2020-08-16 14:48:54 +02:00
Henrik Rydgård
5704ebfb61 More cleanup of Log.h, move AndroidAssert into MsgHandler.cpp/h. 2020-08-16 14:48:54 +02:00
Henrik Rydgård
e8a9845d93 First step of cleaning up Log.h. Plus a few other bits and bobs. 2020-08-16 14:48:54 +02:00
Henrik Rydgård
61bf512244
Merge pull request #13291 from hrydgard/assert-cleanup
Assert function cleanup
2020-08-16 13:57:22 +02:00
Henrik Rydgård
8db6599e77 Buildfixes 2020-08-16 12:48:09 +02:00
Henrik Rydgård
449f80b74f Address feedback. 2020-08-16 10:15:17 +02:00
Henrik Rydgård
5d64fc5ff1 Switch to PPSSPP's assert functions (don't use the system's) 2020-08-16 10:01:10 +02:00
Henrik Rydgård
c5147c01a0 Fix newlines in logging before the manager is initialized. 2020-08-16 10:01:09 +02:00
Henrik Rydgård
c8a06d40c9 Buildfix 2020-08-16 10:00:26 +02:00
Henrik Rydgård
7aacf3df37 Remove time_now() - time_now_d() is the replacement. Absolute time values can't be stored reliably in floats. 2020-08-16 09:37:18 +02:00
Henrik Rydgård
80aa527f1a
Merge pull request #13288 from hrydgard/move-timeutil
Move timeutil to Common. (Experiment to see how much work it is to move these).
2020-08-15 23:44:23 +02:00
Henrik Rydgård
761ea58fb8 Merge branch 'cmake' of https://github.com/Kingcom/ppsspp into Kingcom-cmake 2020-08-15 21:35:46 +02:00
Henrik Rydgård
ccc0331279 Move timeutil to Common. (Experiment to see how much work it is to move these). 2020-08-15 20:53:08 +02:00
Henrik Rydgård
99a5a9aac5 Address feedback 2020-08-15 20:02:07 +02:00
Henrik Rydgård
3c412ea21e Fix build of ZimTool/AtlasTool. Had to break the ugly backwards dependency from LogManager to g_Config. 2020-08-15 19:09:09 +02:00
Henrik Rydgård
80e0f85332 Getting really close to getting rid of base/logging.h now.
Qt buildfix
2020-08-15 19:09:01 +02:00