Commit Graph

1275 Commits

Author SHA1 Message Date
Benjamin Hodgetts
79b3f81b0c
Add missing include
Fixes issue https://github.com/hrydgard/ppsspp/issues/11157
2018-06-08 12:11:05 +01:00
Henrik Rydgård
d63e044d4b
Merge pull request #11152 from unknownbrackets/debugger-http
Move internal webserver to Core, add WebSocket stuff
2018-06-08 09:27:34 +02:00
Unknown W. Brackets
df72abcd62 net: Use WSAAddressToString for Windows XP.
Unfortunately, we don't have inet_ntop on older Windows.
2018-06-07 23:22:28 -07:00
Unknown W. Brackets
40c7f5ddfd UI: Make button padding configurable.
Useful for buttons on the MainScreen which look out of place with the
default padding.
2018-06-07 14:14:20 -07:00
Unknown W. Brackets
042256337a thread: Add a simple thread executor. 2018-06-07 14:11:52 -07:00
Unknown W. Brackets
403632b4ca http: Correct WebSocket close when code missing. 2018-06-07 14:11:52 -07:00
Unknown W. Brackets
0fb15fc0d0 http: Use a buffer for WebSocket output.
This way we can more safely write as much as we want.
2018-06-07 14:11:52 -07:00
Unknown W. Brackets
556a46f9d5 http: Allow selecting a WebSocket subprotocol. 2018-06-07 14:11:52 -07:00
Unknown W. Brackets
8b094f8c6f http: Allow fragmented data for WebSocket. 2018-06-07 14:11:52 -07:00
Unknown W. Brackets
b75b6801c8 http: Add a simple WebSocket server class. 2018-06-07 14:11:52 -07:00
Unknown W. Brackets
65d072c7b0 http: Add some operations to avoid blocking. 2018-06-07 14:11:52 -07:00
Henrik Rydgård
6bf6490c2f
Merge pull request #11128 from unknownbrackets/gpu-minor
Minor framebuffer code cleanup
2018-06-06 22:28:35 +02:00
Henrik Rydgård
a08fb8bd22
Merge pull request #11004 from unknownbrackets/ipv6
Enable IPv6 for reporting / sharing / etc.
2018-06-06 21:24:04 +02:00
Henrik Rydgård
df699c67b2
Merge pull request #10960 from unknownbrackets/debugger-json
Switch json to gason, include json writer in build
2018-06-06 21:19:13 +02:00
Henrik Rydgård
bc6f211724
Merge pull request #11093 from unknownbrackets/debugger-armips
Include armips assembler in build
2018-06-06 20:41:20 +02:00
Henrik Rydgård
347721f200
Merge pull request #10981 from unknownbrackets/flat-shade
Use software transform for flat shading and fix colors
2018-06-06 19:05:54 +02:00
Unknown W. Brackets
191af89195
Merge pull request #11107 from jbeich/cityhash
Unbreak -march=native build on x86
2018-06-06 09:18:16 -04:00
Unknown W. Brackets
082ddf5120 json: Switch to gason instead of vjson.
From the same author.  Most importantly, reads numbers as doubles rather
than as signed ints and floats.  This allows us to actually read 32 bit
unsigned int parameters.

Moved all the native customization to a separate json_reader.cpp.
2018-06-06 05:59:35 -07:00
Unknown W. Brackets
b56249eec1 json: Avoid encoding inf/nan in JSON.
It doesn't support them.  The common workaround is to use null.
2018-06-06 05:59:34 -07:00
Unknown W. Brackets
2e3021da0c json: Be precise by default. 2018-06-06 05:59:34 -07:00
Unknown W. Brackets
b658130924 json: Fix formatting of nested arrays/objects. 2018-06-06 05:59:34 -07:00
Unknown W. Brackets
03cc4eab01 json: Allow formatting read json back to writer. 2018-06-06 05:59:34 -07:00
Unknown W. Brackets
fb876e78c0 json: Actually include in build. 2018-06-06 05:59:33 -07:00
Unknown W. Brackets
dfef902cdb json: Escape strings in the json writer. 2018-06-06 05:59:33 -07:00
Unknown W. Brackets
e21753bc93 Debugger: Add assembler to build. 2018-06-06 05:59:24 -07:00
Unknown W. Brackets
5b95de663e net: Listen on ipv6 and ipv4.
Hurray, no longer "part of the problem" for ipv4.
2018-06-06 05:59:07 -07:00
Unknown W. Brackets
30a07c2e8d net: Support local ipv6 formatting.
Let's hope no platform has issues with inet_ntop...
2018-06-06 05:59:07 -07:00
Unknown W. Brackets
ca4340b9e0 net: Support ipv6 lookups.
We try to connect() to both, so should still be safe in environments where
ipv6 is broken.
2018-06-06 05:59:07 -07:00
Unknown W. Brackets
e90b01d9ac thin3d: Convert BGRA8888 to RGB888 for screenshots.
In case we prefer BGRA for some buffer in Vulkan.  Also reporting.
2018-06-06 05:56:29 -07:00
Unknown W. Brackets
5b62c8afb8 D3D9: Implement flat shading via state. 2018-06-06 05:53:50 -07:00
Henrik Rydgård
8ee3cd52e8 D3D11: Allow the user to select rendering device. 2018-06-06 10:20:12 +02:00
Henrik Rydgård
b037efdb55 If there are multiple Vulkan devices, show a setting to allow the user to choose. 2018-06-06 10:20:12 +02:00
Unknown W. Brackets
e6af167cd9
Merge pull request #11119 from hrydgard/vk-nulltexture
Never bind a NULL image view in Vulkan, not even through thin3d
2018-06-01 23:53:18 -04:00
Unknown W. Brackets
72af11f9f6
Merge pull request #11118 from hrydgard/framebuffer-download-size
When creating temp framebuffers for download, size them using bufferWidth/Height instead of width/height.
2018-06-01 23:51:59 -04:00
Henrik Rydgård
8d3dbee823 Fix a GL error when taking a screenshot in non-buffered. May help #11056 2018-06-01 22:25:27 +02:00
Henrik Rydgård
04fefa2417 Vulkan image readback: Fix a couple scary cases of wrong argument order in image transitions, leading to transitioning 0 mips 2018-06-01 22:16:20 +02:00
Henrik Rydgård
2917f3ffbb Better return the right pointer. 2018-06-01 22:05:21 +02:00
Henrik Rydgård
c1d113e0e9 When creating temp framebuffers for download, size them using bufferWidth/Height instead of width/height.
Or maybe we should make sure to only download within the width/height by
adding more clamps at the beginning of ReadFramebufferToMemory but seems
more dangerous.

Plus some minor things.

Should help #11113
2018-06-01 21:16:07 +02:00
Henrik Rydgård
9485b04914 Never bind a NULL image view in Vulkan no matter what. 2018-06-01 18:51:37 +02:00
Unknown W. Brackets
f369086987 D3D11: Fix crash on screenshot. 2018-05-31 00:04:40 -07:00
Jan Beich
c783e7761c cityhash: disable SSE 4.2 optimization on x86
$ c++ -m32 -msse4.2 -c ext/native/ext/cityhash/city.cpp
ext/native/ext/cityhash/city.cpp:569:5: error: use of undeclared identifier '_mm_crc32_u64'
    CHUNK(0); PERMUTE3(a, h, c);
    ^
ext/native/ext/cityhash/city.cpp:562:9: note: expanded from macro 'CHUNK'
    z = _mm_crc32_u64(z, b + g);                \
        ^
2018-05-30 19:53:26 +00:00
Henrik Rydgård
3f7474e5b8 More (disabled by default) gl error logging.. 2018-05-30 18:14:13 +02:00
Henrik Rydgård
7e756544ee Add a missing virtual destructor, fix a warning 2018-05-30 18:01:49 +02:00
Henrik Rydgård
b1df7b2cd0 Thin3D: Handle binding a null texture better. 2018-05-29 23:35:27 +02:00
Henrik Rydgård
87beddc393
Merge pull request #11084 from hrydgard/crash-fix-attempts-1.6
Various fixes for 1.6.1
2018-05-27 23:27:57 +02:00
Unknown W. Brackets
423309da50 Vulkan: Don't merge render passes if read from.
In the future, we might actually track dependencies so we can smartly
sort the render passes instead.

See #11079 - screen got brighter because a cleared framebuffer was used as
a texture.
2018-05-27 14:15:54 -07:00
Henrik Rydgård
b730d187e8 Add some paranoid checks guided by stack traces from Google Play 2018-05-27 22:12:59 +02:00
Henrik Rydgård
011e57c0e7 Always specify GLSL version 450 when compiling Vulkan shaders.
Bit of a risky change so late in the game but it's wrong, it needs fixing.
See for example the comments to fb7a63bd11
2018-05-13 20:42:17 +02:00
Henrik Rydgård
a3bbe87914 D3D11 CopyFBToMemory: Clamp rect to fb size. Last-minute style fix, should really debug where the bad parameters came from.
Affects MGS Peace Walker intro
2018-05-03 23:12:39 +02:00
Henrik Rydgård
3f7602227c Windows: If neither OpenGL nor D3D9 is available, offer an escape route into D3D11.
This does happen on some fresh Win10 installations.

We really should do something much nicer and more automatic, but that's for later.
2018-05-03 22:19:07 +02:00
Unknown W. Brackets
ec5d1a8722 Vulkan: Leave removed commands in render passes.
We'll just need to not check commands.empty(), which we do in a couple
places but not in important ways so far.
2018-05-03 08:04:57 -07:00
Unknown W. Brackets
954f93046f Vulkan: Keep state on Clear cmds when used later.
This also removes duplicate state - for example our UI has some duplicate
Scissor commands.
2018-05-03 07:18:40 -07:00
Henrik Rydgård
73d6446d72
Merge pull request #10997 from unknownbrackets/vulkan-clear
Vulkan: Discard draws immediately before clear
2018-05-03 09:23:17 +02:00
Unknown W. Brackets
844015b7f8
Vulkan: Discard draws immediately before clear.
Fixes #10163, a crash on Adreno when a clear is the last thing in a render pass.
2018-05-02 19:23:49 -07:00
Henrik Rydgård
92a46e9a08
Merge pull request #10984 from unknownbrackets/gl-screenshot
Fix GLES game screenshots
2018-04-29 19:32:03 +02:00
Unknown W. Brackets
170e871c54 thin3d: Report unsupported format conversion.
Better we know than ignore.
2018-04-29 10:23:53 -07:00
Unknown W. Brackets
ae1bb20b7b GLES: Fix game screenshots. 2018-04-29 10:23:03 -07:00
Unknown W. Brackets
a85e914f78 Vulkan: Fix use-after-free crash on shutdown. 2018-04-29 09:47:39 -07:00
Henrik Rydgård
03c2292ae9
Merge pull request #10915 from unknownbrackets/warnings
Warning fixes
2018-04-14 20:30:26 +02:00
Unknown W. Brackets
377b220fb3 GLES: GlPushBuffer was a little too friendly. 2018-04-14 11:00:13 -07:00
Henrik Rydgård
1987401e74 Fix glitch in MGS: Acid perf hack. yeah, slippery slope.. 2018-04-14 10:27:36 +02:00
Henrik Rydgård
fb7a63bd11 Implement shader depal for GL as well, but disabled by default. 2018-04-13 20:00:14 +02:00
Henrik Rydgård
0ac6cea34d Add a queue processing hack for Sonic Rivals too. Now it's fast. 2018-04-13 18:05:04 +02:00
Henrik Rydgård
413a204138 Vulkan: Semi-gross hack that massively improves the perf of MGS2:Acid. 2018-04-13 17:32:56 +02:00
Henrik Rydgård
163350bbcd Vulkan/D3D11: Make some space in the base uniform buffer by consolidating the spline parameters into one variable. 2018-04-13 08:58:05 +02:00
Henrik Rydgård
f4d8bfdf18 Avoid some GL errors on older devices 2018-04-12 14:35:25 +02:00
Henrik Rydgård
dd228be698 GL: Add a lot of conditional error checks (normally not enabled) 2018-04-12 14:35:04 +02:00
Henrik Rydgård
36fd2711d6 Revert "Remove further remains of hardware skinning."
This reverts commit 40db61a680.
2018-04-10 12:22:41 +02:00
Unknown W. Brackets
32eb483932 GLES: Defrag using deleter off render thread.
Moving it to the render thread was a bit more complex because of
localMemory.  Fixes #10859.
2018-04-08 19:22:46 -07:00
Unknown W. Brackets
99d16b2202 Vulkan: Add tags to UI textures too. 2018-04-06 21:43:18 -07:00
Henrik Rydgård
ca0fb77080 Assorted cleanups. Don't assert on no clear mask. 2018-04-06 23:29:44 +02:00
Henrik Rydgård
b06df3536e Auto unregister push buffer on deletion. 2018-04-05 17:53:03 +02:00
Henrik Rydgård
c7eb259c0c Auto register new push buffers on creation 2018-04-05 17:50:37 +02:00
Henrik Rydgård
76138fee6d Move pushbuffer deletion to the render manager. 2018-04-05 17:47:08 +02:00
Henrik Rydgård
feb3870f7d Also take control over Begin/End 2018-04-05 17:34:32 +02:00
Henrik Rydgård
8d6bbc54a9 Minor refactoring moving creation/deletion of GLPushBuffer to GLRenderManager 2018-04-05 17:31:12 +02:00
Unknown W. Brackets
c6ef547176 GLES: Show post-shader compile errors to user. 2018-04-01 19:47:19 -07:00
Henrik Rydgård
d160292f54 Include renderpass definition in Vulkan shader cache entries, should make it more effective again. 2018-03-29 14:36:04 +02:00
Henrik Rydgård
01d81ffa72 OpenGL: Fix texture wrapping of render targets. 2018-03-28 11:23:41 +02:00
Henrik Rydgård
8d0285dedd Android: Properly restore screenshots on the Pause screen on task switching away and back.
Basically plumbs through DeviceLost/DeviceRestored to view elements and
into ManagedTexture.
2018-03-27 23:11:10 +02:00
Henrik Rydgård
d125fa00e1 Make sure the renderpass cache hashmap is never accessed from the main thread at runtime. Should help #10811 2018-03-27 14:45:41 +02:00
Henrik Rydgård
29de4b5a18
Merge pull request #10809 from libretro/master
Libretro: add D3D11 support / fix GL context reset.
2018-03-27 09:23:30 +02:00
aliaspider
808bf8e681 Libretro: add experimental D3D11 support. 2018-03-25 23:07:02 +01:00
Henrik Rydgård
f39897cfa5 Don't forget to initialize.. fixes #10802 2018-03-26 00:05:29 +02:00
Henrik Rydgård
4a3692161b Show chosen postshader display name properly, plus some additional bugfixes. Fixes #10790 2018-03-25 14:42:48 +02:00
Henrik Rydgård
2a565199b3
Merge pull request #10780 from aliaspider/temp
Libretro port.
2018-03-24 16:28:10 +01:00
Henrik Rydgård
4f8e2adf76 Remove some unnecessary logging. Fixes #10753 2018-03-24 16:10:21 +01:00
Henrik Rydgård
8fe5223dd0
Merge pull request #10781 from hrydgard/preserve-config
Android: Reload the config after getting storage permission, and ask immediately.
2018-03-24 14:18:37 +01:00
Henrik Rydgård
fb15208777 Android: Reload the config after getting storage permission, and ask immediately. Should help #10670 2018-03-24 12:52:51 +01:00
aliaspider
0af6d573bb remove all usage of __LIBRETRO__ 2018-03-24 12:45:20 +01:00
Henrik Rydgård
da8d5fa280
Merge pull request #10767 from aliaspider/temp
fix cmake build for mingw and msvc.
2018-03-24 09:24:53 +01:00
Henrik Rydgård
7761d2366b Android: Prevent a text bitmap size from becoming 0 on '\r\n'. Fixes #10764 (unless there are more platforms where it's broken...) 2018-03-23 10:48:54 +01:00
Henrik Rydgård
fb798cf6b2 Win32 textdrawer: Fix rare crash affecting Patapon 2 in savedata manager. See 10764. 2018-03-23 10:27:08 +01:00
aliaspider
54d9406713 fix mingw and msvc cmake builds. 2018-03-23 03:18:13 +01:00
aliaspider
15c4406df7 add missing inclues. 2018-03-22 22:14:19 +01:00
aliaspider
a5b5308d88 fix return value / plug leak. 2018-03-22 22:12:19 +01:00
Henrik Rydgård
f1359af0b0 Vulkan: Improve handling of shader compile failures (don't crash) 2018-03-19 17:46:58 +01:00
Henrik Rydgård
1dabccb453 Vulkan: Minor logic fixes in the transition elimination 2018-03-18 13:14:20 +01:00
Henrik Rydgård
3e7723ea6d Vulkan: Use finalLayout to optimize away barriers before framebuffer copies. 2018-03-18 12:09:02 +01:00
Henrik Rydgård
2d3655ea23 Vulkan: Get rid of more explicit barriers by merging the finalLayout color transitions into renderpasses. 2018-03-18 12:03:23 +01:00
Henrik Rydgård
6d5f0665fe Add a super focused workaround for the Mali bug, see #10723
Minimizes the performance penalty.
2018-03-18 11:20:45 +01:00
Henrik Rydgård
f43935b030 Merge framebuffer layout pre-transitions into render pass subpass dependencies.
With this, drivers should be able to completely get rid of layout
transitions into render passes that use CLEAR, at least.
2018-03-18 09:55:36 +01:00
Henrik Rydgård
33a1e6a080 Vulkan Clear-renderpass merging: If a copy step is found that reads from the affected buffer, don't merge the clear into the later renderpass. 2018-03-18 09:44:00 +01:00
Henrik Rydgård
0ee058320a Pass new vulkan validation layers. Fix math in FindTransferFramebuffers. 2018-03-17 23:39:02 +01:00
Henrik Rydgård
6858c77612 Don't allow wrapping on framebuffer textures. Fixes GTA on old NV Shield 2018-03-17 01:54:11 +01:00
Henrik Rydgård
614cabb115 Implement pipeline/shader cache for Vulkan, to avoid shader compile stutters on second and subsequent runs.
The raw pipeline cache got pretty large. Instead, store IDs like GL.

There's still a disabled option to store the pipeline cache objects.
2018-03-16 21:03:03 +01:00
Henrik Rydgård
c5ebb2d73f Oops, remove logging 2018-03-16 14:58:45 +01:00
Henrik Rydgård
a08464eb77 Vulkan: Also check for empty clearing renderpasses later in the frame. 2018-03-16 14:57:41 +01:00
Henrik Rydgård
df8dac4aae If the first renderpass is an empty clear, merge it into the next one that touches the same framebuffer. Works around #10723 in Wipeout. 2018-03-16 13:44:56 +01:00
Henrik Rydgård
3cd92b4d90 Vulkan: Add a (disabled) facility to force image layouts to GENERAL, for debugging barrier issues 2018-03-15 16:23:23 +01:00
Henrik Rydgård
ba5208efaa GL: Fix bug where we could crash if a readback happened at the same time as a buffer expansion. 2018-03-14 00:06:38 +01:00
Henrik Rydgård
7c6034e2ce
Merge pull request #10713 from hrydgard/windows-gl-vsync-fix
Fix VSync on Windows. Should fix #10711
2018-03-13 00:03:33 +01:00
Romain Graillot
ad37e7ce45 Fix crash happening with glGetFloatv on GPDXD devices 2018-03-12 23:11:58 +01:00
Henrik Rydgård
2a438d6e03 Fix VSync on Windows. Should fix #10711 2018-03-12 20:07:31 +01:00
Henrik Rydgård
0ed3deabe6 Fix #10692 (crash when starting games from command line). Throw in some minor Vulkan fixes as well. 2018-03-08 16:35:13 +01:00
Henrik Rydgård
d45ae9e67a
Merge pull request #10688 from unknownbrackets/gl-buffers
GLES: Support more buffer mapping strategies
2018-03-05 09:15:41 +01:00
Henrik Rydgård
40db61a680 Remove further remains of hardware skinning. Fixes #10661 2018-03-05 00:03:47 +01:00
Unknown W. Brackets
7c983a6842 GLES: Support more buffer mapping strategies. 2018-03-04 14:48:06 -08:00
Unknown W. Brackets
021ade5065 GLES: Fix force alignment on buffer map. 2018-03-04 13:26:52 -08:00
Henrik Rydgård
38bf10baaa GL: Use AllocateAlignedMemory to make sure localMemory is always aligned. Fixes #10666
Seems the code that tries to align is faulty in some cases but this avoids the issue at least.
2018-03-04 22:22:47 +01:00
Unknown W. Brackets
1b8e3edb86 GLES: Buffer handling cleanup.
Trying to fix the mystery issues on some devices.
2018-03-04 10:00:45 -08:00
Henrik Rydgård
ee752f5399 Some error handling and assert improvements, trying to understand #10662 2018-03-01 12:21:58 +01:00
Henrik Rydgård
3b0d307792 Fix something found by -fsanitize=undefined 2018-03-01 08:24:47 +01:00
Henrik Rydgård
bc339c0377 GL: Filter away redundant glEnable/Disable(GL_STENCIL_TEST) 2018-02-28 13:28:39 +01:00
Henrik Rydgård
f5dd9c17cd Add comment trying to clarify shutdown of GPU_GLES, restore the wipe, minor tweaks. Should help #10652
This reverts commit 10be0cad96.
2018-02-27 22:04:24 +01:00
Henrik Rydgård
375fa3fb5b Improve a bunch of Vulkan copy-rect asserts by adding more debug info 2018-02-26 14:23:52 +01:00
Henrik Rydgård
373e53fa66
Merge pull request #10645 from hrydgard/vulkan-cleanups
Vulkan cleanups: Remove old texture upload method, etc.
2018-02-26 09:24:24 +01:00
Unknown W. Brackets
beeb9cc3a4 GLES: Disable buffer mapping for non-NVIDIA.
Need more stats on other vendors.  I think it can help if we use it
properly.
2018-02-25 12:51:52 -08:00
Henrik Rydgård
e1852321a0 Vulkan: Remove the old method of uploading images. 2018-02-25 12:15:29 +01:00
Henrik Rydgård
5f8118b82b Separate T3DCreate* into its own header to avoid including Windows.h etc in some cases. 2018-02-25 10:27:59 +01:00
Henrik Rydgård
1b9c2f26f9 Whitelist mapbuffer usage to NVIDIA only (should maybe add Qualcomm too), it's murder on Mali 2018-02-12 11:46:19 +01:00
Unknown W. Brackets
be0ab58365 GLES: iOS buildfix. 2018-02-11 14:38:36 -08:00
Unknown W. Brackets
5f1cd19687 GLES: Android buildfix. 2018-02-11 13:17:08 -08:00
Unknown W. Brackets
20b532fc71 GLES: Use buffer storage and explicit flush.
This is just as fast as using glMapBufferRange on desktop.
2018-02-11 13:14:28 -08:00
Unknown W. Brackets
7179e408da GLES: Free localMemory later.
It was still in use sometimes as of MapDevice(), so this is safer.
2018-02-11 12:35:33 -08:00
Unknown W. Brackets
edcd2f966a GLES: Use buffer range mapping where appropriate. 2018-02-11 12:35:33 -08:00
Unknown W. Brackets
9eb51a6a36 GLES: Use mapped device memory when possible. 2018-02-11 12:35:32 -08:00
Unknown W. Brackets
fcc2b59c57 GLES: Wait for queue idle properly.
Need to wait for anything ready for run.  Not everything will have been
submitted.
2018-02-11 11:30:38 -08:00
Unknown W. Brackets
0474ff5c23 GLES: Use aligned memory for textures.
We use SSE on them, and they used to be aligned, and must be aligned in
PSP RAM, so keep them aligned.

This only really affects 32-bit, since allocs will typically be aligned on
64-bit anyway.

Fixes #10601.
2018-02-11 08:13:57 -08:00
Unknown W. Brackets
0e2a586c1b Global: Fix some type comparison/shadow warnings. 2018-02-11 07:03:23 -08:00
Unknown W. Brackets
9a40a5971b GLES: Prevent crash on screenshot without buffers.
It still fails for some reason, but that's better than a segfault.
2018-02-10 16:55:53 -08:00
Henrik Rydgård
8ad5b499a9 Improve assert messages in VulkanRenderManager (minor) 2018-02-10 08:58:33 +01:00
Henrik Rydgård
0fe4e70aef Fix another way the scissor test could accidentally get disabled 2018-02-08 16:47:04 +01:00
Henrik Rydgård
b9b41f52c5 Add a simple spinner to the game load screen to not look frozen. 2018-02-08 12:03:29 +01:00
Henrik Rydgård
8c5a94ce01 gl-render-manager: Oops, fix scissor tests after clears 2018-02-08 00:50:39 +01:00
Henrik Rydgård
1eec30dac2 Avoid causing a gl error on startup on core contexts. 2018-02-08 00:44:10 +01:00
Henrik Rydgård
481134bfe9 Another go at the deleter problem. Still not feeling 100% good about how this works.. but it does seem to work fine. 2018-02-08 00:41:17 +01:00
Henrik Rydgård
8ee426ff74 Get rid of an unused codepath (gl rendering is now always threaded) 2018-02-08 00:23:48 +01:00
Henrik Rydgård
ce16547854 GL render manager: Fix bug when setting texture sampler if the wrong GL texture slot is active. Will likely help #10583 2018-02-07 19:49:58 +01:00
Henrik Rydgård
7f30037e45 Android: Fix emuthread management to exit cleanly without hanging. Helps with task switching on Android. 2018-02-07 13:11:43 +01:00
Henrik Rydgård
3e56d8bbdf Noticed that the UWP build has been broken for some time, fix it.
Should probably set up a buildbot if we care about this...
2018-02-05 16:21:39 +01:00
Henrik Rydgård
d30f1c2019 Fix another Qt memory leak 2018-02-04 14:13:47 +01:00
Henrik Rydgård
020eb9d86c Fix further memory leaks 2018-02-04 13:42:04 +01:00
Henrik Rydgård
79d1610148 Move SDLGLGraphicsContext.h to the correct location. Minor cleanup 2018-02-04 13:42:04 +01:00
Henrik Rydgård
99386da01e Minor cleanups 2018-02-04 13:42:04 +01:00
Henrik Rydgård
583c20991f Qt: Some cleanup and fixes. Still not working correctly with gl-render-manager. 2018-02-04 13:42:04 +01:00
Henrik Rydgård
8438defb24 Fix some memory leaks 2018-02-04 13:39:10 +01:00
Henrik Rydgård
d6e888a39b Revert "Simpler way to deal with the GL deleter"
This reverts commit 3a988400a7.
2018-02-04 13:09:51 +01:00
Henrik Rydgård
5351c9ddb3 gl-render-manager: Support scissored clears, as used by the GL backend. Fixes GT. 2018-01-31 17:07:20 +01:00
Henrik Rydgård
22e28e218b
Merge pull request #10411 from hrydgard/gl-render-manager
GL render manager - new faster GL multithreading
2018-01-31 12:22:07 +01:00
Henrik Rydgård
3a988400a7 Simpler way to deal with the GL deleter 2018-01-30 22:32:16 +01:00
Henrik Rydgård
c60c8ed68a Debug visualization for the Vulkan memory allocator. Shows some interesting behaviour. 2018-01-29 19:38:10 +01:00
Henrik Rydgård
bd2c875c9a Fix readback color conversion 2018-01-28 21:28:16 +01:00
Henrik Rydgård
6c109abd9e Don't crash on missing readback formats. 2018-01-28 18:00:48 +01:00
Henrik Rydgård
bd3a681fd3 Enough JNI/threading hackery to get it to run on Android! Broken readbacks make it crash alot though. 2018-01-28 17:30:33 +01:00
Unknown W. Brackets
062566b67c Core: Set thread names when possible.
This doesn't seem to be working for lldb, though.
2018-01-27 15:10:17 +01:00
Unknown W. Brackets
95bcda409d GLES: Fix segfault on GL 2.x. 2018-01-27 15:10:17 +01:00
Unknown W. Brackets
0399088fc7 GLES: Handle glGetString() on GL thread.
We only use a few strings, so should be fine to cache them.
2018-01-27 15:10:17 +01:00
Unknown W. Brackets
7f0b35cd23 GLES: Run ThreadFrame until frame complete.
This makes it easier for frontends that need to call this between other
things to handle vsync, or etc.
2018-01-27 15:10:17 +01:00
Unknown W. Brackets
30a60018a0 GLES: Fix race crash on shutdown.
This happens when there are pointers in step commands that get freed.
2018-01-27 15:10:17 +01:00
Unknown W. Brackets
acc3e39b67 GLES: Reintroduce out of memory checks. 2018-01-27 15:10:17 +01:00
Unknown W. Brackets
38161f3c69 GLES: Use linear for high-res FBO tex copies. 2018-01-27 15:10:17 +01:00
Unknown W. Brackets
e56ae322fd GLES: Report errors for link failures.
Let's not lose reporting on this, it's often an issue...
2018-01-27 15:10:17 +01:00
Unknown W. Brackets
3380ab8705 GLES: Keep the GLRShader desc around.
This way we can also log it on link errors.  It's not much data.
2018-01-27 15:10:17 +01:00
Unknown W. Brackets
48a07474f8 GLES: Avoid using failed depal shaders if possible.
Better to have one totally broken frame than all totally broken frames.
2018-01-27 15:10:17 +01:00
Unknown W. Brackets
638cbf725b GLES: Skip blend reset after stencil upload.
We dirty the flag anyway.  Avoid extra calls.
2018-01-27 15:10:17 +01:00
Henrik Rydgård
e5b8d91c9f ES2 buildfix - glGetTexImage is not available 2018-01-27 15:10:17 +01:00
Henrik Rydgård
903bd07d6e gl-render-manager: Fix updating sampler modes when texturing from framebuffer 2018-01-27 15:10:17 +01:00
Henrik Rydgård
ccdb4d186d gl-render-manager: Fix HW tesselation. Remove 1D texture support, likely no benefit. 2018-01-27 15:10:17 +01:00
Unknown W. Brackets
db0989a9d0 Debugger: Fix texture preview in GLES.
Also, fix issues with the first view of a texture in Vulkan / D3D11.
2018-01-27 15:10:17 +01:00
Unknown W. Brackets
bdf7fdc7a3 GLES: Actually stop the thread on shutdown.
Fixes shutdown.
2018-01-27 15:10:17 +01:00
Unknown W. Brackets
b956263a96 GLES: Consistently reset state on new steps.
It'd be nice to avoid this dependency, but since every step forgets the
current state, and these functions are called in a lot of places, it's
tricky to manage.

Fixes graphics in Grand Knights History (framebuf copy creating a new
step, resetting blending state.)
2018-01-27 15:10:17 +01:00
Unknown W. Brackets
b3ed3ea0fb GLES: Fix intra-buffer block transfers.
Makes Grand Knights History look a bit better.
2018-01-27 15:10:17 +01:00
Henrik Rydgård
e531a7da43 gl-render-manager: Implement logic ops 2018-01-27 15:10:17 +01:00
Unknown W. Brackets
acb692677b GLES: Accept a color mask for clears.
Otherwise, we end up clearing RGB when we try to only clear alpha, which
is fairly common.

Makes Valkyria Chronicles 3 action mode visible again.
2018-01-27 15:10:17 +01:00
Unknown W. Brackets
e98f265d68 GLES: Prevent writing to gutter in readback.
This also read outside the conv buffer.

Prevents crash on startup for Brave Story.  Now, it just has major
graphical issues.
2018-01-27 15:10:17 +01:00
Unknown W. Brackets
3eb6d38d75 Vulkan: Fix stencil-only clear for stencil upload.
Fixes stencil issues in Star Ocean.
2018-01-27 15:10:17 +01:00
Unknown W. Brackets
22bf124631 GLES: Document stencil clearing bug. 2018-01-27 15:10:17 +01:00
Henrik Rydgård
fdca06d208 More work on shutdown, still hanging though. 2018-01-27 15:10:17 +01:00
Henrik Rydgård
57615344e4 Fix for deletes, add some debugging stuff 2018-01-27 15:10:17 +01:00
Henrik Rydgård
e5d571c25a gl-render-manager: Now threaded mode seems to work fine (and fast!). Shutdown doesn't, though, and there are stability issues. 2018-01-27 15:10:17 +01:00
Henrik Rydgård
af6431986d OpenGL: Now run GL on a secondary thread. Sync issues remain. 2018-01-27 15:10:17 +01:00
Henrik Rydgård
e4752a887f Fix use-after-free in shader error reporting 2018-01-27 15:10:17 +01:00
Henrik Rydgård
d0038775e5 TODOs and indentations 2018-01-27 15:10:17 +01:00
Henrik Rydgård
b7f4f6e157 GL render manager: Improve shader error reporting. 2018-01-27 15:10:17 +01:00
Henrik Rydgård
465939e1c8 Minor fixes, indentation and comments 2018-01-27 15:10:17 +01:00
Henrik Rydgård
7d6f9aec4d iOS buildfix 2018-01-27 15:10:17 +01:00
Henrik Rydgård
5c7c7ce192 Move GL sampler state tracking into GLRenderManager/QueueRunner. 2018-01-27 15:10:17 +01:00
Henrik Rydgård
43ebbbcdb6 More state dirtying, a comment 2018-01-27 15:10:17 +01:00
Henrik Rydgård
af8e825578 Fix terrible drawing glitches when we do sync readbacks. 2018-01-27 15:10:17 +01:00
Henrik Rydgård
542f9f9ef1 Assorted cleanup 2018-01-27 15:10:17 +01:00
Henrik Rydgård
42f2312030 Remove the old CPU threading remains, start redesigning interfaces. 2018-01-27 15:10:17 +01:00
Henrik Rydgård
49c3cb83fe GL render manager: Simple implementation of synchronous framebuffer readbacks. 2018-01-27 15:10:17 +01:00
Henrik Rydgård
2b12776137 Remove viewport flipping where it's not needed 2018-01-27 15:10:17 +01:00
Henrik Rydgård
0a413a18a7 GL render manager: Add some more dirty tracking. 2018-01-27 15:10:17 +01:00
Henrik Rydgård
958078f603 GL render manager: Merge BindInputLayout into BindVertexBuffer. 2018-01-27 15:10:17 +01:00
Henrik Rydgård
f99fa02ba7 Run the depal stuff, seems a bit broken. Add some state filtering. 2018-01-27 15:10:17 +01:00
Henrik Rydgård
970458a0c2 Scissor fix 2018-01-27 15:10:17 +01:00
Henrik Rydgård
7c17cb6754 Fix showing savestate screenshots (needed mips) 2018-01-27 15:10:17 +01:00
Henrik Rydgård
1241abc887 Make sure we set GL_TEXTURE_MAX_LEVEL somewhere. 2018-01-27 15:10:17 +01:00
Henrik Rydgård
9094410fd1 gl-render-manager: Need to actually bind newly created textures. 2018-01-27 15:10:17 +01:00
Henrik Rydgård
8a1e7347b9 GL render manager: Various fixes and cleanup including a buffered rendering fix, rect primitive fix 2018-01-27 15:10:17 +01:00
Henrik Rydgård
062608ad78 Start moving the framebuffer stuff over to the render manager 2018-01-27 15:10:17 +01:00
Henrik Rydgård
7e3e652963 Fix more gl-render-manager problems 2018-01-27 15:10:17 +01:00
Henrik Rydgård
51f467a7b3 Kill off the GL state cache 2018-01-27 15:10:17 +01:00
Henrik Rydgård
f3282dcfda Delete the gl name cache (might resurrect it on the GLQueueRunner side if needed later). Other cleanup and fixes. 2018-01-27 15:10:17 +01:00
Henrik Rydgård
46e1fbb788 Initial texture work. Bugfix indexed drawing 2018-01-27 15:10:17 +01:00
Henrik Rydgård
bd6818198a More GLRenderManager 2018-01-27 15:10:17 +01:00
Henrik Rydgård
376d92fcc9 Start messing with the draw engine... 2018-01-27 15:10:17 +01:00
Henrik Rydgård
9340260802 Finish the shader manager (almost) 2018-01-27 15:10:17 +01:00
Henrik Rydgård
60a966c5ec PushBuffer added. Thin3d works now on top of GLRenderManager, except framebuffers. 2018-01-27 15:10:17 +01:00
Henrik Rydgård
a3bcd91a31 Fix clears and textures. Things still broken due to memory overwrites. 2018-01-27 15:10:17 +01:00
Henrik Rydgård
e1bb4441d8 First garbage graphics output! 2018-01-27 15:10:17 +01:00
Henrik Rydgård
b8e4ae08a7 Even more gl-render-manager 2018-01-27 15:10:17 +01:00
Henrik Rydgård
9babdb712c More gl-render-manager 2018-01-27 15:10:17 +01:00
Henrik Rydgård
dc72a8696f More work on gl-render-manager 2018-01-27 15:10:17 +01:00
Henrik Rydgård
dd91cb0f8e Begin implementing GLQueueRunner and GLRenderManager 2018-01-27 15:10:17 +01:00
Unknown W. Brackets
d4400b358a UI: Actually offset text shadow.
It wasn't actually visible before, since it was strictly underneath text
that was usually white.
2018-01-01 22:58:07 -08:00
Kentucky Compass
6a9a511337 add an include for PPSSPP_PLATFORM 2017-12-30 22:44:41 -08:00
Kentucky Compass
2a3c4408d2 Fix build on iOS (only iOS 9 and up support thread_local) 2017-12-30 20:57:45 -08:00
Henrik Rydgård
b9d0bf9842 Remove outdated comment. 2017-12-31 00:10:55 +01:00
Henrik Rydgård
b5e5d72a0a Complete the separation of depth and stencil renderpass flags 2017-12-30 22:52:22 +01:00
Henrik Rydgård
a0f718ace1 Start separating depth and stencil renderpass actions, only internally in the Vulkan code so far. 2017-12-30 22:40:57 +01:00
Henrik Rydgård
1e64919392 Vulkan: Create renderpass objects on demand. Just a refactoring to prepare for some later features/optimizations. 2017-12-30 22:35:43 +01:00
Henrik Rydgård
b9726245ac Vulkan: Use VK_KHR_DEDICATED_ALLOCATION for frame buffers for minor speedup on some GPUs. Check for the debug report extension before enabling it. 2017-12-30 21:31:43 +01:00
Unknown W. Brackets
52c4293896 Profiler: Show the slowest thread's categories.
May or may not be ideal, but this was the easiest solution...
2017-12-30 10:45:51 -08:00
Unknown W. Brackets
b9cd883811 UI: Only default focus visible things.
Also, default focus perm button.
2017-12-29 17:55:40 -08:00
Henrik Rydgård
8ebbb82c0a
Merge pull request #10459 from unknownbrackets/ui-resized
UI: Trigger view recreate on static sized screens
2017-12-27 11:07:35 +01:00
Unknown W. Brackets
c0f0bc88af UI: Trigger view recreate on static sized screens.
If a screen doesn't size via layout, it needs to recreate views on resize,
which is what the resized() method is for.
2017-12-27 01:13:47 -08:00
Unknown W. Brackets
56835fc017 Qt: Fix OpenGL init.
Needs to check extensions before creating thin3d, as others do.
2017-12-26 16:04:19 -08:00
Unknown W. Brackets
a7b3a1eb96 Vulkan: Decimate the texture allocator.
Thin3D wasn't calling Begin/End, which lead to leaks eventually and OOM.

Was causing softgpu to crash.
2017-12-24 10:39:42 -08:00
Unknown W. Brackets
78ebe942ab Vulkan: Cleanup unused code. 2017-12-21 11:43:05 -08:00
Unknown W. Brackets
75aa65908c GLES: Pack without stride where possible.
This may possibly help #10425 in case the behavior is different when going
over width when reading pixels.
2017-12-21 11:41:53 -08:00
Henrik Rydgård
ea387b2a48 WIP vulkan on linux stuff 2017-12-21 10:48:00 +01:00
Henrik Rydgård
2bdae5b338
Merge pull request #10420 from hrydgard/core-cleanup
Some core cleanup
2017-12-20 11:25:11 +01:00
Henrik Rydgård
4f1e0de9a9 Add missing includes. Remove some more unnecessary #ifdef _DEBUG checks - the debugger is supposed to work in release mode too. 2017-12-20 11:24:05 +01:00
Henrik Rydgård
e8825666c9
Merge pull request #10419 from hrydgard/vulkan-init-cleanup
Avoid including platform-specific headers in VulkanContext.h
2017-12-20 10:56:32 +01:00
Henrik Rydgård
740d0504ad Move QtMain.cpp and PCMain.cpp to more sensible locations. Native isn't standalone anymore... 2017-12-19 18:04:26 +01:00
Henrik Rydgård
1a5d1081f9 Get rid of the old custom "Event" sync primitive. 2017-12-19 15:38:18 +01:00
Henrik Rydgård
2822a4f187 Win32: Use the standard thread APIs to manage the emu thread. 2017-12-19 15:27:56 +01:00